Logical Volume Manager (LVM2)
LVM é um metodo de alocação de espaço em disco em volumes lógicos que podem ser facilmente
redimencionados de acordo com a necessidade.
Com LVM alocamos um ou mais discos em um ou mais volumes lógicos. Onde o volume fÃsico (PV)
corresponde a partição fÃsica de um disco.
Os Pv são combinados em grupos de volume lógico (VG), com exceção da partição /boot que não
pose ser pertencente ao grupo de volume lógico, pois o boot loader não consegue ler a mesma.
OBS.: É possÃvel criar um ou mais PV por disco.
O grupo de volume lógico (VG) é divido em volumes lógicos (LV), sendo estes ativados no SO
como file system do tipo ext3 ou reiserfs.
Quando o file system chega a sua total capacidade é possÃvel utilizar espaço livre existente
no VG para que seja incrementado no file system e expandindo a partição.
Para implementarmos o LVM é necessário o que Kernel Linux tenha suporte ao mesmo.
1. Criando um volume fÃsico considerando que o mesmo seja /dev/sda1
pvcreate /dev/sda1
* para remover um PV
pvremove /dev/sda1
2. Criar VG (Volume Groups), onde você pode remover ou adicionar PVs no VG posteriormente
vgcreate nome_vg /dev/sda1
* para extender o VG
pvcreate /dev/sdc1
vgextend nome_vg /dev/sdc1
* para remover um PV do VG
vgremove nome_vg
* para reduzir o tamanho do VG (não remove o PV do VG)
vgreduce nome_vg /dev/sdc1
3. Criando um LV
lvcreate -L500M -n nome_lv nome_vg
* para criar um LV alocando uma determinada quantidade de PE (por default um PE tem tamanho igual a 4MB)
lvcreate -l 256 -n nome_lv nome_vg
* para criar um LV, com “strip mapping”, tendo 2 stripes e strip com 4KB (por default o LVM utilizar “linear mapping”)
lvcreate -i2 -I4 –size 2G -n nome_lg_strip nome_vg
* podemos também especificar quais PV dentro de um determinado VG queremos alocar para o Lv
lvcreate -i2 -I4 -L128G -n nome_lv_strip nome_vg /dev/sda1 /dev/sdb1
* para remove o LV (o filesystem não pode estar montado)
umount /dev/nome_vg/nome_lv
lvremove /dev/nome_vg/nome_lv
* para extender o tamanho de um LV em 1G
lvextend -L10G /dev/nome_vg/nome_lv
ou:
lvextend -L+1G /dev/nome_lv/nome_lv
* Esta operação só é possÃvel on-line a partir do Red Hat Enterprise Linux 4, utilizando o seguinte comando:
ext2online /dev/nome_vg/nome_lv
* para reiserfs, utilize o comando “resize_reiserfs”, não existindo estes comandos é necessário realizar um boot no servidor.
4. Criando o filesystem
mkfs.ext3 /dev/nome_vg/nome_lv
mount /dev/nome_vg/nome_lv /lvmfs
* para que o filesystem seja montado durante o boot
vim /etc/fstab
/dev/nome_vg/nome_lv /lvmfs etx3 defaults 1 2
5. Fundindo VGs
pvcreate /dev/sdc1
vgcreate merge_vg /dev/sdc1
vgmerge master_vg merge_vg
* isto faz com que o VG “merge_vg” será inserido no final do VG “master_vg” mas o final da união será o VG “master_vg”
OBS.: Comandos adicionas
* Exibe informações sobre os Pvs
pvs
* Exibe atributos dos PVs
pvdisplay
* Exibe informações sobre os VGs
vgs
* Exibe atributos dos VGs
vgdisplay
* Exibe informações sobre os LVs
lvs
* Exibe atributos dos LVs
lvdisplay
* Lista todos os PVs
pvscan
* Busca todos os VGs
vgscan
* Lista todos os LVs contidos no VG
lvscan
* Mais possibilidades de comandos
lvm help
6. Checagem e correção de um File System no LV
e2fsck.ext3 /dev/nome_vg/nome_lv
OBS.:=> linear mapping: permite que um sistema de arquivos ou banco de dados com mais de um único volume seja criado usando dois discos fÃsicos.
=> strip mapping: um único LV combina o desempenho de 2 PVs, e é usado frequentemente para atingir alta taxa de transferência de dados para o disco.
Fontes:
Comments are off for this posthttp://www.tldp.org/HOWTO/LVM-HOWTO/
http://sources.redhat.com/lvm2/
http://www.redhat.com/magazine/009jul05/features/lvm2/