sexta-feira, 22 de abril de 2011

LVM Resize - Reduzindo Volumes

Na @Cidadelas, temos um servidor mega power hospedado na Softlayer, antiga The Planet, que está virtualizado com Xen. Nele, temos 7 máquinas virtuais, todas rodando Debian, umas com Lenny e outas com Squeeze.

O host, Domain-0 possui 2 discos de 500GB, sendo que apenas um é utilizado pelas VMs e estava com o espaço "restrito". Como precisei criar uma nova VM para separar alguns projetos em PHP, precisei reorganizar os volumes LVM, basicamente dimiuíndo o espaço das partições.

Trabalhar com LVM é realmente uma maravilha!

Meu trabalho foi bem fácil.

Fui ajustando cada volume, antes, porém, desligando as máquinas, uma por vez. O que fiz em cada uma foi mais ou menos isto:

Verifiquei os volumes LVM:

 host1:~# lvdisplay
  --- Logical volume ---
  LV Name                /dev/vm/app1disk
  VG Name                vm
  LV UUID                0NXKhi-rnHB-U3JR-tOh9-0BHu-8Knd-dHTuSM
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                20.00 GB
  Current LE             1536
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:0


...
 
Meu objetivo era reduzir o volume do exemplo acima para 6GB.  Tendo desligado a VM, fiz uma verificação forçada no sistema de arquivos:

$ e2fsck -f /dev/vm/app1disk

Nada de anormal foi detectado pela verificação, assim prossegui com a redução do sistema de arquivos:

$ resize2fs /dev/vm/app1disk 6GB

O processo demorou alguns minutos, mas foi concluído normalmente. Então, prossegui com a redução do volume lógico. O comando lvresize exige que a operação seja confirmada. Apesar da mensagem de alerta informando que podem ocorrer perda de dados, prossegui sem medo, confirmando a operação com Y:

$ lvresize -L 6GB /dev/vm/app1disk

 WARNING: Reducing active logical volume to 6 GB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce app1disk? [y/n]: y
Reducing logical volume app1disk to 6 GB
Logical volume app1disk successfully resized

Esta parte é rápida. Depois executei novamente o lvdisplay e estava tudo certo:

host1:~# lvdisplay
  --- Logical volume ---
  LV Name                /dev/vm/app1disk
  VG Name                vm
  LV UUID                0NXKhi-rnHB-U3JR-tOh9-0BHu-8Knd-dHTuSM
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                6.00 GB
  Current LE             1536
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:0

...

Quando redimensionei todos os volumes previamente selecionados, pude então criar a nova máquina virtual. Ao final, precisei criar um novo volume para receber a partição /home:

$ lvcreate -L 50G -n app4storage vm

Rodando novamente o lvdisplay:

$ lvdisplay
  --- Logical volume ---
  LV Name                /dev/vm/app4storage
  VG Name                vm
  LV UUID                Xe8VHd-l7p6-7zYe-hefD-fYeG-Uqak-5X6oRX
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                50.00 GB
  Current LE             12800
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:20

...

Depois disso, o volume é tratado como uma partição comum, que pode ser formatada com o sistema de arquivos que melhor atender a necessidade, e ser montado normalmente.

Nenhum comentário:

Postar um comentário