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

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

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

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

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

配置和查询操作

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

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

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

虚拟磁盘服务

VDS 对象模型

VDS 参考