Compartir a través de


Método CreateVirtualDisk de la clase MSFT_StoragePool

Crea un disco virtual mediante los recursos del bloque de almacenamiento.

Sintaxis

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

Parámetros

FriendlyName [in]

Nombre descriptivo del disco virtual.

Se espera que los nombres descriptivos sean descriptivos, pero no son necesarios para ser únicos. Tenga en cuenta que algunos grupos de almacenamiento no permiten establecer un nombre descriptivo durante la creación del disco virtual. Si un grupo de almacenamiento no admite esto, la creación de discos virtuales debe seguir siendo correcta, pero el disco virtual puede tener asignado un nombre diferente.

Este parámetro es obligatorio y no puede ser NULL.

Tamaño [in]

Indica el tamaño deseado, en bytes, del disco virtual. Tenga en cuenta que algunos subsistemas de almacenamiento redondearán el tamaño hacia arriba o hacia abajo hasta un múltiplo de su tamaño de unidad de asignación. En la salida, este parámetro indica el tamaño real del disco virtual que se creó. Este parámetro no se puede usar si UseMaximumSize está establecido en TRUE.

UseMaximumSize [in]

Si es TRUE, este parámetro indica a la matriz de almacenamiento que cree el disco virtual más grande posible según los recursos disponibles de este grupo de almacenamiento. Este parámetro no se puede usar si se establece el parámetro Size .

ProvisioningType [in]

Especifica el tipo de aprovisionamiento para el disco virtual.

Valor Significado
Desconocido 0 El tipo de aprovisionamiento es desconocido. Esto podría significar que esta información no está disponible o que el subsistema de almacenamiento usa un método propietario de asignación.
Fino 1 El almacenamiento del disco virtual se asigna a petición.
Corregido 2 El almacenamiento del disco virtual se asigna cuando se crea el disco.

ResiliencySettingName [in]

La configuración de resistencia deseada que se va a usar como plantilla para este disco virtual. El valor de este parámetro debe corresponder a la propiedad Namedel objeto MSFT_ResiliencySetting particular. Solo se puede usar la configuración de resistencia asociada a este bloque de almacenamiento.

Uso [in]

Especifica el uso previsto para el disco virtual.

Puede especificar una descripción predefinida o una descripción personalizada. Para especificar una descripción predefinida, use un valor distinto de Other.

Para especificar una descripción personalizada, use Other y especifique un valor distinto de NULL para la propiedad OtherUsageDescription .

Otros (1)

Sin restricciones (2)

Reservado para ComputerSystem (el servidor de bloqueo) (3)

Reservado por Servicios de replicación (4)

Reservado por Migration Services (5)

Origen de réplica local (6)

Origen de réplica remota (7)

Destino de réplica local (8)

Destino de réplica remota (9)

Origen o destino de réplica local (10)

Origen o destino de réplica remota (11)

Destino de réplica delta (12)

Componente de elemento (13)

Reservado como colaborador del grupo (14)

Miembro de volumen compuesto (15)

Miembro compuesto de VirtualDisk (16)

Reservado para sparing (17)

OtherUsageDescription [in]

Un uso específico del proveedor para el nuevo disco virtual. Este parámetro solo se puede especificar si la propiedad Usage está establecida en Other.

NumberOfDataCopies [in]

Especifica el número de copias de datos completas que se van a mantener para el disco virtual.

Si se especifica, este valor invalidará el valor NumberOfDataCopiesDefault que se habría heredado de la configuración de resistencia especificada por ResiliencySettingName.

PhysicalDiskRedundancy [in]

Especifica cuántos errores de disco físico debe soportar el disco virtual antes de que se produzca la pérdida de datos. Si se especifica, este valor invalidará physicalDiskRedundancyDefault , que se habría heredado de la configuración de resistencia especificada por ResiliencySettingName.

NumberOfColumns [in]

Especifica el número de discos físicos subyacentes en los que se deben seccionar los datos. Si se especifica, este valor invalidará el valor NumberOfColumnsDefault que se habría heredado de la configuración de resistencia especificada por ResiliencySettingName.

AutoNumberOfColumns [in]

Si es TRUE, este campo indica al proveedor de almacenamiento (o subsistema) que elija automáticamente lo que determina que es el mejor número de columnas para el disco virtual. Si este campo es TRUE, el parámetro NumberOfColumns debe ser NULL.

