VDS_STORAGE_POOL_PROP 结构 (vds.h)

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

定义 存储池对象的属性。

语法

typedef struct _VDS_STORAGE_POOL_PROP {
  VDS_OBJECT_ID           id;
  VDS_STORAGE_POOL_STATUS status;
  VDS_HEALTH              health;
  VDS_STORAGE_POOL_TYPE   type;
  LPWSTR                  pwszName;
  LPWSTR                  pwszDescription;
  ULONGLONG               ullTotalConsumedSpace;
  ULONGLONG               ullTotalManagedSpace;
  ULONGLONG               ullRemainingFreeSpace;
} VDS_STORAGE_POOL_PROP, *PVDS_STORAGE_POOL_PROP;

成员

id

标识存储池对象的 VDS_OBJECT_ID 值。

status

一个VDS_STORAGE_POOL_STATUS枚举值,该值指定存储池的状态。

health

一个VDS_HEALTH枚举值,该值指定存储池的运行状况。 下面是此成员的有效值。

Windows Server 2008、Windows Vista 和 Windows Server 2003: 不支持VDS_H_DEGRADED

VDS_H_UNKNOWN (0)

VDS_H_HEALTHY (1)

VDS_H_DEGRADED (11)

type

一个VDS_STORAGE_POOL_TYPE枚举值,该值指定存储池的类型。

pwszName

一个指定存储池名称的字符串。

pwszDescription

一个字符串,其中包含存储池的说明。

ullTotalConsumedSpace

支持存储池的物理存储量(以字节为单位)。 此成员的值必须小于或等于 VDS_POOL_ATTRIBUTES 结构的 ullProvisionedSpace 成员的值。

ullTotalManagedSpace

此存储池中的空间(以字节为单位),可以分配用于创建子存储元素 (LUN 或池) ,包括已分配的空间。 根据存储池的配置方式,此成员的值可能远远小于 ullTotalConsumedSpace 成员的值。 例如,如果存储池配置为镜像池, 则 ullTotalManagedSpace 的值仅是 ullTotalConsumedSpace 成员值的一半。

ullRemainingFreeSpace

可用于从此池创建新的 LUN 或子存储池,或扩展现有 LUN 或子存储池的最大大小。 若要计算已分配给现有 LUN 或子存储池的托管空间量,请从 ullTotalManagedSpace 成员的值中减去此成员的值。

注解

IVdsStoragePool::GetProperties 返回此结构来报告存储池对象的属性。

以下示例演示 ullTotalConsumedSpaceullTotalManagedSpaceullRemainingFreeSpace 成员如何协同工作。

示例 1

假设有 2 个驱动器,每个驱动器 1 TB。 进一步假设你执行以下操作:
  1. 将存储池创建为镜像池。
  2. 创建大小为 200 GB 的 LUN。

ullTotalConsumedSpace = 2 TB。 这是物理存储或物理磁盘支持的存储池空间量。 从池创建 LUN 不会更改此数字。

ullTotalManagedSpace = 1 TB。 这是可从此池创建的 LUN 或存储池的最大大小。 只有 1 TB 可用,因为池类型是只有 2 个 plex 的镜像。

注意 如果池类型为 RAID5, 则 ullTotalManagedSpace 将 (N-1) /N * ullTotalConsumedSpace,其中 N 是列数。 例如,对于 5 个驱动器和 5 列, ullTotalManagedSpace 将 (5-1) /5 * ullTotalConsumedSpace 或 1.6 TB。

 

ullRemainingFreeSpace = 800 GB (1 TB – 200 GB) ,因为已将 200GB 分配给 LUN。

(ullTotalManagedSpace - ullRemainingFreeSpace) 是分配给 LUN 和从此池创建的池的托管空间量。 在此示例中, ullTotalManagedSpace - ullRemainingFreeSpace = 200 GB。

示例 2

假设有 2 个驱动器,每个驱动器 1 TB。 进一步假设你执行以下操作:
  1. 将存储池创建为镜像池。
  2. 创建大小为 10 TB 的精简预配 LUN。

ullProvisionedSpace = 10 TB。 这仅适用于精简预配的池。 这是为池预配的总空间。 池消耗的总空间小于或等于为池预配的总空间。

ullTotalConsumedSpace = 2 TB。

ullTotalManagedSpace = 1 TB。

ullRemainingFreeSpace = 1 TB 减去当前支持 LUN 的托管空间量。

注意 虽然 LUN 的大小为 10 TB,但支持 LUN 的托管空间可能为 10 GB,在这种情况下,镜像 LUN 将有 20 GB 的消耗空间。

 

要求

要求
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
标头 vds.h

另请参阅

IVdsStoragePool::GetProperties