sexta-feira, 3 de agosto de 2012

Usando LVM – tips and tricks


Siglas e denominações

- PV - Physical Volume - Quando você aloca uma partição do tipo LVM (8e do fdisk) de um disco.
- VG - Volume Grupo - Um volume nomeado onde podemos agrupar mais de um PV.
- LV - Logical Volume - Um volume lógico pode ser definido a partir do VG criado, podendo inclusive dividir o valor do VG em mais de um LV para ser entregue  para o sistema operacional e usar com filesystem.



Comandos úteis:



·         fdisk /dev/hxx
                opções: p - print partições
                               n - adicionar/criar nova partição
                               t - alterar o tipo da partição
                               w - escreve as alterações, salva a configuração e sai do fdisk.

·         pvscan – busca por todos os discos para PVs, identificando todos os "device blocks" LVM no sistema.
·         pvcreate - para criar um physical volume.
                # pvcreate /dev/hxx1

·         pvdisplay - exibe os physical volumes.
·         vgcreate - Cria o Volume Group, ainda pode usar as opções -a y
  -a para habilitar o VG ou volume lógico, ou seja, faz o volume lógico ser reconhecido ou não pelo kernel.
                #vgcreate -a y /dev/hxx1

·         vgdisplay - exibe os atributos de volume groups.
·         vgextend - para estender o tamanho de um volume group.
·          
·         mkfs -t /dev/mapper//
·         e2fsck - força a verificação do filesystem.
   #-f /dev//

·         resize2fs redimenciona o filesystem
                # resize2fs /dev//

·         lvcreate - cria um volume lógico de um VolumeGroup existente.
                 -L para alocar o tamanho do lógical volume, pode ser K(kilobyte) M(megabyte),
                  G(gigabyte), T(terabyte), P(petabyte) e E(exabyte).
      # lvcreate -L 2048M

·         lvchange -a n /dev/mapper/VG--xx--LVxx
·         lvremove /dev//
·         lvextend para extender o Logical Volume.
                # lvextend -L +1G /dev//

·         lvreduce - para reduzir o tamanho do Logical Volume 
                # lvreduce -L -50M /dev//

·         vgchange -a n   para desabilitar o Volume Group
·         vgremove para remover o Volume Group
·         vgextend - para extender o tamanho do VG adicionando uma device já incluída como PV.                
                # vgextend /dev/hxx1



Exemplos práticos:


Criando um LVM novo.


Neste exemplo o tamanho do disco usado é de 2GB e to feito em um ambiente virtual
usando XenServer (Citrix) com Linux Debian 5.0.6.
O pacote e dependências do LVM2 tiveram que ser instalados e neste caso em
particular, outros pacotes foram atuallizados.


1- Identificar o disco a ser usado, formatar usando fdisk e criar a partição ou
   partições do tipo 8e (LVM).
   fdisk /dev/hdb
                n ,p (primary) e 1 (tamanho total de 2GB)
                t 8e (lvm)
                w

2- pvcreate /dev/hdb1

3- vgcreate VG-00 /dev/hdb1

4- lvcreate -L 1.995GB VG-00 -n LV-00  (usei 1.995 para deixar 512Mb alocado
   para sistema).

5- mkfs -t ext3 /dev/mapper/VG--00-LV--00

6- mkdir /data

7- mount -t ext3 /dev/mapper/VG--00-LV--00 /data


               


Para remover um Logical Volume (LV) e um Volume Group (VG)



1- lvchange -a n /dev/mapper/VG--00-LV--00

2- lvremove /dev/VG-00/lv-00

3- vgchange --monitor n VG-00

4- vgchange -a n VG-00

5- vgremove VG-00





Aumentando um LVM


Para esse caso vou criar um disco físico no XenServer e adicionar a VM que
estou usando para estes testes. Desconsidere o exemplo de remocção de LV e VG,
vamos manter a configuração inicial (Criando um LVM novo).

