Compartilhar via


estrutura VDS_STORAGE_POOL_PROP (vdshwprv.h)

[Começando com Windows 8 e Windows Server 2012, a interface COM do Serviço de Disco Virtual é substituída pela API de Gerenciamento de Armazenamento do Windows.]

Define as propriedades de um objeto de pool de armazenamento.

Sintaxe

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;

Membros

id

Um valor VDS_OBJECT_ID que identifica o objeto do pool de armazenamento.

status

Um VDS_STORAGE_POOL_STATUS valor de enumeração que especifica o status do pool de armazenamento.

health

Um VDS_HEALTH valor de enumeração que especifica a integridade do pool de armazenamento. Veja a seguir os valores válidos para esse membro.

Windows Server 2008, Windows Vista e Windows Server 2003: não há suporte para VDS_H_DEGRADED.

VDS_H_UNKNOWN (0)

VDS_H_HEALTHY (1)

VDS_H_DEGRADED (11)

type

Um VDS_STORAGE_POOL_TYPE valor de enumeração que especifica o tipo do pool de armazenamento.

pwszName

Uma cadeia de caracteres que especifica o nome do pool de armazenamento.

pwszDescription

Uma cadeia de caracteres que contém uma descrição do pool de armazenamento.

ullTotalConsumedSpace

A quantidade de armazenamento físico que dá suporte ao pool de armazenamento, em bytes. O valor desse membro deve ser menor ou igual ao valor do membro ullProvisionedSpace da estrutura VDS_POOL_ATTRIBUTES .

ullTotalManagedSpace

O espaço, em bytes, nesse pool de armazenamento que pode ser alocado para criar elementos de armazenamento filho (LUNs ou pools), incluindo o espaço que já foi alocado. Dependendo da forma como o pool de armazenamento é configurado, o valor desse membro pode ser muito menor do que o valor do membro ullTotalConsumedSpace . Por exemplo, se o pool de armazenamento estiver configurado como um pool espelhado, o valor de ullTotalManagedSpace será apenas metade do valor do membro ullTotalConsumedSpace .

ullRemainingFreeSpace

O tamanho máximo que pode ser usado para criar novos LUNs ou pools de armazenamento filho desse pool ou para expandir LUNs existentes ou pools de armazenamento filho. Para calcular a quantidade de espaço gerenciado que já foi alocada para LUNs existentes ou pools de armazenamento filho, subtraia o valor desse membro do valor do membro ullTotalManagedSpace .

Comentários

O IVdsStoragePool::GetProperties retorna essa estrutura para relatar as propriedades de um objeto de pool de armazenamento.

Os exemplos a seguir mostram como os membros ullTotalConsumedSpace, ullTotalManagedSpace e ullRemainingFreeSpace funcionam juntos.

Exemplo 1

Suponha que você tenha 2 unidades de 1 TB cada. Suponha que você faça o seguinte:
  1. Crie um pool de armazenamento como um pool de espelhos.
  2. Crie um LUN cujo tamanho é de 200 GB.

ullTotalConsumedSpace = 2 TB. Essa é a quantidade de espaço no pool de armazenamento que é apoiada pelo armazenamento físico ou discos físicos. A criação de LUNs do pool não altera esse número.

ullTotalManagedSpace = 1 TB. Esse é o tamanho máximo do LUN ou do pool de armazenamento que pode ser criado a partir desse pool. Apenas 1 TB está disponível, pois o tipo de pool é um espelho com apenas 2 plexes.

Nota Se o tipo de pool fosse RAID5, ullTotalManagedSpace seria (N-1)/N * ullTotalConsumedSpace, em que N é o número de colunas. Por exemplo, com 5 unidades e 5 colunas, ullTotalManagedSpace seria (5-1)/5 * ullTotalConsumedSpace ou 1,6 TB.

 

ullRemainingFreeSpace = 800 GB (1 TB – 200 GB), porque 200 GB já foram alocados para um LUN.

(ullTotalManagedSpace - ullRemainingFreeSpace) é a quantidade de espaço gerenciado alocado para LUNs e pools criados a partir desse pool. Neste exemplo, ullTotalManagedSpace - ullRemainingFreeSpace = 200 GB.

Exemplo 2

Suponha que você tenha 2 unidades de 1 TB cada. Suponha que você faça o seguinte:
  1. Crie um pool de armazenamento como um pool de espelhos.
  2. Crie um LUN provisionado fino cujo tamanho é de 10 TB.

ullProvisionedSpace = 10 TB. Isso se aplica somente a pools provisionados finos. Esse é o espaço total provisionado para o pool. O espaço total consumido pelo pool é menor ou igual ao espaço total provisionado para o pool.

ullTotalConsumedSpace = 2 TB.

ullTotalManagedSpace = 1 TB.

ullRemainingFreeSpace = 1 TB menos a quantidade de espaço gerenciado que atualmente dá suporte ao LUN.

Nota Embora o tamanho do LUN seja de 10 TB, pode haver apenas 10 GB de espaço gerenciado apoiando o LUN, nesse caso, haveria 20 GB de espaço consumido apoiando o LUN espelhado.

 

Requisitos

   
Cliente mínimo com suporte Windows 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 R2 [somente aplicativos da área de trabalho]
Cabeçalho vdshwprv.h

Confira também

IVdsStoragePool::GetProperties