Bezpieczne rozwiązanie problemu braku miejsca w systemie SUSE Linux Enterprise LVM Thin Provisioning

Co należy ustalić zanim podejmiesz decyzję o zmianie?

Najpierw należy ustalić, czy pula cienka wyczerpała przestrzeń danych , przestrzeń metadanych , czy obie. To rozróżnienie zmienia plan odzyskiwania. Pula cienka zawiera LV danych, który przechowuje przydzielone bloki, oraz LV metadanych, który śledzi te alokacje. Wirtualny rozmiar cienkich woluminów logicznych może przekraczać fizyczną pojemność puli, co jest celem cienkiego provisioningu, ale również powodem, dla którego należy monitorować nadmierne przydzielanie zasobów.

Dokumentacja systemu SUSE Linux Enterprise Server 15 SP7 potwierdza, że ​​woluminy cienkie alokują przestrzeń z puli cienkiej na żądanie, a łączny rozmiar wirtualny może spowodować nadrezerwowanie dostępnej fizycznej pamięci masowej. Dokumentacja puli cienkiej LVM dodaje ważną zasadę operacyjną: należy rozszerzyć pulę, zanim którakolwiek z Data%nich Meta%osiągnie 100%. Więcej informacji można znaleźć w podręczniku SUSE Linux Enterprise Server 15 SP7 Storage Administration Guide oraz podręczniku LVM Thin Provisioning .

1. Czy przestrzeń danych jest pełna, czy metadane są pełne?

Używaj lvsjawnych kolumn zamiast polegać na ogólnym sprawdzaniu przestrzeni dyskowej. System plików może nadal zgłaszać wolną przestrzeń wirtualną, podczas gdy fizyczna pula pamięci pod nim jest prawie wyczerpana.

lvs -a -o lv_name,vg_name,lv_attr,lv_size,data_percent,metadata_percent
Terminal SUSE Linux pokazujący dane wyjściowe lvs z cienką pulą danych zbliżoną do 100% i niższym wykorzystaniem metadanych

Podpis: Pulę cienką należy zidentyfikować za pomocą wartości Data% i Meta%. Samo wolne miejsce w systemie plików nie świadczy o wyczerpaniu fizycznej puli cienkiej.

Jeśli Data%wartość wynosi 100 lub jest bliska 100, pula wyczerpała bloki dla nowych zapisów. Dokumentacja LVM ostrzega, że ​​zapisy mogą zwracać błędy, gdy pula danych jest wyczerpana, co z kolei może uszkodzić systemy plików. Jeśli Meta%wartość osiągnie 100, odpowiedź jest bardziej konserwatywna, ponieważ wyczerpanie metadanych może spowodować niespójność zarówno metadanych puli cienkiej, jak i systemów plików.

2. Czy grupa woluminów nadal ma wolne obszary fizyczne?

To jest kolejny punkt decyzyjny. Pula cienka może się rozrastać tylko wtedy, gdy jej grupa woluminów ma wolne obszary, chyba że najpierw dodasz do tej grupy woluminów więcej fizycznej pamięci masowej.

vgs -o vg_name,vg_size,vg_free
vgdisplay VG_NAME
Terminal SUSE Linux pokazujący dane wyjściowe vgs i vgdisplay, gdzie grupa woluminów nie ma wolnych zakresów

Podpis: Sprawdzenie ilości wolnego miejsca w obudowie VG pozwala odróżnić prostą rozbudowę o cienkim korpusie od obudowy, która wymaga najpierw dodania pamięci masowej.

Jeśli w VG jest wystarczająco dużo wolnego miejsca, zazwyczaj można bezpośrednio rozszerzyć pulę cienką. Jeśli VFreejest ona równa zero lub zbyt mała, nie ponawiaj prób lvextend; zdecyduj, czy możesz usunąć niepotrzebne woluminy cienkie lub migawki, odzyskać bloki z odrzuceniem, czy dodać nowy wolumin fizyczny.

3. Czy przed odzyskiwaniem należy zatrzymać aplikacje?

