Freigeben über


CreateVirtualDisk-Methode der MSFT_StoragePool-Klasse

Erstellt einen virtuellen Datenträger unter Verwendung der Ressourcen des Speicherpools.

Syntax

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

Parameter

FriendlyName [in]

Der Anzeigename für den virtuellen Datenträger.

Anzeigenamen sollen beschreibend sein, müssen aber nicht eindeutig sein. Beachten Sie, dass einige Speicherpools das Festlegen eines Anzeigenamens während der Erstellung virtueller Datenträger nicht zulassen. Wenn dies von einem Speicherpool nicht unterstützt wird, sollte die Erstellung virtueller Datenträger weiterhin erfolgreich sein. Dem virtuellen Datenträger ist jedoch möglicherweise ein anderer Name zugewiesen.

Dieser Parameter ist erforderlich und darf nicht NULL sein.

Größe [in]

Gibt die gewünschte Größe des virtuellen Datenträgers in Bytes an. Beachten Sie, dass einige Speichersubsysteme die Größe auf ein Vielfaches ihrer Zuordnungseinheitengröße aufrunden. In der Ausgabe gibt dieser Parameter die tatsächliche Größe des virtuellen Datenträgers an, der erstellt wurde. Dieser Parameter kann nicht verwendet werden, wenn UseMaximumSize auf TRUE festgelegt ist.

UseMaximumSize [in]

Bei TRUE weist dieser Parameter das Speicherarray an, den größtmöglichen virtuellen Datenträger unter Berücksichtigung der verfügbaren Ressourcen dieses Speicherpools zu erstellen. Dieser Parameter kann nicht verwendet werden, wenn der Size-Parameter festgelegt ist.

ProvisioningType [in]

Gibt den Bereitstellungstyp für den virtuellen Datenträger an.

Wert Bedeutung
Unbekannt 0 Der Bereitstellungstyp ist unbekannt. Dies kann bedeuten, dass diese Informationen nicht verfügbar sind oder dass das Speichersubsystem eine proprietäre Zuordnungsmethode verwendet.
Dünn 1 Der Speicher für den virtuellen Datenträger wird bei Bedarf zugewiesen.
Behoben 2 Der Speicher für den virtuellen Datenträger wird beim Erstellen des Datenträgers zugewiesen.

ResiliencySettingName [in]

Die gewünschte Resilienzeinstellung, die als Vorlage für diesen virtuellen Datenträger verwendet werden soll. Der Wert dieses Parameters sollte der Name-Eigenschaft des jeweiligen MSFT_ResiliencySetting Objekts entsprechen. Es dürfen nur Resilienzeinstellungen verwendet werden, die diesem Speicherpool zugeordnet sind.

Verwendung [in]

Gibt die beabsichtigte Verwendung für den virtuellen Datenträger an.

Sie können eine vordefinierte Beschreibung oder eine benutzerdefinierte Beschreibung angeben. Um eine vordefinierte Beschreibung anzugeben, verwenden Sie einen anderen Wert als Other.

Um eine benutzerdefinierte Beschreibung anzugeben, verwenden Sie Other , und geben Sie einen Wert ohne NULL für die OtherUsageDescription-Eigenschaft an.

Sonstiges (1)

Uneingeschränkt (2)

Reserviert für ComputerSystem (der Blockserver) (3)

Reserviert durch Replikationsdienste (4)

Reserviert durch Migration Services (5)

Lokale Replikatquelle (6)

Remotereplikatquelle (7)

Lokales Replikatziel (8)

Remotereplikatziel (9)

Quelle oder Ziel des lokalen Replikats (10)

Remotereplikatquelle oder -ziel (11)

Delta-Replikatziel (12)

Elementkomponente (13)

Als Poolmitwirkender reserviert (14)

Zusammengesetzter Volumemember (15)

Zusammengesetztes VirtualDisk-Member (16)

Reserviert für Sparing (17)

OtherUsageDescription [in]

Eine anbieterspezifische Verwendung für den neuen virtuellen Datenträger. Dieser Parameter kann nur angegeben werden, wenn die Usage-Eigenschaft auf Other festgelegt ist.

