Tutoriel Linux

LVM w systemie Linux: rozszerzanie woluminu bez zmiany warstwy

Débutant6 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.

Rozszerzyłeś dysk wirtualny, ale df -h Zawsze wyświetla ten sam rozmiar. W przypadku LVM jest to normalne, jeśli zmieniła się tylko warstwa fizyczna. Dysk, partycja, wolumin fizyczny, grupa woluminów, wolumin logiczny i system plików to różne elementy.

Zamówienie wydłużyć Dlatego samo w sobie nie rozwiązuje wszystkich problemów. Przed użyciem należy zlokalizować wolne miejsce i zidentyfikować system plików, który chcesz rozszerzyć. Radzę również sprawdzić kopię zapasową przed kontynuowaniem. LVM ułatwia rozszerzanie woluminów, ale nie chroni danych przed błędami urządzenia.

Tux rozszerza wolumin logiczny z wielu dysków za pomocą LVM
LVM oddziela dyski fizyczne, grupę woluminów i wolumin logiczny, które mają zostać rozszerzone.

Przed zmianą rozmiaru zidentyfikuj warstwy LVM

Typowy system pamięci masowej LVM opiera się na następującym łańcuchu:

  • na przykład dysk lub partycja /dev/nvme0n1p3 ;
  • A objętość fizyczna (PV) utworzone na tym urządzeniu;
  • A grupa woluminów (VG) łączący jeden lub więcej PV;
  • A objętość logiczna (LV) wycięty z VG;
  • system plików ext4, XFS lub inny, zamontowany w folderze.

Zacznij od wyświetlenia całego łańcucha. Nie zmieniaj żadnych nazw, dopóki nie połączysz punktu montowania z prawidłowym LV i PV:

lsblk -o NAZWA, ŚCIEŻKA, ROZMIAR, TYP, STYL F, PUNKTY MONTAŻU, MODEL
findmnt -no ŹRÓDŁO, STYL F, CEL /srv/data
sudo pvs -o pv_name,pv_size,pv_free,vg_name
sudo vgs -o vg_name,vg_size,vg_free
sudo lvs -a -o lv_name,vg_name,lv_size,lv_path,devices
df -hT /srv/data

W poniższych przykładach grupa nazywa się vgdata, wolumin logiczny lvdata i punkt mocowania /srv/dataUżyj wartości zgłoszonych przez Twój komputer. Przewodnik po lsblk pod Linuksem pomoże ci, jeśli drzewo katalogów zawiera mieszane partycje, szyfrowanie i woluminy logiczne.

Tworzenie kopii zapasowej danych i metadanych LVM

Kopia metadanych LVM nie zastępuje kopii zapasowej pliku. Najpierw sprawdź, czy ważne dane znajdują się na innym nośniku i czy można je odzyskać. Następnie utwórz kopię zapasową konfiguracji grupy woluminów.

sudo vgcfgbackup -f /root/vgdata-$(date +%F-%H%M).conf vgdata
sudo lvs -a -o lv_name,vg_name,lv_size,segtype,devices
sudo pvs -o pv_name,pv_uuid,pv_size,pv_free,vg_name

Zachowaj również dane wyjściowe tych poleceń w raporcie interwencji. Na serwerze zdalnym hostującym katalog główny lub krytyczne dane, otwórz drugą sesję SSH i zweryfikuj dostęp do konsoli dostawcy. Rozszerzenie zazwyczaj nie wymaga ponownego uruchomienia, ale błąd partycji lub warstwy szyfrowania może uniemożliwić dostęp.

Przypadek 1: Grupa woluminów ma już wolne miejsce

Spójrz na kolumnę VBezpłatny z vgs. Jeśli vgdata Jeśli posiadasz już co najmniej 10 GB wolnego miejsca, możesz przetestować rozszerzenie LV bez zapisywania metadanych:

sudo vgs -o vg_name,vg_size,vg_free
sudo lvextend --test -L +10G /dev/vgdata/lvdata

Tryb --test Unika zapisywania metadanych, ale nie symuluje wszystkich efektów ubocznych. Sprawdź dokładnie ścieżkę i rozmiar, a następnie uruchom rozszerzenie:

sudo lvextend -L +10G /dev/vgdata/lvdata
sudo lvs -o lv_name,vg_name,lv_size,lv_path,devices /dev/vgdata/lvdata

Strona podręcznika wydłużyć również oferuje -l +100% ZA DARMOTa opcja zużywa całą wolną przestrzeń w VG. Nie używam jej domyślnie: zachowanie pewnej ilości miejsca ułatwia przyszłą rozbudowę lub utworzenie kolejnego woluminu.

