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
- Anonymous
June 12, 2016
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.- Anonymous
March 18, 2019
@Jarosz: W tej materii Microsoft nie musi się skupiać na desktopach bo po co w desktopach współdzielenie magazynów danych? To oczywiste że taka funkcojnalność jest potrzebna wyłącznie w zastosowaniach serwerowych a w systemach lokalnych jest ona zbędna. A co do porównania z linuksowymi systemami plików, to akurat NTFS nie jest żadną "pleśnią przeszłości". Jest z nimi porównywalny, pod pewnymi względami lepszy a pod innymi gorszy ale nie ma jednoznacznej przewagi systemów linuksowych nad NTFS ani NTFS nad wywtemami linuksowymi. Co do serwerwów to Marcin ma rację - ogromna ilość firm zrezygnowała z lunuksów i Netware na rzecz serwerów Windowsowch i trzeba być odciętym od rzeczywistości żeby twierdzić że w świecie serwerów Windows się nie liczy.
- Anonymous
- Anonymous
October 09, 2016
@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:) - Anonymous
January 05, 2017
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. - Anonymous
March 18, 2019
(The content was deleted per user request)