Tutoriel Linux

LVM no Linux: Estendendo um volume sem alterar a camada

Débutant7 min de lecture
À retenirLinux n'est pas réservé aux experts. Le bon point de départ : une distribution accessible, une sauvegarde propre et quelques commandes comprises.

Você expandiu um disco virtual, mas df-h O tamanho exibido é sempre o mesmo. Com LVM, isso é normal se apenas a camada física tiver sido alterada. O disco, a partição, o volume físico, o grupo de volumes, o volume lógico e o sistema de arquivos são elementos diferentes.

A ordem estender Portanto, não resolve todos os problemas por si só. Antes de usá-lo, você deve localizar o espaço livre e identificar o sistema de arquivos que deseja expandir. Também recomendo que você verifique seu backup antes de prosseguir. O LVM facilita a extensão de um volume, mas não protege seus dados contra erros do dispositivo.

O Tux expande um volume lógico a partir de vários discos usando LVM.
O LVM separa os discos físicos, o grupo de volumes e o volume lógico a ser expandido.

Identifique as camadas do LVM antes de alterar o tamanho.

Um sistema de armazenamento LVM típico segue esta cadeia:

  • um disco ou uma partição, por exemplo /dev/nvme0n1p3 ;
  • UM volume físico (PV) criado neste dispositivo;
  • UM grupo de volumes (VG) que reúne um ou mais PVs;
  • UM volume lógico (LV) cortado do VG;
  • Um sistema de arquivos ext4, XFS ou outro, montado em uma pasta.

Comece exibindo toda a cadeia. Não substitua nenhum nome até que você tenha vinculado o ponto de montagem ao LV e PV corretos:

lsblk -o NOME,CAMINHO,TAMANHO,TIPO,TIPO DE SISTEMA DE FONTES,PONTOS DE MONTAGEM,MODELO
findmnt -no ORIGEM, TIPO DE FS, DESTINO /srv/dados
sudo pvs -o nome_pv,tamanho_pv,livre_pv,nome_vg
sudo vgs -o nome_do_grupo_de_volumes, tamanho_do_grupo_de_volumes, grupo_de_volumes_livre
sudo lvs -a -o nome_do_lv,nome_do_vg,tamanho_do_lv,caminho_do_lv,dispositivos
df -hT /srv/dados

Nos exemplos a seguir, o grupo é chamado de dados vg, o volume lógico dados lv e o ponto de montagem /srv/dadosUtilize os valores indicados pela sua máquina. O guia sobre lsblk no Linux Isso será útil se a árvore de diretórios misturar partições, criptografia e volumes lógicos.

Faça backup dos dados e metadados do LVM.

Uma cópia dos metadados do LVM não substitui um backup de arquivos. Primeiro, verifique se os dados importantes existem em outra mídia de armazenamento e se podem ser recuperados. Em seguida, faça backup da configuração do grupo de volumes.

sudo vgcfgbackup -f /root/vgdata-$(date +%F-%H%M).conf vgdata
sudo lvs -a -o nome_do_lv,nome_do_vg,tamanho_do_lv,tipo_de_segmento,dispositivos
sudo pvs -o pv_name,pv_uuid,pv_size,pv_free,vg_name

Além disso, mantenha o resultado desses comandos em seu relatório de intervenção. Em um servidor remoto que hospeda o diretório raiz ou dados críticos, mantenha uma segunda sessão SSH aberta e verifique o acesso ao console do provedor. Uma extensão normalmente não exige reinicialização, mas um erro na partição ou na camada de criptografia pode bloquear seu acesso.

Caso 1: O grupo de volumes já possui espaço livre

Olhe para a coluna VFree de vgs. Se dados vg Se você já possui pelo menos 10 GB de espaço livre, pode testar a extensão LV sem gravar metadados:

sudo vgs -o nome_do_grupo_de_volumes, tamanho_do_grupo_de_volumes, grupo_de_volumes_livre
sudo lvextend --test -L +10G /dev/vgdata/lvdata

O modo --teste Isso evita a gravação de metadados, mas não simula todos os efeitos colaterais. Verifique novamente o caminho e o tamanho e, em seguida, execute a extensão propriamente dita:

sudo lvextend -L +10G /dev/vgdata/lvdata
sudo lvs -o nome_do_lv,nome_do_vg,tamanho_do_lv,caminho_do_lv,dispositivos /dev/vgdata/lvdata

