Pular para o conteúdo principal

Snapshots consomem espaço

Sintoma​

O espaço livre no pool diminui mais rápido do que o esperado quando snapshots são usados intensivamente.

Causa​

Um snapshot não consome espaço ao ser criado, mas passa a usar capacidade à medida que os dados do volume divergem do estado capturado. Snapshots de longa duração acumulam essas diferenças.

Além dos snapshots, os clones também retêm capacidade. Um clone é uma cópia copy-on-write: logo após a criação, ele quase não consome espaço, mas depende dos dados de origem. Enquanto existir um clone, a origem não pode ser excluída: a exclusão retorna -2604 e lista os clones que a bloqueiam.

Como verificar​

  1. A quantidade e o tamanho dos snapshots da máquina: no cartão da VM, verifique a tabela Snapshots com as colunas Name, Date of creation e Size (GB). A data de criação identifica os snapshots de longa duração.
  2. Capacidade restante do pool: Provider Data Center → Storage Resources, tabela ZFS pools, coluna Capacity (RAW). O cartão do pool detalha o mesmo valor na seção Properties.
  3. O limite de capacidade configurado para o cluster: a opção pool_capacity_treshold na resposta de get-statusmap. O cluster usa valores de 11…94, com padrão de 60. O cluster substitui silenciosamente 10 e 95, bem como todos os valores fora do intervalo, por 60, sem rejeitá-los. A resposta mostra o registro original do banco de dados, portanto a substituição não fica visível nela.
  4. Se a máquina tem clones que retêm seus dados: a tentativa de excluir essa máquina retorna -2604 com uma lista de clones.

Resolução​

Exclua os snapshots que não são mais necessários, evite manter snapshots de longa duração sem necessidade e monitore a capacidade livre do pool.

Quando o espaço estiver baixo, remova primeiro os clones, depois os snapshots e, por fim, as máquinas. A ordem inversa não funciona, porque um clone retém os dados de sua origem.

Prevenção​

Remova regularmente os snapshots obsoletos e monitore o espaço livre do pool para que as diferenças não se acumulem sem que ninguém perceba.

Lembre-se de que a contagem de snapshots também é uma verificação após a migração: para uma máquina movida para outro pool, ela deve corresponder à contagem medida antes da migração.

Métodos da API​

As operações da API abordadas nesta página são vm-snapshot-list, snapshot-list, vms-snapshot-remove, pools-get e get-statusmap. Consulte a referência da API.

Veja também​