Czym dokładnie jest TRIM?

14

Ze strony Wikipedii TRIM mam wrażenie, że TRIM został wprowadzony, aby obniżyć zapisy na dysk SSD, ale piszę do systemu plików, biorąc pod uwagę, które bloki są nieużywane.

Jeśli to prawda, czy to oznacza, że ​​dyski SSD, które nie używają TRIM, zapisują zera w blokach, gdy plik jest usuwany, aby poinformować SSD, że bloki są wolne?

Czytam to

Systemy plików w ramach gościa zwykle nie używają ponownie bloków, co oznacza, że ​​nawet jeśli system plików pozostaje niewielki w stosunku do wirtualnego rozmiaru obrazu, rzeczywisty rozmiar obrazu zwykle rośnie, aż osiągnie maksymalny rozmiar.

skłania mnie do myślenia, że ​​dyski SSD nie zastępują zerami? A może systemy plików gości są czymś zupełnie innym?

Sandra
źródło

Odpowiedzi:

15

Urządzenia pamięci flash (używane w dzisiejszych dyskach SSD) nie mogą w żadnym momencie zapisywać dowolnych danych; przed zapisaniem na komórce (zazwyczaj 4KB) należy najpierw usunąć. Niestety operacja kasowania jest bardzo wolna; dlatego urządzenia flash były o wiele wolniejsze niż napędy magnetyczne, pomimo braku ruchomych części.

Nowoczesne dyski SSD ukrywają czas wymazywania, utrzymując zestaw wcześniej wymazanych komórek, co oznacza, że ​​polecenie zapisu nie spowoduje natychmiastowego zastąpienia istniejących danych, zamiast tego kontroler napędu wybiera wymazaną komórkę, odwzorowuje ją i zapisuje nowe dane. To (i kilka strategii pamięci podręcznej zapisu) zapewnia napędowi ogromne przyspieszenie, znacznie przewyższając napędy magnetyczne.

Aby mieć pewność, że zawsze istnieje zestaw wstępnie naładowanych komórek, za każdym razem, gdy komórka nie jest potrzebna, napęd planuje usunięcie tła i dodaje do listy komórek opłat.

Niestety istniejące systemy plików nie zadały sobie trudu, aby powiedzieć napędowi, kiedy sektor jest wolny. W końcu dysk miał być po prostu głupim repozytorium bitów. Usunięcie pliku lub dowolna inna operacja oznaczająca sektor jako wolny od punktu widzenia systemu plików była jedynie znakiem w strukturze niektórych metadanych. Sam sektor nie został dotknięty. Nawet jeśli system plików wyczyścił go, pisząc na nim zera, dysk nie mógł wiedzieć, czy to oznaczało, że sektor był wolny, czy też użytkownik chciał mieć zera w pliku. Po pewnym czasie dysk nie będzie miał wolnej komórki do wymazania przed zapisaniem; a wydajność pogorszyła się tragicznie.

Instrukcja TRIM została szybko opracowana i przyjęta przez większość obecnie obsługiwanych systemów plików. Jest to prosty sygnał, którego używa system plików, aby powiedzieć napędowi, że zawartość sektora nie jest już ważna. Gdy tylko wszystkie sektory zmapowane w komórce zostaną zwolnione, kontroler SSD odwzorowuje komórkę i planuje jej usunięcie. Jeśli host odczyta te sektory, dysk SSD nie będzie przeszkadzał w pobieraniu z Flasha, natychmiast odpowiada zerami; ale najważniejszym efektem jest ciągłe uzupełnianie listy wcześniej przygotowanych komórek.

Mimo to większość dysków SSD ma mniejszą pojemność niż fizyczny rozmiar pamięci Flash, czasem nawet 75%. Pozwala to zachować niektóre nieużywane komórki nawet w 100% pełnym systemie, dzięki czemu (nad) zapis używanych sektorów jest nadal szybki.

