Vous êtes sur la page 1sur 21

Gerênciamento avançado de discos com

LVM.

Colaboração: Rodrigo Klein Santos

Data de Publicação: 22 de Janeiro de 2005

Infelizmente o assunto é bastante


extenso, mas ao decorrer do tutorial vou
sempre dar exemplos para tornar a leitura
bastante didática e clara.

Vamos falar sobre uma ferramenta


bastante difundida, o LVM, mas que as
vezes por falta de informação acaba
deixando de ser usada.

O LVM (Logical Volume Manager) é um


"Gerênciador de Volumes Lógicos",
bastante exivel, sua implementação no
Linux segue os mesmos padrões
(comandos) do HP-UX, então este tutorial
servirá também para o HP-UX, visto a
similaridade dos comandos.

Oque muda no HP-UX, é que pra saber


quais são os discos usa o comando

# /usr/sbin/ioscan -fC disk

Não pense que você não precisaria do


LVM, por saber usar o "parted", são coisas
distintas, o LVM vai bem mais além do que
simplesmente aumentar uma partição...

Quando começamos a instalação de um


novo servidor, geralmente já temos em
mente qual será a sua aplicação, a partir
dessas informações, de nimos quantos
lesystems teremos, qual vai ser o
tamanho deles, quantos discos etc...
Mas como nem tudo é perfeito, esse
servidor pode ter depois um trafego maior
do que o esperado, um numero de
usuarios maior do que planejamos, en m,
são varias possibilidades que podem
de nitivamente te dar algum trabalho
extra, de ter que aumentar uma partição,
adcionar mais um disco, mas como fazer
isso da melhor maneira possivel e sem
traumas ?

A resposta está no LVM...

O objetivo deste tutorial é tornar mais facil


o uso do LVM por usuários de todos os
niveis, visto que o LVM vem se tornando
um importante recurso na administração
de servidores.

Antes de iniciar a parte prática, vamos


entender alguns conceitos do LVM...

PV = Phisical Volume : O disco em si, a


partição sica do disco.

PE = Phisical Extends : Extensões sicas,


ou seja, pequenos pedaços de um VG, um
VG é dividido em varios PEs

VG = Volume Group : Como o nome já diz,


grupo de volumes. Um VG é responsavel
por agrupar um ou mais dicos/Partições
(PV - Volumes sicos).

LV = Logical Volume : É o volume lógico, ou


seja, é uma partição (lógica) de um VG
(Volume físico).

Algumas observações importantes...

Para alterar um LVOL, você deve


desmonta-lo antes.
NUNCA deixe de fazer backup (faça dois,
cuidado nunca é demais) antes de alterar
uma con guração de LVM.
Você pode ter mais de um VG em um
mesmo sistema (VG01, VG02, VG03), cada
qual com um ou mais discos...
Não misture discos SCSI/SATA/IDE em
um mesmo VG, isso afeta a performance
visto que eles tem velocidades
diferentes, se você estiver nesta situação,
faça VGs distintos para cada tipo.
NUNCA deixe de fazer backup (por via
das dúvidas estou escrecendo
novamente esta observação!).
Não tenha medo de usar LVM, ele já é
usado a bastante em *nix e bastante
seguro, você só tem a ganhar com sua
utilização.

No exemplo abaixo usaremos um disco de


20GB para ilustrar...

Vamos criar varias partiçoes no mesmo


disco para melhor ilustrar o uso de LVM,
lembramos que no caso de vários discos
você criaria uma partição por disco.

Criamos 4 partições no /dev/hdd

Saida do FDISK

Disk /dev/hdd: 20.0 GB, 20060135424 bytes


16 heads, 63 sectors/track, 38869 cylinders
Units = cilindros of 1008 * 512 = 516096 bytes

Dispositivo Boot Start End Blocks Id System


/dev/hdd1 1 9689 4883224+ 83 Linux
/dev/hdd2 9690 19378 4883256 83 Linux
/dev/hdd3 19379 29067 4883256 83 Linux
/dev/hdd4 29068 38756 4883256 83 Linux

Notem que elas estão com o "tipo" Linux


(default do fdisk na hora d criação),
prontas para receber o lesystem (ext2,
ext3, reiserfs etc), mas não pra receberem
LVM, precisamos alterar isso..

[root@server root]# fdisk /dev/hdd