Jeśli pula jest już zapełniona w 100%, zatrzymaj lub wycisz aplikacje intensywnie zapisujące dane przed wprowadzeniem zmian w pamięci masowej. Zmniejsza to ryzyko, że bazy danych, maszyny wirtualne, kontenery lub inne usługi będą nadal wykonywać operacje zapisu, podczas gdy warstwa pamięci masowej ulegnie awarii lub będzie naprawiana.

systemctl stop YOUR_APPLICATION.service
systemctl status YOUR_APPLICATION.service
Terminal SUSE Linux pokazujący zatrzymanie usług aplikacji intensywnie zapisujących dane przed konserwacją puli cienkiej LVM

Podpis: Wyciszenie aplikacji ogranicza dodatkowe zapisy podczas odzyskiwania pełnego lub uszkodzonego cienkiego zasobu.

Nie ma uniwersalnej listy usług do zatrzymania. Wykorzystaj architekturę obciążenia i procedury konserwacji. W przypadku baz danych i maszyn wirtualnych preferuj obsługiwaną przez produkt metodę wyłączania lub wyciszania zamiast nagłego zamykania procesów.

4. Jeśli pula danych jest pełna, a grupa VG ma wolne miejsce, w jaki sposób można rozszerzyć pulę?

Rozszerz sam pulę cienką, a nie wirtualny LV, ponieważ problemem jest brak fizycznej pojemności puli. Na przykład:

lvextend -L +20G VG_NAME/THIN_POOL
lvs -o lv_name,vg_name,lv_size,data_percent,metadata_percent VG_NAME/THIN_POOL
Terminal SUSE Linux pokazujący, że lvextend zwiększa rozmiar cienkiej puli LVM, a następnie zmniejsza się procent danych

Podpis: Rozszerzenie puli cienkiej zwiększa pojemność fizyczną; wynikowy procent danych powinien się zmniejszyć, gdy nowa przestrzeń stanie się dostępna.

Podręcznik lvextend dokumentuje bezpośrednie rozszerzenie puli pamięci o małej pojemności oraz osobną --poolmetadatasizeopcję dla metadanych. Wybierz przyrost na podstawie rzeczywistego tempa wzrostu i pojemności pamięci masowej, którą możesz zarezerwować. Stały przykład, taki jak ten, +20Gnie stanowi rekomendacji rozmiaru dla każdego systemu.

5. Co zrobić, jeśli w grupie woluminów nie ma wolnego miejsca?

Dodaj pamięć masową dopiero po potwierdzeniu, że docelowe urządzenie blokowe jest nieużywane i nie zawiera potrzebnych danych. Utworzenie woluminu fizycznego LVM powoduje zapisanie metadanych LVM na wybranym urządzeniu, więc błąd w nazwie urządzenia może mieć katastrofalne skutki.

lsblk
blkid

pvcreate /dev/NEW_DEVICE
vgextend VG_NAME /dev/NEW_DEVICE
vgs -o vg_name,vg_size,vg_free
Terminal SUSE Linux pokazujący nowy dysk zweryfikowany za pomocą lsblk, a następnie zainicjowany za pomocą pvcreate i dodany do grupy woluminów za pomocą vgextend

Podpis: Gdy grupa VG się zapełni, najpierw można dodać nową fizyczną pamięć masową, po tym jak administrator zweryfikuje, czy nieużywane urządzenie jest prawidłowe.

Dokumenty SUSE wskazują, że grupy woluminów można rozszerzać poprzez dodawanie partycji lub całych dysków. Przed wykonaniem tej czynności w systemach wielościeżkowych, SAN, RAID, szyfrowanych, klastrowych lub z kopią zapasową w chmurze należy sprawdzić topologię pamięci masowej, ponieważ właściwa warstwa urządzenia może nie być dyskiem surowym pokazanym na prostym przykładzie.

6. Co się stanie, jeśli Meta% osiągnie 100%?

Traktuj wyczerpanie metadanych jako przypadek naprawy offline, a nie jedynie jako zwiększenie pojemności danych. Podręcznik LVM Thin-Pul wyraźnie stwierdza, że ​​wyczerpanie metadanych może powodować niespójność metadanych i systemów plików Thin-Pul. Udokumentowana sekwencja odzyskiwania obejmuje dezaktywację puli, naprawę za pomocą lvconvert --repair, rozszerzenie metadanych, a następnie sprawdzenie systemu plików.

