Como diminuir / home e adicionar mais espaço no CentOS7

28

CentOS 7sistema de arquivos é XFS, e resize2fsnão funciona. Preciso encolher /homepara 400G e adicionar espaço de 100G /. O que devo fazer?

# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   50G   50G  341M 100% /
devtmpfs                 7.8G     0  7.8G   0% /dev
tmpfs                    7.8G   84K  7.8G   1% /dev/shm
tmpfs                    7.8G  778M  7.0G  10% /run
tmpfs                    7.8G     0  7.8G   0% /sys/fs/cgroup
/dev/sda1                497M  241M  257M  49% /boot
tmpfs                    1.6G   16K  1.6G   1% /run/user/42
tmpfs                    1.6G     0  1.6G   0% /run/user/0
/dev/mapper/centos-home  500G   20G  480G   4% /home

A saída de lvs, vgs e pvs são:

[root@localhost]~# lvs -v
    Using logical volume(s) on command line.
  LV   VG     #Seg Attr       LSize   Maj Min KMaj KMin Pool Origin Data%  Meta%  Move Cpy%Sync Log Convert LV UUID                                LProfile
  home centos    1 -wi-ao---- 499.38g  -1  -1  253    2                                                     4I53D9-7VSm-HN9H-QsSp-FvFU-5R9D-y5VwsN         
  root centos    1 -wi-ao----  50.00g  -1  -1  253    0                                                     LGRoEL-0EHz-G135-p6vx-Lt2s-RvI5-qdT9Sm         
  swap centos    1 -wi-ao----   7.81g  -1  -1  253    1                                                     UYB5xP-cEyV-lWvn-blIq-8s13-9kVB-ykjIWI         
[root@localhost]~# vgs -v
    Using volume group(s) on command line.
  VG     Attr   Ext   #PV #LV #SN VSize   VFree  VG UUID                                VProfile
  centos wz--n- 4.00m   1   3   0 557.26g 64.00m Gd5c08-ujdQ-fsix-o7z6-Wfsv-C0uW-XzDois         
[root@localhost]~# pvs -v
    Using physical volume(s) on command line.
    Found same device /dev/sda2 with same pvid TCmreQr93apETNoTl8bMc54l57FZ5hut
  PV         VG     Fmt  Attr PSize   PFree  DevSize PV UUID                               
  /dev/sda2  centos lvm2 a--  557.26g 64.00m 557.26g TCmreQ-r93a-pETN-oTl8-bMc5-4l57-FZ5hut
[root@localhost]~# 
Indo à minha maneira
fonte
Encontrei o seguinte: blog.endpoint.com/2015/01/… que diz que não é possível, mas continua com algum tipo de resposta.
Davey

Respostas:

47

Como outros já apontaram, o sistema de arquivos XFS não pode ser reduzido.

Portanto, sua melhor aposta é fazer backup / home, remover e recriar seu volume em um tamanho menor e dar o restante ao volume / root, exatamente como Koen van der Rijt destacou em seu post.

• fazer backup do conteúdo de / home

> tar -czvf /root/home.tgz -C /home .

• testar o backup

> tar -tvf /root/home.tgz

• desmontar casa

> umount /dev/mapper/centos-home

• remova o volume lógico doméstico

> lvremove /dev/mapper/centos-home

• recrie um novo volume lógico de 400 GB para / home, formate e monte-o

> lvcreate -L 400GB -n home centos
> mkfs.xfs /dev/centos/home
> mount /dev/mapper/centos-home

• estenda seu volume / root com TODO o espaço restante e redimensione (-r) o sistema de arquivos enquanto faz isso

> lvextend -r -l +100%FREE /dev/mapper/centos-root

• restaurar seu backup

> tar -xzvf /root/home.tgz -C /home

• verifique / etc / fstab para qualquer mapeamento do volume / home. Se estiver usando o UUID, você deverá atualizar a parte do UUID. (Desde que criamos um novo volume, o UUID mudou)

É isso aí.

Espero que isto ajude.

Ari
fonte
1
ao desmontar, pode haver um erro de destino ocupado, umount -l / dev / mapper / centos-home pode ser de ajuda. e pode haver outro erro: "O volume lógico centos / home contém um sistema de arquivos em uso", fusor -kuc / dev / vg_data / backup pode ser de ajuda.
buxizhizhoum
Seguindo o conselho de @ buxizhizhoum, yum install psmiscfoi necessário um comando fuserpara estar disponível.
Mythofechelon 23/11/19
Isso realmente funcionou. Obrigado! Eu estava logado com ssh e precisava finalizar a conexão ssh para remover "lvremove". Como bartrecomendado pelo usuário, corro restorecon -R -v /homedepois de concluir todas as etapas acima.
Ikrom
Obrigado. No meu cenário, os comandos mencionados são muito úteis, são apenas 10 minutos de trabalho. no pior dos casos, fiz um backup da VM e prossiga com os comandos acima, então eu fui capaz de estender o volume raiz.
Harsha Vardhana
5

Uma adição à resposta de Ari, já que eu não conseguia ssh usando a autenticação de chave pública depois de seguir suas instruções.

Com o selinux ativado, você pode receber esta mensagem em / var / log / messages (com a depuração ativada em sshd_config) porque / home foi recriado:

SELinux is preventing /usr/sbin/sshd from read access on the file authorized_keys

Corrija-o da seguinte maneira:

restorecon -R -v /home
Bart
fonte
3

Você não pode reduzir um sistema de arquivos XFS .
Você só pode cultivá-las com xfs_growfs.

Consulte: https://access.redhat.com/solutions/540013
e
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/xfsgrow.html

Atualmente, não é possível reduzir o tamanho de uma partição ou volume lógico com o sistema de arquivos xfs. Como uma possível solução alternativa em alguns ambientes, os volumes LVM provisionados thin podem ser considerados como uma camada adicional abaixo do sistema de arquivos XFS.


Descubra o que está ocupando tanto espaço /e divida-o como seu próprio sistema de arquivos.

ewwhite
fonte
Alternativamente, você pode / home de backup vendo sua única 20g e matar que LV e recriá-lo com as dimensões apropriadas
Koen van der Rijt
obrigado. talvez eu deva destruir /homee realocar o espaço conforme necessário.
GoingMyWay 21/04
0

você só pode fazer isso em um sistema ativo se for particionado com o LVM - gerenciamento de volume lógico. qual é a saída de:

lvs -v
vgs -v
pvs -v
Sum1sAdmin
fonte
Senhor, eu atualizei a pergunta, adicionei a saída.
GoingMyWay 21/04
veja acima, você se pintou em um canto!
Sum1sAdmin
0

A primeira coisa que você precisa fazer é verificar o que consumiu todo o espaço livre em disco, caso contrário, esse problema ocorrerá novamente em algum momento no futuro.

Se você realmente precisar redimensionar minha abordagem seria:

  • faça backup do conteúdo de / home. (apenas 20g)
  • umount /home
  • destruir o volume lógico doméstico ( lvremove)
  • aloque espaço conforme necessário, redimensione os volumes. ( lvextend, resize2fs)
  • recrie um novo volume lógico para / home, formate e monte-o ( lvcreate, mkfs.xfs)
  • restaurar backup
  • verifique o conteúdo do / etc / fstab no qual você montará o volume correto para / home
  • correr mount -aoureboot
Koen van der Rijt
fonte