Condividi tramite


Metodo CreateVirtualDisk della classe MSFT_StoragePool

Crea un disco virtuale usando le risorse del pool di archiviazione.

Sintassi

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
);

Parametri

FriendlyName [in]

Nome descrittivo del disco virtuale.

I nomi descrittivi devono essere descrittivi, ma non devono essere univoci. Si noti che alcuni pool di archiviazione non consentono di impostare un nome descrittivo durante la creazione del disco virtuale. Se un pool di archiviazione non supporta questo problema, la creazione del disco virtuale deve comunque avere esito positivo, ma potrebbe essere assegnato un nome diverso al disco virtuale.

Questo parametro è obbligatorio e non può essere NULL.

Dimensioni [in]

Indica le dimensioni desiderate, in byte, del disco virtuale. Si noti che alcuni sottosistemi di archiviazione arrotonderanno le dimensioni fino a un multiplo delle dimensioni dell'unità di allocazione. Nell'output questo parametro indica le dimensioni effettive del disco virtuale creato. Questo parametro non può essere utilizzato se UseMaximumSize è impostato su TRUE.

UseMaximumSize [in]

Se TRUE, questo parametro indica all'array di archiviazione di creare il disco virtuale più grande possibile in base alle risorse disponibili di questo pool di archiviazione. Questo parametro non può essere utilizzato se è impostato il parametro Size .

ProvisioningType [in]

Specifica il tipo di provisioning per il disco virtuale.

Valore Significato
Sconosciuto 0 Il tipo di provisioning è sconosciuto. Ciò potrebbe significare che queste informazioni non sono disponibili o che il sottosistema di archiviazione usa un metodo proprietario di allocazione.
Sottile 1 Lo spazio di archiviazione per il disco virtuale viene allocato su richiesta.
Correzione 2 L'archiviazione per il disco virtuale viene allocata al momento della creazione del disco.

ResiliencySettingName [in]

Impostazione di resilienza desiderata da usare come modello per questo disco virtuale. Il valore di questo parametro deve corrispondere alla proprietà Name dell'oggetto MSFT_ResiliencySetting particolare. È possibile usare solo le impostazioni di resilienza associate a questo pool di archiviazione.

Utilizzo [in]

Specifica l'utilizzo previsto per il disco virtuale.

È possibile specificare una descrizione predefinita o una descrizione personalizzata. Per specificare una descrizione predefinita, usare un valore diverso da Altro.

Per specificare una descrizione personalizzata, utilizzare Other e specificare un valore non NULL per la proprietà OtherUsageDescription .

Altro (1)

Senza restrizioni (2)

Riservato per ComputerSystem (server a blocchi) (3)

Riservato da Replication Services (4)

Riservato da Servizi di migrazione (5)

Origine replica locale (6)

Origine replica remota (7)

Destinazione replica locale (8)

Destinazione replica remota (9)

Origine o destinazione della replica locale (10)

Origine o destinazione di replica remota (11)

Destinazione replica differenziale (12)

Componente elemento (13)

Riservato come collaboratore pool (14)

Membro del volume composito (15)

Membro Composite VirtualDisk (16)

Riservato per la sparing (17)

OtherUsageDescription [in]

Utilizzo specifico del fornitore per il nuovo disco virtuale. Questo parametro può essere specificato solo se la proprietà Usage è impostata su Other.

NumberOfDataCopies [in]

Specifica il numero di copie dei dati complete da gestire per il disco virtuale.

Se specificato, questo valore eseguirà l'override dell'oggetto NumberOfDataCopiesDefault ereditato dall'impostazione di resilienza specificata da ResiliencySettingName.

PhysicalDiskRedundancy [in]

Specifica il numero di errori del disco fisico che il disco virtuale deve essere in grado di resistere prima che si verifichi una perdita di dati. Se specificato, questo valore eseguirà l'override di PhysicalDiskRedundancyDefault che sarebbe stato ereditato dall'impostazione di resilienza specificata da ResiliencySettingName.

NumberOfColumns [in]

Specifica il numero di dischi fisici sottostanti in cui è necessario eseguire lo striping dei dati. Se specificato, questo valore eseguirà l'override dell'oggetto NumberOfColumnsDefault ereditato dall'impostazione di resilienza specificata da ResiliencySettingName.

AutoNumberOfColumns [in]

Se TRUE, questo campo indica al provider di archiviazione (o al sottosistema) di scegliere automaticamente il numero di colonne migliore per il disco virtuale. Se questo campo è TRUE, il parametro NumberOfColumns deve essere NULL.

Interleave [in]

