Pamiętacie jeszcze jak dwadzieścia lat temu wyglądały komputery? Ja z lat 90. pamiętam przede wszystkim starą przyjaciółkę Amigę 1200, więc z perspektywy czasu wydaje mi się to epoka kamienia łupanego. Wtedy jeszcze tego nie wiedziałem, ale w tym samym czasie, kiedy podłączałem swój komputer do ekranu telewizora (takie czasy), na rynek wkroczył nowy system plików NTFS, następca wysłużonego FATa. Zaskakujące może być to, że oba systemy po dwudziestu latach dalej funkcjonują i mają się dobrze. Dopiero stosunkowo niedawno Microsoft zaproponował coś nowego - ReFS (Resilient File System - czyli Stabilny System Plików). Premiera systemu nastąpiła razem z wersją serwerową Windowsa 8, czyli Windows Server 2012, niebawem pewnie zagości również na maszynach domowych.
Czytaj więcej o wykorzystaniu ReFS w Windows 10 >>
Najwyższy czas na nowy system plików - zwłaszcza, że potrzeby użytkowników zaczęły już niebezpiecznie zbliżać się do granic możliwości systemu NTFS. W połowie lat 90. standardowy komputer osobisty posiadał twardy dysk o pojemności około 250 MB, nic więc dziwnego, że maksymalna pojemność dysków obsługiwanych przez NTFS, czyli w praktyce 16 TB, wydawała się wtedy kosmiczna. Od tego czasu jednak sporo się zmieniło i granica ta zaczęła coraz częściej pokazywać się na horyzoncie.
Jednak gdyby tylko o pojemność chodziło, ReFS nie miałby słowa "stabilny" w nazwie. Właśnie ta cecha została uznana za najważniejszą cechę, którą nowy system odróżnia od poprzedników. Z czego wynika ta stabilność?
Największą bolączką wcześniejszych systemów plików była ich wrażliwość na wystąpienie błędów podczas procesu zapisu. System FAT nadpisuje zmiany bezpośrednio na modyfikowanym pliku. Jeśli ten proces zostanie przerwany (na przykład w wyniku zaniku zasilania), dochodzi do utraty danych - częściowo nadpisany plik jest bowiem uszkodzony. NTFS radzi sobie z tym problemem stosując dziennikowanie - zmiany są zapisywane najpierw w dzienniku, a dopiero później nadpisywane na modyfikowanym fragmencie danych. Dzięki temu, jeśli proces ten został przerwany (niezależnie, w którym miejscu) - zawsze istnieje poprawnie zapisana wersja danych (w dzienniku albo na dysku). Problem polega na tym, że dziennikowanie znacznie zmniejsza wydajność systemu, ponieważ proces zapisu musi zostać zawsze wykonany dwukrotnie.
Jak więc radzi sobie z tym problemem ReFS?
Nowy system plików traktuje dysk jak bazę danych, opartą na strukturze drzewa (drzewo B+). Zmiany nie są nadpisywane na modyfikowanym pliku, nie są także rejestrowane w dzienniku zmian, jak dzieje się to w NTFS. Zamiast tego nowe dane zapisywane są w zupełnie nowym miejscu, a kiedy proces zapisu zakończy się powodzeniem, informacja o nowym wpisie linkowana jest odpowiednio w strukturze drzewa. Oznacza to, że każdy zapis powoduje tworzenie nowej kopii danych.
Struktura drzewa, zawierająca tabele z plikami pełniącymi funkcję wpisów (jak w bazie danych), umożliwia systemowi przeprowadzanie procesów samodzielnego sprawdzania poprawności wpisów i korygowania ewentualnych błędów.
ReFS a utrata danych
Struktura drzewa sprawia, że odzyskiwanie danych, zapisanych w systemie ReFS jest bardziej skomplikowane niż wcześniej. W przypadku systemów posiadających tablice alokacyjne (FAT i NTFS) wystarczyło odszukać odpowiednie metadane, żeby zlokalizować interesujące nas pliki (oczywiście nie jest to aż TAK proste, ale było to z pewnością coś, do czego specjaliści od odzyskiwania danych byli przyzwyczajeni). Dane zapisane w systemie ReFS muszą być natomiast lokalizowane w poszczególnych tabelach, w których zostały zapisane, zidentyfikowane muszą zostać także powiązania między nimi.
W niektórych przypadkach nowy system może być jednak znacznym ułatwieniem - zapisywanie wszystkich zmian jako kolejnej kopii znacznie zwiększa prawdopodobieństwo, że pomimo uszkodzenia nośnika, któraś z tych kopii będzie możliwa do odczytania i odtworzenia.