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ção | Tamanho |
/boot | /dev/sda1 | 500 Megabytes |
Swap | /dev/sda2 | 1 Gigabyte |
/ | /dev/sda3 | 6 Gigabytes |
/home | /dev/sda4 | 4 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ção | Tamanho |
/boot | /dev/sda1 | 500 Megabytes |
Swap | /dev/vg00/swap | 1 Gigabyte |
/ | /dev/vg00/root | 6 Gigabytes |
/home | /dev/vg00/home | 4 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:
- 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;
- 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 com o mkfs.
- 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
Tag:/dev, bash, certificação, certificaçãolinux, code, Comptia, developer, empreendedorismo, exame, freesoftware, gnu, hack, Linux, linuxfan, linuxfun, linuxmint, lovelinux, LPI, LPIC, management, nerd, opensource, php, prova, shell, software, softwarelivre, sql, tech, ti, unix