Articles

Um guia do utilizador Linux para Gestão Lógica de Volume

Gerir o espaço em disco tem sido sempre uma tarefa significativa para os sysadmins. O esgotamento do espaço em disco costumava ser o início de uma longa e complexa série de tarefas para aumentar o espaço disponível para uma partição de disco. Também exigia que o sistema fosse desligado. Isto implicava normalmente instalar um novo disco rígido, arrancar para recuperação ou modo de utilizador único, criar uma partição e um sistema de ficheiros no novo disco rígido, utilizar pontos de montagem temporários para mover os dados do sistema de ficheiros demasiado pequeno para o novo, maior, alterar o conteúdo do ficheiro /etc/fstab para reflectir o nome correcto do dispositivo para a nova partição, e reiniciar para voltar a montar o novo sistema de ficheiros no ponto de montagem correcto.

Devo dizer-vos que, quando o LVM (Logical Volume Manager) apareceu pela primeira vez no Fedora Linux, eu resisti bastante fortemente. A minha reacção inicial foi que não precisava desta camada adicional de abstracção entre mim e os discos rígidos. Acontece que estava errado, e que a gestão lógica de volume é muito útil.

LVM permite uma gestão muito flexível do espaço em disco. Fornece características como a capacidade de adicionar espaço em disco a um volume lógico e ao seu sistema de ficheiros enquanto esse sistema de ficheiros está montado e activo e permite a recolha de múltiplos discos rígidos físicos e partições num único grupo de volume que pode depois ser dividido em volumes lógicos.

O gestor de volume também permite reduzir a quantidade de espaço em disco atribuída a um volume lógico, mas existem alguns requisitos. Em primeiro lugar, o volume deve ser desmontado. Segundo, o próprio sistema de ficheiros deve ser reduzido em tamanho antes do volume em que reside poder ser reduzido.

É importante notar que o próprio sistema de ficheiros deve permitir o redimensionamento para que esta funcionalidade funcione. Os sistemas de ficheiros EXT2, 3, e 4 permitem o redimensionamento tanto offline (não montado) como online (montado) quando se aumenta o tamanho de um sistema de ficheiros, e o redimensionamento offline quando se reduz o tamanho. Deve verificar os detalhes dos sistemas de ficheiros que pretende utilizar a fim de verificar se podem ser redimensionados e, especialmente, se podem ser redimensionados enquanto online.

Expandir um sistema de ficheiros na mosca

Gosto sempre de executar novas distribuições numa máquina virtual VirtualBox durante alguns dias ou semanas para garantir que não terei quaisquer problemas devastadores quando começar a instalá-lo nas minhas máquinas de produção. Uma manhã há alguns anos atrás comecei a instalar uma nova versão de Fedora numa máquina virtual na minha estação de trabalho principal. Pensei que já tinha espaço suficiente em disco atribuído ao sistema de ficheiros anfitrião no qual o VM estava a ser instalado. Não o fiz. Cerca de um terço da instalação fiquei sem espaço nesse sistema de ficheiros. Felizmente, a VirtualBox detectou a condição de fora de espaço e fez uma pausa na máquina virtual, e até apresentou uma mensagem de erro indicando a causa exacta do problema.

Note que este problema não se devia ao facto de o disco virtual ser demasiado pequeno, era antes o volume lógico no computador anfitrião que estava a ficar sem espaço, de modo que o disco virtual pertencente à máquina virtual não tinha espaço suficiente para se expandir no volume lógico do anfitrião.

Desde que a maioria das distribuições modernas utilizam a Gestão Lógica de Volume por defeito, e eu tinha algum espaço livre disponível no grupo de volume, pude atribuir espaço adicional no disco ao volume lógico apropriado e depois expandir o sistema de ficheiros do anfitrião na mosca. Isto significa que não tive de reformatar todo o disco rígido e reinstalar o sistema operativo ou mesmo reiniciar. Simplesmente atribuí algum do espaço disponível ao volume lógico apropriado e redimensionei o sistema de ficheiros – tudo enquanto o sistema de ficheiros estava on-line e o programa em execução, A máquina virtual ainda estava a utilizar o sistema de ficheiros do anfitrião. Após redimensionar o volume lógico e o sistema de ficheiros, retomei a execução da máquina virtual e a instalação continuou como se não tivesse ocorrido nenhum problema.

