sábado, 19 de fevereiro de 2011

Criando LVM

Introdução

O Logical Volume Manager - LVM é nativo do AIX, o UNIX da IBM e é largamente utilizado naquele sistema que na sua instalação já o implementa. O LVM tráz uma nova filosofia no que se refere a gerenciamento de discos e sistemas de arquivos.

Com esse gerenciador algumas novas funcionalidades são agregadas como, por exemplo, aumentar o tamanho de um filesystem em uma linha de comando, sem nenhum trauma. Mãos a obra.

Ah! Antes de começar, um alerta: se quiser implementar o LVM com base nesse artigo, faça seus backups e siga por sua conta e risco. Não é para assustar, mas quando se trabalha com filesystems todo cuidado é necessário.

Principais conceitos

Essa parte pode ser considerada como um "xarope" por alguns, mas é importante para entendermos o funcionamento do LVM.

PV (Physical Volume) - Os volumes físicos são as partições de discos alocadas para o LVM. No Linux é necessário criar a partição e alterar o tipo para "Linux LVM", tipo 8e do fdisk, para que ela possa ser utilizada no LVM.

VG (Volume Group) - Um conjunto de PV podem ser necessários para criar filesystems maiores que a limitação física de um disco rígido. Esses PV são agrupados em um VG.

PE (Physical Extent) - Quando um PV é inserido em um VG o LVM o divide em várias partes de igual tamanho e essas partes são associadas a uma LE (Logical Extent), o menor valor de alocação dentro de um VG (do ponto de vista do LVM). No AIX são conhecidos como PP (Physical Partition) e LP (Logical Partition), respectivamente.

LV (Logical Volume) - Esse elemento é uma área de alocação das LE, na qual criamos o filesystem. Ao criarmos um volume lógico, recebemos um device para referenciarmos, ao criar ou manipular, o sistema de arquivos. O nome do device é /dev/NOME_DO_VG/NOME_DO_LV.

VGDA (Volume Group Descriptor Area) - Numa analogia mais grosseira, essa área é uma tabela de alocação do VG. Nela há todos os dados do VG. É dividida em quatro partes básicas: descritor de PV, descritor de VG, descritor de LV e vários descritores de PE e LE. Os backup automáticos da VGDA são guardados em /etc/lvm-conf/.

Preparando os discos

Você precisa de pelo menos uma partição com o tipo "Linux LVM", o que não faria sentido se considerarmos que um dos principais objetivos do LVM é concatenar discos, mas em todo caso vamos seguir com esse conceito.

Primeira providência é criar a partição LVM. Vamos usar a hipótese que nosso disco é um IDE que está na controladora IDE Primária, como slave. Assim seu device é /dev/hdb.
  • Execute o fdisk, como root, apontando o dispositivo acima;
  • Crie a partição (opção n);
  • Altere o tipo da partição para 8e (opção t);
  • Saia do fdisk salvando a configuração (opção w).

Agora pode conferir as partições criadas com o comando "fdisk -l /dev/hdb". Se tudo foi feito corretamente você vai ver que a nova partição vai estar com o tipo "Linux LVM". Neste ponto já podemos começar a configurar o LVM.

Criando o VG, o LV e o filesystem

Nessa etapa vamos ser pontuais e passaremos os comandos para criação dos PV, VG, LV e filesystems. Vamos imaginar que temos duas partições, /dev/sda1 e /dev/sda2.

1. Criar os PV (Physical Volumes), com o comando:

# pvscan       (scaneia os Physical Volume)
# pvcreate /dev/sda1 /dev/sdb1

2. Criar o VG (Volume Group):

# vgcreate VolumeGroupName_vg /dev/sda1 /dev/sdb1

2.2 Para remover o Volume Group

# vgchange -a n VolumeGroupName_vg  (desativa o volume group)
# vgremove VolumeGroupName_vg
OBS: só pode ser removido se não haver nenhum Logical Volume

3. Ativar o VG criado:

# vgchange -a n  (desativa o volumes group)
# vgchange -a y VolumeGroupName_vg  (ativa)


4. Criar o LV (Logical Volume):

# lvcreate -L tamanho(M/G/T) VolumeGroupName_vg -n LogicalVolumeName_lv

OBS: o tamanho do Logical Volume deve ser informado acompanhado da ordem de grandeza em bytes, ex.: 100M, 10G, 1T.

# lvcreate -l
100%FREE VolumeGroupName_vg -n LogicalVolumeName_lv

OBS: Usa toda a extenção do disco.

4.1 Remover (Logical Volume):

# umount /dev/nome_do_vg/nome_do_lv (desmonte a particao ativa)
# lvremove /dev/nome_do_vg/nome_do_lv
lvremove -- do you really want to remove "/dev/myvg/homevol"? [y/n]: y
lvremove -- doing automatic backup of volume group "myvg"
lvremove -- logical volume "/dev/myvg/homevol" successfully removed


5. Renomeando (Logical Volume)

lvrename VolumeGroupName  OldLogicalVolumeName  NewLogicalVolumeName

6. Criar o sistema de arquivos (filesystem):

# mke2fs -b 4096 -j -L LabelName_do_fs /dev/nome_do_vg/nome_do_lv
ou
mkfs.ext4 -b 4096 -m .5 -L LabelName_do_fs  /dev/nome_do_vg/nome_do_lv

OBS: -m .5 ,  equivale a reservar de 5% do espaço para administração, em caso de lotação do disco.

7. Montar o filesystem:

# mount -t tipo_filesystem  /dev/nome_do_vg/nome_do_lv     /mnt/mount_point 

8. Extendendo Logical Volume

Primeiro desative qualquer acesso a particao e a desmonte
# umount /dev/nome_do_vg/nome_do_lv

Aqui vc acrescenta + 60 Giga na paticao do volume
# lvextend -L +60G /dev/nome_do_vg/nome_do_lv

9. Reduzindo o Logical Volume

Primeiro desative qualquer acesso a particao e a desmonte
# umount /dev/nome_do_vg/nome_do_lv

Aqui vc decrementa - 50 Giga na paticao do volume 
# lvreduce -L -50G /dev/nome_do_vg/nome_do_lv


OBS: Se vc redimencionou a particao ja formatada com algum tipo de formato, ext2, ext3, ext4, raiserfs e etc...  eh bom sempre depois de redimencionado passar um checador de Disco.

Ex: fsck,  fsck.cramfs,  fsck.ext2,   fsck.ext3,   fsck.ext4,   fsck.ext4dev,  
       fsck.minix,  fsck.nfs,  fsck.reiserfs,  fsck.vfat  



Considerações finais

Algumas particularidades não foram abordadas nesse artigo, mas acreditamos que esses passos, aqui descritos, podem ser úteis para a configuração do LVM.

Algumas distribuições mais antigas podem não ter o LVM habilitado no kernel, necessitando, dessa forma, recompilar o kernel incluindo o suporte ao LVM.

A principal utilidade do LVM é concatenar discos, permitindo a criação de filesystem maiores que o limite físico do hardware. Entretanto, tenho utilizado o LVM, também, para aumentar a granularidade na alocação de espaços de filesystems.

Certamente há conteúdo para alguns outros artigos. 
Fontes:  http://www.vivaolinux.com.br/artigo/Entendendo-e-configurando-o-LVM-manualmente/?pagina=1 
Autor: Azevedo

http://tldp.org/HOWTO/LVM-HOWTO/

Um comentário:

Unknown disse...

MUITO BOM O TUTORIAL ! SIMPLES E PRACIO ! ME AJUDOU MTO ! PARABENS ! !