1- Identificar o disco a ser usado, formatar usando fdisk e criar a partição ou
   partições do tipo 8e (LVM).
   fdisk /dev/hdc
                n ,p (primary) e 1 (tamanho total de 2GB)
                t 8e (lvm)
                w

2- pvcreate /dev/hdc1

3- umont /data ou umount /dev/mapper/VG--00-LV--00

4- verificar o espaço disponível para extender a LV,
   vgdisplay
                terá um paramêtro Free PE / Size 638/2.49GB (exemplo)
                então você poderá estender o LV-00 com mais 2.49GB.
               

5- lvextend -L +2.49GB /dev/VG-00/LV-00

Temos que verificar se o filesystem tem erro e reparar se necessário, pois não
pode haver nenhum bloco com problemas, senão, poderá nã conseguir redimensionar
o sistema de arquivos e/ou corromper o filesystem, então, o próximo passo é
de extrema importância.

6- e2fsck -f /dev/VG-00/LV-00

7-  resize2fs /dev/VG-00/LV-00

8-  mount /dev/VG-00/LV-00 /data

9- df -h -T
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/hdb2     ext3    191G  1.2G  181G   1% /
tmpfs        tmpfs    251M     0  251M   0% /lib/init/rw
udev         tmpfs     10M  640K  9.4M   7% /dev
tmpfs        tmpfs    251M     0  251M   0% /dev/shm
/dev/mapper/VG--00-LV--00
              ext3    4.0G   36M  3.7G   1% /data

Pronto file systems com 4.0GB de tamanho.




Para diminuir o tamanho de um LV.


1- umount /data

Temos que verificar se o filesystem tem erro e reparar se necessário, pois não
pode haver nenhum bloco com problemas, senão, poderá nã conseguir redimensionar
o sistema de arquivos e/ou corromper o filesystem.

2- e2fsck -f /dev/VG-00/LV-00
                e2fsck 1.41.3 (12-Oct-2008)
                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/VG-00/LV-00: 20/262144 files (0.0% non-contiguous), 25573/1046528 blocks

Para diminuir 50MB podemos usar a notação em bytes de 524288 ou apenas
indicar 50M, verifique o man do comando resize2fs.
Em nosso caso vamos diminur 2.0GB.

3- resize2fs /dev/VG-00/LV-00 2G
                resize2fs 1.41.3 (12-Oct-2008)
                Resizing the filesystem on /dev/VG-00/LV-00 to 524288 (4k) blocks.
                The filesystem on /dev/VG-00/LV-00 is now 524288 blocks long.
4- lvreduce -L 2G /dev/VG-00/LV-00
                  WARNING: Reducing active logical volume to 2.00 GiB
                  THIS MAY DESTROY YOUR DATA (filesystem etc.)
                Do you really want to reduce LV-00? [y/n]: y
                  Reducing logical volume LV-00 to 2.00 GiB
                  Logical volume LV-00 successfully resized

5- mount /dev/VG-00/LV-00 /mnt

6- df -h -T
                Filesystem    Type    Size  Used Avail Use% Mounted on
                /dev/hdb2     ext3    191G  1.2G  181G   1% /
                tmpfs        tmpfs    251M     0  251M   0% /lib/init/rw
                udev         tmpfs     10M  640K  9.4M   7% /dev
                tmpfs        tmpfs    251M     0  251M   0% /dev/shm
                /dev/mapper/VG--00-LV--00
                      ext3    2.0G   35M  1.9G   2% /mnt

Pronto filesystem reduzido para 2.0GB.






Referências:

http://www.vivaolinux.com.br/artigo/LVM-completo-e-sem-misterios/
http://www.vivaolinux.com.br/artigo/Entendendo-e-configurando-o-LVM-manualmente/
Linux Server Hacks, Vol2 - O'Reilly - William von Hagen & Brian K. Jones.




Nenhum comentário:

Postar um comentário