Następnie rozszerz system plików ext4 lub XFS.

Na tym etapie LV jest większa, ale df -h Nadal może wyświetlać starą pojemność. System plików nadal wymaga powiększenia. Sprawdź jego typ, zamiast wnioskować o nim z nazwy woluminu:

findmnt -no ŹRÓDŁO, STYL F, CEL /srv/data
lsblk -f /dev/vgdata/lvdata

Dla systemu plików wew4, używać zmień rozmiar2fs na woluminie logicznym:

sudo resize2fs /dev/vgdata/lvdata

Rozszerzenie online działa w nowoczesnych systemach ext4 po zamontowaniu. Jeśli narzędzie żąda kontroli offline lub system plików jest stary, należy zaplanować konserwację zamiast wymuszać rozszerzenie. Informacje o ograniczeniach znajdują się w dokumentacji. zmień rozmiar2fs.

Dla XFSWybierz punkt montowania, a nie urządzenie:

Do wykonania tej operacji konieczne jest zamontowanie systemu XFS, który nie może zmniejszyć rozmiaru systemu plików. Strona podręcznika xfs_growfs szczegółowo opisuje tę operację. Nie stosuj tych poleceń do systemów Btrfs, ZFS, LUKS ani stosu RAID: każda warstwa ma własną procedurę.

lvextend -r LVM może rozszerzyć zarówno LVM, jak i system plików za pomocą tego samego polecenia, jeśli jest to obsługiwane. W przypadku operacji wrażliwych wolę, aby te dwa kroki były oddzielne. Można od razu sprawdzić, czy LVM zakończyło się powodzeniem i czy rozszerzenie systemu plików jest nadal wymagane.

Przypadek 2: Dysk urósł, ale PV zachował swój pierwotny rozmiar.

Jest to częste zjawisko występujące po zwiększeniu rozmiaru dysku w hiperwizorze. lsblk może pokazać większy dysk, podczas gdy pv nie wskazuje na żadną dodatkową wolną przestrzeń.

Jeśli PV opiera się na partycji, partycja ta musi najpierw zająć nowe miejsce na dysku. Nie uruchamiaj zmieńrozmiar zanim potwierdził swój nowy limit lsblk i narzędzie do partycjonowania. Samouczek na temat rozstał się z Linuksem wyjaśnia, jak zidentyfikować dysk, zapisać tabelę i odtworzyć zmiany bez tworzenia nowego systemu plików.

Po powiększeniu partycji LVM należy przetestować i zmienić rozmiar partycji PV:

sudo pvs -o pv_name,pv_size,pv_free,vg_name
sudo pvresize --test /dev/nvme0n1p3
sudo pvresize /dev/nvme0n1p3
sudo vgs -o vg_name,vg_size,vg_free

Nowa umiejętność musi się pojawić w VBezpłatnyNastępnie możesz wrócić do wydłużyć, a następnie rozszerz system plików. Dokumentacja dla zmieńrozmiar potwierdza, że ​​narzędzie zmienia rozmiar istniejącego obiektu PV bez automatycznego przenoszenia innych warstw.

Jeśli PV zajmuje cały dysk, jeśli LUKS znajduje się między partycją a LVM lub jeśli dodasz nowy dysk do VG, kolejność ulegnie zmianie. Zatrzymaj się, gdy tylko pojawi się ciąg wyświetlany przez lsblk nie odpowiada przykładowi. Prawidłowe polecenie wykonane na niewłaściwej warstwie nadal jest złą interwencją.

Sprawdź rozmiar na każdym poziomie po rozszerzeniu

Na koniec sprawdź PV aż do punktu montażu. Nie polegaj tylko na komunikacie o powodzeniu. wydłużyć :

sudo pvs -o pv_name,pv_size,pv_free,vg_name
sudo vgs -o vg_name,vg_size,vg_free
sudo lvs -o lv_name,vg_name,lv_size,lv_path,devices
findmnt -no ŹRÓDŁO, STYL F, CEL /srv/data
df -hT /srv/data
systemctl --failed
journalctl -k --since "-10 min" -p warning..alert --no-pager

Jeśli lvs wyświetla nowy rozmiar, ale nie zm, nie wykonuj wydłużyć Spróbuj ponownie. System plików prawdopodobnie nie został jeszcze rozszerzony lub kontrolujesz inny punkt montowania. znaleźć I lsblk -f przed złożeniem nowego zamówienia.

sudo apt update && sudo apt upgrade