Please enable JS

Verificação de Volume Baseado em LVM

Criado em 28/11/2019, por Hosco Tecnologia.

Sobre LVM

LVM é o acrônimo para Logical Volume Manager (Gerenciador de Volumes Lógicos). Consiste em uma camada de software que possibilita criar volumes lógicos a partir de dispositivos de armazenamento (HD, SSD, flash drive, etc.), assim como, gerenciá-los e administrá-los. A comunicação entre LVM e um kernel Unix ocorre através de um framework device mapper (mapeador de dispositivos), o que torna possível a tradução dos endereços físicos em endereços lógicos.

O volume lógico é composto de um conjunto de drives ou partições. Ele permite alterações (aumento ou diminuição de capacidade, inserção de novos discos, etc.) em tempo real, melhor organização dos recursos de armazenamento, entre outras facilidades relacionadas a gestão de um storage ou servidor. O conceito de gerenciamento de volumes lógicos - usado, principalmente, em Linux - foi inspirado no gerenciador de volumes do HP-UX (que existe desde 1992).

Principais siglas e termos relacionados com LVM
  • PV (Physical Volume): HDs, SSDs, flash drives, partições, LUNs, etc.
  • VG (Volume Group): Um conjunto de Physical Volumes (volumes físicos)
  • LV (Logical Volume): É o próprio volume lógico e está dentro de um VG

Falhas Comuns

A remoção de PVs, antes da desativação de grupos ou volumes lógicos, é uma das causas frequentes de inconsistência e corrupção de dados - em nível de volume e sistema de arquivos.

Ordem correta para desativação de volumes
  1. Desmontagem do sistema de arquivos
  2. Desativação dos volumes lógicos
  3. Desativação dos grupos lógicos
  4. Remoção dos volumes físicos (PVs)

Operações incorretas ou malsucedidas durante o redimensionamento de volumes também são comuns e podem causar danos severos. Para evitar esse problema, o administrador deve entender dois conceitos básicos. Para aumento de capacidade, deve-se primeiro expandir o volume e depois expandir o sistema de arquivos. Para redução, deve-se primeiro diminuir o tamanho do file system e depois diminuir o volume lógico. Ambos procedimentos devem ser feitos com o comando lvextend.

Em relação aos eventos de nível físicos, são mais comuns os dispositivos de armazenamento (HD, SSD, etc.) danificados. Com menor incidência, há casos de falhas em controladoras e problemas no comunicação com storages.

Análise de Dispositivos

Exibindo pvs de um volume lógico

Antes de iniciar qualquer verificação, precisamos identificar os drives que compõem o volume group. Para isso podemos utilizar o comando vgdisplay -v | grep "PV NAME", o qual mostrará uma informação precisa.

O programa smartctl proporciona uma verificação instantânea, segura e não invasiva, dos discos de armazenamento. É uma boa prática, principalmente, em ambientes com suspeita de dano físico ou lógico porque não escaneia setores ou blocos, evitando estresse desnecessário dos discos. Mais detalhes podem ser encontrados no artigo Perda de Dados e Ações Pós Incidente.

O comando smartctl -H /dev/device mostrará o estado geral de saúde do volume físico indicado em "device". Ele interpreta os logs internos do HD, que são gerados pela tecnologia de auto monitoramento SMART (mais detalhes são encontrados no artigo Ver a Saúde do HD em 3 Minutos).

Verificação de Metadados

Verificando volumes físicos (PVs)

Após usar vgdisplay -v para listar os PVs, executa-se o comando pvck -v para mostrar informações detalhadas sobre a integridade dos metadados relacionados a volumes físicos (PVs). Por exemplo: para analisar o PV /dev/sdd, usa-se o comando pvck /dev/sdd. É uma operação e pouco invasiva, mesmo para ambientes degradados.

Com o utilitário vgck podemos realizar uma verificação da consistência de metadados do grupo de volumes (VG) alvo. Usa-se o comando vgck VolGroup, sendo que a expressão VolGroup deve ser substituída pelo nome do volume a ser checado. Sua execução costuma ser rápida e, também, é relativamente segura.

É recomendado que qualquer procedimento seja interrompido em caso de saída de erros, para evitar maiores danos ao ambiente e seus drives de armazenamento.

Recomendações e Boas Práticas

É comum vermos recursos de armazenamento criados com LVM usando physical volumes baseados em partições. No entanto, não é necessário criar uma partição LVM em cada disco que se tornará um PV. É possível entregar discos inteiros não particionados direto para o device mapper (como é feito em ZFS e BTRFS). Assim sendo, haverá uma camada a menos para ser interpretada, proporcionado maior facilidade em manter a integridade do ambiente.

Outra prática interessante é o espelhamento de volumes lógicos. Isso proporciona maior segurança para os dados e aumento de disponibilidade de recursos. No entanto, é uma configuração ainda pouco adotada.

Cabe lembrar que soluções de backup e disaster recovery são muito importantes e devem ser implementadas, independente do porte do ambiente que está sendo administrado.

Por fim, havendo qualquer indício de dispositivo danificado, recomenda-se que o volume seja, imediatamente, desativado e encaminhado para um serviço de recuperação de dados em LVM.

#lvm #pvck #vgck #lvmcheck #linux #unix