Specifica il numero di byte che devono essere per una strip nelle impostazioni di resilienza comuni basate sullo striping. Lo strip è definito come la dimensione della parte di una striscia che si trova su un disco fisico. Di conseguenza , Interleave * NumberOfColumns restituirà le dimensioni di una striscia di dati utente.

Se questo parametro viene specificato, questo valore eseguirà l'override di InterleaveDefault che sarebbe stato ereditato dall'impostazione di resilienza specificata da ResiliencySettingName.

IsEnclosureAware [in]

Determina il comportamento di allocazione per questo disco virtuale. I dischi virtuali con riconoscimento dello chassis selezioneranno in modo intelligente i dischi fisici da usare per la ridondanza. Se TRUE, il disco virtuale tenterà di usare dischi fisici di enclosure diversi per bilanciare la tolleranza di errore tra due o più enclosure fisici.

PhysicalDisksToUse [in]

Se questo parametro contiene un elenco di dischi fisici, l'allocazione dell'archiviazione del disco virtuale è limitata ai dischi fisici nell'elenco. Questi dischi fisici devono essere già aggiunti a questo pool di archiviazione.

StorageTiers [in]

Livelli di archiviazione su questo disco virtuale. Ogni elemento della matrice è un oggetto MSFT_StorageTier .

StorageTierSizes [in]

Dimensioni dei livelli di archiviazione.

WriteCacheSize [in]

Dimensioni della cache di scrittura sul disco virtuale.

AutoWriteCacheSize [in]

TRUE se il provider deve raccogliere le dimensioni della cache di scrittura automatica; in caso contrario, FALSE.

RunAsJob [in]

Se TRUE, questo metodo usa il parametro CreatedStorageJob quando la richiesta richiede molto tempo al servizio. Se è stato creato un processo di archiviazione per tenere traccia dell'operazione, questo metodo restituirà i parametri del metodo checked - Job Started.

Nota

Anche se RunAsJob è TRUE, questo metodo può comunque restituire un risultato se è stato completato in tempo sufficiente.

Se FALSE o NULL, questo metodo seguirà il comportamento asincrono WMI predefinito, come determinato dal metodo del client per la chiamata. In altre parole, è sincrono a meno che non sia richiesto altrimenti.

CreateVirtualDisk [out]

Riceve un oggetto MSFT_VirtualDisk se questo metodo viene eseguito normalmente (con RunAsJob impostato su FALSE) e il disco virtuale viene creato correttamente.

CreateStorageJob [out]

Se RunAsJob è impostato su TRUE e questo metodo richiede molto tempo per l'esecuzione, questo parametro riceve un riferimento all'oggetto processo di archiviazione usato per tenere traccia dell'operazione a esecuzione prolungata.

ExtendedStatus [out]

Stringa che contiene un oggetto MSFT_StorageExtendedStatus incorporato.

Questo parametro consente al provider di archiviazione di restituire informazioni di errore estese (specifiche dell'implementazione).

Valore restituito

Successo (0)

Non supportato (1)

Errore non specificato (2)

Timeout (3)

Errore (4)

Parametro non valido (5)

Parametri del metodo controllati - Processo avviato (4096)

Dimensioni non supportate (4097)

Spazio libero non sufficiente (40000)

Accesso negato (40001)

Non sono disponibili risorse sufficienti per completare l'operazione. (40002)

È necessario specificare una dimensione usando il parametro Size o UseMaximumSize. È possibile specificare solo uno di questi parametri alla volta. (40005)

Impossibile connettersi al provider di archiviazione. (46000)

Il provider di archiviazione non può connettersi al sottosistema di archiviazione. (46001)

Impossibile abilitare il clustering di failover per questo oggetto di archiviazione. (46008)

Questo sottosistema non supporta la creazione di dischi virtuali con il tipo di provisioning specificato. (47001)

Questa operazione non è supportata nei pool di archiviazione primordiali. (48000)

Il pool di archiviazione è riservato solo per l'utilizzo speciale. (48001)

L'impostazione di resilienza specificata non è supportata da questo pool di archiviazione. (48002)

Non sono presenti dischi fisici sufficienti nel pool di archiviazione per creare la configurazione del disco virtuale specificata. (48004)

Il pool di archiviazione non è riuscito a completare l'operazione perché lo stato operativo o integrità non lo consente. (48006)

Il pool di archiviazione non è riuscito a completare l'operazione perché la relativa configurazione è di sola lettura. (48007)

È necessario specificare le informazioni sulle dimensioni (il parametro Size o UseMaximumSize) o le informazioni sul livello (i parametri StorageTiers e StorageTierSizes), ma non sia le informazioni sulle dimensioni che sulle informazioni sul livello. (48010)

Nessuna unità di allocazione automatica trovata nel pool di archiviazione. (48011)

Nessuna impostazione di resilienza con tale nome. (49000)

Il valore per NoSinglePointOfFailure non è supportato. (49001)

Il valore per PhysicalDiskRedundancy non è compreso nell'intervallo di valori supportato. (49002)

Il valore per NumberOfDataCopies non è compreso nell'intervallo di valori supportato. (49003)

Il valore per ParityLayout non è compreso nell'intervallo di valori supportato. (49004)

Il valore per Interleave non è compreso nell'intervallo di valori supportato. (49005)

Il valore per NumberOfColumns non è compreso nell'intervallo di valori supportato. (49006)

Il valore per WriteCacheSize non è compreso nell'intervallo di valori supportato. (50005)

Uno dei dischi fisici specificati non è supportato da questa operazione. (51000)

Non sono stati specificati dischi fisici sufficienti per completare correttamente l'operazione. (51001)

Commenti

Questo metodo è disponibile solo quando la proprietà SupportsVirtualDiskCreation nel sottosistema di archiviazione è impostata su TRUE. Se è impostato su FALSE, questo metodo avrà esito negativo con MI_RESULT_NOT_SUPPORTED.

Questo metodo non è supportato per i pool primordiali.

Questo metodo richiede solo l'opzione FriendlyName e Size da specificare. È possibile specificare le dimensioni in modo esplicito tramite il parametro Size o in modo da usare lo spazio massimo disponibile dal pool di archiviazione usando il parametro UseMaximumSize . Sia FriendlyName che Size vengono considerati obiettivi anziché requisiti rigidi. Ad esempio, non tutte le matrici basate su SMI possono supportare nomi descrittivi personalizzati, tuttavia la creazione del disco virtuale avrà esito positivo. Se le dimensioni specificate non vengono ottenute, le dimensioni effettive usate per il disco virtuale verranno restituite nella struttura dei parametri out.

L'utilizzo di questo disco virtuale può essere impostato usando i parametri Utilizzo e OtherUsageDescription . Se viene specificato un valore per OtherUsageDescription , l'utilizzo deve essere impostato su 1 - 'Other', in caso contrario verrà restituito un errore.

Per impostazione predefinita, l'impostazione di resilienza applicata a questo disco virtuale sarà qualsiasi elemento specificato nella proprietà ResiliencySettingNameDefault del pool di archiviazione. È possibile eseguire l'override usando il parametro ResiliencySettingName . Si noti che il nome specificato qui deve corrispondere a un'impostazione di resilienza associata a questo pool di archiviazione. Qualsiasi altro valore genera un errore.

È possibile eseguire l'override delle singole impostazioni dell'impostazione di resilienza usando i parametri NumberOfDataCopies, PhysicalDiskRedundancy, NumberOfColumns e Interleave . Se questi parametri non vengono usati, verranno usate le impostazioni predefinite dell'impostazione di resilienza. Queste sostituzioni non restituiscono nuovamente l'istanza dell'impostazione di resilienza particolare; tuttavia alcuni provider di archiviazione possono scegliere di creare una nuova istanza di impostazione di resilienza per acquisire questa nuova configurazione. Se uno degli obiettivi specificati nei parametri di override non è compreso nell'intervallo o non è supportato dal pool di archiviazione, verrà restituito un errore.

I criteri di provisioning per il disco virtuale sono determinati in modo analogo all'impostazione di resilienza. Se non viene specificata alcuna preferenza nel parametro ProvisioningType , il criterio viene determinato dalla proprietà ProvisioningTypeDefault del pool di archiviazione. Se viene specificato il parametro ProvisioningType , il valore predefinito viene ignorato e verrà usato il valore specificato.

L'allocazione può essere ulteriormente controllata dal parametro PhysicalDisksToUse . Potrebbero esserci alcuni scenari in cui un amministratore di archiviazione vuole scegliere manualmente quali dischi fisici devono eseguire il backup del disco virtuale. Quando questo parametro viene specificato, i dati per il disco virtuale verranno archiviati solo nei dischi fisici di questa matrice e non in altri.

Requisiti

Requisito Valore
Client minimo supportato Windows 8.1 [solo app desktop]
Server minimo supportato Windows Server 2012 R2 [solo app desktop]
Spazio dei nomi Root\Microsoft\Windows\Storage
Intestazione Vdssys.h
MOF Storagewmi.mof

Vedi anche

MSFT_StoragePool