Czym jest ReFS i czy zastąpi NTFS?


Chciałbym Wam dziś kilka słów napisać na temat systemu plików ReFS (Resilient File System), który z jednej strony nie jest niczym nowym - pojawił się w Windows Server 2012 oraz sporo pisaliśmy o nim w kontekście Windows 8.

Ale też nie jest czymś, co jest stosowane na szeroką skalę i nadal wiele osób nie wie, czym jest oraz może co ważniejsze - kiedy powinniśmy z niego skorzystać. Mój post postara się odpowiedzieć na to pytanie.

Post jest również pewnym wstępem teoretycznym do następnego posta 🙂 Ale pomyślałem, że bez tego wstępu następnym razem byłoby mi trochę trudniej omówić kwestie przyspieszenia pewnych operacji (które z NTFS mogły trwać ponad 20 minut, a z ReFS i Windows Server 2016 TP3 trwają teraz sekundę).

Trochę historii, czyli NTFS i FAT

Wszyscy bardzo mocno przyzwyczailiśmy się do systemu plików NTFS (New Technology File System), który jest z nami od czasów... Windows NT 3.1 i jest on domyślnym systemem plików dla rodziny Windows NT.

Jest to system wymyślony i stworzony przez Microsoft (choć bardzo mocno inspirowany IBMowym systemem HPFS z OS/2). Jest też on systemem, który powstał na potrzeby nowoczesnych systemów operacyjnych i spore ograniczenia systemów z rodziny FAT (File Allocation Table).

Tak jak wspomniałem - system NTFS pojawił się z Windows NT 3.1 (w 1993 roku), a aktualnie używana jest jego wersja 3.1 (wydana razem z Windows XP).

Sam system w dużym skrócie charakteryzuje się wsparciem dla metadanych (opisujących pliki), specjalnymi strukturami, dzięki którym jest szybki, wydajny i dobrze wykorzystujący przestrzeń dyskową, wspiera również obsługę dodatkowych rozszerzeń - takich jak np. ACLe (Access Control Lists) czy VSS (Volume Shadow Copy Service).

Czym jest ReFS?

Jedno z pierwszych pytań jakie się pojawia kiedy słyszy się o nowym systemie plików (a takim jest ReFS) to czy ma być on bezpośrednim i całkowitym następcą dla poprzednika (czyli NTFS)?

Ale jak możecie się domyślać (i też już to wspomniałem) - skoro ReFS pojawił się już w Windows Server 2012, a NIE jest nadal w Windows Server 2016 (Technical Preview 3) domyślnym systemem plików - to znaczy, że coś jest na rzeczy...

Duże składnice danych

Otóż system plików ReFS o ile nawet czerpał trochę z idei NTFS to powstał jednak w trochę innym celu. Świat mocno się zmienił od czasów Windows NT 3.1, a chyba takim najbardziej widocznym elementem jest ilość danych jakie teraz posiadamy i przetwarzamy na naszych komputerach. A co dopiero kiedy pomyślicie o serwerach w Waszych firmach albo jeszcze lepiej - o serwerach obsługujących miliony Klientów na świecie (chmura!).

Dlatego właśnie ReFS sprawdzi się idealnie jako system plików tam, gdzie chcemy przetwarzać duże ilości danych/plików oraz chcemy te dane udostępniać lub współdzielić (serwer plików).

Co powiecie na obsługę 1 jottabajta (YB)? Ja w sumie też pierwsze słyszę o takim pojęciu, a teoretycznie ReFS może obsługiwać tak duże dyski... Ale jeśli 1 gigabajt (1 GB) to 109, to 1 YB to 1024. Ciężko nawet w dzisiejszych czasach ogarnąć taką skalę. Ja słyszę czasem o przetwarzaniu danych w postaci petabajtów (PB). I o ile 1 PB to aż 1000 TB (terabajtów), to 1 YB zmieści aż 1000 * 1000 * 1000 PB (albo 1000 * 1000 eksabajtów, ewentualnie 1000 zettabajtów)...

Odporność na awarie

Nie chcę wchodzić zbyt głęboko w szczegóły systemu plików ReFS (zrobił to świetnie kolega PFE - Martin Lucas już jakiś czas temu), ale jego bardzo ważną cechą jest "samonaprawialność", kiedy to dysk z tym systemem plików potrafi rozpoznać że coś jest nie tak z danymi i naprawić je w locie.

Może niektórym wyda się to dziwne, ale z ReFS możecie zapomnieć o narzędziu CHKDSK, które przez wielu było bardzo znienawidzone - zwłaszcza w kontekście czasu działania na dużych dyskach (teraz myślicie o jego odpaleniu na dysku 1 YB???).

A nawet chkdsk nie zadziała na dysku z ReFS i pokaże Wam taki miły komunikat 🙂

W ekstremalnych sytuacjach, jeśli ReFS nie będzie w stanie sam naprawić danych to odizoluje je od zdrowej części dysku, tak aby użytkownicy nadal mieli do nich dostęp.

Co z NTFS?