Intercalar [in]

Especifica el número de bytes que deben tener una franja en la configuración de resistencia común basada en el seccionamiento. La franja se define como el tamaño de la parte de una franja que se encuentra en un disco físico. Por lo tanto , Interleave * NumberOfColumns producirá el tamaño de una franja de datos de usuario.

Si se especifica este parámetro, este valor invalidará interleaveDefault que se habría heredado de la configuración de resistencia especificada por ResiliencySettingName.

IsEnclosureAware [in]

Determina el comportamiento de asignación de este disco virtual. Los discos virtuales compatibles con el gabinete seleccionarán de forma inteligente los discos físicos que se usarán para su redundancia. Si es TRUE, el disco virtual intentará usar discos físicos de diferentes gabinetes para equilibrar la tolerancia a errores entre dos o más gabinetes físicos.

PhysicalDisksToUse [in]

Si este parámetro contiene una lista de discos físicos, la asignación del almacenamiento de este disco virtual se limita a los discos físicos de la lista. Estos discos físicos ya deben agregarse a este bloque de almacenamiento.

StorageTiers [in]

Niveles de almacenamiento en este disco virtual. Cada elemento de la matriz es un objeto MSFT_StorageTier .

StorageTierSizes [in]

Tamaños de los niveles de almacenamiento.

WriteCacheSize [in]

Tamaño de la memoria caché de escritura en el disco virtual.

AutoWriteCacheSize [in]

TRUE si el proveedor debe recoger el tamaño de caché de escritura automática; de lo contrario, FALSE.

RunAsJob [in]

Si es TRUE, este método usa el parámetro CreatedStorageJob cuando la solicitud tarda mucho tiempo en atenderse. Si se ha creado un trabajo de almacenamiento para realizar un seguimiento de la operación, este método devolverá Parámetros de método comprobados: trabajo iniciado.

Nota

Incluso si RunAsJob es TRUE, este método todavía puede devolver un resultado si ha terminado en un tiempo suficiente.

Si es FALSE o NULL, este método seguirá el comportamiento asincrónico de WMI predeterminado determinado por el método del cliente para la invocación. En otras palabras, es sincrónica a menos que se solicite lo contrario.

CreatedVirtualDisk [out]

Recibe un objeto MSFT_VirtualDisk si este método se ejecuta normalmente (con RunAsJob establecido en FALSE) y el disco virtual se crea correctamente.

CreatedStorageJob [out]

Si RunAsJob se establece en TRUE y este método tarda mucho tiempo en ejecutarse, este parámetro recibe una referencia al objeto de trabajo de almacenamiento que se usa para realizar un seguimiento de la operación de ejecución prolongada.

ExtendedStatus [out]

Cadena que contiene un objeto MSFT_StorageExtendedStatus incrustado.

Este parámetro permite al proveedor de almacenamiento devolver información de error extendida (específica de la implementación).

Valor devuelto

Correcto (0)

No compatible (1)

Error no especificado (2)

Tiempo de espera (3)

Error (4)

Parámetro no válido (5)

Parámetros de método comprobados: trabajo iniciado (4096)

Tamaño no admitido (4097)

Espacio libre insuficiente (40000)

Acceso denegado (40001)

No hay suficientes recursos para completar la operación. (40002)

Debe especificar un tamaño mediante el parámetro Size o UseMaximumSize. Solo puede especificar uno de estos parámetros a la vez. (40005)

No se puede conectar al proveedor de almacenamiento. (46000)

El proveedor de almacenamiento no puede conectarse al subsistema de almacenamiento. (46001)

No se pudo habilitar la agrupación en clústeres de conmutación por error para este objeto de almacenamiento. (46008)

Este subsistema no admite la creación de discos virtuales con el tipo de aprovisionamiento especificado. (47001)

Esta operación no se admite en grupos de almacenamiento primordiales. (48000)

El bloque de almacenamiento está reservado solo para uso especial. (48001)

Este bloque de almacenamiento no admite la configuración de resistencia especificada. (48002)

No hay suficientes discos físicos en el bloque de almacenamiento para crear la configuración de disco virtual especificada. (48004)

El bloque de almacenamiento no pudo completar la operación porque su estado operativo o de mantenimiento no lo permite. (48006)

El bloque de almacenamiento no pudo completar la operación porque su configuración es de solo lectura. (48007)

