PowerVault ME4: o que é Overcommitment e como ele funciona?
Summary: Este artigo detalha os princípios básicos de excesso de comprometimento na série PowerVault ME4 e mostra como calculá-lo.
Resolution
Sumário
- O que é Overcommitment e como ele funciona?
- Onde encontrar informações ou problemas relacionados a Overcommitment nos registros?
- Qual é o tamanho do índice de metadados?
- O que é a tabela de endereços de 16 GiB?
- Qual é o limite máximo de excesso de comprometimento?
- Qual é a diferença entre dados compartilhados, dados exclusivos e dados de snap?
- Os valores de dados exclusivos (show snapshots type all) e de tamanho alocado (show snapshot-space) devem corresponder?
- Como calcular a quantidade de espaço comprometido e encontrar o local em que ele está comprometido?
Pergunta: O que é Overcommitment e como ele funciona?
Resposta:
Excesso de comprometimento significa que o total comprometido de todos os Virtual Volumes, inclusive snapshots, excede o espaço físico no pool virtual.
Overcommitment é um recurso específico do armazenamento virtual. NÃO se aplica ao Linear.
Esse recurso possibilita o excesso de comprometimento de recursos de armazenamento físico, permitindo que o sistema operacional seja executado como se tivesse mais espaço de armazenamento do que está fisicamente alocado.
Cada volume, inclusive snapshots, criado no array consome índices de metadados do espaço de armazenamento do pool virtual.
Em geral, o FW permite, no máximo, 1 PiB de metadados por pool virtual.
Por exemplo, considere um storage array com 100 TB de espaço de pool utilizável no Pool A.
Com a opção "Overcommitment" desativada, a ÚNICA possibilidade é criar volumes (incluindo snapshots) com um máximo de 100 TB. A configuração não pode ultrapassar 100 TB do índice de metadados.
Com a opção "Overcommitment" ativada, o FW permite a criação de volumes (incluindo snapshots) além do limite físico de 100 TB, pois o FW é compatível com 1 PiB, no máximo, de índice de metadados.
Assim, o sistema pode criar volumes (incluindo snapshots) com, no máximo, 1 PiB por pool. Isso é descrito em mais detalhes na resposta para a pergunta: "Qual é o tamanho do índice de metadados?"
Pergunta: Onde encontrar informações/problemas relacionados a Overcommitment nos registros?
Resposta:
Quando as informações sobre excesso de comprometimento são vistas na GUI, os IDs de evento são exibidos nos registros de eventos. Alguns exemplos de códigos de eventos podem ser encontrados abaixo.
ID de evento 473 - O volume indicado está usando mais do que a porcentagem limite de seu pool virtual. Essa é uma indicação de que o uso do armazenamento ultrapassou o limite especificado pelo usuário para esse volume.
ID de evento 573 - Aviso: o espaço de snapshot alocado para um pool virtual não pode ser reduzido porque os snapshots não podem ser excluídos.
ID de evento 571 - Erro: o espaço de snapshot alocado excedeu o limite de porcentagem configurado do pool virtual.
Nota: outros códigos de eventos e as respectivas explicações podem ser encontrados no Guia do proprietário.
Pergunta: Qual é o tamanho do índice de metadados? O que é a tabela de endereços de 16 GiB?
Resposta:
O número máximo permitido de entradas de índice de metadados é de 65.312. Ao calcular o espaço endereçável fisicamente, multiplique as entradas do índice de metadados pela tabela de endereços.
Isso equivale a aproximadamente 1 PiB, que é 1.048.576 GiB.
Pergunta: Qual é o limite máximo de excesso de comprometimento?
Resposta:
Em geral, o FW permite, no máximo, 1 PiB de metadados por pool virtual.
Com o recurso "Overcommitment" desativado, o pool permite APENAS o uso de metadados até o máximo do espaço de armazenamento disponível.
Com o recurso "Overcommitment" ativado, o pool permite o uso de metadados até o máximo de 1 PiB por pool, que é o limite de FW.
Pergunta: Qual é a diferença entre dados compartilhados, dados exclusivos e dados de snap?
Resposta:
Dados de snap: a quantidade total de dados de gravação associada ao snapshot.
Ou seja, as informações de alocação de volume para o volume pai do snapshot, no momento em que o snapshot foi originalmente tirado. Isto é, o tamanho comprometido do volume quando o snapshot foi tirado.
Dados exclusivos: a quantidade de dados de gravação exclusiva do snapshot.
Ou seja, os dados que são alterados ou modificados a partir do volume original
Dados compartilhados: a quantidade de dados de gravação compartilhada entre esse snapshot e outros snapshots.
Ou seja, os dados que não são alterados ou modificados a partir do volume original, no momento em que o snapshot foi tirado.
Além disso, a soma dos dados compartilhados e dos dados exclusivos é quase igual aos dados de snap.
Pergunta: Os valores de dados exclusivos (show snapshots type all) e de tamanho alocado (show snapshot-space) devem corresponder?
Resposta:
De acordo com o design, o valor de dados exclusivos (dados modificados) deve corresponder ao valor do tamanho alocado. Os dados exclusivos representam o tamanho dos dados físicos do snapshot; esses dados exclusivos usam o espaço do snapshot.
No caso de configurações com APENAS snapshots definidos, a soma dos dados exclusivos de todos os snapshots é igual ao tamanho total alocado do snapshot que é relatado.
No caso de configurações com replicação definida, a soma dos dados exclusivos de todos os snapshots associados aos snapshots padrão e dos dados exclusivos dos snapshots associados às tarefas de replicação.
No entanto, em geral, o resultado de "show snapshot" não informa os dados de snap, os dados compartilhados ou os dados exclusivos. É por isso que o comando "show snapshots type all" é usado.
Exemplo:
No caso de configurações com a instalação de replicação, o FW mantém três snapshots para cada tarefa de replicação (S1, S2 e S3).
O valor do snapshot "S3" refere-se ao que é replicado após a replicação inicial.
No agendamento de replicação subsequente, quando o S3 se torna S2, os dados de "show snapshots" relatam todas as informações de dados associadas na tabela.
Enquanto a replicação está ocorrendo, os valores de cada "S3" não são relatados nos registros. Além disso, não há comandos da CLI para relatar essas informações. Isso significa que, quando a replicação estiver ocorrendo, uma discrepância entre os dados exclusivos e o tamanho alocado poderá ser visualizada.
Esse é um comportamento esperado.
Pool Name URL Creation Date/Time Status Status-Reason Parent Volume Base Vol Base Vol Snaps TreeSnaps Snap-Pool Snap Data Unique Data Shared Data Retention Priority
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
A ESXI.S1 2020-02-03 19:48:09 Available N/A ESXI ESXI 0 8 N/A 7580.4GB 0B 7580.4GB never-delete
A ESXI.S2 2020-02-03 19:48:09 Available N/A ESXI ESXI 0 8 N/A 7580.4GB 7767.8MB 7572.6GB never-delete
A ESXI.S3 2020-02-03 19:48:10 Available N/A ESXI ESXI 0 8 N/A 0B 0B 0B never-delete
A ESXIs01_S0003 2020-03-02 05:01:10 Available N/A ESXI ESXI 0 8 N/A 6988.9GB 344.6GB 6644.2GB never-delete
A ESXIs01_S0004 2020-03-03 05:01:08 Available N/A ESXI ESXI 0 8 N/A 7042.6GB 22.2GB 7020.3GB never-delete
A ESXIs01_S0005 2020-03-04 05:01:08 Available N/A ESXI ESXI 0 8 N/A 7045.4GB 49.8GB 6995.5GB never-delete
A ESXIs01_S0006 2020-03-05 05:01:15 Available N/A ESXI ESXI 0 8 N/A 7580.0GB 19.3GB 7560.6GB never-delete
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Pergunta: Como calcular a quantidade de espaço comprometido e encontrar o local em que ele está comprometido?
Resposta:
O espaço comprometido equivale à soma do tamanho de todos os Virtual Volumes e do tamanho dos metadados do snapshot.
A GUI não mostra o local em que todo o espaço comprometido por volumes ou snapshots. Isso deve ser calculado a partir de registros e/ou comandos da CLI.
O resultado de "show pools" e "show volumes" é necessário.
Exemplo:
Captura de tela das informações da GUI que mostram excesso de comprometimento no Pool A, mas nenhum no Pool B

