LVM no Linux: Criar, Redimensionar e Gerenciar Volumes Lógicos
O LVM é útil para gerir os discos de forma inteligente através de volumes. Conheça essa tecnologia usada em muitas distribuições
O LVM é um gerenciador de discos do Kernel do Linux. Ele permite que discos sejam trocados sem interrupção do serviço (hotswap), alterar o tamanho dos volumes, criar backup de imagens dos volumes, criar um volume único a partir de vários # mount /dev/meuvolume/logico1 /dadosdiscos (similar ao RAID 0) ou criar volumes espelhados em mais de um disco (similar ao RAID 1).
O LVM possibilita 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:
/boot /dev/hda1 50 Megabytes
swap /dev/hda2 256 Megabytes
/ /dev/hda3 2 Gigabytes
/home /dev/hda4 6 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:
/boot /dev/hda1 50Mb
swap /dev/vg00/swap 256Mb
/ /dev/vg00/root 2 Gigabytes
/home /dev/vg00/home 6 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.
A única partição linux que não pode ser utilizada com o gerenciador de volumes é a /boot.
Terminologia do LVM
- 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 é preciso fazer os seguintes passos:
- Se for utilizar apenas uma partição de um disco, é preciso criá-la com o fdisk e mudar o seu tipo;
- Inicializar os volumes físicos (partições ou discos) com o comando pvcreate;
- Criar um volume group com o comando vgcreate;
- Ativar um volume group com o comando vgchange;
- Criar um volume lógico com o comando lvcreate;
- Formatar o volume lógico com o sistema de arquivos desejado.
Preparar as partições para o LVM com fdisk
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 sda. E serão utilizados dois discos para o LVM: sdb e 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.
Inicializar volumes físicos com o pvcreate
Para inicializar volumes físicos de discos inteiros o comando é o 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
Lembre-se de antes trocar o tipo das partições com o fdisk para 8e.
Criando um volume group com vgcreate
Depois de inicializadas, é 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 com vgchange
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.
Remover um volume group com o vgremove
Para remover um volume group não pode haver volumes lógicos dentro do grupo.
O comando para remover volumes é o vgremove e o volume precisa estar desativado:
# vgchange -a n meuvolume
# vgremove meuvolume
Adicionar novos “volumes físicos ao volume group com vgextend
Novos discos podem ser adicionados ao volume group com o comando:
# vgextend meuvolume /dev/sdd
Remover volumes “físicos do volume group” com vgreduce
Discos podem ser removidos do volume group com o comando vgreduce.
Você precisa ter certeza de que não há nenhum volume lógico no volume físico, que pode ser migrado para outro disco.
# vgreduce meuvolume /dev/sdd
Criar volumes lógicos com o lvcreate
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 o sdb e 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
Ativar o volume lógico com lvchange
O comando lvchange ativa / desativa o volume lógico para uso:
ATIVAR:
# lvchange -a y /dev/meuvolume/logico1
DESATIVAR:
# lvchange -a n /dev/meuvolume/logico1
Formatar o volume lógico com o mkfs
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
(…)
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 25 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
Depois de formatar o volume lógico, é necessário montá-lo:
# mount /dev/meuvolume/logico1 /dados
Após esses passos o volume lógico estará pronto para uso.
Aumentar o tamanho do volume
Primeiro é necessário criar o volume físico:
# pvcreate /dev/hda8
Atribuí-lo ao grupo:
# vgextend meugrupo /dev/hda8
Desmonte 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:
# mount /dev/meuvolume/logico1 /dados
Diminuindo o tamanho do volume
Desmontar o sistema de arquivos:
# umount /dev/meuvolume/logico1
Checar o volume lógico contra erros:
# e2fsck -f /dev/meuvolume/logico1
Diminuir a partição:
# resize2fs /dev/meuvolume/logico1 524288
Diminuir o volume lógico:
# lvreduce -L -50M //dev/meuvolume/logico1
Remontar o sistema de arquivos:
# mount /dev/meuvolume/logico1 /dados
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
That was just one piece. The course teaches the whole path — from your first command to exam day.