MSFT_StorageSubSystem 类的 CreateStoragePool 方法
从公共原始池中包含的可用物理磁盘创建存储池。
如果物理磁盘MSFT_PhysicalDisk对象的 CanPool 属性为 TRUE,则可用于创建存储池。
仅当存储子系统MSFT_StorageSubSystem对象的 SupportsStoragePoolCreation 属性为 TRUE 时,才能创建存储池。
语法
UInt32 CreateStoragePool(
[in] String FriendlyName,
[in] UInt16 Usage,
[in] String OtherUsageDescription,
[in] String PhysicalDisks[],
[in] String ResiliencySettingNameDefault,
[in] UInt16 ProvisioningTypeDefault,
[in] UInt64 LogicalSectorSizeDefault,
[in] Boolean EnclosureAwareDefault,
[in] UInt64 WriteCacheSizeDefault,
[in] Boolean AutoWriteCacheSize,
[in] Boolean RunAsJob,
[out] String CreatedStoragePool,
[out] MSFT_StorageJob REF CreatedStorageJob,
[out] String ExtendedStatus
);
参数
FriendlyName [in]
指定新存储池的友好名称。
友好名称应具有描述性,但不需要唯一。 请注意,某些存储子系统不允许在创建池期间设置友好名称。
如果子系统不支持此功能,则存储池创建仍应成功。 但是,该池可能分配了不同的名称。
此参数是必需的,不能为 NULL。
用法 [in]
指定存储池的预期用途。
可以指定预定义的说明或自定义说明。 若要指定预定义的说明,请使用 其他以外的值。
若要指定自定义说明,请使用 Other 并为 OtherUsageDescription 参数指定非 NULL 值。
其他 (1)
无限制 (2)
保留给 ComputerSystem (块服务器) (3)
保留为增量副本容器 (4)
为迁移服务保留 (5)
保留给本地复制服务 (6)
为远程复制服务保留 (7)
保留用于 8) (
OtherUsageDescription [in]
允许用户为新的 MSFT_StoragePool 对象设置自定义使用类型。 仅当 Usage 参数设置为 Other 时,才能指定此参数。
PhysicalDisks [in]
一个字符串数组,其中每个字符串都包含 MSFT_PhysicalDisk 类的嵌入实例。
此参数用于指定 MSFT_PhysicalDisk 对象的数组,这些对象将用作新创建的存储池的后备数据存储。 物理磁盘必须来自要在其中创建此池的子系统中的原始池。 所有物理磁盘必须来自同一原始池。
此参数是必需的,不能为 NULL。
ResiliencySettingNameDefault [in]
在此存储池中创建新虚拟磁盘时,默认使用的所需复原设置。 如果子系统的 SupportsMultipleResiliencySettingsPerStoragePool 属性设置为 FALSE,则此参数还充当此存储池应继承复原设置的存储管理提供程序的提示。 如果未给出任何值,则存储管理提供程序负责选择最合适的复原设置。
ProvisioningTypeDefault [in]
在此存储池上创建新虚拟磁盘时,默认使用的所需预配类型。 如果此参数为零,则默认预配类型继承自原始池。
瘦 (1)
修复了 (2)
LogicalSectorSizeDefault [in]
默认逻辑扇区大小(以字节为单位)。 当存储池可能包含模拟的 512 字节和 4K 字节本机或 512 字节本机物理磁盘的混合时,这非常有用。
EnclosureAwareDefault [in]
在机箱感知存储池中创建的虚拟磁盘的默认分配策略。 例如,机箱感知子系统可以平衡多个物理机箱上的虚拟磁盘的每个数据副本,以便每个机箱都包含该虚拟磁盘的完整数据副本。
WriteCacheSizeDefault [in]
用于创建虚拟磁盘的写入缓存的默认大小。
AutoWriteCacheSize [in]
如果 为 TRUE,则提供程序应选取自动写入缓存大小。
RunAsJob [in]
如果 为 TRUE,则此方法在请求需要很长时间才能提供服务时使用 CreatedStorageJob 参数。 如果已创建存储作业来跟踪操作,则此方法将返回 “方法参数已检查 - 作业已启动”。
注意
即使 RunAsJob 为 TRUE,此方法在足够时间内完成时仍可返回结果。
如果 为 FALSE 或 NULL,此方法将遵循由客户端的调用方法确定的默认 WMI 异步行为。 换句话说,除非另有请求,否则它是同步的。
CreatedStoragePool [out]
如果成功创建存储池,此参数将接收包含嵌入 MSFT_StoragePool 对象的字符串。
CreatedStorageJob [out]
如果 RunAsJob 设置为 TRUE ,并且此方法需要很长时间才能执行,则此参数将接收对用于跟踪长时间运行的操作的存储作业对象的引用。
ExtendedStatus [out]
包含嵌入 MSFT_StorageExtendedStatus 对象的字符串。
此参数允许存储提供程序返回特定于实现的扩展 () 错误信息。
返回值
成功 (0)
不支持 (1)
未指定的错误 (2)
超时 (3)
失败 (4)
参数 (5) 无效
找不到对象 (8)
已检查方法参数 - 作业 启动 (4096)
访问被拒绝 (40001)
没有足够的资源来完成操作。 (40002)
缓存过期 (40003)
(40004) 发生意外的 I/O 错误
由于严重的设备硬件错误,请求失败。 (40007)
无法连接到存储提供程序。 (46000)
存储提供程序无法连接到存储子系统。 (46001)
无法为此存储对象启用故障转移聚类分析。 (46008)
不存在具有该名称的复原设置。 (49000)
WriteCacheSize 的值超出了支持的值范围。 (50005)
此操作不支持指定的某个物理磁盘。 (51000)
未指定足够的物理磁盘来成功完成操作。 (51001)
指定的其中一个物理磁盘已在使用中。 (51002)
指定的某个物理磁盘使用的扇区大小不受此存储池支持。 (51003)
一个或多个物理磁盘未连接到要创建池的节点。 (51005)
注解
不支持存储池的子系统应实现此方法,如下所示:
- MSFT_StorageSubSystem 对象的 SupportsAutomaticStoragePoolSelection 属性应设置为 TRUE。
- MSFT_StorageSubSystem 对象的SupportsStoragePoolCreation、SupportsStoragePoolModification 和 SupportsStoragePoolDeletion 属性应设置为 FALSE。
- 应通过调用 MSFT_StorageSubSystem.CreateVirtualDisk 在子系统中创建MSFT_VirtualDisk对象。 在这种情况下,必须支持此方法。
- 不需要支持 MSFT_StoragePool 和 MSFT_ResiliencySetting 类。
- 不需要支持 MSFT_StoragePool.CreateVirtualDisk 方法。
支持存储池但不允许选择存储池 (管理员选择在其中创建虚拟磁盘的池) 、创建、修改或删除的子系统应实现此方法,如下所示:
- MSFT_StorageSubSystem 对象的 SupportsAutomaticStoragePoolSelection 属性应设置为 TRUE。
- MSFT_StorageSubSystem 对象的SupportsStoragePoolCreation、SupportsStoragePoolModification 和 SupportsStoragePoolDeletion 属性应设置为 FALSE。
- 应通过调用 MSFT_StorageSubSystem.CreateVirtualDisk 在子系统中创建MSFT_VirtualDisk对象。 在这种情况下,必须支持此方法。
- SMP 需要自动选择在其中创建 MSFT_VirtualDisk 对象的存储池。
- 不需要支持 MSFT_StoragePool 和 MSFT_ResiliencySetting 类。
- 不需要支持 MSFT_StoragePool.CreateVirtualDisk 方法。
支持存储池和存储池选择但不支持创建、修改或删除存储池的子系统应实现此方法,如下所示:
- 仅当实现了 MSFT_StoragePool.CreateVirtualDisk 方法时,才应将 MSFT_StorageSubSystem 对象的 SupportsAutomaticStoragePoolSelection 属性设置为 TRUE。
- MSFT_StorageSubSystem 对象的SupportsStoragePoolCreation、SupportsStoragePoolModification 和 SupportsStoragePoolDeletion 属性应设置为 FALSE。
- 应通过调用 MSFT_StorageSubSystem.CreateVirtualDisk 在子系统中创建MSFT_VirtualDisk对象。 在这种情况下,必须支持此方法。
- 用户需要自动选择在其中创建 MSFT_VirtualDisk 对象的存储池。
- 需要支持 MSFT_StoragePool 和 MSFT_ResiliencySetting 类。 需要至少支持一个具体池和一种类型的复原设置。
- 对 MSFT_StoragePool.CreateVirtualDisk 方法的支持是可选的。
支持存储池和存储池选择以及支持存储池创建、修改或删除的子系统应实现此方法,如下所示:
- 仅当实现了 MSFT_StoragePool.CreateVirtualDisk 方法时,才应将 MSFT_StorageSubSystem 对象的 SupportsAutomaticStoragePoolSelection 属性设置为 TRUE。
- MSFT_StorageSubSystem 对象的SupportsStoragePoolCreation、SupportsStoragePoolModification 和 SupportsStoragePoolDeletion 属性应设置为 TRUE。
- 应通过调用 MSFT_StorageSubSystem.CreateVirtualDisk 在子系统中创建MSFT_VirtualDisk对象。 在这种情况下,必须支持此方法。
- 用户需要自动选择在其中创建 MSFT_VirtualDisk 对象的存储池。
- 需要支持 MSFT_StoragePool 和 MSFT_ResiliencySetting 类。 需要至少支持一个具体池和一种类型的复原设置。
- 对 MSFT_StoragePool.CreateVirtualDisk 方法的支持是可选的。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2012 [仅限桌面应用] |
命名空间 | Root\Microsoft\Windows\Storage |
MOF | Storagewmi.mof |