Logical Volume Manager – LVM no Linux [Guia Básico]
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.
1 Comentário
Prof Uirá
Consigo de um disco particionado LVM voltar ele para particoes fisicas sem alteracao do conteudo?