LVM · 9 min read · Sep 22, 2025

Um Guia para Iniciantes sobre LVM

Versão 1.0
Autor: Falko Timme
Última atualização: 2015-02-09

Este guia mostra como trabalhar com LVM (Gerenciamento de Volume Lógico) no Linux. Ele também descreve como usar LVM junto com RAID1 em um capítulo extra. Como LVM é um tópico bastante abstrato, este artigo vem com uma imagem VMware do Debian Etch que você pode baixar e iniciar, e nesse sistema Debian Etch você pode executar todos os comandos que eu executo aqui e comparar seus resultados com os meus. Através dessa abordagem prática, você deve se acostumar com LVM muito rapidamente.

No entanto, não dou nenhuma garantia de que este tutorial funcionará para você!

1 Nota Preliminar

Este tutorial foi inspirado por dois artigos que li:

Estes são ótimos artigos, mas difíceis de entender se você nunca trabalhou com LVM antes. É por isso que criei esta imagem VMware do Debian Etch que você pode baixar e executar no VMware Server ou VMware Player (veja https://www.howtoforge.com/import_vmware_images para aprender como fazer isso).

Instalei todas as ferramentas que precisamos durante o curso deste guia no sistema Debian Etch (executando

apt-get install lvm2 dmsetup mdadm reiserfsprogs xfsprogs

) para que você não precise se preocupar com isso.

A rede do sistema Debian Etch está configurada através de DHCP, então você não precisa se preocupar com endereços IP conflitantes. A senha do root é howtoforge. Você também pode se conectar a esse sistema com um cliente SSH como o PuTTY. Para descobrir o endereço IP do sistema Debian Etch, execute

ifconfig

O sistema possui seis discos rígidos SCSI, /dev/sda - /dev/sdf. /dev/sda é usado para o próprio sistema Debian Etch, enquanto usaremos /dev/sdb - /dev/sdf para LVM e RAID. /dev/sdb - /dev/sdf cada um tem 80GB de espaço em disco. No início, agiremos como se cada um tivesse apenas 25GB de espaço em disco (usando assim apenas 25GB em cada um deles), e ao longo do tutorial, “substituiremos” nossos discos rígidos de 25GB por discos rígidos de 80GB, demonstrando assim como você pode substituir discos rígidos pequenos por maiores no LVM.

O artigo http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html usa discos rígidos de 250GB e 800GB, mas alguns comandos como pvmove demoram muito com tamanhos de disco rígido assim, por isso decidi usar discos rígidos de 25GB e 80GB (isso é suficiente para entender como o LVM funciona).

1.1 Resumo

Baixe esta imagem VMware do Debian Etch (~310MB) e inicie-a assim. Faça login como root com a senha howtoforge.

2 Layout do LVM

Basicamente, o LVM se parece com isto:

Você tem um ou mais volumes físicos (/dev/sdb1 - /dev/sde1 em nosso exemplo), e nesses volumes físicos você cria um ou mais grupos de volumes (por exemplo, fileserver), e em cada grupo de volumes você pode criar um ou mais volumes lógicos. Se você usar múltiplos volumes físicos, cada volume lógico pode ser maior do que um dos volumes físicos subjacentes (mas, claro, a soma dos volumes lógicos não pode exceder o espaço total oferecido pelos volumes físicos).

É uma boa prática não alocar todo o espaço para volumes lógicos, mas deixar algum espaço não utilizado. Dessa forma, você pode aumentar um ou mais volumes lógicos mais tarde, se sentir necessidade.

Neste exemplo, criaremos um grupo de volumes chamado fileserver, e também criaremos os volumes lógicos /dev/fileserver/share, /dev/fileserver/backup e /dev/fileserver/media (que usarão apenas metade do espaço oferecido pelos nossos volumes físicos por enquanto - assim podemos mudar para RAID1 mais tarde (também descrito neste tutorial)).

3 Nossa Primeira Configuração de LVM

Vamos descobrir sobre nossos discos rígidos:

fdisk -l

A saída se parece com isto:

server1:~# fdisk -l  
   
 Disco /dev/sda: 21.4 GB, 21474836480 bytes  
 255 heads, 63 sectors/track, 2610 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
   
    Device Boot      Start         End      Blocks   Id  System  
 /dev/sda1   *           1          18      144553+  83  Linux  
 /dev/sda2             19        2450    19535040   83  Linux  
 /dev/sda4            2451        2610     1285200   82  Linux swap / Solaris  
   
 Disco /dev/sdb: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
   
 Disco /dev/sdb doesn't contain a valid partition table  
   
 Disco /dev/sdc: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
   
 Disco /dev/sdc doesn't contain a valid partition table  
   
 Disco /dev/sdd: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
   
 Disco /dev/sdd doesn't contain a valid partition table  
   
 Disco /dev/sde: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
   
 Disco /dev/sde doesn't contain a valid partition table  
   
 Disco /dev/sdf: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
   
 Disco /dev/sdf doesn't contain a valid partition table

Ainda não há partições em /dev/sdb - /dev/sdf. Vamos criar as partições /dev/sdb1, /dev/sdc1, /dev/sdd1 e /dev/sde1 e deixar /dev/sdf intocado por enquanto. Agimos como se nossos discos rígidos tivessem apenas 25GB de espaço em vez de 80GB por enquanto, portanto, atribuímos 25GB a /dev/sdb1, /dev/sdc1, /dev/sdd1 e /dev/sde1:

fdisk /dev/sdb

server1:~# fdisk /dev/sdb
O número de cilindros para este disco está definido como 10443.
Não há nada de errado com isso, mas isso é maior que 1024,
e pode, em certas configurações, causar problemas com:

  1. software que roda na inicialização (por exemplo, versões antigas do LILO)
  2. inicialização e software de particionamento de outros sistemas operacionais
    (por exemplo, DOS FDISK, OS/2 FDISK)

Comando (m para ajuda): <– m
Ação do comando
a alternar uma flag de inicialização
b editar bsd disklabel
c alternar a flag de compatibilidade dos
d excluir uma partição
l listar tipos de partição conhecidos
m imprimir este menu
n adicionar uma nova partição
o criar uma nova tabela de partição DOS vazia
p imprimir a tabela de partições
q sair sem salvar alterações
s criar uma nova Sun disklabel vazia
t mudar o id do sistema de uma partição
u mudar unidades de exibição/entrada
v verificar a tabela de partições
w escrever tabela no disco e sair
x funcionalidade extra (apenas para especialistas)

Comando (m para ajuda): <– n
Ação do comando
e estendida
p partição primária (1-4)
<– p
Número da partição (1-4): <– 1
Primeiro cilindro (1-10443, padrão 1): <–
Usando o valor padrão 1
Último cilindro ou +tamanho ou +tamanhoM ou +tamanhoK (1-10443, padrão 10443): <– +25000M

Comando (m para ajuda): <– t
Partição selecionada 1
Código hex (tipo L para listar códigos): <– L

0 Vazio 1e Oculto W95 FAT1 80 Antigo Minix be Inicialização Solaris
1 FAT12 24 NEC DOS 81 Minix / antigo Lin bf Solaris
2 raiz XENIX 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
3 usr XENIX 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 84 OS/2 oculto C: c6 DRDOS/sec (FAT-
5 Estendida 41 PPC PReP Boot 85 Linux estendida c7 Syrinx
6 FAT16 42 SFS 86 conjunto de volume NTFS da Dados não FS
7 HPFS/NTFS 4d QNX4.x 87 conjunto de volume NTFS db CP/M / CTOS / .
8 AIX 4e QNX4.x 2ª parte 88 Linux texto de Dell Utility
9 AIX inicializável 4f QNX4.x 3ª parte 8e Linux LVM df BootIt
a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e1 acesso DOS
b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O
c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS e4 SpeedStor
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs
f W95 Ext’d (LBA) 54 OnTrackDM6 a5 FreeBSD ee EFI GPT
10 OPUS 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
11 Oculto FAT12 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
12 Diagnóstico Compaq 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
14 Oculto FAT16 <3 61 SpeedStor a9 NetBSD f4 SpeedStor
16 Oculto FAT16 63 GNU HURD ou Sys ab Darwin boot f2 DOS secundário
17 Oculto HPFS/NTF 64 Novell Netware b7 BSDI fs fd Linux raid auto
18 AST SmartSleep 65 Novell Netware b8 swap BSDI fe LANstep
1b Oculto W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid ff BBT
1c Oculto W95 FAT3 75 PC/IX
Código hex (tipo L para listar códigos): <– 8e
Mudou o tipo de sistema da partição 1 para 8e (Linux LVM)

Comando (m para ajuda): <– w
A tabela de partições foi alterada!

Chamando ioctl() para reler a tabela de partições.
Sincronizando discos.

Agora fazemos o mesmo para os discos rígidos /dev/sdc - /dev/sde:

fdisk /dev/sdc  
 fdisk /dev/sdd  
 fdisk /dev/sde

Então execute

fdisk -l

novamente. A saída deve se parecer com isto:

server1:~# fdisk -l  
   
 Disco /dev/sda: 21.4 GB, 21474836480 bytes  
 255 heads, 63 sectors/track, 2610 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
   
    Device Boot      Start         End      Blocks   Id  System  
 /dev/sda1   *           1          18      144553+  83  Linux  
 /dev/sda2             19        2450    19535040   83  Linux  
 /dev/sda4            2451        2610     1285200   82  Linux swap / Solaris  
   
 Disco /dev/sdb: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
   
    Device Boot      Start         End      Blocks   Id  System  
 /dev/sdb1             1        3040    24418768+  8e  Linux LVM  
   
 Disco /dev/sdc: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
   
    Device Boot      Start         End      Blocks   Id  System  
 /dev/sdc1             1        3040    24418768+  8e  Linux LVM  
   
 Disco /dev/sdd: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
   
    Device Boot      Start         End      Blocks   Id  System  
 /dev/sdd1             1        3040    24418768+  8e  Linux LVM  
   
 Disco /dev/sde: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
   
    Device Boot      Start         End      Blocks   Id  System  
 /dev/sde1             1        3040    24418768+  8e  Linux LVM  
   
 Disco /dev/sdf: 85.8 GB, 85899345920 bytes  
 255 heads, 63 sectors/track, 10443 cylinders  
 Units = cylinders of 16065 * 512 = 8225280 bytes  
   
 Disco /dev/sdf doesn't contain a valid partition table

Agora preparamos nossas novas partições para LVM:

pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
server1:~# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1  
   Volume físico "/dev/sdb1" criado com sucesso  
   Volume físico "/dev/sdc1" criado com sucesso  
   Volume físico "/dev/sdd1" criado com sucesso  
   Volume físico "/dev/sde1" criado com sucesso

Vamos reverter esta última ação para fins de treinamento:

pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
server1:~# pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1  
   Rótulos no volume físico "/dev/sdb1" apagados com sucesso  
   Rótulos no volume físico "/dev/sdc1" apagados com sucesso  
   Rótulos no volume físico "/dev/sdd1" apagados com sucesso  
   Rótulos no volume físico "/dev/sde1" apagados com sucesso

Então execute

pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

novamente:

server1:~# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1  
   Volume físico "/dev/sdb1" criado com sucesso  
   Volume físico "/dev/sdc1" criado com sucesso  
   Volume físico "/dev/sdd1" criado com sucesso  
   Volume físico "/dev/sde1" criado com sucesso

Agora execute

pvdisplay

para aprender sobre o estado atual dos seus volumes físicos:

server1:~# pvdisplay  
   --- NOVO Volume físico ---  
   Nome do PV               /dev/sdb1  
   Nome do VG  
   Tamanho do PV            23.29 GB  
   Alocável                NÃO  
   Tamanho do PE (KByte)   0  
   Total PE                0  
   PE Livre                0  
   PE Alocado             0  
   UUID do PV              G8lu2L-Hij1-NVde-sOKc-OoVI-fadg-Jd1vyU  
   
   --- NOVO Volume físico ---  
   Nome do PV               /dev/sdc1  
   Nome do VG  
   Tamanho do PV            23.29 GB  
   Alocável                NÃO  
   Tamanho do PE (KByte)   0  
   Total PE                0  
   PE Livre                0  
   PE Alocado             0  
   UUID do PV              40GJyh-IbsI-pzhn-TDRq-PQ3l-3ut0-AVSE4B  
   
   --- NOVO Volume físico ---  
   Nome do PV               /dev/sdd1  
   Nome do VG  
   Tamanho do PV            23.29 GB  
   Alocável                NÃO  
   Tamanho do PE (KByte)   0  
   Total PE                0  
   PE Livre                0  
   PE Alocado             0  
   UUID do PV              4mU63D-4s26-uL00-r0pO-Q0hP-mvQR-2YJN5B  
   
   --- NOVO Volume físico ---  
   Nome do PV               /dev/sde1  
   Nome do VG  
   Tamanho do PV            23.29 GB  
   Alocável                NÃO  
   Tamanho do PE (KByte)   0  
   Total PE                0  
   PE Livre                0  
   PE Alocado             0  
   UUID do PV              3upcZc-4eS2-h4r4-iBKK-gZJv-AYt3-EKdRK6
Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.