MSFT_StoragePool 類別的 CreateVirtualDisk 方法
使用存放集區的資源建立虛擬磁碟。
語法
UInt32 CreateVirtualDisk(
[in] String FriendlyName,
[in] UInt64 Size,
[in] Boolean UseMaximumSize,
[in] UInt16 ProvisioningType,
[in] String ResiliencySettingName,
[in] UInt16 Usage,
[in] String OtherUsageDescription,
[in] UInt16 NumberOfDataCopies,
[in] UInt16 PhysicalDiskRedundancy,
[in] UInt16 NumberOfColumns,
[in] Boolean AutoNumberOfColumns,
[in] UInt64 Interleave,
[in] Boolean IsEnclosureAware,
[in] String PhysicalDisksToUse[],
[in] String StorageTiers[],
[in] UInt64 StorageTierSizes[],
[in] UInt64 WriteCacheSize,
[in] Boolean AutoWriteCacheSize,
[in] Boolean RunAsJob,
[out] String CreatedVirtualDisk,
[out] MSFT_StorageJob REF CreatedStorageJob,
[out] String ExtendedStatus
);
參數
FriendlyName [in]
虛擬磁碟的易記名稱。
易記名稱必須是描述性名稱,但不需要是唯一的。 請注意,某些存放集區不允許在建立虛擬磁碟期間設定易記名稱。 如果存放集區不支援此功能,則虛擬磁碟建立仍應成功,不過虛擬磁碟可能指派不同的名稱。
這個參數是必要的,而且不能是 NULL。
大小 [in]
指出虛擬磁碟所需的大小,以位元組為單位。 請注意,某些記憶體子系統會將大小向上或向下四捨五入到其配置單位大小的倍數。 在輸出上,此參數會指出已建立之虛擬磁碟的實際大小。 如果 UseMaximumSize 設定為 TRUE,則無法使用此參數。
UseMaximumSize [in]
如果 為 TRUE,此參數會指示記憶體數位根據此存放集區的可用資源,建立最大的可能虛擬磁碟。 如果已設定 Size 參數,則無法使用此參數。
ProvisioningType [in]
指定虛擬磁碟的布建類型。
值 | 意義 |
---|---|
未知 的 0 | 布建類型未知。 這可能表示這項資訊無法使用,或記憶體子系統使用專屬的配置方法。 |
細 1 | 虛擬磁碟的記憶體會視需要配置。 |
修正 2 | 建立磁碟時會配置虛擬磁碟的記憶體。 |
ResiliencySettingName [in]
作為此虛擬磁碟範本所需的復原設定。 此參數的值應該對應至特定 MSFT_ResiliencySetting 物件的 Name 屬性。 只能使用此存放集區相關聯的復原設定。
使用量 [in]
指定虛擬磁碟的預定用法。
您可以指定預先定義的描述或自訂描述。 若要指定預先定義的描述, 請使用 Other 以外的值。
若要指定自定義描述,請使用 Other 並指定 OtherUsageDescription 屬性的非 NULL 值。
其他 (1)
不受限制 (2)
保留給 ComputerSystem (區塊伺服器) ( 3)
復寫服務 (4)
移轉服務 ( 5)
本機復本來源 (6)
遠端復本來源 (7)
本機複本目標 (8)
遠端複本目標 (9)
本機復本來源或目標 (10)
遠端復本來源或目標 (11)
差異複本目標 (12)
元素元件 (13)
保留為集區參與者 (14)
複合磁碟區成員 (15)
複合 VirtualDisk 成員 (16)
保留給疏 (17)
OtherUsageDescription [in]
新虛擬磁碟的廠商特定使用量。 只有當 Usage 屬性設定為 Other 時,才能指定此參數。
NumberOfDataCopies [in]
指定要維護虛擬磁碟的完整數據復本數目。
如果指定,這個值將會覆寫 NumberOfDataCopiesDefault, 其繼承自 ResiliencySettingName 所指定的復原設定。
PhysicalDiskRedundancy [in]
指定虛擬磁碟在發生數據遺失之前應該能夠承受多少個實體磁碟失敗。 如果指定,這個值將會覆寫 PhysicalDiskRedundancyDefault, 其繼承自 ResiliencySettingName 所指定的復原設定。
NumberOfColumns [in]
指定應分割數據的基礎實體磁碟數目。 如果指定,這個值將會覆寫 NumberOfColumnsDefault, 其繼承自 ResiliencySettingName 所指定的復原設定。
AutoNumberOfColumns [in]
如果 為 TRUE,此欄位會指示記憶體提供者 (或子系統) 自動選擇它決定為虛擬磁碟的最佳數據行數目。 如果此欄位為 TRUE,NumberOfColumns 參數必須是 NULL。
交錯 [in]
指定在一般等量型復原設定中,應該針對等量分割的位元元組數目。 等量定義為位於一個實體磁碟上的等量部分大小。 因此 Interleave * NumberOfColumns 會產生一個用戶數據等量的大小。
如果指定此參數,這個值將會覆寫 InterleaveDefault, 其繼承自 ResiliencySettingName 所指定的復原設定。
IsEnclosureAware [in]
決定此虛擬磁碟的配置行為。 機箱感知虛擬磁碟會以智慧方式挑選要用於其備援的實體磁碟。 如果 為 TRUE,虛擬磁碟會嘗試使用不同的機箱中的實體磁碟,以平衡兩個或多個實體機箱之間的容錯。
PhysicalDisksToUse [in]
如果此參數包含實體磁碟的清單,則此虛擬磁碟記憶體的配置僅限於清單中的實體磁碟。 這些實體磁碟必須已新增至此存放集區。
StorageTiers [in]
此虛擬磁碟上的儲存層。 數位的每個元素都是 MSFT_StorageTier 物件。
StorageTierSizes [in]
儲存層的大小。
WriteCacheSize [in]
虛擬磁碟上的寫入快取大小。
AutoWriteCacheSize [in]
如果提供者應該挑選自動寫入快取大小,則為TRUE;否則為 FALSE。
RunAsJob [in]
如果 為 TRUE,這個方法會在要求花費很長的時間進行服務時,使用 CreatedStorageJob 參數。 如果已建立記憶體作業以追蹤作業,這個方法會傳回 [已檢查的方法參數 - 作業已啟動]。
注意
即使 RunAsJob 為 TRUE,這個方法仍可在有足夠的時間完成時傳回結果。
如果 為 FALSE 或 NULL,這個方法會遵循用戶端的 叫用方法所決定的預設 WMI 異步行為。 換句話說,除非另有要求,否則它是同步的。
CreatedVirtualDisk [out]
如果此方法正常執行 (,且 RunAsJob 設定為 FALSE) 且已成功建立虛擬磁碟,則會接收MSFT_VirtualDisk物件。
CreatedStorageJob [out]
如果 RunAsJob 設定為 TRUE ,而且這個方法需要很長的時間才能執行,這個參數會接收用來追蹤長時間執行作業的記憶體作業對象的參考。
ExtendedStatus [out]
包含內嵌 MSFT_StorageExtendedStatus 物件的字串。
此參數可讓記憶體提供者傳回擴充 (實作特定) 錯誤資訊。
傳回值
成功 (0)
不支援 (1)
未指定的錯誤 (2)
逾 時 (3)
失敗 (4)
無效的參數 (5)
已檢查方法參數 - 作業啟動 (4096)
不支援大小 (4097)
沒有足夠的可用空間 (40000)
拒絕存取 (40001)
沒有足夠的資源來完成作業。 (40002)
您必須使用 Size 或 UseMaximumSize 參數來指定大小。 您一次只能指定其中一個參數。 (40005)
無法連線到記憶體提供者。 (46000)
記憶體提供者無法連線到記憶體子系統。 (46001)
無法為此記憶體物件啟用故障轉移叢集。 (46008)
此子系統不支援使用指定的布建類型建立虛擬磁碟。 (47001)
在原始存放集區上不支援此作業。 (48000)
儲存集區僅供特殊使用。 (48001)
這個存放集區不支援指定的復原設定。 (48002)
存放集區中沒有足夠的實體磁碟可建立指定的虛擬磁碟組態。 (48004)
儲存集區無法完成作業,因為其健全狀況或作業狀態不允許。 (48006)
儲存集區無法完成作業,因為其設定是唯讀的。 (48007)
您必須指定 Size 或 UseMaximumSize 參數 (size 或 UseMaximumSize 參數) 或階層資訊, (StorageTiers 和 StorageTierSizes 參數) ,但不能同時指定大小資訊和階層資訊。 (48010)
在存放集區中找不到自動配置磁碟驅動器。 (48011)
沒有具有該名稱的復原設定。 (49000)
不支援 NoSinglePointOfFailure 的值。 (49001)
PhysicalDiskRedundancy 的值超出支援的值範圍。 (49002)
NumberOfDataCopies 的值超出支援的值範圍。 (49003)
ParityLayout 的值超出支援的值範圍。 (49004)
Interleave 的值超出支援的值範圍。 (49005)
NumberOfColumns 的值超出支援的值範圍。 (49006)
WriteCacheSize 的值超出支援的值範圍。 (50005)
此作業不支援指定的其中一個實體磁碟。 (51000)
指定的實體磁碟不足,無法順利完成作業。 (51001)
備註
只有在儲存子系統上的 SupportsVirtualDiskCreation 屬性設定為 TRUE 時,才能使用這個方法。 如果設定為 FALSE,這個方法將會失敗 ,並MI_RESULT_NOT_SUPPORTED。
這個方法不支援原始集區。
這個方法只需要指定 FriendlyName 和 Size 。 您可以透過 Size 參數明確指定 大小 ,或使用 UseMaximumSize 參數,告知使用儲存集區的最大可用空間。 FriendlyName 和 Size 都會被視為目標,而不是硬性需求。 例如,並非所有以 SMI 為基礎的數位都可能支援自定義易記名稱,但虛擬磁碟建立仍會成功。 如果未達到指定的大小,則會在 out 參數結構中傳回用於虛擬磁碟的實際大小。
您可以使用 Usage 和 OtherUsageDescription 參數來設定此虛擬磁碟的使用方式。 如果指定 OtherUsageDescription 的值, 則 Usage 必須設定為 1 - 'Other',否則會傳回錯誤。
根據預設,套用至此虛擬磁碟的復原設定將會是存放集區 ResiliencySettingNameDefault 屬性中指定的任何專案。 這可以使用 ResiliencySettingName 參數覆寫。 請注意,這裡提供的名稱必須對應至與此存放集區相關聯的復原設定。 任何其他值都會造成錯誤。
您可以使用 NumberOfDataCopies、 PhysicalDiskRedundancy、 NumberOfColumns 和 Interleave 參數覆寫復原設定的個別設定。 如果未使用這些參數,將會使用復原設定中的預設值。 這些覆寫不會保存到特定的復原設定實例;不過,某些記憶體提供者可以選擇建立新的復原設定實例,以擷取這個新的組態。 如果覆寫參數中指定的任何目標超出範圍,或存放集區不支援,則會傳回錯誤。
虛擬磁碟的布建原則是以與復原設定類似的方式來決定。 如果未在 ProvisioningType 參數中指定任何喜好設定,原則會由存放集區的 ProvisioningTypeDefault 屬性決定。 如果指定 ProvisioningType 參數,則會忽略預設值,並改用指定的值。
配置可由 PhysicalDisksToUse 參數進一步控制。 在某些情況下,記憶體系統管理員想要手動選擇哪些實體磁碟應該備份虛擬磁碟。 指定此參數時,虛擬磁碟的數據只會儲存在此陣列中的實體磁碟上,而不是儲存在任何其他磁碟上。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8.1 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2012 R2 [僅限傳統型應用程式] |
命名空間 | Root\Microsoft\Windows\Storage |
標頭 | Vdssys.h |
MOF | Storagewmi.mof |