NumberOfDataCopies [in]

Gibt die Anzahl der vollständigen Datenkopien an, die für den virtuellen Datenträger verwaltet werden sollen.

Wenn angegeben, überschreibt dieser Wert den NumberOfDataCopiesDefault , der von der Resilienzeinstellung geerbt worden wäre, die von ResiliencySettingName angegeben wurde.

PhysicalDiskRedundancy [in]

Gibt an, wie viele physische Datenträgerfehler der virtuelle Datenträger aushalten soll, bevor ein Datenverlust auftritt. Falls angegeben, überschreibt dieser Wert den PhysicalDiskRedundancyDefault , der von der Resilienzeinstellung geerbt worden wäre, die von ResiliencySettingName angegeben wurde.

NumberOfColumns [in]

Gibt die Anzahl der zugrunde liegenden physischen Datenträger an, für die Daten gestreift werden sollen. Wenn angegeben, überschreibt dieser Wert den NumberOfColumnsDefault , der von der Resilienzeinstellung geerbt worden wäre, die von ResiliencySettingName angegeben wurde.

AutoNumberOfColumns [in]

Wenn TRUE, weist dieses Feld den Speicheranbieter (oder das Subsystem) an, automatisch auszuwählen, was als die beste Anzahl von Spalten für den virtuellen Datenträger bestimmt wird. Wenn dieses Feld TRUE ist, muss der Parameter NumberOfColumnsNULL sein.

Interleave [in]

Gibt die Anzahl der Bytes an, die für einen Strip in den allgemeinen Einstellungen für stripbasierte Resilienz verwendet werden sollen. Der Strip ist definiert als die Größe des Teils eines Stripes, der sich auf einem physischen Datenträger befindet. Dadurch ergibt Interleave * NumberOfColumns die Größe eines Streifens von Benutzerdaten.

Wenn dieser Parameter angegeben wird, überschreibt dieser Wert den InterleaveDefault , der von der Resilienzeinstellung geerbt worden wäre, die von ResiliencySettingName angegeben wurde.

IsEnclosureAware [in]

Bestimmt das Zuordnungsverhalten für diesen virtuellen Datenträger. Gehäusefähige virtuelle Datenträger wählen die physischen Datenträger intelligent aus, die für ihre Redundanz verwendet werden sollen. Bei TRUE versucht der virtuelle Datenträger, physische Datenträger aus verschiedenen Gehäusen zu verwenden, um die Fehlertoleranz zwischen zwei oder mehr physischen Gehäusen auszugleichen.

PhysicalDisksToUse [in]

Wenn dieser Parameter eine Liste mit physischen Datenträgern enthält, ist die Zuordnung des Speichers dieses virtuellen Datenträgers auf die physischen Datenträger in der Liste beschränkt. Diese physischen Datenträger müssen diesem Speicherpool bereits hinzugefügt werden.

StorageTiers [in]

Speicherebenen auf diesem virtuellen Datenträger. Jedes Element des Arrays ist ein MSFT_StorageTier-Objekt .

StorageTierSizes [in]

Größen der Speicherebenen.

WriteCacheSize [in]

Größe des Schreibcaches auf dem virtuellen Datenträger.

AutoWriteCacheSize [in]

TRUE , wenn der Anbieter die Cachegröße für automatische Schreibvorgänge übernimmt; andernfalls FALSE.

RunAsJob [in]

Bei TRUE verwendet diese Methode den Parameter CreatedStorageJob , wenn die Anforderung lange dauert. Wenn ein Speicherauftrag zum Nachverfolgen des Vorgangs erstellt wurde, gibt diese Methode Methodenparameter Überprüft – Auftrag gestartet zurück.

Hinweis

Selbst wenn RunAsJobTRUE ist, kann diese Methode dennoch ein Ergebnis zurückgeben, wenn sie in ausreichender Zeit abgeschlossen wurde.

Bei FALSE oder NULL folgt diese Methode dem standardmäßigen asynchronen WMI-Verhalten, das von der -Methode des Clients für den Aufruf bestimmt wird. Anders ausgedrückt: Es ist synchron, sofern nicht anders angefordert.