Po zatrzymaniu aplikacji odmontuj systemy plików lub w inny sposób dezaktywuj cienkie kontrolery LV za pomocą puli. Następnie wykonaj kontrolowaną procedurę konserwacji podobną do:

lvchange -an VG_NAME/THIN_LV
lvconvert --repair VG_NAME/THIN_POOL
lvextend --poolmetadatasize +1G VG_NAME/THIN_POOL
Terminal SUSE Linux pokazujący dezaktywację cienkich woluminów logicznych, uruchomienie naprawy lvconvert na cienkim puli i rozszerzenie przestrzeni metadanych

Podpis: Stan pełnych metadanych wymaga naprawy puli cienkiej offline i dodatkowej przestrzeni metadanych, a nie tylko dodatkowych zakresów danych.

Rysunek +1Gjest jedynie przykładem. Rozmiar metadanych zależy od rozmiaru puli, rozmiaru fragmentu, użycia migawek i zachowania alokacji. Po naprawie należy sprawdzić logi systemowe i użyć procedury sprawdzania lub naprawy specyficznej dla danego systemu plików, jeśli wystąpiły błędy wejścia/wyjścia. Nie należy uruchamiać narzędzia do naprawy systemu plików bezmyślnie na zamontowanym systemie plików.

Czy usunięcie plików może natychmiast uwolnić cienką pulę?

Nie zawsze. Usunięcie pliku zwalnia miejsce w systemie plików, ale pula cienka odzyskuje fizyczne fragmenty tylko wtedy, gdy informacje o odrzuconych blokach dotrą do puli. Dokumentacja LVM wskazuje, że fstrimmoże odzyskiwać takie bloki, podczas gdy migawki mogą nadal odwoływać się do bloków i uniemożliwiać ich zwolnienie. Jeśli pula jest skonfigurowana tak, aby ignorować odrzucone bloki, funkcja TRIM nie odzyska bloków.

Jeżeli system plików i obciążenie to obsługują, sprawdź zachowanie odrzucania i wykonaj przycinanie dopiero wtedy, gdy pula będzie na tyle stabilna, aby można było wykonać operację:

lvs -o lv_name,discards VG_NAME/THIN_POOL
fstrim -v /mount/point

Usunięcie starych, cienkich migawek może również zwolnić miejsce na dysku, jeśli te migawki stanowią pozostałe odniesienia do bloków. Przed usunięciem migawek należy sprawdzić wymagania dotyczące tworzenia kopii zapasowych i przechowywania.

7. Jak zapobiec ponownemu wystąpieniu takiej sytuacji?

Włącz i zweryfikuj monitorowanie puli LVM oraz skonfiguruj automatyczne rozszerzanie z wystarczającą ilością wolnej pojemności w grupie VG. Serwer LVM nadrzędny używa dmeventd, zazwyczaj za pośrednictwem lvm2-monitorusługi, aby reagować, gdy użycie danych lub metadanych przekroczy skonfigurowany próg.

systemctl status lvm2-monitor.service
lvs -o+seg_monitor VG_NAME/THIN_POOL
lvchange --monitor y VG_NAME/THIN_POOL

lvmconfig --type full activation/thin_pool_autoextend_threshold
lvmconfig --type full activation/thin_pool_autoextend_percent
Terminal SUSE Linux pokazujący aktywny monitor lvm2 i ustawienia progu i procentu automatycznego rozszerzania puli cienkiej LVM

Podpis: Automatyczne rozszerzanie zależy od aktywnego monitorowania, odpowiedniego progu i wolnych zakresów pozostałych w grupie woluminów.

W podręczniku LVM stwierdzono, że próg 100 wyłącza automatyczne rozszerzanie, a minimalny prawidłowy próg to 50. Niższy próg daje LVM więcej czasu na reakcję w przypadku pul o bardzo dużej szybkości zapisu. Procent rozszerzenia określa, o ile pula się powiększa po uruchomieniu polityki.

Typowa konfiguracja /etc/lvm/lvm.confmoże wyglądać następująco:

activation {
    thin_pool_autoextend_threshold = 70
    thin_pool_autoextend_percent = 20
}

Te wartości są przykładowe, a nie uniwersalne. Rozmiar marginesu bezpieczeństwa należy dostosować do szybkości zapisu, interwału monitorowania, czasu realizacji usługi magazynowania oraz dostępnego wolnego miejsca w VG. Automatyczne rozszerzenie nie pomoże, jeśli sam VG jest już pełny.

8. Skąd wiesz, że leczenie rzeczywiście zadziałało?

Zweryfikuj więcej niż jeden sygnał. Pula powinna mieć zapas, VG powinna mieć wystarczająco dużo wolnego miejsca na przewidywany wzrost, aplikacje powinny móc normalnie zapisywać, a logi nie powinny wykazywać ciągłych błędów wejścia/wyjścia ani metadanych w puli cienkiej.

lvs -a -o lv_name,vg_name,lv_attr,lv_size,data_percent,metadata_percent
vgs -o vg_name,vg_size,vg_free
journalctl -u lvm2-monitor.service --since "30 minutes ago"
Terminal SUSE Linux pokazujący odzyskany cienki pulę z niższymi procentami danych i metadanych, wolnym miejscem w VG i zdrowymi dziennikami monitorowania

Podpis: Odzyskiwanie zostaje potwierdzone, gdy wykorzystanie puli jest wystarczające, VG zachowuje użyteczną wolną przestrzeń, a monitorowanie nie zgłasza żadnych ciągłych błędów wejścia/wyjścia.

Stopniowo restartuj aplikacje i obserwuj, jak pula cienka wraca do normalnego obciążenia. Jeśli Data%ponownie rośnie nietypowo szybko, rozszerzenie puli mogło rozwiązać bezpośrednią awarię bez rozwiązania problemu z planowaniem pojemności.

Kiedy należy przerwać leczenie i skorzystać z innej ścieżki leczenia?

ObserwacjaZalecany kierunek
Data%blisko 100, Meta%zdrowy, VG ma wolne miejsceRozszerz pulę cienką i zweryfikuj odzyskiwanie obciążenia.
Data%blisko 100, VG nie ma wolnego miejscaDodaj zweryfikowaną pamięć masową, bezpiecznie odzyskaj bloki lub zmniejsz liczbę zachowanych cienkich woluminów/migawek przed rozszerzeniem.
Meta%osiągnął 100Uciszaj obciążenia, dezaktywuj pulę, naprawiaj metadane w trybie offline, rozszerzaj metadane i weryfikuj systemy plików.
lvconvert --repairnie udaje sięNie improwizuj wielokrotnego zapisu metadanych. Zachowaj logi i kopie zapasowe metadanych i skontaktuj się z pomocą techniczną SUSE lub doświadczonym inżynierem ds. odzyskiwania danych LVM.
Klastrowane cienkie woluminyPostępuj zgodnie z procedurami dotyczącymi zasobów klastra. W systemie SUSE pula i woluminy cienkie muszą być zarządzane razem, aby były przypisane wyłącznie do jednego węzła.
Basen napełnia się ponownie wkrótce po rozbudowieZbadaj retencję migawek, zachowanie odrzucania, wzrost zapisu, progi monitorowania i planowanie pojemności.

Czego należy unikać?

  • Nie zakładaj, że df -hto dowodzi, że niewielki basen ma wolne miejsce do przechowywania danych.
  • Nie inicjuj nowego urządzenia pvcreatedopóki nie zidentyfikujesz go jako nieużywanego.
  • Nie należy traktować wyczerpania metadanych jako tego samego problemu, co wyczerpania zwykłych danych.
  • Nie należy polegać na automatycznym rozszerzaniu bez zarezerwowania wolnych zakresów w VG.
  • Nie uruchamiaj poleceń naprawy systemu plików w przypadku zamontowanych systemów plików, chyba że dostawca systemu plików wyraźnie obsługuje taką operację.
  • Nie należy wyłączać monitorowania tylko po to, aby stłumić ostrzeżenia; ostrzeżenie jest często ostatnią okazją do rozszerzenia puli, zanim zapis się nie powiedzie.