Captura de tela com mais detalhes sobre o Pool A

Exemplo de resultado de "show pools".
Name Serial Number Class Blocksize Total Size Avail Snap Size OverCommit Disk Groups Volumes Low Thresh Mid Thresh High Thresh Sec Fmt Health Reason Action
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
A 00c0ff50ae66000081562a5e01000000 Virtual 512 35.2TB 29.5TB 1437.9GB Enabled 2 105 50.00 % 75.00 % 99.39 % 512e OK
B 00c0ff50ae0600009f562a5e01000000 Virtual 512 35.2TB 23.9TB 1305.3GB Enabled 2 108 50.00 % 75.00 % 99.39 % 512e OK
Exemplo de resultado de "show volumes" – truncado ou modificado para mostrar de onde os dados vêm para as tabelas e cálculos a seguir
Pool Name Total Size Alloc Size Class Type Large Virtual Extents Health Reason Action
-------------------------------------------------------------------------------------------------------------------------
B D-ADPSVR2 XXX.XGB XXX.XGB Virtual base Disabled OK
B D-ADPSVR2s01_S0011 XXX.XGB XXX.XGB Virtual snapshot Disabled OK
Etapas para calcular o excesso de comprometimento
Use os seguintes valores dos comandos. É recomendável configurar em uma tabela ou no excel.
show pools = Total Size, Avail, Snap Size
show volumes = Total Size, Alloc Size
Para converter os dados em formato utilizável a fim de mostrar o local em que os dados estão comprometidos. A tabela abaixo mostra quais campos examinar e de onde extrair os dados.
| Nome |
Comando da CLI |
Coluna/campo |
Modificador 1 |
Modificador 2 |
Cálculo |
| Tamanho total |
show pools |
Tamanho total |
|
Converter em um denominador comum (MB/GB/TB) |
N/D |
| Disp/gratuito |
show pools |
Disp |
|
Converter em um denominador comum (MB/GB/TB) |
N/D |
| Snapshot usado |
show pools |
Tamanho do snap |
|
Converter em um denominador comum (MB/GB/TB) |
N/D |
| Tamanho total do volume |
show volumes |
Tamanho total |
Itens "base" na coluna Type |
Converter em um denominador comum (MB/GB/TB) |
Adicionar todos os itens juntos |
| Tamanho alocado do volume |
show volumes |
Tamanho aloc |
Itens "base" na coluna Type |
Converter em um denominador comum (MB/GB/TB) |
Adicionar todos os itens juntos |
| Tamanho total do snapshot |
show volumes |
Tamanho total |
Itens "snapshot" na coluna Type |
Converter em um denominador comum (MB/GB/TB) |
Adicionar todos os itens juntos |
| Snapshot alocado |
show volumes |
Tamanho aloc |
Itens "snapshot" na coluna Type |
Converter em um denominador comum (MB/GB/TB) |
Adicionar todos os itens juntos |
Nota: os valores alocados podem ser usados para ver quanto espaço está em uso no sistema.
Exemplo do sistema do cliente
| Título |
Pool A (em GB) |
Pool B (em GB) |
| Tamanho total |
35200 |
35200 |
| Disp/gratuito |
29500 |
23900 |
| Snapshot usado |
1437,9 |
1305,3 |
| Tamanho total do volume |
12246,2 |
12578,4 |
| Tamanho alocado do volume |
4231,0952 |
9910,8845 |
| Tamanho total do snapshot |
29979,3 |
16762,9 |
| Snapshot alocado |
16922,1 |
10974,2117 |
Agora calcule as informações comprometidas e/ou com excesso de comprometimento por pool.
Committed: Volume Total Size + Total Snapshot Size
| Pool |
Tamanho total do volume |
Tamanho total do snapshot |
Comprometido |
| A |
12246,2 |
29979,3 |
42225,5 |
| B |
12578,4 |
16762,9 |
29341,3 |
Overcommitted: Committed - Total Size
| Pool |
Comprometido |
Tamanho total |
Excesso de comprometimento |
| A |
42225,5 |
35200 |
7025,5 |
| B |
29341,3 |
35200 |
-5858,7 |
Nota: sobre valores com excesso de comprometimento. Valores positivos significam que o pool está com excesso de comprometimento. Valores negativos significam que o pool não está com excesso de comprometimento.
No exemplo:
A está com excesso de comprometimento de 7025,5 GB
B não está com excesso de comprometimento, pois o número é negativo.