Physical volumes, Volume groups, and Logical Volumes
LVM significa “Logical Volume Manager”, e no RHEL-7 é o componente de sistema que tem a capacidade de lidar e gerir com partições de forma eficiente e inteligente. Em antigos sistemas UNIX os discos eram apenas divididos em partições, sendo que apesar de cumprirem as suas funções, uma vez criadas estas eram fixas e constantes, sendo impossível modificar as mesmas sem corromper\apagar os dados nelas existentes. Por isso mesmo surgiu o LVM, sendo este um sistema flexível que permite manipular o tamanho das “partições” sem corromper os dados nas mesmas.
As LVM’s , para funcionarem necessitam de 3 pilares:
Physical Volumes:
Pv
ou volume físico, pode ser um disco inteiro ou apenas uma partição do mesmo;Volume Groups:
Vg
ou Volume em Grupo, contêm um ou mais Pv’s . (Note-se que um Pv só pode estar qualquer instante num Vg);Logical Volumes:
Lv
ou Volume Lógico representa uma porção de um Vg, é nas lv’s que podemos criar e gerir um sistema de ficheiros. (Note-se que uma Lv só pode estar qualquer instante num Vg);
Para vermos a organização do nosso sistema a nível de sistema de ficheiros, lvm’s e os espaços disponíveis nas mesmas podemos usar o comando lsblk
:
# lsblk -a
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 930.5G 0 part
├─centos_localhost--live-root 253:0 0 50G 0 lvm /
├─centos_localhost--live-swap 253:1 0 7.8G 0 lvm [SWAP]
└─centos_localhost--live-home 253:2 0 872.7G 0 lvm /home
sr0 11:0 1 1024M 0 rom
Tal como pode ser analisado no output do comando acima, vemos que realmente neste sistema, existem 3 LVM’s, uma aplicada a diretoria root (/), outra para Swap, e uma outra para a diretoria /home. Contudo estas configurações foram feitas de automaticamente aquando instalação inicial de sistema, e muitas vezes temos é a necessidade de criar\remover\aumentar\diminuir alguma LVM, sendo que para isso existem alguns comandos básicos de fácil compreensão:
Para Physical Volumes:
# pvcreate /dev/[disco]
# pvremove /dev/[disco]
# pvdisplay
ou # pvs
Para Volume Groups:
# vgcreate -s [Tamanho de Extent] [VG] [PV a Dicionar]
# vgextend [VG] [PV a Adicionar]
# vgreduce [VG]
ou # vgreduce [VG] [PV a Remover]
# vgdisplay
ou # vgs
Para Logical Volumes:
# lvcreate --size [Tamanho] --name [Nome] [VG a Adicionar]
ou
# lvcreate -l [Extents] --name [Nome] [VG a Adicionar]
# lvremove /dev/[VG]/[LV]
# lvdisplay
ou # lvs
Como pode ser visto a sintaxe dos comandos é muito semelhante. Note-se que deve-se ter muita atenção aquando criação do Volume Group pois o [Tamanho de Extent] é o valor que vai definir mais tarde aquando criação do LV, o tamanho de cada Extent que o constitui.
Last updated
Was this helpful?