fbpx Certificação Linux: Logical Volume Manager - LVM no Linux [Guia Básico]

Blog

Logical Volume Manager - LVM no Linux [Guia Básico]

📅 07/03/2019 ⏱ 7 min ✍️ Uira Ribeiro
Linuxcomandoshow-to
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:

  1. Se for utilizar apenas uma partição de um disco, é preciso criá-la com o fdisk e mudar o seu tipo;
  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.

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

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