LVM para EXT3 - Encolher disco VMWare Thin Provisioned

1. LVM para EXT3 - Encolher disco VMWare Thin Provisioned

Alexandre
awshima

(usa Outra)

Enviado em 25/09/2011 - 23:43h

Estou com um problema complicado com vários servidores Linux rodando Centos 5.x em VMWare.

Todos eles foram criados a partir de um template que possui um disco de 500 GB configurado em Thin Provisioning.

Para quem não sabe, esta característica permite que o VMWare só aloque o espaço no DataStore conforme ele for realmente sendo consumido pelo servidor.

É uma função interessante, posso criar 10 VMs com 500 GB cada em um DataStore de 1 TB, desde que na soma total de espaço realmente usados todas caibam dentro dos 1 TB.

Teoricamente esta característica facilita a vida do administrador, pois não será necessário redimencionar partições posteriormente caso o espaço acabe, etc.

Este disco usa LVM, conforme os dados abaixo:

Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
481G 6.5G 450G 2% /
/dev/sda1 99M 27M 68M 28% /boot
tmpfs 502M 0 502M 0% /dev/shm

O problema que encontrei é que uma vez que o arquivo VMDK (arquivo VMDK é o arquivo do VMWare que representa este disco no DataStore) expande, ele não contrai mais.

Ou seja, se alguma vez o servidor acima usou 150 GB na partição root, o arquivo VMDK dele expandiu até este valor e assim ficou, mesmo que agora estejam usados somente 6.5 GB.

Existem inúmeros artigos online falando como encolher discos no VMWare, porém infelizmente não consegui fazer nenhuma técnica descrita funcionar:

- "Zerar" o espaço livre da partição com "dd" ou algo parecido, criando um arquivo temporário
- Excluir este arquivo
- Fazer um Storage Motion no VMWare, selecionando a crição do disco como Thin Provisioned
- Usar o VMWare Tools para marcar a partição como encolhivel (Shrink)
- Etc

No Windows esta opção de encolhimento (shrink) é tão simples quanto marcar um check box e fazer uma migração da VM para outro DataStore.

O problema todo com estas técnicas no Linux parece estar relacionado ao uso do LVM no disco.

Descobri que se eu clonar um disco de uma VM com partições EXT3 que esteja "inchado" para outro disco, usando o CloneZilla por exemplo, o arquivo VMDK do disco clonado vai ficar menor, pois parece que o CloneZilla copia somente áreas "válidas" do sistema do arquivos.

O que eu quero fazer agora é converter ou clonar este disco com LVM para um disco só com EXT3, de modo que ele continue bootando normalmente, que a partição de boot fique OK, e que os dados sejam preservados. Depois disso eu vou conseguir encolhê-lo como fiz com o disco EXT3 descrito acima.

Tentei fazer este processo de algumas maneiras, mas pela falta de experiência não tenho certeza se fiz os procedimentos corretos:

- Copiei o MBR para o disco novo: "dd" dos primeiros 512 Kb do disco
- Criei as partições no disco novo com o fdisk, exatamente com o mesmo tamanho do disco original ("/boot" e "/")
- Copiei o "/boot" e o "/" com o "dd", sendo que o "/" veio do "/dev/mapper/VolGroup00-LogVol00"

Aparentemente os dados são copiados, mas o disco novo não boota corretamente.

Na inicialização o sistema mostra ainda referências para "/dev/mapper/VolGroup00-LogVol01" (note que é "01" no final).

Editei o arquivo "/boot/grub/grub.conf" no disco novo ajustando este valor para "/dev/sda1", mas não adiantou, a mesma mensagem continua aparecendo.

Bootei então a VM com um CD do Centos e entrei no modo rescue.

Rodei o "grub" com os comandos abaixo:

root (hd0,0)
setup (hd0)

Pelas mensagens deu tudo certo, mas o erro no boot continua.

Não achei informações ainda sobre o que está errado e onde corrijo esse boot.

Agradeço toda a ajuda que puder receber.


  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts