Pesquisa de site

Como redimensionar partições LVM no Linux


Estenda ou reduza o grupo de volumes e o tamanho do volume lógico no Linux

No artigo anterior, cobrimos o que é LVM e como criar grupos de volumes e volumes lógicos no Linux. Este artigo ensinará como redimensionar partições LVM, ou seja, estender um grupo de volumes e o tamanho do volume lógico e reduzir/diminuir o tamanho do volume lógico no Linux.

Quando quiser aumentar o tamanho do seu volume lógico, você deve verificar se há algum espaço não alocado no pool livre (ou seja, Grupo de Volumes).

Se não houver mais espaço no pool livre, você deverá seguir qualquer uma das etapas abaixo para aumentar o espaço.

  • Verifique se algum grupo de volumes possui espaço que pode ser utilizado. Nesse caso, adicione o espaço de volta ao grupo de volumes e aumente o novo tamanho do volume.
  • Adicione um disco, inicialize-o como volume físico e adicione-o ao grupo de volumes com o qual você pode estender o tamanho do volume lógico.

Minha configuração existente

Para fins de demonstração, criei uma máquina de teste Ubuntu 20.04 usando Vagrant e Virtualbox. Tenho dois discos inicializados como um volume físico.

sudo pvscan

Exemplo de resultado:

PV /dev/sdc   VG ostechnix_files   lvm2 [<5.00 GiB / 96.00 MiB free]
PV /dev/sdd                        lvm2 [10.00 GiB]
Total: 2 [<15.00 GiB] / in use: 1 [<5.00 GiB] / in no VG: 1 [10.00 GiB]

Entre esses dois discos, apenas a partição /dev/sdc é adicionada ao grupo de volumes ostechnix_files e criada lógica volume disso.

sudo lvdisplay

Exemplo de resultado:

  --- Logical volume ---
  LV Path                /dev/ostechnix_files/guides
  LV Name                guides
  VG Name                ostechnix_files
  LV UUID                dc1gzT-cyLX-axdh-0EpD-GHBB-un8s-B5JAAc
  LV Write Access        read/write
  LV Creation host, time ubuntu, 2022-12-04 15:33:59 +0000
  LV Status              available
  # open                 1
  LV Size                4.90 GiB
  Current LE             1255
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

Estendendo Grupo de Volume e Volume Lógico

Não tenho mais espaço no pool livre (VG) para aumentar o tamanho do volume lógico, portanto, primeiro preciso adicionar espaço ao grupo de volumes para estender os volumes lógicos.

sudo vgdisplay ostechnix_files | grep -i Free
  Free  PE / Size       24 / 96.00 MiB

Já tenho um disco de 10GB inicializado como volume físico. Você pode encontrar as etapas para criar PV no artigo de introdução ao LVM.

sudo pvdisplay /dev/sdd
  "/dev/sdd" is a new physical volume of "10.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdd
  VG Name
  PV Size               10.00 GiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               obm8bR-pIUs-VmWc-BN61-xAXQ-WZmm-WtCsOT

Estender grupo de volumes

Podemos usar o comando vgextend para adicionar o novo espaço inicializado ao grupo de volumes (ou seja, ostechnix_files).

##Syntax
vgextend <volume-group-name> <physical-volume>

Agora executamos o comando vgextend para adicionar espaço ao grupo de volumes ostechnix_files.

sudo vgextend ostechnix_files /dev/sdd
  Volume group "ostechnix_files" successfully extended

Você pode executar qualquer um dos comandos a seguir para obter o caminho do volume lógico cujo tamanho deseja estender.

sudo lvdisplay
sudo lvdisplay | grep -i path
  LV Path                /dev/ostechnix_files/guides

Estender o volume lógico

Podemos usar o comando lvextend para aumentar o tamanho do volume lógico.

Estou ampliando o tamanho de 4,9 GB para 6,9 GB adicionando 2 GB do pool gratuito (VG).

sudo lvextend -L +2G /dev/ostechnix_files/guides

Aqui, +2G indica que estamos aumentando o tamanho em 2 GB.

  Size of logical volume ostechnix_files/guides changed from 4.90 GiB (1255 extents) to 6.90 GiB (1767 extents).
  Logical volume ostechnix_files/guides successfully resized.

Agora você pode verificar o tamanho do LV executando qualquer um dos comandos a seguir.

sudo lvdisplay
sudo lvdisplay | grep -i size
  LV Size                6.90 GiB

Observe que o redimensionamento apenas aumentou o tamanho do volume, mas não o tamanho do sistema de arquivos. Podemos verificar isso usando o comando df:

