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 discos (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 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

Gostou desta aula? Conheça todos os outros comandos do curso de LPIC 101. E veja como passar no exames da LPIC-1

Logical Volume Manager – LVM no Linux
Classificado como:                            

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.