使用 VDS

[从Windows 8和Windows Server 2012开始,虚拟磁盘服务 COM 接口由Windows 存储管理 API 取代。

VDS 提供了一个用于脚本和 GUI 开发的接口,可简化由管理异类存储系统的Windows服务器管理员执行的活动,随时间推移跨不同硬件配置迁移数据。 如果不熟悉 VDS 开发中使用的对象,请参阅 VDS 对象模型

开始前的几点:

  • 虽然 VDS 包括软件提供程序,但必须单独购买硬件提供程序和相关硬件才能利用硬件提供程序操作。 有关安装说明,请参阅硬件制造商提供的文档。
  • 某些操作需要 NTFS 格式的卷。 例如,在现有目录中装载卷时,包含该目录的卷必须使用 NTFS 进行格式化。 其他文件系统不支持此操作。 有关需要 NTFS 的操作的信息,请参阅 VDS 参考中的每个方法页。

编程语言

使用适用于 COM 开发的任何编程语言,例如 C 语言或 C++ 。

安全

默认情况下,Windows防火墙处于启用状态。 这可能会导致回调接口(如 IVdsAdviseSink)的身份验证失败,这些接口可以远程执行。 如果在客户端或服务器上启用了Windows防火墙,则必须将远程卷管理添加到Windows防火墙中的“例外”选项卡。

Windows Server 2003:在 service Pack 2 (SP2) 和 service Pack 1 (SP1) Windows Server 2003 的 Windows Server 2003 中,如果客户端或服务器上启用了Windows防火墙,并且服务器配置为使用 NTLM 身份验证,则必须将以下设置添加到Windows中的“例外”选项卡 适用于相应计算机的防火墙。

Computer 异常设置
客户端计算机 (本地) Dmremote.exe
Mmc.exe
Vdsldr.exe
TCP 135
服务器计算机 (远程) Dmadmin.exe
Vds.exe
TCP 135

请注意,在 SP1 Windows Server 2003 之前,默认情况下不会启用Windows防火墙。

使用 VDS 的应用程序必须在备份操作员或管理员组帐户下运行。 如果没有适当的特权,应用程序可以创建服务加载程序对象,但该对象不会加载 VDS。 相反,它返回一个错误,指示拒绝对 VDS 的访问。

如果网络使用 NTLM 身份验证,客户端计算机应允许匿名访问。 在这种情况下,如果客户端计算机运行Windows服务器操作系统,则默认启用匿名访问。 如果运行Windows客户端操作系统,则必须使用Dcomcnfg.exe启用匿名访问。

配置和查询操作

配置和查询操作的范围由最相关的计算机、提供程序、子系统或包。 查询仅遍历绑定层次结构的一个提供程序或一个级别。 若要生成完整视图,调用方必须跨级别和向下查询。 以下列表包括示例:

  • 若要查看计算机上的所有磁盘,调用方必须跨所有软件提供程序查询这些提供程序声明的磁盘。
  • 若要确定哪些磁盘对软件堆栈卷的贡献,调用方首先确定参与的 plexes,然后查询每个 plex 的磁盘盘区。
  • 若要查看附加到给定子系统的所有驱动器,调用方必须查询子系统。
  • 若要查看给定子系统公开的所有 LUN,调用方必须查询子系统。
  • 若要查看 SAN 或群集上的所有存储,调用方必须针对所有硬件提供程序查询每台计算机,查询所有子系统的每个提供程序,然后查询每个子系统。

虽然每个查询都不会返回重复项,但跨计算机或跨提供程序重复的查询可能会累积重复项。 调用方必须实现任何筛选。 另请注意,SAN 管理应用程序可以使用 Active Directory 或存储库来保存配置信息;可能不需要查询每台计算机。

虚拟磁盘服务

VDS 对象模型

VDS 参考