O número de cilindros para este disco
está con gurado para 38869. Não existe
nada de errado, mas isto é maior que
1024, e pode em certas con gurações
causar problemas com: 1) programas que
executam em tempo de inicialização
(versões velhas do LILO) 2) inicialização e
programas de particionamento de outros
OSs (p.ex., DOS FDISK, OS/2 FDISK)

Comando (m para ajuda): p

Disk /dev/hdd: 20.0 GB, 20060135424 bytes


16 heads, 63 sectors/track, 38869 cylinders
Units = cilindros of 1008 * 512 = 516096 bytes

Dispositivo Boot Start End Blocks Id System


/dev/hdd1 1 9689 4883224+ 83 Linux
/dev/hdd2 9690 19378 4883256 83 Linux
/dev/hdd3 19379 29067 4883256 83 Linux
/dev/hdd4 29068 38756 4883256 83 Linux

Comando (m para ajuda): t


Número da partição (1-4): 1
Código hexadecimal (digite L para listar os códigos): 8e
O tipo da partição 1 foi alterado para 8e (Linux LVM)

Comando (m para ajuda): t


Número da partição (1-4): 2
Código hexadecimal (digite L para listar os códigos): 8e
O tipo da partição 2 foi alterado para 8e (Linux LVM)

Comando (m para ajuda): t


Número da partição (1-4): 3
Código hexadecimal (digite L para listar os códigos): 8e
O tipo da partição 3 foi alterado para 8e (Linux LVM)

Comando (m para ajuda): t


Número da partição (1-4): 4
Código hexadecimal (digite L para listar os códigos): 8e
O tipo da partição 4 foi alterado para 8e (Linux LVM)

Comando (m para ajuda): p

Disk /dev/hdd: 20.0 GB, 20060135424 bytes


16 heads, 63 sectors/track, 38869 cylinders
Units = cilindros of 1008 * 512 = 516096 bytes

Dispositivo Boot Start End Blocks Id System


/dev/hdd1 1 9689 4883224+ 8e Linux LVM
/dev/hdd2 9690 19378 4883256 8e Linux LVM
/dev/hdd3 19379 29067 4883256 8e Linux LVM
/dev/hdd4 29068 38756 4883256 8e Linux LVM

Comando (m para ajuda): w


A tabela de partições foi alterada!
Chamando ioctl() para reler tabela de partições.
Sincronizando discos.
[root@server root]#

</prompt>

Notem que alteramos o tipo da partição


para "Linux LVM". *Acima você pode notar
como isso foi feito no fdisk, para maiores
informações digite 'h' no fdisk ou consulte
o manual.

Agora vamos dizer ao LVM oque (quais


PVs) temos disponivel pra ele.

Criando os PVs.

[root@server root]# pvcreate /dev/hdd1


No physical volume label read from /dev/hdd1
Physical volume "/dev/hdd1" successfully created
[root@server root]# pvcreate /dev/hdd2
No physical volume label read from /dev/hdd2
Physical volume "/dev/hdd2" successfully created
[root@server root]# pvcreate /dev/hdd3
No physical volume label read from /dev/hdd3
Physical volume "/dev/hdd3" successfully created
[root@server root]# pvcreate /dev/hdd4
No physical volume label read from /dev/hdd4
Physical volume "/dev/hdd4" successfully created
[root@server root]#

</prompt>

Pronto, já mostramos para o LVM que ele


tem 4 PVs disponiveis... Mas como sei se
ele sabe disso ???

Use o comando.. #pvdisplay

[root@server root]# pvdisplay


--- NEW Physical volume ---
PV Name /dev/hdd1
VG Name
PV Size 4,66 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID RiWHqR-gyYe-jlIQ-pjku-cdI8-cQ8M-Lkj2Y4
--- NEW Physical volume ---
PV Name /dev/hdd2
VG Name
PV Size 4,66 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID oEcEui-mhig-RF06-fBd5-opAK-1Psf-bV1FLp

--- NEW Physical volume ---


PV Name /dev/hdd3
VG Name
PV Size 4,66 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID SwPpNo-Q1NR-OYPU-Tkah-y3ps-GsRs-3W4pSG

--- NEW Physical volume ---


PV Name /dev/hdd4
VG Name
PV Size 4,66 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID BFGFCi-2rKb-As0v-ucBy-ghkn-y869-yXcIm0

