Archive for October 11th, 2007

Logical Volume Manager (LVM2)

October 11th, 2007 | Category: Red Hat

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:

http://www.tldp.org/HOWTO/LVM-HOWTO/
http://sources.redhat.com/lvm2/
http://www.redhat.com/magazine/009jul05/features/lvm2/

Comments are off for this post