Disk 对象
[从 Windows 8 和 Windows Server 2012 开始,虚拟磁盘服务 COM 接口被 Windows 存储管理 API取代。
磁盘对象为基于主机的物理磁盘建模。 在本地主机上运行的软件提供程序可以在 LUN 对象取消屏蔽到本地主机时以磁盘的形式访问 LUN。 有关 LUN 掩码的详细信息,请参阅 LUN 对象。
每个磁盘对象只参与一个包对象;但是,磁盘可以为包中任意数量的卷提供盘区。 可以将磁盘指定为热备用磁盘。
分区到卷映射
作系统包括对基本磁盘和动态磁盘的支持。 VDS 提供基本提供程序和动态提供程序来管理这些磁盘类型。 基本磁盘永远不会容错。 如果作系统允许此类卷绑定,则动态磁盘可以容错。 基本磁盘和动态磁盘可以包含根据以下分区样式之一构建的分区:主启动记录(MBR)或 GUID 分区表(GPT)。 MBR 分区最多具有四个主分区,或三个主要分区以及一个具有无限逻辑驱动器的扩展分区。 GPT 分区最多提供 128 个主要分区。
下面的说明在本质上是一般性的。 它显示了分区和卷之间的典型关系,有几个例外。 有关分区到卷映射的详细说明,请参阅 IVdsAdvancedDisk 接口。 分区到卷映射因磁盘类型、基本磁盘或动态而异。
基本磁盘
基本磁盘上的分区在大多数情况下直接映射到卷,并且可以将其样式设置为 MBR 或 GPT 分区。 下图显示了这两个版本的 MBR 分区的映射。 在第一种情况下,分区(P1 到 P4)直接映射到卷(V1 到 V4)。 扩展分区 (Ext) 替换第二个 MBR 样式中的 P4。 映射到卷的扩展分区内的逻辑驱动器数不受限制。
下一个图中的 GPT 分区(P1 到 P128)直接映射到卷(V1 到 V128),如果所有可用分区都正在使用。 GPT 磁盘不使用扩展分区来增强可用性。
动态磁盘
动态磁盘上的特殊分区类型映射到大量卷。 有关动态提供程序施加的估计限制,请参阅 pack 对象。 如下图所示,P1 中可以有任意数量的盘区映射到卷。
无论磁盘类型如何,磁盘都可以包含一个或多个磁盘盘区。 磁盘区是磁盘公开的连续逻辑块范围。 例如,磁盘盘区可以表示整个卷、跨卷的一部分、条带卷的一个成员或镜像卷的一个困惑。
使用磁盘
使用 IVdsPack::AddDisk 方法将磁盘添加到现有包。 调用方可以通过从 IVdsPack::QueryDisks 方法返回的枚举中选择所需的磁盘对象来获取指向特定磁盘的指针。 同样,可以调用 IVdsDisk::GetPack 方法来确定哪个包包含给定磁盘。
可以通过调用 IVdsPack::MigrateDisks 方法将磁盘从一个包移动到另一个包。 (VDS 不支持在基本提供程序控制的包之间迁移基本磁盘。还可以通过将包中的所有磁盘物理移动到新主机,将包中的所有磁盘移动到另一台主机。 该包随磁盘一起移动,并显示为新主机上的外国包。 有关说明,请参阅 将外部磁盘添加到包。
除了对象标识符、名称、地址、设备类型和媒体类型外,磁盘对象属性还包括磁盘状态、运行状况和标志:每个扇区的大小、每个扇区的字节数、每个轨道的扇区数和每个缸的轨迹的大小;和总线和分区类型。
下表列出了相关的接口、枚举和结构。
类型 | 元素 |
---|---|
此对象始终公开的接口 |
IVdsDisk、IVdsDiskOnline、IVdsAdvancedDisk、IVdsAdvancedDisk 2、IVdsDiskPartitionMF、IVdsDiskPartitionMF2和 IVdsCreatePartitionEx。Windows Server 2008: 不支持 IVdsDiskPartitionMF2 接口。 Windows Vista:在 Windows Vista Service Pack 1(SP1)之前,不支持IVdsDiskOnline 接口;请改用 IVdsDisk2。 不支持 IVdsDiskPartitionMF2 接口。 Windows Server 2003:IVdsAdvancedDisk2、IVdsDisk2、I 不支持 IVdsDiskDiskOnline、IVdsDiskPartitionMF和 IVdsDiskPartitionMF2 接口。 |
此对象可能公开的接口 |
IVdsRemovable。 (请参阅 LUN 对象,了解磁盘是 LUN 时公开的其他接口。 |
关联的枚举 | VDS_DISK_FLAG、VDS_DISK_STATUS、VDS_PARTITION_FLAG、VDS_PARTITION_STYLE和 VDS_DISK_EXTENT_TYPE。 |
关联的结构 | VDS_DISK_PROP、VDS_DISK_NOTIFICATION、VDS_INPUT_DISK、VDS_PARTITION_PROP、VDS_PARTITION_INFO_GPT、VDS_PARTITION_INFO_MBR和 VDS_DISK_EXTENT。 |