Centos 7 Estender partição com espaço não alocado

14

Tenho servidor centos 7 (CentOS Linux release 7.3.1611 (Core))Quando atualizei meu servidor, vi um erro: você precisa de espaço extra. Mas eu tinha 20 GB de disco no servidor ao verificar os espaços em disco, vi apenas a partição de 4,5 GB criada e a partição de 16 GB é espaço livre, não alocado. Como posso estender a partição de 16 GB de espaço livre?

lsblk:

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0               2:0    1    4K  0 disk
sda               8:0    0   20G  0 disk
├─sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0  4.5G  0 part
  ├─centos-root 253:0    0    4G  0 lvm  /
  └─centos-swap 253:1    0  512M  0 lvm  [SWAP]
sr0              11:0    1 1024M  0 rom

insira a descrição da imagem aqui

kibar
fonte
do man lvmou tldp.org/HOWTO/LVM-HOWTO
alexus

Respostas:

20

Há três etapas a serem feitas:

  1. altere sua tabela de partições para sda2terminar no final do disco
  2. reler a tabela de partição (exigirá uma reinicialização)
  3. redimensione seu PV LVM usando pvresize

Etapa 1 - Tabela de partição

Corra fdisk /dev/sda. Problema ppara imprimir sua tabela de partição atual e copiar essa saída para algum lugar seguro. Agora, o problema é dseguido por 2para remover a segunda partição. Problema npara criar uma nova segunda partição. Verifique se o início é igual ao início da tabela de partições que você imprimiu anteriormente. Verifique se o final está no final do disco (geralmente o padrão).

Problema tseguido por 2seguido 8epara alternar o tipo de partição da sua nova segunda partição para 8e (Linux LVM).

Problema ppara revisar seu novo layout de partição e verifique se o início da nova segunda partição está exatamente onde estava a segunda partição antiga.

Se tudo parecer correto, emita wpara gravar a tabela de partição no disco. Você receberá uma mensagem de erro do partprobe informando que a tabela de partição não pôde ser relida (porque o disco está em uso).

Reinicie seu sistema

Esta etapa é necessária para que a tabela de partição seja relida.

Redimensionar o PV LVM

Após a reinicialização do sistema, invoque pvresize /dev/sda2. Seu volume LVM físico agora abrange o restante da unidade e você pode criar ou estender volumes lógicos nesse espaço.

Andreas Rogge
fonte
uma ótima solução, funciona perfeitamente. ainda apenas a parte de como estender volumes lógicos.
Mimouni
Esta excelente resposta parou bem antes da linha de chegada! Eu descobri como acabar com isso. O exemplo compartilhado na pergunta mostrou dois volumes lógicos sda2: centos-roote centos-swap. Nesse caso, o grupo de volumes é centose os dois volumes lógicos dentro desse grupo são roote swap. Se quiséssemos estender o centos-rootvolume neste exemplo com 50% do espaço disponível em nossa sda2partição estendida recentemente , usaríamos lvextend -r -l +50%FREE /dev/centos/root. O -rredimensiona o sistema de arquivos subjacente para corresponder ao volume lógico estendido.
Shadoninja 01/07/19
@ Shadoninja que está fora do escopo da pergunta original. Portanto, não o adicionei e não o adicionarei a essa pergunta no futuro.
Andreas Rogge
@AndreasRogge Eu diria que isso está totalmente dentro do escopo desta questão, pois a terminologia neste espaço pode ser confusa e fácil de conflitar. Vale a pena publicar um resumo completo de como obter espaço em disco não alocado utilizável pelo sistema de arquivos, pois esse será um motivo extremamente comum para as pessoas encontrarem essa pergunta.
Shadoninja 9/07/19
13

Você pode fazer isso sem reiniciar o CentOS 7. Supondo que seu disco seja / dev / vda e o particionamento padrão RHEL / CentOS:

Estender partição

# fdisk /dev/vda

Enter ppara imprimir sua tabela de partição inicial.

Digite d(delete) seguido de 2para excluir a definição de partição existente (a partição 1 é geralmente / boot e a partição 2 é geralmente a partição raiz).

Digite n(novo), seguido por p(primário), seguido por 2para recriar o número da partição 2 e enterpara aceitar o bloco inicial e enternovamente para aceitar o bloco final, que é o padrão para o final do disco.

Digite t(digite) e, em 2seguida, 8ealtere o novo tipo de partição para "Linux LVM".

Digite ppara imprimir sua nova tabela de partições e verifique se o bloco inicial corresponde ao que estava na tabela de partições inicial impressa acima.

Enter wpara gravar a tabela de partição no disco. Você verá um erro sobre o Device or resource busyqual você pode ignorar.

Atualizar tabela de partição na memória do kernel

Após alterar a tabela de partição, execute o seguinte comando para atualizar a tabela de partição na memória do kernel:

# partx -u /dev/vda

Redimensionar volume físico

Redimensione o PV para reconhecer o espaço extra

# pvresize /dev/vda2

Redimensionar LV e sistema de arquivos

Neste comando centosestá o PV, rooté o LV e /dev/vda2é a partição que foi estendida. Use pvse lvscomandos para ver seus nomes de volume físico e lógico, se você não os conhecer. A -ropção neste comando redimensiona o sistema de arquivos adequadamente, para que você não precise chamar resize2fsou xfs_growfsseparadamente.

# lvextend -r centos/root /dev/vda2
Aner
fonte
Resposta mais complicada do que a "resposta selecionada" uma!
Furkat U. 18/02/19
Isto é brilhante. Obrigado! Essa deve ser a resposta aceita. Estava faltando o último passo para redimensionar o lv e o sistema de arquivos!
Skinner927
4

Para aqueles que estão tendo problemas para estender volumes lógicos como eu, a leitura deste post pode estar ajudando. Em resumo, você pode usar lvextendpara estender seu volume lógico: lvextend -l +<PE> <LV_PATH> você pode obter o número de PE ( <PE>) restante vgdisplaye obter o caminho do seu volume lógico ( LV_PATH) por lvdisplay.

Então, dependendo da sua distribuição, você deseja xfs_growfs <LV_PATH>(Centos 7) ou resize2fs <LV_PATH>finalmente redimensionar.

liwt31
fonte
0

Confira isso - tudo em uma única linha, sem perguntas:

parted —pretend-input-tty /dev/vda resizepart 2 100%;
partx -u /dev/vda; pvresize /dev/vda2;
lvextend -r centos/var /dev/vda2
Olá x
fonte
Você deve considerar adicionar explicações e seu ambiente. Por exemplo, meu partx não possui a opção -u(Centos6.7 util-linux-ng-2.17.2-12.28.el6).
Boop