Budowa SSD. Część 3: TRIM a odzyskiwanie danych.

Jak już wiemy z poprzedniego wpisu kontroler dysku SSD musi dysponować wolnymi  komórkami pamięci NAND. Jest to konieczne, jeśli chodzi o  pracę translatora FTL, bez którego nie funkcjonuje logiczna adresacja LBA, a bez LBA nie działa system operacyjny, czyli użytkownik nie może korzystać z dysku SSD, odczytywać lub zapisywać jakiekolwiek dane. W związku z tym  kontroler dysku SSD nieustannie szuka bloków pamięci NAND, które można zwolnić bez uszkodzenia danych użytkownika lub danych systemowych dysku SSD. Z tą drugą kategorią danych dla kontrolera „wszystko jest jasne”, bo on sam je tworzy i wypełnia treścią. Natomiast zrozumienie, które to dane użytkownika nie są mu już potrzebne, jest dla kontrolera nieco bardziej skomplikowane.

Jak pamiętamy z poprzedniego wpisu, w przypadku, kiedy użytkownik usuwa pliki, system operacyjny nie trudni się nadpisywaniem usuniętych danych, a zmienia tylko kilka bitów w odpowiednich tabelach (tzw. flagi). To powoduje, że plik z poziomu systemu operacyjnego staje się niewidoczny. W przypadku dysków SSD takie podejście powodowałoby, że po pewnym czasie  dysk zapchałby się niepotrzebnymi danymi i przestał działać. Aby zwolnić zajęte przez „niepotrzebne” pliki komórki pamięci NAND (czyli wykasować te dane na stale), kontroler dysku musi najpierw zidentyfikować pliki, które nie są już potrzebne użytkownikowi.

Na szczęście nasze dane na zawsze pozostaną w pamięci data centrów FaceBook, Google i wielu innych graczy rynku BigData.
Czytaj dalej