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:
- http://www.linuxdevcenter.com/pub/a/linux/2006/04/27/managing-disk-space-with-lvm.html
- http://www.debian-administration.org/articles/410
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
ifconfigO 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 -lA 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 tableAinda 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/sdbserver1:~# 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:
- software que roda na inicialização (por exemplo, versões antigas do LILO)
- 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/sdeEntão execute
fdisk -lnovamente. 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 tableAgora preparamos nossas novas partições para LVM:
pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1server1:~# 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 sucessoVamos reverter esta última ação para fins de treinamento:
pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1server1:~# 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 sucessoEntão execute
pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1novamente:
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 sucessoAgora execute
pvdisplaypara 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-EKdRK6Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.