W tym wyżej opisanym kontekście możecie się już domyślać, że nadal NTFS zostanie głównym i podstawowym systemem plików dla dysków systemowych czy nawet dla niezbyt dużych składnic danych. Zwłaszcza, że w Windows Server 2012 wprowadziliśmy też wiele usprawnień do wspomnianego wcześniej CHKDSK (sugeruję doczytać w TechNet).

Dzięki tym zmianom NTFS nadal będzie radził sobie świetnie, nawet i w instalacjach gdzie macie dyski wieloterabajtowe. Bo i czas naprawy się skrócił, ale też do NTFS wprowadzone zostały pewne mechanizmy samonaprawy.

Kompatybilność ReFS vs. NTFS

Sam ReFS został zbudowany tak, aby na poziomie API był kompatybilny z NTFS. Oznacza to tyle, że aplikacje, które do tej pory korzystały z plików leżących na NTFS (lokalnie czy zdalnie) nawet nie powinny się zorientować, że coś się zmieniło jeśli je przeniesiecie (te pliki) na dyski z ReFS.

Jest jednak trochę różnych funkcji i możliwości, które nie są wspierane w ReFS, a dostępne są tylko w NTFS. Jeśli odpalilibyście sobie fsutil dla dwóch dysków - z NTFS i ReFS i wylistowali co jest wspierane - to zobaczylibyście takie obrazki:

Więc jeśli chcielibyście używać czegoś zaznaczonego na żółto - to zostaje Wam na razie tylko NTFS. Aczkolwiek grupa produktowa regularnie pracuje nad tym, aby coraz więcej rzeczy było obsługiwanych również w ReFS.

Również dyski systemowe (boot/OS) nie mogą korzystać z ReFS i tam trzeba mieć je z NTFS. To samo dotyczy również funkcji deduplikacji dostępnej od Windows Server 2012 - ona też wymaga NTFS.

Z drugiej strony Storage Spaces bez problemu współpracują z ReFS (zostały do tego zaprojektowane). I na przykład jeśli stworzycie sobie dyski wirtualne w trybie Mirror i sformatujecie je z ReFS - to gdy tylko zostaną wykryte jakieś problemy na jednym z dysków, to ReFS sam zareaguje i podmieni błędne dane - tymi poprawnymi skopiowanymi z lustrzanej kopii 🙂

Podsumowując

Mam nadzieję, że dowiedzieliście się dziś czegoś nowego o ReFS, ale nawet jeśli nie - to zaproszę Was na następny post, w którym opowiem jak ReFS może drastycznie przyspieszyć pewne operacje w kontekście wirtualizacji i operacji na dyskach. Co powiecie na skrócenie czasu operacji z 18 minut do 1 sekundy? 🙂 Zainteresowani? To zapraszam wkrótce do nowego posta.

A jeśli sami chcielibyście sprawdzić ReFS w akcji - to wystarczy pobrać sobie Windows Server 2012 R2 lub testową wersję Windows Server 2016 - i sprawdzić to sobie w labie.

Comments (3)

  1. Jarosz says:

    Trochę to przykre, że MS nie skupia się w tej materii na desktopach, na których ma przecież największe udziały. Nie oszukujmy się, Windows w świecie serwerowym praktycznie nie istnieje. To, co byłoby przemyślaną decyzją to zastąpienie w końcu archaicznego i wysłużonego NTFS. Nie oszukujmy się, patrząc w stronę Linuksowych systemów plików, NTFS jest pieśnią przeszłości, która już dawno powinna była odejść do lamusa.

  2. Marcin says:

    @Jarosz, kolega chyba nie ma pojęcia jak wygląda świat serwerowy 🙂 Nie ma chyba firmy, gdzie za kręgosłup Back-Office nie odpowiadają serwery Windows z usługami Active Directory, wewnętrznym DNS, pocztą Exchange’a. Serwery plików, serwery wydruku, DHCP i wiele wiele innych. Prawda jest taka, że systemy Windows są o wiele elastyczniejsze i nie ma lepszej propozycji dla zadań korporacyjnych. Tutaj linux nie ma czego zaoferować 🙂 Linux wygrywa jedynie w przypadku serwerów aplikacyjnych, www czy SQL Oracle’a. Chociaż IMHO. jest to też duża zasługa ludzi pamiętających 10-15 lat wstecz i przekonanych, że Windows nadal jest dziurawy jak ser szwajcarski co od lat jest nieprawdą. Świat się dawno zmienił tylko trzeba otworzyć na niego oczy:)

  3. Tomek says:

    Ja rozumiem, że autor artykułu jest bardziej z działu IT, niż humanistycznego, ale osoba z działu IT powinna chyba umieć konstruować swoje myśli w bardziej przystępny sposób.
    Artykuł czyta się ciężko.
    Przykro mi to stwierdzić, ale podczas czytania artykułu ma się nieodparte wrażenie, że konstrukcje zdań, sformułowania słowne sklecał uczeń liceum.
    Nie ma się co obrażać, już z góry powiem, ale chwila refleksji może by coś wniosła.

Skip to main content