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