Debe especificar la información de tamaño (el parámetro Size o UseMaximumSize) o la información de nivel (los parámetros StorageTiers y StorageTierSizes), pero no tanto la información de tamaño como la información del nivel. (48010)

No se encontraron unidades de asignación automática en el bloque de almacenamiento. (48011)

No existe ninguna configuración de resistencia con ese nombre. (49000)

No se admite el valor de NoSinglePointOfFailure. (49001)

El valor de PhysicalDiskRedundancy está fuera del intervalo de valores admitido. (49002)

El valor de NumberOfDataCopies está fuera del intervalo de valores admitido. (49003)

El valor de ParityLayout está fuera del intervalo de valores admitido. (49004)

El valor de Interleave está fuera del intervalo de valores admitido. (49005)

El valor de NumberOfColumns está fuera del intervalo de valores admitido. (49006)

El valor de WriteCacheSize está fuera del intervalo de valores admitido. (50005)

Esta operación no admite uno de los discos físicos especificados. (51000)

No se especificaron suficientes discos físicos para completar correctamente la operación. (51001)

Comentarios

Este método solo está disponible cuando la propiedad SupportsVirtualDiskCreation del subsistema de almacenamiento está establecida en TRUE. Si se establece en FALSE, se producirá un error en este método con MI_RESULT_NOT_SUPPORTED.

Este método no se admite para grupos primordiales.

Este método solo requiere que se especifique friendlyName y Size . Los tamaños se pueden especificar explícitamente mediante el parámetro Size o se les indica que usen el espacio máximo disponible del grupo de almacenamiento mediante el parámetro UseMaximumSize . FriendlyName y Size se tratan como objetivos en lugar de requisitos estrictos. Por ejemplo, no todas las matrices basadas en SMI-S pueden admitir nombres descriptivos personalizados, pero la creación del disco virtual seguirá siendo correcta. Si no se logra el tamaño especificado, el tamaño real usado para el disco virtual se devolverá en la estructura de parámetros out.

El uso de este disco virtual se puede establecer mediante los parámetros Usage y OtherUsageDescription . Si se proporciona un valor para OtherUsageDescription , Usage debe establecerse en 1 - "Other", de lo contrario, se devolverá un error.

De forma predeterminada, la configuración de resistencia aplicada a este disco virtual será lo que se especifique en la propiedad ResiliencySettingNameDefault del bloque de almacenamiento. Esto se puede invalidar mediante el parámetro ResiliencySettingName . Tenga en cuenta que el nombre proporcionado aquí debe corresponder a una configuración de resistencia asociada a este bloque de almacenamiento. Cualquier otro valor producirá un error.

La configuración individual de la configuración de resistencia se puede invalidar mediante los parámetros NumberOfDataCopies, PhysicalDiskRedundancy, NumberOfColumns e Interleave . Si no se usan estos parámetros, se usarán los valores predeterminados de la configuración de resistencia. Estas invalidaciones no se conservarán en la instancia de configuración de resistencia determinada; sin embargo, algunos proveedores de almacenamiento pueden optar por crear una nueva instancia de configuración de resistencia para capturar esta nueva configuración. Si alguno de los objetivos especificados en los parámetros de invalidación está fuera del intervalo o no es compatible con el grupo de almacenamiento, se devolverá un error.

La directiva de aprovisionamiento del disco virtual se determina de forma similar a la configuración de resistencia. Si no se especifica ninguna preferencia en el parámetro ProvisioningType , la directiva viene determinada por la propiedad ProvisioningTypeDefault del grupo de almacenamiento. Si se especifica el parámetro ProvisioningType , se omite el valor predeterminado y se usará el valor especificado en su lugar.

La asignación se puede controlar aún más mediante el parámetro PhysicalDisksToUse . Puede haber ciertos escenarios en los que un administrador de almacenamiento quiere elegir manualmente qué discos físicos deben hacer de nuevo el disco virtual. Cuando se especifica este parámetro, los datos del disco virtual solo se almacenarán en los discos físicos de esta matriz y no en ningún otro.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8.1 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2012 R2 [solo aplicaciones de escritorio]
Espacio de nombres Root\Microsoft\Windows\Storage
Encabezado Vdssys.h
MOF Storagewmi.mof

Consulte también

MSFT_StoragePool