Embora este tipo de problema possa nunca lhe ter acontecido, o esgotamento do espaço em disco enquanto um programa crítico estava a correr, aconteceu a muitas pessoas. E enquanto muitos programas, especialmente programas Windows, não são tão bem escritos e resilientes como o VirtualBox, a Gestão de Volume Lógico Linux tornou possível recuperar sem perder quaisquer dados e sem ter de reiniciar a instalação demorada.

LVM Structure

A estrutura de um ambiente de disco Logical Volume Manager é ilustrada pela Figura 1, abaixo. O Logical Volume Management permite a combinação de vários discos rígidos individuais e/ou partições de disco num único grupo de volume (VG). Esse grupo de volume pode então ser subdividido em volumes lógicos (LV) ou utilizado como um único grande volume. Sistemas de ficheiros regulares, tais como EXT3 ou EXT4, podem então ser criados num volume lógico.

Na Figura 1, dois discos rígidos físicos completos e uma partição de um terceiro disco rígido foram combinados num único grupo de volume. Dois volumes lógicos foram criados a partir do espaço no grupo de volumes, e um sistema de ficheiros, tal como um sistema de ficheiros EXT3 ou EXT4, foi criado em cada um dos dois volumes lógicos.

lvm.png

Figure 1: LVM permite combinar partições e discos rígidos inteiros em Grupos de Volumes.

Adicionar espaço em disco a um hospedeiro é bastante simples mas, na minha experiência, é feito de forma relativamente pouco frequente. Os passos básicos necessários estão listados abaixo. Pode criar um grupo de volume inteiramente novo ou pode adicionar o novo espaço a um grupo de volume existente e expandir um volume lógico existente ou criar um novo.

Adicionar um novo volume lógico

Há alturas em que é necessário adicionar um novo volume lógico a um anfitrião. Por exemplo, após ter reparado que o directório contendo discos virtuais para as minhas máquinas virtuais VirtualBox estava a preencher o sistema de ficheiros /home, decidi criar um novo volume lógico para armazenar os dados da máquina virtual, incluindo os discos virtuais. Isto libertaria muito espaço no meu sistema de ficheiros /home e também me permitiria gerir o espaço em disco para as VMs independentemente.

Os passos básicos para adicionar um novo volume lógico são os seguintes.

  1. Se necessário, instalar um novo disco rígido.
  2. Opcional: Criar uma partição no disco rígido.
  3. Criar um volume físico (PV) do disco rígido completo ou uma partição no disco rígido.
  4. Atribuir o novo volume físico a um grupo de volume existente (VG) ou criar um novo grupo de volume.
  5. Criar um novo volume lógico (LV) a partir do espaço no grupo de volume.
  6. Criar um sistema de ficheiros no novo volume lógico.
  7. Adicionar entradas apropriadas a /etc/fstab para montar o sistema de ficheiros.
  8. Montagem do sistema de ficheiros.

Agora para os detalhes. A sequência seguinte é retirada de um exemplo que utilizei como projecto de laboratório ao ensinar sobre sistemas de ficheiros Linux.

Exemplo

Este exemplo mostra como utilizar o CLI para estender um grupo de volume existente para lhe adicionar mais espaço, criar um novo volume lógico nesse espaço, e criar um sistema de ficheiros no volume lógico. Este procedimento pode ser realizado num sistema de ficheiros em execução, montado.

Aviso: Apenas os sistemas de ficheiros EXT3 e EXT4 podem ser redimensionados em tempo real num sistema de ficheiros em execução, montado. Muitos outros sistemas de ficheiros incluindo BTRFS e ZFS não podem ser redimensionados.

Instalar disco rígido

