Dlaczego TRIM różni się między pulami SSD w domowych NAS a pojedynczymi dyskami?

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.

TRIM nie staje się innym poleceniem, gdy dyski SSD trafiają do domowej puli NAS. Zmienia się ścieżka, którą musi przebyć informacja o wolnej przestrzeni.

System plików na pojedynczym dysku zwykle może przypisać usunięty zakres do jednego urządzenia. W puli może być konieczne przetłumaczenie tego zakresu przez zestawy danych, menedżery woluminów, lustra, układy parzystości, szyfrowanie lub cienkie przydzielanie, zanim jakikolwiek SSD otrzyma wskazówkę o zwolnieniu. Ta dodatkowa translacja zmienia, które bloki można zwolnić, kiedy praca jest wykonywana i jak widoczny staje się jej koszt.

Pojedynczy dysk SSD ma jedną główną mapę alokacji do przetłumaczenia

Gdy plik zostaje usunięty, system plików usuwa jego logiczne prawo własności do bloków. SSD nie może wywnioskować tej zmiany na podstawie zwykłych odczytów i zapisów, więc host może wydać polecenie TRIM, SCSI UNMAP lub NVMe deallocation dla dotkniętych logicznych adresów. Ta relacja między usunięciem a zarządzaniem pamięcią flash jest kluczowym punktem w dostępnym wyjaśnieniu TRIM SSD.

Na jednym bezpośrednio podłączonym dysku translacja jest stosunkowo krótka: wolna przestrzeń systemu plików staje się zakresem do zwolnienia na urządzeniu. Nawet tutaj wskazówka nie gwarantuje natychmiastowego fizycznego wymazania. Kontroler może oznaczyć strony jako nieważne i odzyskać je później podczas zbierania śmieci, dlatego TRIM nie jest mechanizmem bezpiecznego usuwania ani natychmiastową operacją poprawy wydajności.

Pula SSD dodaje translację i granice własności

Pula wprowadza warstwy, z których każda może mieć inną mapę przydzielonej przestrzeni. System plików może wiedzieć, że logiczny zakres jest wolny, podczas gdy migawka nadal go referencjonuje. Wirtualne urządzenie blokowe może wtedy podzielić zachowany zakres między członków, a kontroler lub warstwa szyfrowania musi zachować mapowanie na tyle dobrze, by przekazać bezpieczne zwolnienie dalej w dół.

Praktyczne pytanie nie brzmi więc tylko, czy każdy SSD obsługuje TRIM. Chodzi o to, czy każda warstwa akceptuje, tłumaczy i przekazuje to żądanie. ścieżka zwolnienia przez warstwy pamięci masowej Linux pokazuje, dlaczego polecenie może być ważne na poziomie systemu plików, a jednocześnie zmienione, opóźnione lub zablokowane niżej w stosie.

Stan pamięci Pojedynczy SSD Pula SSD Dlaczego zachowanie się różni
Usunięty plik Zakres na jednym urządzeniu może stać się wolny Migawki lub repliki mogą nadal posiadać bloki Logiczne usunięcie nie zawsze oznacza fizyczne zwolnienie
Mapowanie adresów System plików do jednego urządzenia blokowego System plików do układu wirtualnego do członków Zakresy mogą być podzielone lub przepisane
Harmonogram zwolnienia Ciągły lub okresowy Często koordynowany na poziomie puli lub zestawu danych Skoki mogą dotyczyć kilku urządzeń
Widoczny efekt Jeden dysk wykonuje czyszczenie w tle Członkowie mogą czyścić w różnym czasie Opóźnienia w puli mogą być nierówne

Lustra, parzystość i cienka alokacja zmieniają bezpieczny zakres

Lustro często może wysłać równoważne informacje o dealokacji do obu kopii, ale dopiero po tym, jak warstwa wyższa zdecyduje, że żadna z kopii nie jest potrzebna. Układy parzystości są trudniejsze, ponieważ jeden logiczny zakres jest reprezentowany przez dane i parzystość na kilku urządzeniach. Zwolnienie, które jest nieszkodliwe dla jednego logicznego adresu, może wymagać wyrównania, reguł rekonstrukcji lub tłumienia na warstwie urządzenia wirtualnego.