Javier
źródło
Ciekawy. Wiedziałem koncepcyjnie o tym, jak działa TRIM, ale zastanawiałem się, ile miejsca na dysku SSD może narazić. Teraz chcę sprawdzić, czy dane te są publikowane w dowolnym miejscu dla danych dysków SSD ...
Michael B,
Ilość zarezerwowanych komórek jest zwykle publikowana. Zwykle wynosi od 5 do 10% w przypadku tańszych dysków konsumenckich, 20% + w przypadku dysków wyższej klasy. Enterprise Flash Drives (EFD) mają zwykle rezerwę od 100% do 400%; dlatego są tak cholernie drogie, że utrzymują tę ogromną rezerwę, ponieważ zapisywanie w pamięci flash zawsze niszczy lokalizacje. Pisz ciężkie aplikacje, zwykle spotykane w środowiskach serwerowych, szybko zabijałyby większość SSD konsumenckich.
Chris S,
„pisanie na komórce (zazwyczaj 4KB)” - niewłaściwie używasz pojęcia „komórka” w porównaniu z konwencjonalnym użyciem pamięci flash. Flash „komórka” przechowuje tylko jeden (lub kilka) bitów. Twoje użycie „komórki” wydaje się odpowiadać znacznie większemu blokowi (kasowanie) (może wynosić 128 KB), jak zwykle opisano w kartach danych Flash IC. Organizacja danych to komórka <sektor <strona <blok <płaszczyzna <chip.
trociny
8

Wprowadzono TRIM, aby system operacyjny (system plików w systemie operacyjnym) mógł komunikować się z nośnikiem pamięci ATA, że sektor nie jest już używany przez system plików. Nie ma to nic wspólnego z zapisywaniem na dysk.

TRIM nie gwarantuje zerowania sektora w mediach. Gwarantuje, gdy system plików zażąda odczytu z tego sektora, że ​​zwracane są zera (zwróć uwagę, że ponieważ dysk SSD wie, że sektor powinien być zerami, zwróci je niezależnie od tego, co jest faktycznie zapisane na nośniku; możliwe jest odzyskanie dane z dysku, który został przycięty, choć zwykle dyski SSD faktycznie usuwają pamięć).

Systemy plików mają tendencję do rozpowszechniania swoich zapisów (z różnych powodów, od próby wyrównywania zapisu, przez wyrzucanie elementów bezużytecznych, losowe miejsca przechowywania itp.). Z tego powodu, jeśli nośnik nie wie, z których sektorów nie korzysta system plików, samo zapisanie zer nie musi oznaczać, że sektor jest nieużywany, wówczas należy założyć, że cały dysk jest zajęty.

W przypadku dysków SSD założenie to oznacza, że ​​sektor musi zostać skasowany w czasie zapisu, zmniejszając prędkość zapisu; zamiast kasować lokalizację pamięci w momencie usuwania pliku. Podobnie jak w przypadku plików dysków wirtualnych w systemach wirtualizacji, plik dysku dynamicznego ostatecznie obejmie pełną pojemność dysku wirtualnego. Jeśli system wirtualizacji wdroży TRIM, będzie wiedział, kiedy sektor nie jest już używany, a zatem dysk dynamiczny nie musi śledzić tej lokalizacji.

Chris S.
źródło
Czy to oznacza, że ​​TRIM został wprowadzony, aby SSD wiedział, które sektory są używane, aby mógł umieścić nowe dane w sektorach, które były rzadziej używane?
Sandra,
1
Dyski SSD wykorzystują po prostu TRIM, aby wiedzieć, kiedy sektor nie jest już potrzebny. Nie gwarantuje poziomowania zapisu ani żadnych innych funkcji, które może zaimplementować nośnik pamięci. To powiedziawszy, większość dysków SSD używa go do wyrównywania zapisu, wyrzucania elementów bezużytecznych (w pamięci flash, usuwania nieużywanych sektorów) i utrzymywania wolnych list sektorów w celu poprawy wydajności zapisu).
Chris S,