Criamos 4 PVs (Phisical Volume) em um


disco... *Vale lembrar que esses PVs
podem (e é o comum) estarem em discos
separados, estamos fazendo em um
mesmo disco por não poder utilizar mais
que um disco aqui (o servidor é de
produção!). ;-)

Vamos criar 2 VGs... cada um com 2 PVs,


usando o comando #vgcreate

[root@server root]# vgcreate VG01 /dev/hdd1 /dev/hdd2


Volume group "VG01" successfully created
[root@server root]# vgcreate VG02 /dev/hdd3 /dev/hdd4
Volume group "VG02" successfully created
[root@server root]#
Com o comando #vgcreate , criei 2 VGs,
com o nome de VG01 e VG02 * O nome
pode ser qualquer um, eu faço com VG01
e VG02, por car mais facil de identi car
mas você pode criar por exemplo com
nome 'bancodedados','email','www' e por
ai vai...

Vamos veri car se os VGs foram criados


com o comando #vgdisplay.

[root@server root]# vgdisplay


--- Volume group ---
VG Name VG02
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 255
Cur LV 0
Open LV 0
Max PV 255
Cur PV 2
Act PV 2
VG Size 9,31 GB
PE Size 4,00 MB
Total PE 2384
Alloc PE / Size 0 / 0
Free PE / Size 2384 / 9,31 GB
VG UUID iWiIv6-L0FT-K0gV-JzJh-a8l5-1ouZ-H4r3yN

--- Volume group ---


VG Name VG01
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 255
Cur LV 0
Open LV 0
Max PV 255
Cur PV 2
Act PV 2
VG Size 9,31 GB
PE Size 4,00 MB
Total PE 2384
Alloc PE / Size 0 / 0
Free PE / Size 2384 / 9,31 GB
VG UUID B0o0rf-zvO1-uYT0-GW9L-kOez-H37z-0RzHIh
Podemos ver que realmente criamos 2 VG,
cada um com 2 PV...

Vamos agora explicar algumas linhas (as


mais importantes) da saida do comando
#vgdisplay

Nome do VG:
VG Name VG02

Acesso:
VG Access read/write

Status:
VG Status resizable

Numero maximo de LVs (Logical Volume) :


MAX LV 255

Numero de LVs no VG :
Cur LV 0

Numero de LVs montados :


Open LV 0

Numero maximo de PVs no VG :


Max PV 255

Numero atual de PVs no VG :


Cur PV 2

Tamanho do VG em GB/MB :
VG Size 9,31 GB

Tamanho de cada PE no VG (padrão 4MB) :


PE Size 4,00 MB

Quantidade de PEs no VG. (multiplique este numero por 4 para saber o


tamanho do VG) :
Total PE 2384

Numero de PEs alocados :


Alloc PE / Size 0 / 0

Numero de PEs livres :


Free PE / Size 2384 / 9,31 GB

Acima explicamos a saida do #vgdisplay,


atentem bastante para os valores em PE,
que geralmente são os mais importantes.

Agora que já temos os VGs, temos que


criar os LVs (LVOL), vamos utilizar o
comando #lvcreate.
[root@server root]# lvcreate -l 1000 -n LV01 VG01
Logical volume "LV01" created

Para verificar oque você fez, use o comando #lvdisplay


Explicando o comando...

lvcreate -l <numero de PEs> -n <nome do LV> <Nome do VG que você quer


criar o LV>

Dica : Você também pode usar o L


(Maiúsculo) para determinar o tamanho
em MB, para maiores informações #man
lvcreate .

[root@server root]# lvdisplay


--- Logical volume ---
LV Name /dev/VG01/LV01
VG Name VG01
LV UUID rQw1cG-jppl-TSJj-1wVw-8kud-oE5L-Jr1c46
LV Write Access read/write
LV Status available
# open 0
LV Size 3,91 GB
Current LE 1000
Segments 1
Allocation next free (default)
Read ahead sectors 0
Block device 253:0

Criamos um LV com 3.91GB, mas como se


eu não informei o tamanho ? Informamos
sim o tamanho, mas em PE, e vamos
lembrar que cada PE equivale a 4MB...

Logo 1000 x 4 = 4gb , que em miudos deu


3.91GB.

Só a titulo de curiosidade, vou novamente