df -h /dev/ostechnix_files/guides

Exemplo de resultado:

Filesystem                          Size  Used Avail Use% Mounted on
/dev/mapper/ostechnix_files-guides  4.8G   20M  4.5G   1% /mnt

Podemos aumentar o tamanho do sistema de arquivos usando o comando resize2fs. O redimensionamento pode ser feito sem desmontar o sistema de arquivos.

sudo resize2fs /dev/mapper/ostechnix_files-guides

Exemplo de resultado:

resize2fs 1.45.5 (07-Jan-2020)
Filesystem at /dev/mapper/ostechnix_files-guides is mounted on /mnt; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/mapper/ostechnix_files-guides is now 1809408 (4k) blocks long.

Agora vamos verificar se o tamanho da partição é realmente estendido com o comando df:

df -h /dev/mapper/ostechnix_files-guides

Exemplo de resultado:

Filesystem                          Size  Used Avail Use% Mounted on
/dev/mapper/ostechnix_files-guides  6.8G   23M  6.4G   1% /mnt

Como você pode ver na saída acima, o Grupo de Volume foi estendido para 6,8 GB.

Reduzir ou diminuir o volume lógico

Conforme já mencionado na seção anterior, às vezes você pode precisar emprestar algum espaço de um volume lógico existente e adicioná-lo a outros volumes. Para isso, primeiro você deve reduzir o volume lógico e adicionar o espaço de volta ao grupo de volumes. Em seguida, você estenderá o tamanho do volume lógico do pool livre (VG).

A primeira etapa é desmontar o sistema de arquivos. Você não pode reduzir o volume ou o sistema de arquivos quando o sistema de arquivos estiver montado.

umount <file-system-path>

Para garantir que não haja problemas com o volume, execute o comando fsck.

sudo fsck /dev/mapper/ostechnix_files-guides

Exemplo de resultado:

fsck from util-linux 2.34
e2fsck 1.45.5 (07-Jan-2020)
/dev/mapper/ostechnix_files-guides: clean, 11/449792 files, 50275/1809408 blocks

Agora o tamanho do sistema de arquivos pode ser reduzido. Vou redimensionar o sistema de arquivos para 4 GB.

Para fazer isso, usamos o comando resize2fs:

sudo resize2fs /dev/mapper/ostechnix_files-guides 4G

Exemplo de resultado:

resize2fs 1.45.5 (07-Jan-2020)
Resizing the filesystem on /dev/mapper/ostechnix_files-guides to 1048576 (4k) blocks.
The filesystem on /dev/mapper/ostechnix_files-guides is now 1048576 (4k) blocks long.

Agora execute o comando lvreduce para reduzir o volume lógico e adicioná-lo de volta ao grupo de volumes. Aqui estou recuperando 2 GB do LV.

sudo lvreduce -L -2G /dev/ostechnix_files/guides

Aqui, -2G indica que estamos diminuindo o tamanho em 2 GB.

Exemplo de resultado:

  WARNING: Reducing active logical volume to 4.90 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce ostechnix_files/guides? [y/n]: y
  Size of logical volume ostechnix_files/guides changed from 6.90 GiB (1767 extents) to 4.90 GiB (1255 extents).
  Logical volume ostechnix_files/guides successfully resized.

Agora o espaço é adicionado novamente ao grupo de volumes. Podemos verificar isso usando o comando vgdisplay:

vgdisplay ostechnix_files | grep -i "/ Size"

Exemplo de resultado:

  Alloc PE / Size       1255 / 4.90 GiB
  Free  PE / Size       2583 / <10.09 GiB

Temos que remontar o sistema de arquivos existente que desmontamos para reduzi-lo. É seguro executar o comando fsck novamente para verificar se há problemas.

sudo fsck /dev/mapper/ostechnix_files-guides
sudo resize2fs /dev/mapper/ostechnix_files-guides

Agora monte o sistema de arquivos usando o comando:

mount /dev/mapper/ostechnix_files-guides /mnt/ 

Conclusão

Neste estágio, você deve ter um bom conhecimento sobre redimensionamento de partições LVM se tiver seguido este artigo junto com a prática.

Como você pode ver, estender o tamanho do grupo de volumes e do volume lógico é simples e direto. No entanto, reduzir o tamanho do volume lógico deve ser feito com cuidado extra, pois pode corromper os dados existentes.

Leia a seguir:

  • Como usar o instantâneo LVM para fazer backup de seus dados no Linux

Artigos relacionados