CreatedVirtualDisk [out]

Empfängt ein MSFT_VirtualDisk -Objekt, wenn diese Methode normal ausgeführt wird (wobei RunAsJob auf FALSE festgelegt ist) und der virtuelle Datenträger erfolgreich erstellt wurde.

CreatedStorageJob [out]

Wenn RunAsJob auf TRUE festgelegt ist und die Ausführung dieser Methode sehr lange dauert, empfängt dieser Parameter einen Verweis auf das Speicherauftragsobjekt, das zum Nachverfolgen des zeitintensiven Vorgangs verwendet wird.

ExtendedStatus [out]

Eine Zeichenfolge, die ein eingebettetes MSFT_StorageExtendedStatus -Objekt enthält.

Dieser Parameter ermöglicht es dem Speicheranbieter, erweiterte (implementierungsspezifische) Fehlerinformationen zurückzugeben.

Rückgabewert

Erfolg (0)

Nicht unterstützt (1)

Nicht angegebener Fehler (2)

Timeout (3)

Fehler (4)

Ungültiger Parameter (5)

Methodenparameter überprüft – Auftrag gestartet (4096)

Größe nicht unterstützt (4097)

Nicht genügend freier Speicherplatz (40000)

Zugriff verweigert (40001)

Es sind nicht genügend Ressourcen vorhanden, um den Vorgang abzuschließen. (40002)

Sie müssen eine Größe angeben, indem Sie entweder den Parameter Size oder UseMaximumSize verwenden. Sie können jeweils nur einen dieser Parameter angeben. (40005)

Es kann keine Verbindung mit dem Speicheranbieter hergestellt werden. (46000)

Der Speicheranbieter kann keine Verbindung mit dem Speichersubsystem herstellen. (46001)

Failoverclustering konnte für dieses Speicherobjekt nicht aktiviert werden. (46008)

Dieses Subsystem unterstützt die Erstellung von virtuellen Datenträgern mit dem angegebenen Bereitstellungstyp nicht. (47001)

Dieser Vorgang wird für primordiale Speicherpools nicht unterstützt. (48000)

Der Speicherpool ist nur für spezielle Nutzungen reserviert. (48001)

Die angegebene Resilienzeinstellung wird von diesem Speicherpool nicht unterstützt. (48002)

Es gibt nicht genügend physische Datenträger im Speicherpool, um die angegebene Konfiguration des virtuellen Datenträgers zu erstellen. (48004)

Der Speicherpool konnte den Vorgang nicht abschließen, da seine Integrität oder betriebsbereite status dies nicht zulässt. (48006)

Der Speicherpool konnte den Vorgang nicht abschließen, da seine Konfiguration schreibgeschützt ist. (48007)

Sie müssen die Größeninformationen (entweder den Parameter Size oder UseMaximumSize) oder die Ebeneninformationen (die Parameter StorageTiers und StorageTierSizes) angeben, aber nicht sowohl Größeninformationen als auch Ebeneninformationen. (48010)

Im Speicherpool wurden keine Laufwerke für die automatische Zuordnung gefunden. (48011)

Es ist keine Resilienzeinstellung mit diesem Namen vorhanden. (49000)

Der Wert für NoSinglePointOfFailure wird nicht unterstützt. (49001)

Der Wert für PhysicalDiskRedundancy liegt außerhalb des unterstützten Wertebereichs. (49002)

Der Wert für NumberOfDataCopies liegt außerhalb des unterstützten Wertebereichs. (49003)

Der Wert für ParityLayout liegt außerhalb des unterstützten Wertebereichs. (49004)

Der Wert für Interleave liegt außerhalb des unterstützten Wertebereichs. (49005)

Der Wert für NumberOfColumns liegt außerhalb des unterstützten Wertebereichs. (49006)

Der Wert für WriteCacheSize liegt außerhalb des unterstützten Wertebereichs. (50005)

Einer der angegebenen physischen Datenträger wird von diesem Vorgang nicht unterstützt. (51000)

Es wurden nicht genügend physische Datenträger angegeben, um den Vorgang erfolgreich abzuschließen. (51001)

Hinweise

Diese Methode ist nur verfügbar, wenn die SupportsVirtualDiskCreation-Eigenschaft im Speichersubsystem auf TRUE festgelegt ist. Wenn sie auf FALSE festgelegt ist, schlägt diese Methode mit MI_RESULT_NOT_SUPPORTED fehl.

Diese Methode wird für Urpools nicht unterstützt.

Für diese Methode müssen nur FriendlyName und Size angegeben werden. Größen können explizit über den Size-Parameter angegeben oder mit dem Parameter UseMaximumSize angewiesen werden, den maximal verfügbaren Speicherplatz aus dem Speicherpool zu verwenden. Sowohl FriendlyName als auch Size werden als Ziele und nicht als harte Anforderungen behandelt. Beispielsweise unterstützen möglicherweise nicht alle SMI-S-basierten Arrays benutzerdefinierte Anzeigenamen, die Erstellung virtueller Datenträger ist jedoch weiterhin erfolgreich. Wenn die angegebene Größe nicht erreicht wird, wird die tatsächliche Größe, die für den virtuellen Datenträger verwendet wird, in der Out-Parameterstruktur zurückgegeben.

Die Verwendung dieses virtuellen Datenträgers kann mithilfe der Parameter Usage und OtherUsageDescription festgelegt werden. Wenn ein Wert für OtherUsageDescription angegeben wird, muss Usage auf 1 – "Sonstige" festgelegt werden. Andernfalls wird ein Fehler zurückgegeben.

Standardmäßig entspricht die resilienzeinstellung, die auf diesen virtuellen Datenträger angewendet wird, was in der ResiliencySettingNameDefault-Eigenschaft des Speicherpools angegeben ist. Dies kann mithilfe des Parameters ResiliencySettingName überschrieben werden. Beachten Sie, dass der hier angegebene Name einer Resilienzeinstellung entsprechen muss, die diesem Speicherpool zugeordnet ist. Jeder andere Wert führt zu einem Fehler.

Einzelne Einstellungen der Resilienzeinstellung können mit den Parametern NumberOfDataCopies, PhysicalDiskRedundancy, NumberOfColumns und Interleave überschrieben werden. Wenn diese Parameter nicht verwendet werden, werden die Standardwerte der Resilienzeinstellung verwendet. Diese Außerkraftsetzungen werden nicht auf die bestimmte Resilienzeinstellung instance beibehalten. Einige Speicheranbieter können sich jedoch dafür entscheiden, eine neue Resilienzeinstellung instance zu erstellen, um diese neue Konfiguration zu erfassen. Wenn eines der in den Außerkraftsetzungsparametern angegebenen Ziele außerhalb des Bereichs liegt oder vom Speicherpool nicht unterstützt wird, wird ein Fehler zurückgegeben.

Die Bereitstellungsrichtlinie für den virtuellen Datenträger wird auf ähnliche Weise wie die Resilienzeinstellung festgelegt. Wenn im ProvisioningType-Parameter keine Einstellung angegeben ist, wird die Richtlinie durch die ProvisioningTypeDefault-Eigenschaft des Speicherpools bestimmt. Wenn der ProvisioningType-Parameter angegeben ist, wird der Standardwert ignoriert, und stattdessen wird der angegebene Wert verwendet.

Die Zuordnung kann durch den Parameter PhysicalDisksToUse weiter gesteuert werden. Es kann bestimmte Szenarien geben, in denen ein Speicheradministrator manuell auswählen möchte, welche physischen Datenträger den virtuellen Datenträger sichern sollen. Wenn dieser Parameter angegeben ist, werden die Daten für den virtuellen Datenträger nur auf den physischen Datenträgern in diesem Array und nicht auf anderen Datenträgern gespeichert.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8.1 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 R2 [nur Desktop-Apps]
Namespace Root\Microsoft\Windows\Storage
Header Vdssys.h
MOF Storagewmi.mof

Weitere Informationen

MSFT_StoragePool