terça-feira, 28 de junho de 2011

Administrando partições LVM

Eu tive que mexer na partição LVM no meu servidor. Dessa vez ache mais fácil Linkcopiar um tutorial do site:

http://www.gazetadolinux.com/pr/lg/issue84/vinayak.html

depois do artigo vou colocar mais referencias que achei.


O Problema

Um dos maiores problemas enfrentados por usuários Linux é a estimativa e alocação de espaço suficientes para as partições quando se esta ajustando uma caixa linux. Isto não seria muito problema se ele fosse um administrador de sistema enxergando depois a administração de um servidor ou um usuário com conhecimento intermediario de linux que percebeu que calculou errado o espaço do disco. Parece familiar não parece? Então comece a se esforçar para superar o problema. Aha, o usuário tem uma brilhante idéia e o problema esta resolvido (depois de noites sem dormir) usando alguns métodos não muito elegante (leia-se golpes sujos) como transpor partições symlinks ou usando alguma ferramenta de redimensionamento de partições como o parted. Mas estas são geralmente soluções temporárias e nós estaremos diante dos mesmos problemas de novo.

Como você deseja que este problema pudesse ser resolvido!! O hacker em você deseja que você tivesse um sistema no qual pudesse experimentar livremente sem preocupar-se com espaço de disco e você conseguisse adicionar ou apagar espaço como e quando solicitado. Se você é um administrador de sistema de um sítio com um número de servidores a qual estão sempre conectados a Internet os riscos são todos mais altos. Cada minuto de ociosidade causa perdas. Até o perigo de clientes cairem fora de seu sítio. Você pode se permitir a desgraça de reiniciar o servidor depois que fizer as mudanças na tabela de partição toda vez que surgir esta situação. LVM pode ser um salva-vidas em situações semelhantes.

Introdução ao LVM

O LVM Linux pode facilitar um pouco sua vida. LVM emprega um elevado nivel de visão de armazenamento de espaço se comparado com aquelas partições e discos rigidos. Leia para descobrir como. LVM foi introduzido dentro da árvore principal do código fonte do kernel das séries 2.4.x para frente. Antes de passarmos para o LVM, vamos dar uma olhada em alguns dos conceitos e terminologias que serão usados.

<span class=Terminologia do LVM" src="http://www.gazetadolinux.com/pr/lg/issue84/misc/vinayak/LVM_1.png">
  • Volume Físico (Physical Volume)

    Volume Fisico generalmente refere-se as partições dos discos rigidos ou um dispositivo que aparente (logicalmente) a uma partição de disco rigido como um dispositivo RAID.
  • Volume Lógico (Logical Volume)

    Um ou muitos volumes fisicos fazem um Volume Lógico . No LVM, um volume lógico é parecido com uma partição em sistemas não LVM. O volume lógico pode conter um sistema de arquivo (filesystem) ex. /home ou /usr.
  • Grupos de Volume (Volume Groups)

    Um ou muitos volumes lógicos fazem um Volume Group . Para um LVM , um grupo de volume é parecido com um disco rigido fisico em um sistema não LVM. O grupo de volume trás junto muitos volumes lógicos para formar uma unidade administrativa.

Como o LVM funciona

Agora que conseguimos compreender a terminologia do LVM, vamos ver como ele atualmente funciona. Cada volume fisico é dividido entre um número de unidades basicas chamadas Extensões Fisicas (EF) . O tamanho de uma extensão fisica é variavel mesmo para volumes fisicos pertencentes a um grupo de volume. Dentro de um volume fisico, cada EF tem um único número. A EF é a menor unidade que pode ser endereçada pelo LVM em um armazenamento fisico.

De novo cada volume lógico é dividido em um número de unidades básicas endereçaveis chamadas Extensões Logicas (EL) . No mesmo grupo de volume o tamanho da extensão lógica é igual aquela da extensão fisica. Obviamente, o tamanho das ELs será o mesmo para todos os volumes lógicos de um grupo de volume.

