Comment rétrécir / home et ajouter plus d'espace sur CentOS7

28

CentOS 7système de fichiers est XFS, et resize2fsne fonctionne pas. Je dois réduire /homeà 400G et ajouter 100G d'espace /. Que devrais-je faire?

# 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

Les sorties de lvs, vgs et pvs sont:

[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]~# 
GoingMyWay
la source
J'ai trouvé ceci: blog.endpoint.com/2015/01/… qui dit que ce n'est pas possible mais continue avec une sorte de réponse.
davey

Réponses:

47

Comme d'autres l'ont souligné, le système de fichiers XFS ne peut pas être réduit.

Donc, votre meilleur pari est de sauvegarder / home, de supprimer et de recréer son volume dans une taille plus petite et de donner le reste à votre volume / root comme Koen van der Rijt l'a décrit dans son article.

• sauvegarder le contenu de / home

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

• tester la sauvegarde

> tar -tvf /root/home.tgz

• démonter la maison

> umount /dev/mapper/centos-home

• supprimer le volume logique domestique

> lvremove /dev/mapper/centos-home

• recréer un nouveau volume logique de 400 Go pour / home, formater et monter

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

• étendez votre volume / root avec TOUT l’espace restant et redimensionnez (-r) le système de fichiers

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

• restaurer votre sauvegarde

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

• vérifiez / etc / fstab pour tout mappage du volume / home. S'il utilise UUID, vous devez mettre à jour la partie UUID. (Depuis que nous avons créé un nouveau volume, l'UUID a changé)

C'est ça.

J'espère que cela t'aides.

Ari
la source
1
lors du démontage, il peut y avoir une erreur de cible occupée, umount -l / dev / mapper / centos-home peut être utile. et il peut y avoir une autre erreur: "Le volume logique centos / home contient un système de fichiers en cours d'utilisation", le fuser -kuc / dev / vg_data / backup peut être utile.
buxizhizhoum
Suivant les conseils de @ buxizhizhoum, une commande yum install psmiscétait nécessaire pour fuserêtre disponible.
mythofechelon
Cela a vraiment fonctionné. Merci! J'étais connecté avec ssh et j'avais besoin de mettre fin à la connexion ssh pour supprimer "lvremove". Comme bartrecommandé par l'utilisateur, je lance restorecon -R -v /homeaprès avoir terminé toutes les étapes ci-dessus.
Ikrom
Je vous remercie. Dans mon scénario, les commandes mentionnées m'ont beaucoup aidé, c'est juste 10 minutes de travail. dans le pire des cas, j'ai pris une sauvegarde de VM, puis j'ai exécuté les commandes ci-dessus, puis j'ai pu étendre le volume racine.
Harsha Vardhana
5

Un ajout à la réponse d'Ari car je n'ai pas pu utiliser ssh en utilisant l'authentification par clé publique après avoir suivi ses instructions.

Avec selinux activé, vous pouvez obtenir ce message dans / var / log / messages (avec le débogage activé dans sshd_config) car / home a été recréé:

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

Réparez-le par:

restorecon -R -v /home
Bart
la source
3

Vous ne pouvez pas réduire un système de fichiers XFS .
Vous ne pouvez les cultiver qu'avec xfs_growfs.

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

Il n'est actuellement pas possible de réduire la taille d'une partition ou d'un volume logique avec le système de fichiers xfs. Comme solution de contournement possible dans certains environnements, les volumes LVM à provisionnement fin peuvent être considérés comme une couche supplémentaire sous le système de fichiers XFS.


Découvrez ce qui prend autant d'espace /et divisez-le en son propre système de fichiers.

ewwhite
la source
Alternativement, vous pouvez sauvegarder / maison en voyant ses seuls 20g et tuer ce LV et le recréer avec les dimensions appropriées
Koen van der Rijt
Je vous remercie. peut-être que je devrais détruire /homeet réallouer l'espace au besoin.
GoingMyWay
0

vous ne pouvez le faire sur un système actif que s'il est partitionné avec LVM - gestion de volume logique. quelle est la sortie de:

lvs -v
vgs -v
pvs -v
Sum1sAdmin
la source
Monsieur, j'ai mis à jour la question, a ajouté la sortie.
GoingMyWay
voir ci-dessus, vous vous êtes peint dans un coin!
Sum1sAdmin
0

La première chose que vous devez faire est de vérifier ce qui a utilisé tout votre espace disque libre, sinon ce problème se reproduira dans le futur.

Si vous avez vraiment besoin de redimensionner mon approche, ce serait:

  • sauvegarder le contenu de / home. (c'est seulement 20g)
  • umount /home
  • détruire le volume logique de la maison ( lvremove)
  • allouer de l'espace selon les besoins, redimensionner les volumes. ( lvextend, resize2fs)
  • recréer un nouveau volume logique pour / home, formater et monter ( lvcreate, mkfs.xfs)
  • restaurer la sauvegarde
  • revérifiez le contenu de / etc / fstab pour monter le volume correct pour / home
  • courir mount -aoureboot
Koen van der Rijt
la source