Se não houver espaço suficiente no grupo de volume no(s) disco(s) rígido(s) existente(s) no sistema para adicionar a quantidade de espaço desejada, pode ser necessário adicionar um novo disco rígido e criar o espaço para adicionar ao Volume Lógico. Primeiro, instalar o disco rígido físico, e depois executar os seguintes passos.

Criar volume físico a partir do disco rígido

É necessário primeiro criar um novo volume físico (PV). Use o comando abaixo, que assume que o novo disco rígido é atribuído como /dev/hdd.

pvcreate /dev/hdd

Não é necessário criar uma partição de qualquer tipo no novo disco rígido. Esta criação do Volume Físico que será reconhecido pelo Gestor de Volume Lógico pode ser realizada num disco em bruto recentemente instalado ou numa partição Linux do tipo 83. Se vai utilizar todo o disco rígido, a criação de uma partição primeiro não oferece vantagens particulares e utiliza espaço em disco para metadados que de outra forma poderiam ser utilizados como parte do PV.

Extender o Grupo de Volume existente

Neste exemplo, vamos estender um grupo de volume existente em vez de criar um novo; pode optar por fazê-lo de qualquer maneira. Após a criação do Volume Físico, estender o Grupo de Volume existente (VG) para incluir o espaço no novo PV. Neste exemplo, o Grupo de Volume existente chama-se MyVG01.

vgextend /dev/MyVG01 /dev/hdd

Criar o Volume Lógico

Criar primeiro o Volume Lógico (LV) a partir do espaço livre existente dentro do Grupo de Volume. O comando abaixo cria um LV com um tamanho de 50GB. O nome do Grupo de Volume é MyVG01 e o nome do Volume Lógico é Stuff.

lvcreate -L +50G --name Stuff MyVG01

Criar o sistema de ficheiros

Criar o Volume Lógico não cria o sistema de ficheiros. Essa tarefa deve ser executada separadamente. O comando abaixo cria um sistema de ficheiros EXT4 que se adapta ao Volume Lógico recentemente criado.

mkfs -t ext4 /dev/MyVG01/Stuff

Adicionar uma etiqueta do sistema de ficheiros

Adicionar uma etiqueta do sistema de ficheiros facilita a identificação posterior do sistema de ficheiros em caso de falha ou outros problemas relacionados com o disco.

e2label /dev/MyVG01/Stuff Stuff

Montagem do sistema de ficheiros

Neste ponto pode criar um ponto de montagem, adicionar uma entrada apropriada ao ficheiro /etc/fstab, e montar o sistema de ficheiros.

Deve também verificar se o volume foi criado correctamente. Pode usar os comandos df, lvs, e vgs para o fazer.

Redimensionar um volume lógico num sistema de ficheiros LVM

A necessidade de redimensionar um sistema de ficheiros existe desde o início das primeiras versões do Unix e não desapareceu com o Linux. Tornou-se mais fácil, contudo, com a Gestão Lógica de Volume.

  1. Se necessário, instalar um novo disco rígido.
  2. Opcional: Criar uma partição no disco rígido.
  3. Criar um volume físico (PV) do disco rígido completo ou uma partição no disco rígido.
  4. Atribuir o novo volume físico a um grupo de volume existente (VG) ou criar um novo grupo de volume.
  5. Criar um ou mais volumes lógicos (LV) a partir do espaço no grupo de volume, ou expandir um volume lógico existente com algum ou todo o novo espaço no grupo de volume.
  6. Se criou um novo volume lógico, crie um sistema de ficheiros no mesmo. Se adicionar espaço a um volume lógico existente, utilize o comando resize2fs para ampliar o sistema de ficheiros para preencher o espaço no volume lógico.
  7. Adicionar entradas apropriadas a /etc/fstab para montar o sistema de ficheiros.
  8. Montagem do sistema de ficheiros.

Exemplo