Cienkie przydzielanie dodaje kolejną granicę własności. Zwolnienie bloków wewnątrz systemu plików nie zwalnia automatycznie przydziału bazowego, chyba że dealokacja przekracza granicę wirtualnego dysku. Ten rozróżnienie jest również powodem, dla którego polecenia TRIM, UNMAP i dealokacji powinny być rozumiane jako sygnały zarządzania adresami, a nie jako uniwersalna akcja wymazywania.

Harmonogram TRIM może zmieniać opóźnienia bez zmiany pojemności

Ciągłe zwalnianie wysyła wskazówki w miarę zwalniania przestrzeni. Okresowe przycinanie skanuje wolne zakresy partiami. Pierwsze podejście rozkłada ruch poleceń na normalną aktywność; drugie może powodować zauważalny skok konserwacji. Żadne z nich nie zmienia łącznej zgłaszanej wolnej przestrzeni systemu plików, ponieważ ta wartość była aktualizowana w momencie usunięcia plików, a nie podczas wymazywania bloków flash.

Systemy plików mogą celowo wybierać asynchroniczne zwalnianie, aby zmniejszyć przerwy w działaniu na pierwszym planie. Inżynieria stojąca za asynchronicznym zwalnianiem Btrfs ilustruje, jak grupowanie i kontrola tempa oddzielają zwalnianie przestrzeni od natychmiastowego opóźnienia aplikacji. Na poziomie urządzenia zachowanie TRIM i zbierania śmieci wyjaśnia, dlaczego czyszczenie może trwać po zakończeniu polecenia po stronie hosta.

Spójność w całej puli jest ważniejsza niż pojedyncza opcja na dysku

Dla domowego NAS przydatnym testem jest test end-to-end. Potwierdź, że system plików potrafi zidentyfikować nieużywane zakresy, że zachowane migawki są uwzględnione, że warstwa puli obsługuje zwalnianie dla swojego układu oraz że każdy członek zgłasza oczekiwaną funkcję. Flaga funkcji na poziomie dysku dowodzi tylko, że końcowe urządzenie potrafi zrozumieć polecenie.

Obserwuj też opóźnienia w czasie, zamiast oczekiwać, że jedno uruchomienie trim natychmiast podniesie wynik benchmarku. Wiele dysków SSD może wejść w zbieranie śmieci w różnych momentach, a badania nad zbieraniem śmieci w tablicach SSD pokazują, dlaczego nieskoordynowane czyszczenie może powodować zmienną wydajność macierzy. Polityka zwalniania puli powinna być oceniana jako zachowanie harmonogramu, a nie jako funkcja SSD typu tak lub nie.

FAQ

Czy usunięcie pliku oznacza natychmiastowe przycięcie SSD w NAS?

Nie. Usunięcie najpierw zmienia własność w systemie plików. Ciągłe lub zaplanowane zwalnianie może później powiadomić urządzenie, a kontroler SSD może odłożyć fizyczne odzyskanie do własnego cyklu zbierania śmieci.

Czy migawki mogą zapobiec zwolnieniu przestrzeni przez TRIM?

Tak. Jeśli migawka nadal odnosi się do starych bloków, system plików nie może prawdziwie oznaczyć tych zakresów jako nieużywanych. Bloki stają się możliwe do zwolnienia dopiero po usunięciu wszystkich aktywnych odniesień.

Czy każda pula SSD powinna używać ciągłego zwalniania?

Nie automatycznie. Ciągłe i okresowe zwalnianie przesuwają pracę w różne wzorce opóźnień. Właściwy wybór zależy od wsparcia systemu plików, układu puli, obciążenia i tego, czy zaplanowana konserwacja powoduje akceptowalne przerwy.

Centrum Technologii i Sztucznej Inteligencji

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.