Disk 对象

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

磁盘对象为基于主机的物理磁盘建模。 将 LUN 对象取消屏蔽到本地主机时,在本地主机上运行的软件提供程序可以磁盘的形式访问 LUN。 有关 LUN 掩码的详细信息,请参阅 LUN 对象

每个磁盘对象只贡献一个包对象;但是,磁盘可以向包内任意数量的卷提供盘区。 可以将磁盘指定为热备用磁盘。

分区到卷映射

操作系统包括对基本磁盘和动态磁盘的支持。 VDS 提供用于管理这些磁盘类型的基本提供程序和动态提供程序。 基本磁盘永远不会具有容错能力。 如果操作系统允许此类卷绑定,动态磁盘可以容错。 基本磁盘和动态磁盘可以包含根据以下分区样式之一构建的分区:主启动记录 (MBR) 或 GUID 分区表 (GPT) 。 MBR 分区最多有 4 个主分区,或 3 个主分区加上一个具有无限逻辑驱动器的扩展分区。 GPT 分区最多提供 128 个主分区。

下面的说明在本质上是一般的。 它显示了分区和卷之间的典型关系,其中有几个例外情况。 有关分区到卷映射的详细说明,请参阅 IVdsAdvancedDisk 接口。 分区到卷映射因磁盘类型、基本磁盘或动态磁盘而异。

  • 基本磁盘

    大多数情况下,基本磁盘上的分区直接映射到卷,并且可以将其样式设置为 MBR 或 GPT 分区。 下图显示了这两个版本的 MBR 分区的映射。 在第一种情况下, (P1 到 P4 的分区) 直接映射到 V1 到 V4) (卷。 扩展分区 (Ext) 替换第二个 MBR 样式中的 P4。 映射到卷的扩展分区中的逻辑驱动器数不受限制。

    显示 M B R 分区的两个映射选项。

    如果正在使用所有可用分区,则下图中的 GPT 分区 (P1 到 P128) 直接映射到 V1 到 V128) (卷。 GPT 磁盘不会使用扩展分区来增强可用性。

    显示 GPT 分区。

  • 动态磁盘

    动态磁盘上的特殊分区类型映射到大量卷。 有关动态提供程序施加的估计限制,请参阅 pack 对象。 如下图所示,P1 中可以有任意数量的盘区映射到卷。

    显示动态磁盘上的特殊分区类型。

无论磁盘类型如何,磁盘都可以包含一个或多个磁盘盘区。 磁盘盘区是磁盘公开的连续逻辑块范围。 例如,磁盘盘区可以表示整个卷、跨卷的一部分、条带卷的一个成员或镜像卷的一个丛。

使用磁盘

使用 IVdsPack::AddDisk 方法将磁盘添加到现有包。 调用方可以通过从 IVdsPack::QueryDisks 方法返回的枚举中选择所需的磁盘对象来获取指向特定磁盘的指针。 同样,可以调用 IVdsDisk::GetPack 方法来确定哪个包包含给定磁盘。

可以通过调用 IVdsPack::MigrateDisks 方法将磁盘从一个包移到另一个包。 (VDS 不支持在由基本提供程序控制的包之间迁移基本磁盘。) 也可以通过将包中的所有磁盘物理移动到新主机,将包移到另一台主机。 包随磁盘一起移动,并在新主机上显示为外部包。 有关说明,请参阅 将外部磁盘添加到包

除了对象标识符、名称、地址、设备类型和媒体类型外,磁盘对象属性还包括磁盘状态、运行状况和标志;字节大小、每个扇区字节数、每个轨道的扇区数和每柱形图轨数;以及总线和分区类型。

下表列出了相关的接口、枚举和结构。

类型 元素
始终由此对象公开的接口 IVdsDiskIVdsDiskOnlineIVdsAdvancedDiskIVdsAdvancedDisk2IVdsDiskPartitionMFIVdsDiskPartitionMF2IVdsCreatePartitionExWindows Server 2008: 不支持 IVdsDiskPartitionMF2 接口。
Windows Vista: 在 Windows Vista Service Pack 1 (SP1) 之前,不支持 IVdsDiskOnline 接口;请改用 IVdsDisk2 。 不支持 IVdsDiskPartitionMF2 接口。
Windows Server 2003: 不支持 IVdsAdvancedDisk2IVdsDisk2IVdsDiskOnlineIVdsDiskPartitionMFIVdsDiskPartitionMF2 接口。
此对象可能公开的接口 IVdsRemovable。 (请参阅 LUN 对象 ,了解在磁盘为 LUN 时公开的其他接口。)
关联的枚举 VDS_DISK_FLAGVDS_DISK_STATUSVDS_PARTITION_FLAGVDS_PARTITION_STYLEVDS_DISK_EXTENT_TYPE
关联的结构 VDS_DISK_PROPVDS_DISK_NOTIFICATIONVDS_INPUT_DISKVDS_PARTITION_PROPVDS_PARTITION_INFO_GPTVDS_PARTITION_INFO_MBRVDS_DISK_EXTENT

软件提供程序对象

Pack 对象

LUN 对象

将外部磁盘添加到包