Redimensionando filesystems e volumes lógicos em LVM

Veremos nesse post como redimensionar filesystems e volumes lógicos em LVM. Mas para que diabos precisamos disso?

Imagine que o particionador automático da instalação do Debian criou um sistema LVM com uma partição root grande demais e a partição de swap pequena demais e que precisamos mudar o tamanho de ambas … aumentando uma e diminuindo outra … Isso não é tão trivial como parece … e é isso que veremos. :D

Cedo ou tarde, todo nerd precisa diminuir e aumentar filesystems em sistemas LVM …

Preste atenção, para redimensionar tenha em mente que o filesystem está dentro do volume lógico.
Para aumentar o tamanho de um filesystem, devemos primeiro aumentar o volume lógico em que ele está inserido e somente depois aumentar o filesystem.
Para diminuir o tamanho de um filesystem, o caminho é o contrário, primeiro diminuímos o tamanho do filesystem e somente depois encolhemos o volume lógico.

Usaremos nesse post o cenário hipotético mencionado acima (diminuir partição root, aumentar partição swap). Vejamos:

  1. Encontre os volumes lógicos a serem trabalhados:
1
2
3
4
# lvm
lvm> lvscan
ACTIVE '/dev/dread-note-vg/root' [106.98 GiB] inherit
ACTIVE '/dev/dread-note-vg/swap_1' [4.56 GiB] inherit
  1. Diminua o tamanho do filesystem que está grande demais.
  • Cheque e corrija erros no filesystem (ex. p/ ext4):

    1
    # e2fsck -f /dev/dread-note-vg/root
  • Diminua o tamanho do filesystem (ex: p/ 90GB):

    1
    # resize2fs /dev/dread-note-vg/root 90G

    Obs: O novo tamanho informado p/ o filesystem deve ser um pouco menor que o novo tamanho a ser informado para o volume lógico. Isso para evitar que em arrendondamentos feitos pela máquina, o filesystem fique maior que o volume lógico em que está inserido e ocorra *****.

  1. Diminua o volume lógico da partição que está grande demais (ex: p/ 92GB).
1
# lvresize -L 92G dread-note-vg/root
  1. Recupere o tamanho do filesystem - que estava grande demais - para ocupar todo o espaço do volume lógico redimensionado (dado que diminuímos o filesystem mais que o volume lógico - por segurança - e há espaço sobrando):
1
# resize2fs /dev/dread-note-vg/root
  1. Aumente o tamanho do volume lógico que está pequeno demais.
1
# lvextend -l +100%FREE dread-note-vg/swap_1
  1. Aumente o tamanho do filesystem que está pequeno demais.
    Obs: Como é um filesystem swap, apenas recriei ele com o mesmo UUID ocupando todo o espaço disponível no volume lógico.
  • Anotar o UUID da swap original: # blkid
  • Criar nova swap com o mesmo UUID:
    1
    # mkswap -U 475dbca3-d779-445d-912e-6dfeea5d9e4e /dev/mapper/dread--note--vg-swap_1
  1. Resultado final:
1
2
3
4
# lvm
lvm> lvscan
ACTIVE '/dev/dread-note-vg/root' [92.00 GiB] inherit
ACTIVE '/dev/dread-note-vg/swap_1' [19.55 GiB] inherit