Cada EF tem um número único no volume fisico mas não necessariamente para um volume lógico. Isto porque um volume lógico pode ser feito de vários volumes fisicos neste caso a exclusividade de IDs EF não será possivel. Portanto os IDs EL são usados para identificar o EL bem como uma particular EF associada com ela. Como foi notado anteriormente existe um mapeamento 1:1 entre as ELs e as EFs. Cada vez que a área de armazenagem é acessada o endereço ou os IDs do EL são usadas para realmente gravar os dados sobre o armazenamento fisico.

Você deve estar querendo saber, onde todos os meta-data sobre o volume lógico e os grupos de volume estão armazenados. Como uma analogia, os dados sobre as partições estão armazenadas na tabela de partição em sistemas não-LVM. O Area de descrição de Grupo de Volume (VGDA) funções similares para a tabela de partição LVM. Ele é armazenado no inicio de cada volume fisico.

O VGDA consiste das seguintes informações :-

  1. um descritor PV
  2. um descritor VG
  3. os descritores LV
  4. muitos descritores EF.

Quando o sistema inicializa os LVs e os VGs são ativados então o VGDA é carregado na memoria. O VGDA ajuda a identificar onde os LVs estão atualmente armazenados. Quando o sistema quizer acessar o dispositivo de armazenagem, o mecanismo de mapeamento (construido com ajuda do VGDA) é usado para acessar a localização fisica atual para executar a operação de I/O.

Entendendo abaixo para funcionar

Vamos agora ver como usar o LVM :-

Passo 1 - Configurar o kernel

Antes de começarmos a instalar o LVM existem alguns pré-requisitos:-
seu kernel deverá ter o módulo LVM configurado.

 Isto pode ser feito assim:-  # cd /usr/src/linux  # make menuconfig   abaixo o Submenu:-  Multi-device Support (RAID and LVM) --&gt;   habilite as duas opções abaixo:-  [*] Multiple devices driver support (RAID and LVM) e  &lt;*&gt; Logical volume manager (LVM) Support.  

Passo 2 - Verifique a quantidade de espaço livre no seu disco

Isto pode ser feito usando o seguinte comando:-

# df -h Filesystem             Size    Used   Avail   Use%  Mounted on /dev/hda1  3.1G     2.7G 398M 87% / /dev/hda2  4.0G  3.2G 806M 80% /home /dev/hda5  2.1G  1.0G 1.1G 48% /var 

Passo 3 - Criação das partições LVM no seu disco rigido

Use o fdisk ou qualquer outro utilitário particionador para criar as partições LVM. O tipo de partição do LVM linux é 8e.

# fdisk /dev/hda  press  p (to print the partition table)   and  n (to create a new partition) 
Depois da criação da partição LVM Linux. Imprima a tabela de partição. Será apresentado alguma coisa como esta:-
 Device Boot      Start       End    Blocks   Id   System /dev/hda1   *         1       506   4064413+  83  Linux /dev/hda2           507       523    136552+   5  Extended /dev/hda5           507       523    136521   82  Linux swap /dev/hda6      524       778   2048256   8e  Linux LVM /dev/hda7           779      1033   2048256   8e  Linux LVM 

Passo 4 - Criação de Volumes fisicos

# pvcreate /dev/hda6 pvcreate -- -physical volume "/dev/hda6" successfully created  # pvcreate /dev/hda7 pvcreate- -- physical volume "/dev/hda7" successfully created 
O comando acima cria um descritor de grupo de volume no começo da partição.

Passo 5 - Criação dos Grupos de Volume

Criar um novo grupo de volume e adicionar os dois volumes fisicos nele da seguinte maneira.