executar o comando vgdisplay, para ver
oque mudou...

[root@server root]# vgdisplay VG01


--- Volume group ---
VG Name VG01
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 255
Cur LV 1
Open LV 0
Max PV 255
Cur PV 2
Act PV 2
VG Size 9,31 GB
PE Size 4,00 MB
Total PE 2384
Alloc PE / Size 1000 / 3,91 GB
Free PE / Size 1384 / 5,41 GB
VG UUID B0o0rf-zvO1-uYT0-GW9L-kOez-H37z-0RzHIh

Notem as linhas:

Cur LV 1

Alloc PE / Size 1000 / 3,91 GB


Free PE / Size 1384 / 5,41 GB

Dispensa explicações, visto que já falamos


sobre o assunto um pouco acima... Dica :
Use o comando #vgdisplay com a opção '-
v' para ter maiores informações sobre o
VG.

Já criamos um VG, um LV mas ainda não


estamos utilizando eles. Agora basta
formatar o mesmo com o lesystem
desejado e começar a utilizar.

Por exemplo, vamos formatar ele com


ext2.

Vamos formatar onde ? /dev/hdd1,


/dev/hdd2 ??? Não..! Lembra do comando
lvdisplay, lá temos o local que devemos
usar agora, que nada mais é do que uma
partição (lógica) do LVM.

Vamos formatar este com o sistema de


arquivos ext2.
Ele está em
/dev/<nome_do_VG>/<nome_do_LV>

[root@server root]# mke2fs /dev/VG01/LV01


mke2fs 1.35 (28-Feb-2004)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
768544 inodes, 1536000 blocks
76800 blocks (5.00%) reserved for the super user
First data block=0
47 block groups
32768 blocks per group, 32768 fragments per group
16352 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736

Writing inode tables: done


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.

Agora vamos montar o sistema de


arquivos....

[root@server root]# mkdir /LVM1

[root@server root]# mount /dev/VG01/LV01 /LVM1

[root@server root]# df -h
Sist. Arq. Tam Usad Disp Uso% Montado em
/dev/hda2 28G 16G 10G 62% /
/dev/hda1 145M 5,9M 132M 5% /boot
none 507M 0 507M 0% /dev/shm
/dev/mapper/VG01-LV01
3,9G 33M 3,7G 1% /LVM1

Pronto, o seu LVM está pronto pra usar...


Mas ainda não conseguimos ver a
principal utilidade do LVM com os
exemplos acima.. A principal utilidade do
LVM é que você pode aumentar ou
diminuir seu LV...
Como exemplo vamos aumentar o nosso
primeiro LV.

Ele tem 3.9GB

Usaremos o comando #lvextend

[root@server root]# umount /LVM1

[root@server root]# lvextend -l+500 /dev/VG01/LV01


Extending logical volume LV01 to 5,86 GB
Logical volume LV01 successfully resized

[root@server root]# mount /dev/VG01/LV01 /LVM1/


[root@server root]# df -h
Sist. Arq. Tam Usad Disp Uso% Montado em
/dev/hda2 28G 16G 10G 62% /
/dev/hda1 145M 5,9M 132M 5% /boot
none 507M 0 507M 0% /dev/shm
/dev/mapper/VG01-LV01
5,8G 20K 5,5G 1% /LVM1

Aumentamos o nosso LV01 em mais 500


PEs, totalizando agora 5,86GB (antes
3,9GB). Mas não aumentamos ainda o
sistema de arquivos nos novos PEs..

Para isso usaremos o #resize2fs.

Desmonte o seu LV antes.

[root@server root]# umount /LVM1

[root@server root]# resize2fs /dev/VG01/LV01


resize2fs 1.35 (28-Feb-2004)
The filesystem is already 1536000 blocks long. Nothing to do!

Nota.. Para sistemas de arquivos reiserfs,


utilize o comando #resize_reiserfs

Pronto, agora já aumentamos um


determinado LV, mas e como reduzi-lo ???

Essa opção também é bastante comum,


visto que as vezes podemos ter
necessidade de mais espaço em disco e
não temos a opção de comprar ou colocar
mais um disco, oque podemos fazer é
diminuir um determinado LV para poder
alocar mais PEs em outro LV. Vale lembrar
que eles devem estar no mesmo VG.