Oficjalne i główne źródła

Zostaw komentarz

Jak bezpiecznie odzyskać utracone partycje i dane z dysku twardego

Jak bezpiecznie odzyskać utracone partycje i dane z dysku twardego

Dowiedz się, jak odzyskać utracone partycje i pliki za pomocą TestDisk i PhotoRec. Zabezpiecz dysk źródłowy, przeskanuj go bezpiecznie i zapisz odzyskane dane na innym dysku.

Jak skanować kody QR na komputerze stacjonarnym z systemem Linux

Jak skanować kody QR na komputerze stacjonarnym z systemem Linux

Skanuj kody QR w systemie Linux za pomocą CoBang, używając kamery internetowej lub pliku obrazu. Zobacz opcje instalacji, kroki konfiguracji i poprawki dotyczące dostępu do kamery Flatpak.

Jak zmienić ustawienia kamery internetowej w systemie Linux za pomocą Cameractrls

Jak zmienić ustawienia kamery internetowej w systemie Linux za pomocą Cameractrls

Zmień ustawienia kamery internetowej w systemie Linux za pomocą narzędzia Cameractrls: dostosuj ekspozycję, kolor, redukcję migotania i inne obsługiwane elementy sterujące, a następnie sprawdź zgodne tryby wideo.

Jak zainstalować PhpStorm na Linuksie: Toolbox, Tar.gz, Snap i AUR

Jak zainstalować PhpStorm na Linuksie: Toolbox, Tar.gz, Snap i AUR

Zainstaluj PhpStorm na Linuksie za pomocą JetBrains Toolbox lub samodzielnego archiwum tar.gz, a także opcji Snap i Arch AUR. Java jest już dołączona.

Jak wyciąć obraz w systemie Linux za pomocą programu GIMP

Jak wyciąć obraz w systemie Linux za pomocą programu GIMP

Usuń tło zdjęcia w systemie Linux za pomocą programu GIMP: narysuj obiekt, usuń wybrane tło, zachowaj przezroczystość i wyeksportuj plik PNG, który można ponownie wykorzystać.

Jak wykonać kopię zapasową płyty CD-ROM w postaci obrazu ISO w systemie Linux

Jak wykonać kopię zapasową płyty CD-ROM w postaci obrazu ISO w systemie Linux

Utwórz obraz ISO płyty CD-ROM w systemie Linux za pomocą GNOME Disks lub dd. Zidentyfikuj napęd optyczny, monitoruj kopiowanie, zweryfikuj obraz i dowiedz się, kiedy uszkodzona płyta lub płyta audio wymaga użycia innego narzędzia.

Jak skonfigurować dwa panele w środowisku XFCE 4

Jak skonfigurować dwa panele w środowisku XFCE 4

Utwórz oddzielny panel XFCE 4 dla każdego wyświetlacza, przypisz drugi panel do odpowiedniego wyjścia, określ jego położenie i rozmiar, a następnie dodaj potrzebne elementy uruchamiające i statusu.

Jak zainstalować Cisco Packet Tracer w systemie Linux

Jak zainstalować Cisco Packet Tracer w systemie Linux

Pobierz Cisco Packet Tracer 9.0.1 dla systemu Ubuntu 64-bit, zainstaluj pakiet DEB za pomocą APT, zaakceptuj licencję w terminalu i zaloguj się, aby rozpocząć laboratorium.

Pobierz FlightGear za darmo: Oficjalny przewodnik instalacji

Pobierz FlightGear za darmo: Oficjalny przewodnik instalacji

Pobierz FlightGear za darmo z oficjalnej strony. Porównaj pakiety dla systemów Windows, macOS i Linux, zainstaluj pliki danych i rozpocznij swój pierwszy lot.

OKSampler: darmowy, prosty sampler muzyczny do rytmów klawiszowych

OKSampler: darmowy, prosty sampler muzyczny do rytmów klawiszowych

OKSampler mapuje klipy MP3 na klawisze klawiatury i umożliwia zapętlanie dźwięku. Dowiedz się, co robi ten starszy, darmowy program, gdzie kończą się jego stare funkcje i co sprawdzić przed pobraniem.