fbpx Certificação Linux: LVM no Linux (gerenciador de volumes) [Guia Básico]

Blog

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

📅 01/01/2019 ⏱ 7 min ✍️ Uira Ribeiro
Linuxcomandos
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

Uira Ribeiro

Prof. Uirá Ribeiro

Chair do Board do Linux Professional Institute

Especialista Linux com mais de 20 anos de experiência.
Autor de 5 livros e mentor de mais de 14.000 alunos certificados.
20 certificações de alto nível, incluindo LPIC-3, CKA, RHCE e AWS Solutions Architect.

WhatsApp