Utilizaremos o comando #lvreduce.

*Neste caso, faça backup, pois você VAI


perder seus dados.. O Backup é
importante tanto pra aumentar o LV
quanto para diminuir, mas no caso de
aumentar, você só perde dados se der
algum problema 'anormal' (ex: queda de
energia durante o processo), mas mesmo
assim é bastante importante fazer backup,
nunca se sabe !

[root@server root]# umount /LVM1/


[root@server root]# lvreduce -l-800 /dev/VG01/LV01
WARNING: Reducing active logical volume to 2,73 GB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce LV01? [y/n]: y
Logical volume LV01 successfully resized

[root@server root]# mke2fs /dev/VG01/LV01


mke2fs 1.35 (28-Feb-2004)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
359040 inodes, 716800 blocks
35840 blocks (5.00%) reserved for the super user
First data block=0
22 block groups
32768 blocks per group, 32768 fragments per group
16320 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912

Writing inode tables: done


Writing superblocks and filesystem accounting information:
done

This filesystem will be automatically checked every 27 mounts or


180 days, whichever comes first. Use tune2fs -c or -i to override.

[root@server root]# mount /dev/VG01/LV01 /LVM1/


[root@server root]# df -h
Sist. Arq. Tam Usad Disp Uso% Montado em
/dev/hda2 28G 16G 10G 62% /
/dev/hda1 145M 5,9M 132M 5% /boot
none 507M 0 507M 0% /dev/shm

/dev/mapper/VG01-LV01
2,7G 20K 2,6G 1% /LVM1

Utilizamos o #lvreduce para diminuir o


tamanho de um LV.

Mas existem casos também que temos


que aumentar o tamano de um VG, e
como fariamos ? Como temos 4 PVs,
vamos tirar um do VG02 e colocar no
VG01.

Vamos criar um segundo LV (LV02) no


VG01 para preencher todo o espaço do
VG01 (para ilustrar um caso real), para
que quando adcionar o novo PV, ele
aumente o espaço em PE que é de 0
(zero).

*Relembrando - lvcreate -l <numero de


PEs> -n <nome do LV> <Nome do VG>

[root@server root]# lvcreate -l 1684 -n LV02 VG01


Logical volume "LV02" created

[root@server root]# mkfs.ext2 /dev/VG01/LV02


mke2fs 1.35 (28-Feb-2004)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
863264 inodes, 1724416 blocks
86220 blocks (5.00%) reserved for the super user
First data block=0
53 block groups
32768 blocks per group, 32768 fragments per group
16288 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Writing inode tables: done


Writing superblocks and filesystem accounting information:
done

This filesystem will be automatically checked every 39 mounts or


180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@server root]# vgdisplay VG01
--- Volume group ---
VG Name VG01
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 7
VG Access read/write
VG Status resizable
MAX LV 255
Cur LV 2
Open LV 1
Max PV 255
Cur PV 2
Act PV 2
VG Size 9,31 GB
PE Size 4,00 MB
Total PE 2384
Alloc PE / Size 2384 / 9,31 GB
Free PE / Size 0 / 0
VG UUID B0o0rf-zvO1-uYT0-GW9L-kOez-H37z-0RzHIh

Podemos notar que agora o VG01 não tem


mais nenhum PE livre. Free PE / Size 0 / 0

Abaixo vamos conferir o resultado de um


#df e do comando vgdisplay, agora com
os dois LVs

[root@server root]# mkdir /LVM2


[root@server root]# mount /dev/VG01/LV02 /LVM2

[root@server root]# df -h
Sist. Arq. Tam Usad Disp Uso% Montado em
/dev/hda2 28G 16G 10G 62% /
/dev/hda1 145M 5,9M 132M 5% /boot
none 507M 0 507M 0% /dev/shm
/dev/mapper/VG01-LV01
2,7G 20K 2,6G 1% /LVM1
/dev/mapper/VG01-LV02
6,5G 20K 6,2G 1% /LVM2

Podemos notar agora que o nosso VG está


com todos os seus PEs alocados, mas
temos a situação que preciso aumentar a
partição LV01, como faço ?

[root@server root]# vgdisplay -v VG01


Using volume group(s) on command line
Finding volume group "VG01"
--- Volume group ---
VG Name VG01
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 7
VG Access read/write
VG Status resizable
MAX LV 255
Cur LV 2
Open LV 2
Max PV 255
Cur PV 2
Act PV 2
VG Size 9,31 GB
PE Size 4,00 MB
Total PE 2384
Alloc PE / Size 2384 / 9,31 GB
Free PE / Size 0 / 0
VG UUID B0o0rf-zvO1-uYT0-GW9L-kOez-H37z-0RzHIh

--- Logical volume ---


LV Name /dev/VG01/LV01
VG Name VG01
LV UUID rQw1cG-jppl-TSJj-1wVw-8kud-oE5L-Jr1c46
LV Write Access read/write
LV Status available
# open 1
LV Size 2,73 GB
Current LE 700
Segments 1
Allocation next free (default)
Read ahead sectors 0
Block device 253:0

--- Logical volume ---


LV Name /dev/VG01/LV02
VG Name VG01
LV UUID SXgnqF-GZrH-dEax-LKno-4y44-SRp3-Q9rFU4
LV Write Access read/write
LV Status available
# open 1
LV Size 6,58 GB
Current LE 1684
Segments 2
Allocation next free (default)
Read ahead sectors 0
Block device 253:1

--- Physical volumes ---


PV Name /dev/hdd1
PV UUID RiWHqR-gyYe-jlIQ-pjku-cdI8-cQ8M-Lkj2Y4
PV Status allocatable
Total PE / Free PE 1192 / 0

PV Name /dev/hdd2
PV UUID oEcEui-mhig-RF06-fBd5-opAK-1Psf-bV1FLp
PV Status allocatable
Total PE / Free PE 1192 / 0
Não tenho mais discos, apenas tenho PV
sobrando no VG02, por isso vou tirar ele
de lá e colocar no VG01 para depois
aumentar o espaço daquela partição.

Utilizaremos o comando #vgreduce.

[root@server root]# vgreduce VG02 /dev/hdd3


Removed "/dev/hdd3" from volume group "VG02"

[root@server root]# vgdisplay -v VG02


Using volume group(s) on command line
Finding volume group "VG02"
--- Volume group ---
VG Name VG02
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 255
Cur LV 0
Open LV 0
Max PV 255
Cur PV 1
Act PV 1
VG Size 4,66 GB
PE Size 4,00 MB
Total PE 1192
Alloc PE / Size 0 / 0
Free PE / Size 1192 / 4,66 GB
VG UUID iWiIv6-L0FT-K0gV-JzJh-a8l5-1ouZ-H4r3yN

--- Physical volumes ---


PV Name /dev/hdd4
PV UUID BFGFCi-2rKb-As0v-ucBy-ghkn-y869-yXcIm0
PV Status allocatable
Total PE / Free PE 1192 / 1192

Notamos que o PV /dev/hdd3 não está


mais no VG02.

Agora vamos adciona-lo ao nosso VG01


que está necessitando de espaço.

[root@server root]# vgextend VG01 /dev/hdd3


Volume group "VG01" successfully extended

Agora vamos veri car que o nosso VG01


tem mais PEs livres (não tinha, estava com
0, lembra ?), devido a nossa ação de
adcionar mais um PV neste VG.

Comando #vgdisplay

[root@server root]# vgdisplay VG01


--- Volume group ---
VG Name VG01
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 8
VG Access read/write
VG Status resizable
MAX LV 255
Cur LV 2
Open LV 2
Max PV 255
Cur PV 3
Act PV 3
VG Size 13,96 GB
PE Size 4,00 MB
Total PE 3575
Alloc PE / Size 2384 / 9,31 GB
Free PE / Size 1191 / 4,65 GB
VG UUID B0o0rf-zvO1-uYT0-GW9L-kOez-H37z-0RzHIh

Agora o nosso VG01 tem mais 1191 PEs


disponiveis, e vou adcionar ele ao LV01

Abaixo a sequencia de comandos para


veri car e para adcionar.

[root@server root]# lvextend -l+1191 /dev/VG01/LV01


Extending logical volume LV01 to 7,39 GB
Logical volume LV01 successfully resized

[root@server root]# resize2fs /dev/VG01/LV01


resize2fs 1.35 (28-Feb-2004)
Please run 'e2fsck -f /dev/VG01/LV01' first.

[root@server root]# e2fsck -f /dev/VG01/LV01


e2fsck 1.35 (28-Feb-2004)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/VG01/LV01: 11/359040 files (0.0% non-contiguous), 11281/716800 blocks

[root@server root]# resize2fs /dev/VG01/LV01


resize2fs 1.35 (28-Feb-2004)
Resizing the filesystem on /dev/VG01/LV01 to 1936384 (4k) blocks.
The filesystem on /dev/VG01/LV01 is now 1936384 blocks long.

[root@server root]# mount /dev/VG01/LV01 /LVM1


[root@server root]# df -h
Sist. Arq. Tam Usad Disp Uso% Montado em
/dev/hda2 28G 16G 10G 62% /
/dev/hda1 145M 5,9M 132M 5% /boot
none 507M 0 507M 0% /dev/shm
/dev/mapper/VG01-LV02
6,5G 20K 6,2G 1% /LVM2
/dev/mapper/VG01-LV01
7,3G 20K 7,0G 1% /LVM1

Notem que a nossa partição LVM1 (LV01)


já está redimensionada.

Abaixo a titulo didático, vou apagar o


VG02, já que não o utilizamos, criamos ele
apenas para ns didáticos, e vamos
apaga-lo para demonstrar mais alguns
comandos do pacote LVM

Vou criar um LV no VG02 apenas para


demonstrar como deleta-lo.

[root@server root]# lvcreate -l1000 -n LV03 VG02


Logical volume "LV03" created

[root@server root]# vgdisplay -v VG02


Using volume group(s) on command line
Finding volume group "VG02"
--- Volume group ---
VG Name VG02
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 255
Cur LV 1
Open LV 0
Max PV 255
Cur PV 1
Act PV 1
VG Size 4,66 GB
PE Size 4,00 MB
Total PE 1192
Alloc PE / Size 1000 / 3,91 GB
Free PE / Size 192 / 768,00 MB
VG UUID iWiIv6-L0FT-K0gV-JzJh-a8l5-1ouZ-H4r3yN

--- Logical volume ---


LV Name /dev/VG02/LV03
VG Name VG02
LV UUID PPAHOG-v4d2-hClM-nUKy-crnG-0V3A-kwb6pw
LV Write Access read/write
LV Status available
# open 0
LV Size 3,91 GB
Current LE 1000
Segments 1
Allocation next free (default)
Read ahead sectors 0
Block device 253:2

--- Physical volumes ---


PV Name /dev/hdd4
PV UUID BFGFCi-2rKb-As0v-ucBy-ghkn-y869-yXcIm0
PV Status allocatable
Total PE / Free PE 1192 / 192

Deletando o LV (LV03) que acabamos de


criar.

[root@server root]# lvremove /dev/VG02/LV03


Do you really want to remove active logical volume "LV03"? [y/n]: y
Logical volume "LV03" successfully removed

[root@server root]# vgdisplay -v VG02


Using volume group(s) on command line
Finding volume group "VG02"
--- Volume group ---
VG Name VG02
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 255
Cur LV 0
Open LV 0
Max PV 255
Cur PV 1
Act PV 1
VG Size 4,66 GB
PE Size 4,00 MB
Total PE 1192
Alloc PE / Size 0 / 0
Free PE / Size 1192 / 4,66 GB
VG UUID iWiIv6-L0FT-K0gV-JzJh-a8l5-1ouZ-H4r3yN

--- Physical volumes ---


PV Name /dev/hdd4
PV UUID BFGFCi-2rKb-As0v-ucBy-ghkn-y869-yXcIm0
PV Status allocatable
Total PE / Free PE 1192 / 1192

Deletando o VG02

[root@server root]# vgremove VG02


Volume group "VG02" successfully removed

Deletando o PV do LVM, vamos supor que


este disco tenha dado problemas sicos, e
você vái tirar este disco (neste caso é uma
partição), mas em produção seria um
disco.

comando #pvremove

[root@server root]# pvremove /dev/hdd4


Labels on physical volume "/dev/hdd4" successfully wiped
You have new mail in /var/spool/mail/root

Coloque outro disco, particione, formate


pra LVM, crie o PV, adcione ele a um VG, e
depois a um LV... Bem vindo ao LVM. :-)

*Dica: caso algum VG esteja inativo, ative-


o com o comando #vgchange -ay , isso
ativará todos os VGs disponiveis.

Vous aimerez peut-être aussi