Requisitos de armazenamento de instantâneos do LVM

0

Estou um pouco confuso sobre como os instantâneos do LVM são armazenados e funcionam. Eu entendo que quando você cria um snapshot com o LVM, ele não ocupa espaço, mas à medida que você faz alterações nos arquivos do sistema, o volume do snapshot do LVM aumenta de tamanho. Se eles crescerem em tamanho além do tamanho de sua partição, eles serão "descartados" e desaparecerão, e é por isso que não é uma boa solução de backup (além do fato de que ela também está no mesmo sistema físico).

O armazenamento de instantâneos do LVM funciona como o diagrama abaixo?

Estoutentandomostrarumcenárioemqueapartiçãodosistemadearquivosraizestápraticamentevaziaetemumapequenaquantidadededadosmostradosemroxo.Eucrioumapartiçãodesnapshotchamada"Snapshot 1" que gradualmente preenche quando eu faço alterações nos arquivos originais, embora eu tenha certeza que o LVM é baseado em blocos e não em arquivos.

Pergunta

Isso significa que, se eu tivesse uma partição raiz de 100 GB que armazenasse apenas 20 GB de dados, eu nunca precisaria me preocupar com o estouro de minha partição de instantâneo se eu desse um tamanho de 21 GB? Ou seria a partição de snapshot tão grande ou maior que a partição raiz porque também registra as diferenças do espaço não utilizado (blocos de 0)?

    
por Programster 13.09.2017 / 15:38

1 resposta

1

Infelizmente, os requisitos de armazenamento não são tão diretos:

COW snapshots are created when a size is specified. The size is allocated from space in the VG, and is the amount of space that can be used for saving COW blocks as writes occur to the origin or snapshot. The size chosen should depend upon the amount of writes that are expected; often 20% of the origin LV is enough. If COW space runs low, it can be extended with extend (shrinking is also allowed with lvreduce.) A small amount of the COW snapshot LV size is used to track COW block locations, so the full size is not available for COW data blocks. Use lvs to check how much space is used, and see --monitor to to automatically extend the size to avoid running out of space. - man lvcreate

Observe como a página do manual não menciona nenhum detalhe:

...often 20% of the origin LV is enough...A small amount of the COW snapshot LV size is used...

A conclusão que faço a partir disso é que não há uma maneira específica de calcular exatamente o tamanho do snapshot que o LV precisa para garantir que ele nunca fique sem espaço.

Essencialmente, como o instantâneo LV armazena os blocos originais antes de serem alterados, para que ele nunca fique sem espaço, ele deve ser grande o suficiente para manter a origem LV mais um pouco mais para que possa rastrear os locais dos blocos COW.

    
por 13.09.2017 / 16:13

Tags