A página de manual do estender também oferece -l +100%GRÁTISEssa opção consome todo o espaço livre no VG. Eu não a utilizo por padrão: manter algum espaço facilita futuras expansões ou a criação de outro volume.

Em seguida, expanda o sistema de arquivos ext4 ou XFS.

Nessa fase, o VE é maior, mas df-h Ainda pode exibir a capacidade antiga. O sistema de arquivos ainda precisa ser expandido. Verifique o tipo em vez de deduzi-lo pelo nome do volume:

findmnt -no ORIGEM, TIPO DE FS, DESTINO /srv/dados
lsblk -f /dev/vgdata/lvdata

Para um sistema de arquivos ext4, usar redimensionar2fs no volume lógico:

sudo resize2fs /dev/vgdata/lvdata

A extensão online funciona em sistemas ext4 modernos quando montados. Se a ferramenta solicitar controle offline ou se o sistema de arquivos for antigo, agende uma manutenção em vez de forçar a extensão. Consulte a documentação para obter informações sobre as limitações. redimensionar2fs.

Para XFSMire no ponto de montagem, não no dispositivo:

sudo xfs_growfs /srv/dados

O XFS deve estar montado para esta operação e não pode reduzir o tamanho de um sistema de arquivos. Consulte a página do manual para obter mais informações sobre como fazer isso. xfs_growfs Este documento detalha esta operação. Não aplique estes comandos a sistemas Btrfs, ZFS, LUKS ou RAID: cada camada possui seu próprio procedimento.

lvextend -r O LVM pode estender tanto o LVM quanto o sistema de arquivos no mesmo comando, quando suportado. Para operações sensíveis, prefiro que as duas etapas sejam realizadas separadamente. Assim, você pode verificar imediatamente se a extensão do LVM foi bem-sucedida e se a extensão do sistema de arquivos ainda é necessária.

Caso 2: O disco cresceu, mas o PV permanece com seu tamanho original.

Isso é algo comum após aumentar o tamanho do disco em um hipervisor. lsblk pode exibir um disco maior enquanto pvs Não indica nenhum espaço livre adicional.

Se o PV depender de uma partição, essa partição deverá primeiro ocupar o novo espaço em disco. Não inicie tamanho do tamanho antes de confirmar seu novo limite com lsblk e a ferramenta de particionamento. O tutorial sobre separou-se no Linux Explica como identificar o disco, salvar a tabela e reproduzir as alterações sem criar um novo sistema de arquivos.

Após a partição LVM ter sido efetivamente ampliada, teste e redimensione o PV:

sudo pvs -o nome_pv,tamanho_pv,livre_pv,nome_vg
sudo pvresize --test /dev/nvme0n1p3
sudo pvresize /dev/nvme0n1p3
sudo vgs -o nome_do_grupo_de_volumes, tamanho_do_grupo_de_volumes, grupo_de_volumes_livre

A nova habilidade deve aparecer em VFreeVocê poderá então retornar a estenderEm seguida, expanda o sistema de arquivos. A documentação para tamanho do tamanho Confirma que a ferramenta redimensiona um PV existente sem mover automaticamente outras camadas.

Se o PV usar o disco inteiro, se o LUKS estiver localizado entre a partição e o LVM, ou se você adicionar um novo disco ao VG, a ordem muda. Pare assim que a string exibida por lsblk Não corresponde ao exemplo. Um comando correto executado na camada errada ainda é uma intervenção incorreta.

Verifique o tamanho em cada nível após a extensão.

Para finalizar, verifique a tensão fotovoltaica até o ponto de montagem. Não confie apenas na mensagem de sucesso. estender :

sudo pvs -o nome_pv,tamanho_pv,livre_pv,nome_vg
sudo vgs -o nome_do_grupo_de_volumes, tamanho_do_grupo_de_volumes, grupo_de_volumes_livre
sudo lvs -o nome_do_lv,nome_do_vg,tamanho_do_lv,caminho_do_lv,dispositivos
findmnt -no ORIGEM, TIPO DE FS, DESTINO /srv/dados
df -hT /srv/dados
systemctl --falhou
journalctl -k --since "-10 min" -p warning..alert --no-pager

Se lvs exibe o novo tamanho, mas não df, não execute estender Tente novamente. Provavelmente o sistema de arquivos ainda não foi expandido ou você está controlando um ponto de montagem diferente. descobri E lsblk -f antes de fazer qualquer novo pedido.

sudo apt update && sudo apt upgrade