Ile wolnego miejsca powinien zachować ZFS, zanim wydajność migawek zacznie spadać?

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Na początek warto pozostawić około 20% puli ZFS wolne. Znana zasada 80% zajętości to zabezpieczenie, a nie nagła granica: obciążenie, układ vdev, rozmiar rekordów, fragmentacja i bloki zachowane przez migawki określają, kiedy wydajność faktycznie zaczyna spadać.

Migawki mają znaczenie, ponieważ nadpisane lub usunięte bloki nie mogą wrócić do wolnej przestrzeni, dopóki migawka nadal się do nich odwołuje. Pula może więc wyglądać stabilnie do czasu dużego przepisywania danych, odbioru replikacji lub czyszczenia migawek, które ujawni, jak mało miejsca roboczego pozostało. To rozróżnienie wyznacza metodę pomiaru, margines bezpieczeństwa i warunek przerwania. To rozróżnienie wyznacza metodę pomiaru, margines bezpieczeństwa i warunek przerwania.

Traktuj zajętość na poziomie 80% jako próg wczesnego działania

Przy niskim poziomie zajętości ZFS ma więcej możliwości przydzielania nowych bloków. W miarę zapełniania puli coraz trudniej znaleźć wolne obszary, a aktualizacje typu copy-on-write mogą wymagać więcej pracy alokatora, szczególnie na pofragmentowanych pulach HDD.

Zacznij reagować na pojemność przy około 80% zajętości, zamiast czekać na brak miejsca. Pamięć masowa maszyn wirtualnych, bazy danych i małe losowe operacje wejścia-wyjścia wymagają większego zapasu niż archiwum obsługujące głównie sekwencyjny odczyt i zapis.

Mierz zajętość zarówno na poziomie puli, jak i zbioru danych. Limity i rezerwacje mogą spowodować awarię zbioru danych, nawet gdy pula zgłasza wolne miejsce, a migawki mogą zajmować przestrzeń, której nie pokazują zwykłe narzędzia do zarządzania katalogami.

Obserwuj sygnały ujawniające rzeczywiste przeciążenie

Śledź pojemność puli, fragmentację, opóźnienia zapisu, trend ilości wolnego miejsca, przestrzeń zajmowaną przez migawki oraz rozmiar oczekujących zadań replikacji lub tworzenia kopii zapasowych. Jeden procent nie może opisać wszystkich tych ograniczeń.

Jeśli jest to bezpieczne, porównaj opóźnienia podczas normalnego obciążenia przy zajętości 70%, 80% i wyższej. Istotnym ostrzeżeniem jest powtarzalny wzrost opóźnień lub spadek przepustowości przy tym samym obciążeniu.

Skorzystaj z poniższej tabeli decyzyjnej, aby przełożyć zajętość i zachowanie systemu na konkretne działania.

Zaobserwowany stan Ocena Do wykonania
Poniżej 70% zajętości; stabilne opóźnienia Zdrowy zapas Kontynuuj monitorowanie trendu
Około 80% zajętości lub rosnące opóźnienia Próg działania Bezpiecznie usuń zbędne dane, przenieś dane lub rozbuduj pulę
Powyżej 90% zajętości; nieudane przydziały Stan krytyczny Wstrzymaj nieistotne zapisy i odzyskaj miejsce

Odzyskaj zapas miejsca bez wywoływania kolejnego problemu

Usuwaj tylko migawki znajdujące się poza zatwierdzonym okresem przechowywania i potwierdź, że nie są wymagane jako bazy replikacji. Usunięcie niedawnej wspólnej migawki może wymusić pełne ponowne przesłanie danych, które będzie wymagało jeszcze więcej miejsca.

Przenieś rzadko używane dane, rozbuduj pulę za pomocą obsługiwanej topologii lub ogranicz napływające zapisy przed uruchomieniem wymagających operacji konserwacyjnych. Nie uruchamiaj jednocześnie scrubowania, odbudowy, odbioru replikacji i masowego usuwania danych na niemal pełnej puli.

Diagnostyka zajętości miejsca przez migawki w ZimaSpace oddziela migawki od koszy i aktywnych plików.

Analiza migawek OpenZFS firmy Klara Systems łączy zapełnienie puli, wykorzystanie miejsca przez migawki i praktyczne planowanie pojemności.

-15% OFF

Ponownie przetestuj pierwotne obciążenie po oczyszczeniu puli

Po odzyskaniu miejsca powtórz te same operacje zapisu, tworzenia migawek i przeglądania katalogów. Porównaj opóźnienia, przepustowość i obciążenie alokatora, zamiast zakładać, że samo zmniejszenie zajętości rozwiązało problem.

Potwierdź, że następny zaplanowany cykl migawek i replikacji zakończy się pomyślnie oraz że pula nie powróci natychmiast do poziomu ostrzegawczego. Ustaw alerty wystarczająco wcześnie, aby uwzględniały normalny wzrost danych oraz największe oczekiwane zadanie tymczasowe.

Gdy nie masz pomiarów, zachowaj 20% wolnego miejsca. Zwiększ ten zapas, jeśli rosną opóźnienia zapisu, fragmentacja jest wysoka lub duże rozbieżności migawek są czymś typowym; wstrzymaj nowe zapisy, jeśli pula zbliża się do wyczerpania lub przydziały zaczynają się nie udawać.

Wsparcie i wskazówki

Więcej do przeczytania

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.