estructura de VDS_STORAGE_POOL_PROP (vds.h)

[A partir de Windows 8 y Windows Server 2012, la interfaz COM del servicio de disco virtual se sustituye por la API de administración de almacenamiento de Windows.]

Define las propiedades de un objeto de bloque de almacenamiento.

Sintaxis

typedef struct _VDS_STORAGE_POOL_PROP {
  VDS_OBJECT_ID           id;
  VDS_STORAGE_POOL_STATUS status;
  VDS_HEALTH              health;
  VDS_STORAGE_POOL_TYPE   type;
  LPWSTR                  pwszName;
  LPWSTR                  pwszDescription;
  ULONGLONG               ullTotalConsumedSpace;
  ULONGLONG               ullTotalManagedSpace;
  ULONGLONG               ullRemainingFreeSpace;
} VDS_STORAGE_POOL_PROP, *PVDS_STORAGE_POOL_PROP;

Miembros

id

Valor de VDS_OBJECT_ID que identifica el objeto del bloque de almacenamiento.

status

Valor de enumeración VDS_STORAGE_POOL_STATUS que especifica el estado del bloque de almacenamiento.

health

Valor de enumeración VDS_HEALTH que especifica el estado del bloque de almacenamiento. A continuación se muestran los valores válidos para este miembro.

Windows Server 2008, Windows Vista y Windows Server 2003: no se admite VDS_H_DEGRADED.

VDS_H_UNKNOWN (0)

VDS_H_HEALTHY (1)

VDS_H_DEGRADED (11)

type

Valor de enumeración VDS_STORAGE_POOL_TYPE que especifica el tipo del bloque de almacenamiento.

pwszName

Cadena que especifica el nombre del grupo de almacenamiento.

pwszDescription

Cadena que contiene una descripción del bloque de almacenamiento.

ullTotalConsumedSpace

Cantidad de almacenamiento físico que respalda el bloque de almacenamiento, en bytes. El valor de este miembro debe ser menor o igual que el valor del miembro ullProvisionedSpace de la estructura VDS_POOL_ATTRIBUTES .

ullTotalManagedSpace

Espacio, en bytes, en este bloque de almacenamiento que se puede asignar para crear elementos de almacenamiento secundarios (LUN o grupos), incluido el espacio que ya se ha asignado. Según la forma en que se configura el bloque de almacenamiento, el valor de este miembro puede ser mucho menor que el valor del miembro ullTotalConsumedSpace . Por ejemplo, si el grupo de almacenamiento está configurado como un grupo reflejado, el valor de ullTotalManagedSpace es tan grande como el valor del miembro ullTotalConsumedSpace .

ullRemainingFreeSpace

El tamaño máximo que se puede usar para crear nuevos LUN o grupos de almacenamiento secundarios de este grupo, o para expandir los LUN existentes o los grupos de almacenamiento secundarios. Para calcular la cantidad de espacio administrado que ya se ha asignado a los LUN existentes o a los grupos de almacenamiento secundarios, resta el valor de este miembro del valor del miembro ullTotalManagedSpace .

Comentarios

IVdsStoragePool::GetProperties devuelve esta estructura para notificar las propiedades de un objeto de grupo de almacenamiento.

En los ejemplos siguientes se muestra cómo funcionan juntos los miembros ullTotalConsumedSpace, ullTotalManagedSpace y ullRemainingFreeSpace .

Ejemplo 1

Supongamos que tiene 2 unidades de 1 TB cada una. Supongamos que hace lo siguiente:
  1. Cree un grupo de almacenamiento como un grupo reflejado.
  2. Cree un LUN cuyo tamaño sea de 200 GB.

ullTotalConsumedSpace = 2 TB. Esta es la cantidad de espacio del bloque de almacenamiento respaldado por el almacenamiento físico o los discos físicos. La creación de LUN desde el grupo no cambia este número.

ullTotalManagedSpace = 1 TB. Este es el tamaño máximo del LUN o del grupo de almacenamiento que se puede crear a partir de este grupo. Solo hay 1 TB disponibles, ya que el tipo de grupo es un espejo con solo 2 plexos.

Nota Si el tipo de grupo fuera RAID5, ullTotalManagedSpace sería (N-1)/N * ullTotalConsumedSpace, donde N es el número de columnas. Por ejemplo, con 5 unidades y 5 columnas, ullTotalManagedSpace sería (5-1)/5 * ullTotalConsumedSpace o 1,6 TB.

 

ullRemainingFreeSpace = 800 GB (1 TB – 200 GB), porque ya se han asignado 200 GB a un LUN.

(ullTotalManagedSpace - ullRemainingFreeSpace) es la cantidad de espacio administrado asignado a los LUN y grupos creados a partir de este grupo. En este ejemplo, ullTotalManagedSpace - ullRemainingFreeSpace = 200 GB.

Ejemplo 2

Supongamos que tiene 2 unidades de 1 TB cada una. Supongamos que hace lo siguiente:
  1. Cree un grupo de almacenamiento como un grupo reflejado.
  2. Cree un LUN aprovisionado fino cuyo tamaño sea de 10 TB.

ullProvisionedSpace = 10 TB. Esto solo se aplica a los grupos aprovisionados finos. Este es el espacio total aprovisionado para el grupo. El espacio total consumido por el grupo es menor o igual que el espacio total aprovisionado para el grupo.

ullTotalConsumedSpace = 2 TB.

ullTotalManagedSpace = 1 TB.

ullRemainingFreeSpace = 1 TB menos la cantidad de espacio administrado que actualmente respalda el LUN.

Nota Aunque el tamaño del LUN es de 10 TB, puede haber hasta 10 GB de espacio administrado que respalda el LUN, en cuyo caso habría 20 GB de espacio consumido que respalda el LUN reflejado.

 

Requisitos

Requisito Value
Cliente mínimo compatible Windows 7 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 R2 [solo aplicaciones de escritorio]
Encabezado vds.h

Consulte también

IVdsStoragePool::GetProperties