Méthode CreateVirtualDisk de la classe MSFT_StoragePool
Crée un disque virtuel à l’aide des ressources du pool de stockage.
Syntaxe
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
);
Paramètres
FriendlyName [in]
Nom convivial du disque virtuel.
Les noms conviviaux sont censés être descriptifs, mais ils ne doivent pas nécessairement être uniques. Notez que certains pools de stockage n’autorisent pas la définition d’un nom convivial lors de la création du disque virtuel. Si un pool de stockage ne prend pas en charge cela, la création du disque virtuel doit toujours réussir. Toutefois, un autre nom peut être attribué au disque virtuel.
Ce paramètre est obligatoire et ne peut pas être NULL.
Taille [in]
Indique la taille souhaitée, en octets, du disque virtuel. Notez que certains sous-systèmes de stockage arrondiront la taille à un multiple de sa taille d’unité d’allocation. Sur la sortie, ce paramètre indique la taille réelle du disque virtuel qui a été créé. Ce paramètre ne peut pas être utilisé si UseMaximumSize a la valeur TRUE.
UseMaximumSize [in]
Si la valeur est TRUE, ce paramètre indique au tableau de stockage de créer le disque virtuel le plus grand possible en fonction des ressources disponibles de ce pool de stockage. Ce paramètre ne peut pas être utilisé si le paramètre Size est défini.
ProvisioningType [in]
Spécifie le type d’approvisionnement du disque virtuel.
Valeur | Signification |
---|---|
Inconnu 0 | Le type d’approvisionnement est inconnu. Cela peut signifier que ces informations ne sont pas disponibles ou que le sous-système de stockage utilise une méthode d’allocation propriétaire. |
Mince 1 | Le stockage du disque virtuel est alloué à la demande. |
Correction 2 | Le stockage du disque virtuel est alloué lors de la création du disque. |
ResiliencySettingName [in]
Paramètre de résilience souhaité à utiliser comme modèle pour ce disque virtuel. La valeur de ce paramètre doit correspondre à la propriété Name de l’objet MSFT_ResiliencySetting particulier. Seuls les paramètres de résilience associés à ce pool de stockage peuvent être utilisés.
Utilisation [in]
Spécifie l’utilisation prévue pour le disque virtuel.
Vous pouvez spécifier une description prédéfinie ou une description personnalisée. Pour spécifier une description prédéfinie, utilisez une valeur autre que Autre.
Pour spécifier une description personnalisée, utilisez Other et spécifiez une valeur non NULL pour la propriété OtherUsageDescription .
Autre (1)
Non restreint (2)
Réservé à ComputerSystem (le serveur de blocs) (3)
Réservé par les services de réplication (4)
Réservé par Migration Services (5)
Source de réplica local (6)
Source du réplica distant (7)
Cible de réplica local (8)
Cible de réplica distant (9)
Source ou cible du réplica local (10)
Source ou cible du réplica distant (11)
Cible de réplica Delta (12)
Composant d’élément (13)
Réservé en tant que contributeur de pool (14)
Membre de volume composite (15)
Membre VirtualDisk composite (16)
Réservé à l’épargne (17)
OtherUsageDescription [in]
Utilisation spécifique au fournisseur pour le nouveau disque virtuel. Ce paramètre ne peut être spécifié que si la propriété Usage est définie sur Autre.
NumberOfDataCopies [in]
Spécifie le nombre de copies de données complètes à gérer pour le disque virtuel.
Si elle est spécifiée, cette valeur remplace la valeur NumberOfDataCopiesDefault qui aurait été héritée du paramètre de résilience spécifié par ResiliencySettingName.
PhysicalDiskRedundancy [in]
Spécifie le nombre de défaillances de disque physique que le disque virtuel doit être en mesure de supporter avant la perte de données. Si elle est spécifiée, cette valeur remplace le PhysicalDiskRedundancyDefault qui aurait été hérité du paramètre de résilience spécifié par ResiliencySettingName.
NumberOfColumns [in]
Spécifie le nombre de disques physiques sous-jacents sur lesquels les données doivent être réparties par bandes. Si elle est spécifiée, cette valeur remplace la valeur NumberOfColumnsDefault qui aurait été héritée du paramètre de résilience spécifié par ResiliencySettingName.
AutoNumberOfColumns [in]
Si la valeur est TRUE, ce champ indique au fournisseur de stockage (ou sous-système) de choisir automatiquement ce qu’il détermine comme étant le meilleur nombre de colonnes pour le disque virtuel. Si ce champ a la valeur TRUE, le paramètre NumberOfColumns doit être NULL.
Entrelacements [in]
Spécifie le nombre d’octets qui doivent être attribués à une bande dans les paramètres de résilience basés sur l’entrelacement courants. La bande est définie comme la taille de la partie d’une bande qui se trouve sur un disque physique. Ainsi, l’entrelacement * NumberOfColumns génère la taille d’une bande de données utilisateur.
Si ce paramètre est spécifié, cette valeur remplace l’interleaveDefault qui aurait été hérité du paramètre de résilience spécifié par ResiliencySettingName.
IsEnclosureAware [in]
Détermine le comportement d’allocation pour ce disque virtuel. Les disques virtuels prenant en charge le boîtier sélectionnent intelligemment les disques physiques à utiliser pour leur redondance. Si la valeur est TRUE, le disque virtuel tente d’utiliser des disques physiques de différents boîtiers pour équilibrer la tolérance de panne entre deux boîtiers physiques ou plus.
PhysicalDisksToUse [in]
Si ce paramètre contient une liste de disques physiques, l’allocation du stockage de ce disque virtuel est limitée aux disques physiques de la liste. Ces disques physiques doivent déjà être ajoutés à ce pool de stockage.
StorageTiers [in]
Niveaux de stockage sur ce disque virtuel. Chaque élément du tableau est un objet MSFT_StorageTier .
StorageTierSizes [in]
Tailles des niveaux de stockage.
WriteCacheSize [in]
Taille du cache d’écriture sur le disque virtuel.
AutoWriteCacheSize [in]
TRUE si le fournisseur doit récupérer la taille du cache d’écriture automatique ; sinon, FALSE.
RunAsJob [in]
Si la valeur est TRUE, cette méthode utilise le paramètre CreatedStorageJob lorsque la maintenance de la requête prend beaucoup de temps. Si un travail de stockage a été créé pour suivre l’opération, cette méthode retourne paramètres de méthode vérifiés - Travail démarré.
Notes
Même si RunAsJob a la valeur TRUE, cette méthode peut toujours retourner un résultat si elle s’est terminée en suffisamment de temps.
Si la valeur est FALSE ou NULL, cette méthode suit le comportement asynchrone WMI par défaut, tel que déterminé par la méthode d’appel du client. En d’autres termes, il est synchrone, sauf demande contraire.
CreatedVirtualDisk [out]
Reçoit un objet MSFT_VirtualDisk si cette méthode est exécutée normalement (avec RunAsJob défini sur FALSE) et si le disque virtuel est correctement créé.
CreatedStorageJob [out]
Si RunAsJob a la valeur TRUE et que l’exécution de cette méthode prend beaucoup de temps, ce paramètre reçoit une référence à l’objet de travail de stockage utilisé pour suivre l’opération de longue durée.
ExtendedStatus [out]
Chaîne qui contient un objet MSFT_StorageExtendedStatus incorporé.
Ce paramètre permet au fournisseur de stockage de retourner des informations d’erreur étendues (spécifiques à l’implémentation).
Valeur retournée
Réussite (0)
Non pris en charge (1)
Erreur non spécifiée (2)
Délai d’expiration (3)
Échec (4)
Paramètre non valide (5)
Paramètres de méthode vérifiés - Travail démarré (4096)
Taille non prise en charge (4097)
Espace libre insuffisant (40000)
Accès refusé (40001)
Il n’y a pas assez de ressources pour terminer l’opération. (40002)
Vous devez spécifier une taille à l’aide du paramètre Size ou UseMaximumSize. Vous ne pouvez spécifier qu’un seul de ces paramètres à la fois. (40005)
Impossible de se connecter au fournisseur de stockage. (46000)
Le fournisseur de stockage ne peut pas se connecter au sous-système de stockage. (46001)
Le basculement clustering n’a pas pu être activé pour cet objet de stockage. (46008)
Ce sous-système ne prend pas en charge la création de disques virtuels avec le type d’approvisionnement spécifié. (47001)
Cette opération n’est pas prise en charge sur les pools de stockage primordials. (48000)
Le pool de stockage est réservé à une utilisation spéciale uniquement. (48001)
Le paramètre de résilience spécifié n’est pas pris en charge par ce pool de stockage. (48002)
Le pool de stockage ne contient pas suffisamment de disques physiques pour créer la configuration de disque virtuel spécifiée. (48004)
Le pool de stockage n’a pas pu terminer l’opération, car son intégrité ou son status opérationnelle ne le permet pas. (48006)
Le pool de stockage n’a pas pu terminer l’opération, car sa configuration est en lecture seule. (48007)
Vous devez spécifier les informations de taille (le paramètre Size ou UseMaximumSize) ou les informations de niveau (les paramètres StorageTiers et StorageTierSizes), mais pas les informations de taille et de niveau. (48010)
Aucun lecteur d’allocation automatique trouvé dans le pool de stockage. (48011)
Aucun paramètre de résilience portant ce nom n’existe. (49000)
La valeur de NoSinglePointOfFailure n’est pas prise en charge. (49001)
La valeur de PhysicalDiskRedundancy est en dehors de la plage de valeurs prise en charge. (49002)
La valeur de NumberOfDataCopies est en dehors de la plage de valeurs prise en charge. (49003)
La valeur de ParityLayout est en dehors de la plage de valeurs prise en charge. (49004)
La valeur d’Interleave est en dehors de la plage de valeurs prise en charge. (49005)
La valeur de NumberOfColumns est en dehors de la plage de valeurs prise en charge. (49006)
La valeur de WriteCacheSize est en dehors de la plage de valeurs prise en charge. (50005)
L’un des disques physiques spécifiés n’est pas pris en charge par cette opération. (51000)
Il n’y a pas suffisamment de disques physiques spécifiés pour terminer l’opération. (51001)
Remarques
Cette méthode n’est disponible que lorsque la propriété SupportsVirtualDiskCreation sur le sous-système de stockage est définie sur TRUE. Si elle est définie sur FALSE, cette méthode échoue avec MI_RESULT_NOT_SUPPORTED.
Cette méthode n’est pas prise en charge pour les pools primordials.
Cette méthode nécessite uniquement la spécification d’un nom convivial et d’une taille . Les tailles peuvent être spécifiées explicitement par le biais du paramètre Size ou demander d’utiliser l’espace maximal disponible à partir du pool de stockage à l’aide du paramètre UseMaximumSize . FriendlyName et Size sont traités comme des objectifs plutôt que comme des exigences matérielles. Par exemple, tous les tableaux basés sur SMI-S peuvent prendre en charge des noms personnalisés conviviaux, mais la création de disque virtuel réussit toujours. Si la taille spécifiée n’est pas atteinte, la taille réelle utilisée pour le disque virtuel est retournée dans la structure de paramètre out.
L’utilisation de ce disque virtuel peut être définie à l’aide des paramètres Usage et OtherUsageDescription . Si une valeur pour OtherUsageDescription est donnée, l’utilisation doit être définie sur 1 - « Autre », sinon une erreur est retournée.
Par défaut, le paramètre de résilience appliqué à ce disque virtuel correspond à ce qui est spécifié dans la propriété ResiliencySettingNameDefault du pool de stockage. Ce paramètre peut être remplacé à l’aide du paramètre ResiliencySettingName . Notez que le nom donné ici doit correspondre à un paramètre de résilience associé à ce pool de stockage. Toute autre valeur entraîne une erreur.
Les paramètres individuels du paramètre de résilience peuvent être remplacés à l’aide des paramètres NumberOfDataCopies, PhysicalDiskRedundancy, NumberOfColumns et Interleave . Si ces paramètres ne sont pas utilisés, les valeurs par défaut du paramètre de résilience sont utilisées. Ces remplacements ne sont pas conservés dans le paramètre de résilience particulier instance ; toutefois, certains fournisseurs de stockage peuvent choisir de créer un nouveau paramètre de résilience instance pour capturer cette nouvelle configuration. Si l’un des objectifs spécifiés dans les paramètres de remplacement est hors de portée ou n’est pas pris en charge par le pool de stockage, une erreur est retournée.
La stratégie d’approvisionnement du disque virtuel est déterminée de la même manière que le paramètre de résilience. Si aucune préférence n’est spécifiée dans le paramètre ProvisioningType , la stratégie est déterminée par la propriété ProvisioningTypeDefault du pool de stockage. Si le paramètre ProvisioningType est spécifié, la valeur par défaut est ignorée et la valeur spécifiée sera utilisée à la place.
L’allocation peut être davantage contrôlée par le paramètre PhysicalDisksToUse . Il peut y avoir certains scénarios où un administrateur de stockage souhaite choisir manuellement les disques physiques qui doivent sauvegarder le disque virtuel. Lorsque ce paramètre est spécifié, les données du disque virtuel ne sont stockées que sur les disques physiques de ce tableau et non sur d’autres.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 8.1 [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2012 R2 [applications de bureau uniquement] |
Espace de noms | Root\Microsoft\Windows\Storage |
En-tête | Vdssys.h |
MOF | Storagewmi.mof |