Jak zmniejszyć / zwiększyć i dodać więcej miejsca na CentOS7

28

CentOS 7system plików jest XFSi resize2fsnie działa. Muszę zmniejszyć /homedo 400G i dodać do niej 100G miejsca /. Co powinienem zrobić?

# 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

Dane wyjściowe lvs, vgs i pvs są następujące:

[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]~# 
Idąc moją drogą
źródło
Znalazłem to: blog.endpoint.com/2015/01/…, który mówi, że nie jest to możliwe, ale kontynuuje z jakąś odpowiedzią.
davey

Odpowiedzi:

47

Jak zauważyli inni, systemu plików XFS nie można zmniejszyć.

Najlepszym rozwiązaniem jest więc utworzenie kopii zapasowej / home, usunięcie i ponowne utworzenie woluminu w mniejszym rozmiarze i oddanie reszty woluminowi / root, tak jak opisał to Koen van der Rijt w swoim poście.

• wykonaj kopię zapasową zawartości / home

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

• przetestuj kopię zapasową

> tar -tvf /root/home.tgz

• odmontować dom

> umount /dev/mapper/centos-home

• usuń domowy wolumin logiczny

> lvremove /dev/mapper/centos-home

• odtworzyć nowy wolumin logiczny 400 GB dla / home, sformatować go i zamontować

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

• powiększ wolumin / root o WSZYSTKIE pozostałe miejsce i zmień przy tym rozmiar (-r) systemu plików

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

• przywróć kopię zapasową

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

• sprawdź / etc / fstab pod kątem mapowania woluminu / home. JEŚLI używa UUID, należy zaktualizować część UUID. (Od czasu utworzenia nowego wolumenu zmienił się identyfikator UUID)

to jest to!

Mam nadzieję że to pomoże.

Ari
źródło
1
podczas umountowania może występować błąd zajętości celu, może być pomocne umount -l / dev / mapper / centos-home. a może pojawić się inny błąd: „Logos woluminu centos / home zawiera używany system plików”, pomoc może być fuser -kuc / dev / vg_data / backup.
buxizhizhoum
Postępuj zgodnie z radą @ buxizhizhoum, rozkaz yum install psmisc było wymagane, fuseraby było dostępne.
mythofechelon
To naprawdę działało. Dziękuję Ci! Byłem zalogowany za pomocą ssh i musiałem zakończyć połączenie ssh, aby usunąć „lvremove”. Tak jakbart zaleceniami użytkownika uruchamiam restorecon -R -v /homepo ukończeniu wszystkich powyższych kroków.
Ikrom
Dziękuję Ci. W moim scenariuszu wspomniane polecenia bardzo mi pomogły, to tylko 10 minut pracy. w najgorszym przypadku zrobiłem kopię zapasową VM, następnie wykonałem powyższe polecenia, a następnie mogłem rozszerzyć wolumin root.
Harsha Vardhana
5

Dodatek do odpowiedzi Ari, ponieważ po wykonaniu jego instrukcji nie mogłem ssh przy użyciu uwierzytelniania za pomocą klucza publicznego.

Po włączeniu selinux możesz otrzymać tę wiadomość w / var / log / messages (z włączonym debugowaniem w sshd_config), ponieważ / home zostało odtworzone:

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

Napraw to przez:

restorecon -R -v /home
Bart
źródło
3

Nie można zmniejszyć systemu plików XFS .
Możesz je tylko hodować xfs_growfs.

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

Obecnie nie jest możliwe zmniejszenie rozmiaru partycji lub woluminu logicznego w systemie plików xfs. Jako możliwe obejście w niektórych środowiskach, cienkie alokowane woluminy LVM można uznać za dodatkową warstwę poniżej systemu plików XFS.


Dowiedz się, co zajmuje tyle miejsca /i podziel go na własny system plików.

ewwhite
źródło
Ewentualnie mógłbyś backup / home widząc jej tylko 20g i zabić tego LV i odtworzyć go z odpowiednimi wymiarami
Koen van der Rijt
Dziękuję Ci. może powinienem zniszczyć /homei przesunąć przestrzeń w razie potrzeby.
GoingMyWay 21.04.16
0

możesz to zrobić tylko w systemie na żywo, jeśli jest on podzielony na partycje za pomocą LVM - logicznego zarządzania woluminami. jaka jest wydajność:

lvs -v
vgs -v
pvs -v
Sum1sAdmin
źródło
Sir, zaktualizowałem pytanie, dodałem wynik.
GoingMyWay
patrz wyżej, zamalowałeś się w kącie!
Sum1sAdmin
0

Pierwszą rzeczą, którą musisz zrobić, to sprawdzić, co zajęło całe wolne miejsce na dysku, w przeciwnym razie problem ten pojawi się ponownie w przyszłości.

Jeśli naprawdę musisz zmienić rozmiar, moim podejściem byłoby:

  • wykonaj kopię zapasową zawartości / home. (to tylko 20g)
  • umount /home
  • zniszcz domowy wolumin logiczny (lvremove )
  • w razie potrzeby przydziel miejsce, zmień rozmiar woluminów. ( lvextend,resize2fs )
  • utwórz nowy wolumin logiczny dla / home, sformatuj go i zamontuj ( lvcreate,mkfs.xfs )
  • przywracania kopii zapasowej
  • dokładnie sprawdź zawartość / etc / fstab, w której zainstalujesz prawidłowy wolumin dla / home
  • uruchomić mount -alubreboot
Koen van der Rijt
źródło