Este exemplo descreve como redimensionar um volume lógico existente num ambiente LVM utilizando a CLI. Adiciona cerca de 50GB de espaço ao sistema de ficheiros /Stuff. Este procedimento só pode ser utilizado num sistema de ficheiros montado e ao vivo com o Kernel Linux 2.6 (e superior) e os sistemas de ficheiros EXT3 e EXT4. Não recomendo que o faça em qualquer sistema crítico, mas pode ser feito e já o fiz muitas vezes; mesmo no sistema de ficheiros raiz (/). Use o seu julgamento.

Aviso: Apenas os sistemas de ficheiros EXT3 e EXT4 podem ser redimensionados em tempo real num sistema de ficheiros montado e em execução. Muitos outros sistemas de ficheiros incluindo BTRFS e ZFS não podem ser redimensionados.

Instalar o disco rígido

Se não houver espaço suficiente no(s) disco(s) rígido(s) existente(s) no sistema para adicionar a quantidade de espaço desejada, pode ser necessário adicionar um novo disco rígido e criar o espaço para adicionar ao Volume Lógico. Primeiro, instalar o disco rígido físico e depois executar os seguintes passos.

Criar um Volume Físico a partir do disco rígido

É necessário primeiro criar um novo Volume Físico (PV). Use o comando abaixo, que assume que o novo disco rígido é atribuído como /dev/hdd.

pvcreate /dev/hdd

Não é necessário criar uma partição de qualquer tipo no novo disco rígido. Esta criação do Volume Físico que será reconhecido pelo Gestor de Volume Lógico pode ser realizada num disco em bruto recentemente instalado ou numa partição Linux do tipo 83. Se for utilizar todo o disco rígido, a criação de uma partição primeiro não oferece nenhuma vantagem particular e utiliza espaço em disco para metadados que de outra forma poderiam ser utilizados como parte do PV.

Adicionar PV ao Grupo de Volume existente

Para este exemplo, utilizaremos o novo PV para ampliar um Grupo de Volume existente. Após a criação do Volume Físico, alargar o Grupo de Volume existente (VG) para incluir o espaço no novo PV. Neste exemplo, o Grupo de Volume existente é denominado MyVG01.

vgextend /dev/MyVG01 /dev/hdd

Extender o Volume Lógico

Extender o Volume Lógico (LV) do espaço livre existente dentro do Grupo de Volume. O comando abaixo expande o LV em 50GB. O nome do Grupo de Volume é MyVG01 e o nome do Volume Lógico é Stuff.

lvextend -L +50G /dev/MyVG01/Stuff

Expandir o sistema de ficheiros

Extender o Volume Lógico também expandirá o sistema de ficheiros se usar a opção -r. Se não utilizar a opção -r, essa tarefa deve ser executada separadamente. O comando abaixo redimensiona o sistema de ficheiros para caber no recém redimensionado Volume Lógico.

resize2fs /dev/MyVG01/Stuff

Deverá verificar para verificar se o redimensionamento foi efectuado correctamente. Pode usar os comandos df, lvs, e vgs para o fazer.

Tips

P>Todos os anos aprendi algumas coisas que podem tornar a gestão lógica do volume ainda mais fácil do que já é. Esperemos que estas dicas lhe possam dar algum valor.

  • Utilizar os sistemas de ficheiros alargados, a menos que tenha uma razão clara para utilizar outro sistema de ficheiros. Nem todos os sistemas de ficheiros suportam redimensionamento, mas EXT2, 3, e 4 suportam. Os sistemas de ficheiros EXT são também muito rápidos e eficientes. Em qualquer caso, podem ser sintonizados por um administrador de ficheiros experiente para satisfazer as necessidades da maioria dos ambientes se os parâmetros de sintonização predefinidos não.
  • Utilizar nomes significativos de volumes e grupos de volumes.
  • Utilizar etiquetas de sistemas de ficheiros EXT.

Eu sei que, tal como eu, muitos administradores de sistemas resistiram à mudança para a Gestão Lógica de Volumes. Espero que este artigo o encoraje a pelo menos tentar a LVM. Estou realmente satisfeito por o ter feito; as minhas tarefas de gestão de disco são muito mais fáceis desde que fiz a mudança.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *