Ger?nciamento avan?ado de discos com LVM.

  • Post author:
  • Post category:Sem categoria

Este artigo foi originalmente postado no site Dicas-L da Universiade Unicamp.

Colabora??o: Rodrigo Klein Santos

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 flexivel, 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, definimos quantos filesystems 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, enfim, s?o varias possibilidades que
podem definitivamente 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 fisica do disco.

PE = Phisical Extends : Extens?es fisicas, 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 fisicos).

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 configura??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 filesystem (ext2, ext3, reiserfs etc),
mas n?o pra receberem LVM, precisamos alterar isso..

[[email protected] root]# fdisk /dev/hdd

O n?mero de cilindros para este disco est? configurado para 38869.
N?o existe nada de errado, mas isto ? maior que 1024,
e pode em certas configura??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.
[[email protected] root]#

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.

[[email protected] root]# pvcreate /dev/hdd1
No physical volume label read from /dev/hdd1
Physical volume “/dev/hdd1” successfully created
[[email protected] root]# pvcreate /dev/hdd2
No physical volume label read from /dev/hdd2
Physical volume “/dev/hdd2” successfully created
[[email protected] root]# pvcreate /dev/hdd3
No physical volume label read from /dev/hdd3
Physical volume “/dev/hdd3” successfully created
[[email protected] root]# pvcreate /dev/hdd4
No physical volume label read from /dev/hdd4
Physical volume “/dev/hdd4” successfully created
[[email protected] root]#

Pronto, j? mostramos para o LVM que ele tem 4 PVs disponiveis…
Mas como sei se ele sabe disso ???

Use o comando.. #pvdisplay

[[email protected] 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

[[email protected] root]# vgcreate VG01 /dev/hdd1 /dev/hdd2
Volume group “VG01” successfully created
[[email protected] root]# vgcreate VG02 /dev/hdd3 /dev/hdd4
Volume group “VG02” successfully created
[[email protected] 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 ficar
mais facil de identificar mas voc? pode criar por exemplo com nome
‘bancodedados’,’email’,’www’ e por ai vai…

Vamos verificar se os VGs foram criados com o comando #vgdisplay.

[[email protected] 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.

[[email protected] 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 -n 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 .

[[email protected] 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…

[[email protected] 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 filesystem 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//

[[email protected] 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….

[[email protected] root]# mkdir /LVM1

[[email protected] root]# mount /dev/VG01/LV01 /LVM1

[[email protected] 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

[[email protected] root]# umount /LVM1

[[email protected] root]# lvextend -l+500 /dev/VG01/LV01
Extending logical volume LV01 to 5,86 GB
Logical volume LV01 successfully resized

[[email protected] root]# mount /dev/VG01/LV01 /LVM1/
[[email protected] 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.

[[email protected] root]# umount /LVM1

[[email protected] 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 !

[[email protected] root]# umount /LVM1/
[[email protected] 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

[[email protected] 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.

[[email protected] root]# mount /dev/VG01/LV01 /LVM1/
[[email protected] 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 -n

[[email protected] root]# lvcreate -l 1684 -n LV02 VG01
Logical volume “LV02” created

[[email protected] 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.

[[email protected] 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

[[email protected] root]# mkdir /LVM2
[[email protected] root]# mount /dev/VG01/LV02 /LVM2

[[email protected] 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 ?

[[email protected] 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.

[[email protected] root]# vgreduce VG02 /dev/hdd3
Removed “/dev/hdd3” from volume group “VG02”

[[email protected] 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.

[[email protected] root]# vgextend VG01 /dev/hdd3
Volume group “VG01” successfully extended

Agora vamos verificar 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

[[email protected] 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 verificar e para adcionar.

[[email protected] root]# lvextend -l+1191 /dev/VG01/LV01
Extending logical volume LV01 to 7,39 GB
Logical volume LV01 successfully resized

[[email protected] root]# resize2fs /dev/VG01/LV01
resize2fs 1.35 (28-Feb-2004)
Please run ‘e2fsck -f /dev/VG01/LV01’ first.

[[email protected] 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

[[email protected] 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.

[[email protected] root]# mount /dev/VG01/LV01 /LVM1
[[email protected] 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 fins 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.

[[email protected] root]# lvcreate -l1000 -n LV03 VG02
Logical volume “LV03” created

[[email protected] 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.

[[email protected] root]# lvremove /dev/VG02/LV03
Do you really want to remove active logical volume “LV03”? [y/n]: y
Logical volume “LV03” successfully removed

[[email protected] 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

[[email protected] root]# vgremove VG02
Volume group “VG02” successfully removed

Deletando o PV do LVM, vamos supor que este disco tenha dado problemas fisicos,
e voc? v?i tirar este disco (neste caso ? uma parti??o), mas em
produ??o seria um disco.

comando #pvremove

[[email protected] 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.
——————————————————————–