# vgcreate test_lvm /dev/hda6 /dev/hda7 vgcreate- -- INFO: using default physical extent size 4 MB vgcreate- -- INFO: maximum logical volume size is 255.99 Gigabyte vgcreate- -- doing automatic backup of volume group "test_lvm" vgcreate- -- volume group "test_lvm" successfully created and activated 
Isto criará um grupo de volume chamado test_lvm contendo os volumes fisicos /dev/hda6 e /dev/hda7. Podemos também especificar a extensão de tamanho com este comando se a extensão de tamanho de 4MB não estiver adequada para nosso propósito.
Ativar os grupos de volumes usando o comando
# vgchange -ay test_lvm 

O comando "vgdisplay" é usado para ver detalhes com respeito a grupos de volumes criados no seu sistema.
# vgdisplay --- Volume group --- VG Name test_lvm VG Access read/write VG Status available/resizable VG # 0 MAX LV 256 Cur LV 1 Open LV 0 MAX LV Size 255.99 GB Max PV 256 Cur PV 2 Act PV 2 VG Size 3.91 GB PE Size 4 MB Total PE 1000 Alloc PE / Size 256 / 1 GB Free PE / Size 744 / 2.91 GB VG UUID T34zIt-HDPs-uo6r-cBDT-UjEq-EEPB-GF435E 

Passo 6 - Criar Volumes Lógicos

O comando lvcreate é usado para criar volumes lógicos nos grupos de volume.
# lvcreate -L2G -nlogvol1 test_lvm 

Passo 7 - Criar um Sistema de Arquivo (filesystem)

Agora será necessário construir um sistema de arquivo neste volume lógico. Vamos escolher o reiserfs journalling filesystem no volume lógico.

# mkreiserfs /dev/test_lvm/logvol1  
Monte o sistema de arquivo criado há pouco usando o comando mount.
# mount -t reiserfs /dev/test_lvm/logvol1 /mnt/lv1 

Passo 8 - Adicione entradas para o /etc/fstab e /etc/lilo.conf

Adicione a seguinte entrada no /etc/fstab para que o sistema de arquivo seja montado na inicialização.

/dev/test_lvm/logvol1 /mnt/lv1 reiserfs defaults 1 1  
copie o kernel recompilado se você não trocou seu kernel original com ele, ainda que você tenha a opção de usar ou não o LVM.
  image   = /boot/lvm_kernel_image   label   = linux-lvm   root    = /dev/hda1   initrd  = /boot/init_image   ramdisk = 8192 
Depois de adicionar as linhas acima reinstale o lilo usando
# /sbin/lilo 

Passo 9 - Redimensionando os volumes lógicos

Volumes Logicos podem ser redimensionados facilmente usando o comando lvextend.
# lvextend -L+1G /dev/test_lvm/logvol1 lvextend -- extending logical volume "/dev/test_lvm/logvol1" to 3GB lvextend -- doing automatic backup of volume group "test_lvm" lvextend -- logical volume "/dev/test_lvm/logvol1" successfully extended 
Similarmente volumes lógicos podem ser reduzidos usando-se o seguinte comando
# lvreduce -L-1G /dev/test_lvm/lv1 lvreduce -- -Warning: reducing active logical volume to 2GB lvreduce- -- This may destroy your data (filesystem etc.) lvreduce -- -do you really want to reduce "/dev/test_lvm/lv1"? [y/n]: y lvreduce- -- doing automatic backup of volume group "test_lvm" lvreduce- -- logical volume "/dev/test_lvm/lv1" successfully reduced 

Conclusão

Como você pode ver na discussão acima o LVM é totalmente extensível e claramente mais elegante usá-lo. Depois que os grupos de volume estejam configurados. É muito mais fácil redimensionar os volumes lógicos conforme suas necessidades.

Fontes


Outras referencias

http://www.vivaolinux.com.br/artigo/Entendendo-e-configurando-o-LVM-manualmente?pagina=1

http://www.vivaolinux.com.br/artigo/LVM-completo-e-sem-misterios?pagina=1

http://docs.redhat.com/docs/pt-BR/Red_Hat_Enterprise_Linux/6/html/Logical_Volume_Manager_Administration/index.html