LVM no Linux (gerenciador de volumes) [Guia Básico]

O esquema de particionar que os discos que você acabou de ver é útil para dividir os dados em uma estrutura organizacional que atenda e faça algum sentido. No entanto, uma vez criada a partição, para fazer alterações é complicado, sem envolver uma possível perda de dados.

Na melhor das hipóteses é possível mover os dados para início do disco e reparticiona-lo “a quente”. Na pior das hipóteses, é necessário um backup, recriar as partições e restaurar o backup no novo layout.

Para evitar toda essa trabalheira e possível perda de dados, o pessoal resolveu criar um gerenciador de volumes lógicos, chamado LVM – Logical Volume Manager.

O LVM no Linux é um Gerenciador de Discos integrado ao Kernel do Linux. Ele permite que:

  • Discos sejam trocados sem interrupção do serviço (hotswap);
  • Alterar o tamanho dos volumes;
  • Criar imagens (snapshots) de volumes;
  • Criar backup de imagens dos volumes;
  • Criar um volume único a partir de vários discos (similar ao RAID 0);
  • Criar volumes espelhados em mais de um disco (similar ao RAID 1).

Desta forma, o LVM foi criado para ampliar o sistema de arquivos que tradicionalmente é visto como um conjunto de discos físicos e partições. Seu objetivo é permitir uma flexibilidade grande para o administrador no gerenciamento dos discos.

Imagine que o usuário tenha o seguinte esquema de partições sem o LVM:

 Ponto de Montagem PartiçãoTamanho
/boot/dev/sda1500 Megabytes
 Swap/dev/sda21 Gigabyte
 //dev/sda36 Gigabytes
/home/dev/sda44 Gigabytes

Neste exemplo, se o usuário desejar aumentar a partição raiz, ele teria que reformatar seu disco, ou mesmo mover parte dos dados para outro disco e montar a nova partição como um diretório do raiz.

Ao passo que, se o usuário utilizar o LVM, ele poderia simplesmente diminuir o tamanho do /home e aumentar o raiz, ou mesmo adicionar outro disco e aumentar o raiz, sem precisar fazer backup dos dados, formatar a partição e copiar os dados de volta. Observe o mesmo exemplo utilizando volumes:

 Ponto de Montagem PartiçãoTamanho
/boot/dev/sda1500 Megabytes
 Swap/dev/vg00/swap1 Gigabyte
 //dev/vg00/root6 Gigabytes
/home/dev/vg00/home4 Gigabytes

Em grandes sistemas com muitos discos, é praticamente inviável gerenciar os discos sem o uso do LVM.

É importante que você saiba que existem duas versões do LVM: 1 e 2. A versão 2 é suportada pelo Kernel 2.6 e 3.x, e pelo Kernel 2.4 com aplicação de alguns patches.

As versões de Kernels 4.x e 5.x já suportam o LVM versão 2.

A única partição que não pode ser utilizada com o gerenciador de volumes é a /boot.

Terminologia do LVM

Antes de mostrar os comandos do LVM, você precisa entender a terminologia que o LVM utiliza:

  • Volume Físico: É um disco ou algum hardware que se comporte como um disco (como um storage que use RAID);
  • Volume Group: É uma abstração do LVM que congrega volumes lógicos e volumes físicos em uma mesma unidade administrativa;
  • Volume Lógico: É o equivalente a uma partição em um sistema não-LVM.

Passo a passo para trabalhar com o LVM

Para trabalhar com o LVM, você precisa inicializar os discos para o LVM, depois criar pelo menos um grupo de Volumes, criar pelo menos um volume lógico no grupo que acabou de criar, formatar o volume com o sistema de arquivos desejado e por último montá-lo.

Resumidamente, é preciso fazer os seguintes passos:

  1. Se for utilizar apenas uma partição de um disco, é preciso criá-la com o fdisk ou parted e mudar o seu tipo para 8e (LVM), caso contrário, basta usar todo o disco com o pvcreate;
  2. Inicializar os volumes físicos (partições ou discos) com o comando pvcreate;
  3. Criar um volume group com o comando vgcreate;
  4. Ativar um volume group com o comando vgchange;
  5. Criar um volume lógico com o comando lvcreate;
  6. Formatar o volume lógico com o sistema de arquivos desejado com o mkfs.
  7. Montar o volume lógico com o mount.

Criando partições LVM

Se você não deseja utilizar todo o disco como LVM, pode usar o fdisk para criar uma ou mais partições tipo LVM. Para criar uma partição LVM com o fdisk, você cria a partição normalmente e altera o tipo dela para 8e.

Para exemplificar, imaginemos que  o sistema foi instalado no disco /dev/sda.

E para o LVM serão utilizados mais dois discos:  /dev/sdb e /dev/sdc que não estão particionados.

Antes de adicionar um disco ou partição como um volume físico do LVM é preciso inicializá-lo com o comando pvcreate.

Inicializando volumes físicos

Para inicializar volumes físicos de discos inteiros o comando é: pvcreate e o caminho completo da partição ou disco:

# pvcreate /dev/sdb
Physical volume “/dev/sdb” successfully created
# pvcreate /dev/sdc
Physical volume “/dev/sdc” successfully created

Criando um volume group

Depois de inicializar os discos, é preciso criar um grupo de volume com os discos com o comando vgcreate:

# vgcreate meuvolume /dev/sdb /dev/sdc
  Volume group “meuvolume” successfully created

Ativando um volume group

Após criar o volume group, é necessário ativá-lo com o comando vgchange:

# vgchange -a y meuvolume
  0 logical volume(s) in volume group “meuvolume” now active

Após o reboot do sistema é necessário ativar o volume group novamente. Então, faz-se necessário incluir esse comando nos scripts de carga do sistema.

Criando volumes lógicos

O comando lvcreate cria volumes lógicos. No exemplo será criado  um volume lógico de 1GB chamado logico1 no volume meuvolume:

# lvcreate -L 1000 -n logico1 meuvolume
Logical volume “logico1” created

Como no nosso exmplo os discos  /dev/sdb e /dev/sdc têm 2GB cada um, é possível criar até 4 volumes de 1GB cada, ou 1 só volume lógico de 4GB, como no exemplo abaixo:

# lvcreate -L 4000 -n logico1 meuvolume
  Logical volume “logico1” created

Ativando o volume lógico

O comando lvchange ativa / desativa o volume lógico para uso:

Para ATIVAR:

# lvchange -a y /dev/meuvolume/logico1

Para DESATIVAR:

# lvchange -a n /dev/meuvolume/logico1

Formatando o volume lógico

Qualquer sistema de arquivos pode ser usado para formatar o volume lógico:

# mkfs.ext4 /dev/meuvolume/logico1
mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
(…)

Depois de formatar o volume lógico, é necessário montá-lo:

# mount /dev/meuvolume/logico1 /mnt

Após esses passos o volume lógico estará pronto para uso.

Você também pode usar o LVM para aumentar ou diminuir o tamanho de um volume.

Aumentando o tamanho do volume com um disco novo

Primeiro é necessário criar o volume físico:

# pvcreate /dev/sdd

Atribuí-lo ao grupo:

# vgextend meugrupo /dev/sdd

Desmontar o volume lógico:

# umount /dev/meuvolume/logico1

Aumente o grupo de volume lógico:

# lvextend -L +13090M /dev/meuvolume/logico1

Procurar por erro e reparação do mesmo:

# e2fsck -f /dev/meuvolume/logico1

Finalmente, redimensionamos:

# resize2fs /dev/meuvolume/logico1

Agora basta montar novamente:

# mount /dev/meuvolume/logico1 /mnt

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe