Nigdy więcej degradacji danych, czyli przyglądamy się nowemu systemowi plików Windows
System plików to fundamentalny element każdego systemuoperacyjnego, wpływający na niemal każdy aspekt pracy zkomputerem. Dla użytkowników Windows domyślny system plików to odwielu lat NTFS, wprowadzony na rynek w 1993 roku wraz z systememWindows NT 3.1. Z kolejnymi wersjami „okienek”, NTFS otrzymywałkolejne ulepszenia – aż do czasu wydania Windows Vista.Wprowadzone wówczas zmiany były ostatnimi. Od 2006 roku prace nadsystemem plików Windows najwyraźniej stanęły w miejscu, kuniezadowoleniu wszystkich tych, którzy pamiętali ambitne obietniceMicrosoftu z czasu projektu Longhorn. Czekali oni na relacyjny,bazodanowy system WinFS, całkowicie zmieniający proces zarządzaniaplikami, a dostali prosty mechanizm linków symbolicznych. Dopierodwa lata temu coś drgnęło w kwestii systemów plików z Redmond.Windows Server 2012 przyniósł debiut ReFS – Resilient FileSystem.
28.09.2014 | aktual.: 29.09.2014 08:59
Użytkownicy pracujący na wielu systemach operacyjnych mogąłatwo się przekonać, że dziś NTFS odstaje już trochę odrozwijanych głównie dla Linuksa systemów plików, takich jak xfs,btrfs czy nawet domyślny ext4. Widać to szczególnie w przy zapisiedużych plików, gdzie NTFS potrzebuje nawet dwukrotnie więcej czasuna ukończenie operacji, niż xfs (obecnie domyślny system plikówRHEL-a 6 i CentOS-a). Oczywiście NTFS wciąż jest bardziejrozbudowany niż jego szybcy linuksowi konkurenci, ale trzebapamiętać, że akurat w dziedzinie systemów plików Linux rozwijasię bardzo szybko. Pod względem oferowanych możliwości, nowykandydat do pozycji domyślnego systemu plików, czyli btrfs, oferujewszystko, czego nawet najbardziej wymagający użytkownik możeoczekiwać.
Z braków NTFS zdają sobie sprawę i w Microsofcie. WspomnianyReFS trafił do Windows Servera 2012 z myślą o zastosowaniu goprzede wszystkim w serwerachplików – zastąpić NTFS jeszcze nie był gotów. Jeszcze,gdyż od początku intencją jego autorów było uczynienie z ReFSsystemu plików nowej generacji dla wszystkich systemów Microsoftu.I tak oto wraz z wydaniem Windows 8.1, nowy system plików zawędrował„pod strzechy”. Po raz pierwszy oficjalnie możliwe się stało wklienckim OS-ie wykorzystanie czegoś innego niż NTFS (czy staryFAT).
Koniec z degradacją danych
Dlaczego ReFS jest taki ważny dla Microsoftu? Pomyślano go tak,by zaradził głównym niedostatkom NTFS, z zachowaniem w miaręmożliwości pełnej kompatybilności z poprzednikiem na poziomieAPI, tak by dla starszych aplikacji nie było różnicy, na którymsystemie plików pracują. Szczegółowe wprowadzenie do ReFSautorstwa Stevena Sinofsky'ego, byłego szefa pionu Windows wMicrosofcie, znaleźć można na blogu BuildingWindows 8. Najważniejsze kwestie streścimy tutaj pokrótce.
- Do przechowywania wszystkich informacji (także metadanych) wykorzystywane są B+drzewa(http://www.wikiwand.com/pl/B-drzewo), czyli drzewiasta struktura danych, w której dane przechowywane są tylko w liściach. Informacje organizowane są w tabelach, podobnie jak w relacyjnych bazach danych.
- Dzięki wykorzystaniu B+drzew, znika wiele znanych z NTFS ograniczeń. ReFS zapewnia obsługę długich nazw plików. O ile w NTFS nazwapliku czy katalogu ograniczona jest do 255 znaków, to ReFS wspieranazwy mające nawet 32 768 znaków. Powiększono też maksymalnyrozmiar pliku do 16 eksabajtów (16*1018) i maksymalny rozmiarwolumenu do 1 jottabajta (1024 bajtów). Każdy wolumen możeprzechowywać do 18 bilionów (1012) plików. Pod tym względem,istotnym dla administratorów hurtowni danych i innych systemów BigData, ReFS wygrywa nawet z dotychczasowym liderem, solarisowymsystemem plików ZFS.
- ReFS kończy z narzędziem CHKDSK. Ta podstawowa komenda dosprawdzania poprawności plików, której nigdy nie chcieliśmyużywać, ale zawsze chcieliśmy mieć pod ręką na wszelki wypadek,w ReFS nie znajduje zastosowania. Microsoft wreszcie wbudował wsystem plików mechanizmy naprawcze – jeśli dojdzie do awarii,jest ona usuwana na bieżąco. Co prawda pierwsze takie mechanizmyautonaprawcze pojawiły się w Windows Serverze 2012 R2 dla NTFS, alenie dorównują one temu, co zapewnia nowy system plików. ReFSwykorzystuje sumy kontrolne, by potwierdzić poprawność zapisuwszystkich danych, a następnie regularnie je sprawdza, by zaradzićdegradacji danych, nieuniknionej choćby ze względu na losowe błędykontrolera pamięci masowej. W dzisiejszych scenariuszach zastosowańReFS nie ma zresztą innego wyjścia – ile czasu zajęłobysprawdzenie za pomocą CHKDSK wolumenu utworzonego z petabajtowejmacierzy dyskowej?
- Porzucając CHKDSK, ReFS kończy także z koniecznościąwyłączania wolumenu podczas napraw. Wszystkie naprawy zachodzą wtrakcie pracy systemu, w sposob niewidoczny dla użytkownika ipracujących aplikacji.
- Nowy system plików Microsoftu jest także całkowicie odporny naawarie zapisu wynikające z przerw w zasilaniu. O ile NTFS wszystkiezmiany w metadanych plików (np. zmiana nazwy czy zmiana zawartościpliku) nadpisuje nad ostatnim zbiorem metadanych, to ReFS stosujestrategię allokacja-po-zapisie, w której metadane są zapisywane wnowym miejscu, a następnie dołączane do pliku po zakończeniuoperacji zapisu. W ten sposób na wolumenach ReFS nigdy nie dojdziedo uszkodzenia danych, które mogły w wypadku wolumenów NTFSzakończyć się nawet niebieskim ekranem śmierci.
Podstawowe zastosowanie na dziś: Storage Spaces
Obecnie wolumeny ReFS nie mogą być jeszcze wykorzystywane jakowolumeny systemowe, do rozruchu systemu. Oficjalnie ich głównezastosowanie to Storage Spaces, wygodny mechanizm, który można wuproszczeniu przedstawić jako RAID zrealizowany na poziomie systemuoperacyjnego. Korzystać z niego mogą już nie tylko administratorzyWindows Servera, ale też domowi użytkownicy Windows 8.1 (dlaktórych, jak już zostało wspomniane, jest to jedyny oficjalnieuznany sposób zapoznania się z ReFS). Co prawda Storage Spacesdziała też z NTFS, ale z ReFS zapewnia większą niezawodność,sprawdzając w tle stan lustrzanych kopii plików. Szczegółoweobjaśnienie tego mechanizmu znajdziecie oczywiście na bloguBuildingWindows 8.
Wielu osobom Storage Spaces może wydać się znaczniewygodniejszy, niż RAID – i chyba nie bez powodu. Możemywykorzystać wszelkiego rodzaju pamięci masowe – nie tylko dyskiSATA, ale nawet te podłączane przez USB (choć oczywiścienajlepsze wyniki uzyskamy z dyskami PCIe, M.2 czy chociażby SAS). Zpodłączonych do komputera dysków tworzymy pule pamięci masowej(Storage Pools), a nad nimi tworzymy przestrzenie pamięci masowej(Storage Spaces) – zasadniczo wirtualne wolumeny, rozciągającesię na wiele pul wykorzystujących wiele napędów. Podobnie jak wwypadku RAID, Storage Spaces możemy sobie skonfigurować na kilkasposobów, z których najbardziej chyba przydatnym jest Mirror Space,odpowiednik RAID-1. System na bieżąco tworzy tu kopię zapasowąwszystkich danych zapisywanych na dysk (oczywiście potrzebujemy conajmniej dwóch fizycznych napędów).
Mimo młodego wieku tego rozwiązania, wydaje się, że działaono dokładnie tak, jak Microsoft obiecuje. W krótkim teście MirrorSpace utworzonym na dwóch dyskach podłączonych przez USB 3.0,próba symulacji awarii jednego z dysków, polegająca na jegofizycznym odłączeniu od komputera, zakończyła się bezboleśnie –wirtualny wolumen był cały czas dostępny, wraz ze wszystkimiplikami. W panelu administracyjnym można było jedynie przeczytaćostrzeżenie, że jeden z dysków został odłączony i grozi namzmniejszenie niezawodności.
Warto też podkreślić, że Storage Spaces nie spowalnia pracysystemu, działa przynajmniej tak samo szybko jak sprzętowy RAID-1,równie łatwo też odzyskać dane z uszkodzonych macierzy dyskowych.Na pewno zaś jest łatwiejsze w konfiguracji i obsłudze.
Ograniczenia
Jak wspomniano, ReFS zostało zaprojektowane tak, by zapewnićkompatybilność z NTFS na poziomie API, by aplikacje korzystające zplików przechowywanych lokalnie czy zdalnie nie miały żadnegoproblemu z dostępem do wolumenów ReFS. Wspierane jest też wieleznanych mechanizmów Windows i NTFS, takich jak Access Control List,szyfrowanie BitLockerem, kroniki zmian USN, dowiązania symboliczne,punkty montowania, migawki wolumenów czy blokowanie oportunistyczne(oplocks).
Nie wszystkie jednak rozwiązania z NTFS zdołały trafić dopierwszych wersji ReFS. Być może z wydaniem kolejnej wersji Windowsto się zmieni, ale póki co ReFS nie wspiera limitów dyskowych,kompresji na poziomie plików, szyfrowanego systemu plików EFS,twardych dowiązań, alternatywnych strumieni danych, czy transakcji.Trzeba jednak pamiętać, że niektóre z tych rozwiązań (np. EFSczy transakcje) mogą w ogóle zniknąć z Windows, jakoprzestarzałe. Dla normalnego użytkownika, pracującego nakomputerze osobistym, braki te nie są dotkliwe.
Jak włączyć pełne ReFS w Windows 8.1?
Poniżej przedstawione rozwiązanie umożliwia sformatowaniepartycji w ReFS poza Storage Spaces w 64-bitowej wersji Windows 8.1 ioczywiście nie jest wspierane przez Microsoft. Ciekawskich to jednaknie powinno powstrzymać przed wypróbowaniem nowego systemu plików.
Po uruchomieniu edytora Rejestru, należy znaleźć ścieżkęHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control. Tworzymyw niej nowy klucz MiniNT (awięc HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MiniNT).W kluczu zakładamy nową wartość typu DWORD, o nazwieAllowRefsFormatOverNonmirrorVolume, anastępnie ustawiamy ją na 1.
Po zrestartowaniu komputera, nowywolumen ReFS można sformatować za pomocą narzędzia Diskpart.Po wybraniu dysku, (select disk numer_dysku) i wyczyszczeniugo poleceniem clean, tworzymy podstawową partycję (createpartition primary), a następnie formatujemy ją w ReFS (formatfs=refs quick).
Uwaga, wygląda na to, że powprowadzeniu wspomnianego klucza do Rejestru, niemożliwe jestzainstalowanie 64-bitowej wersji Office 2013 i korzystanie znarzędzia DISM.Ewentualne problemy można rozwiązać usuwając klucz *MiniNT *–stworzone partycje ReFS będą wciąż działać.
A jak z wydajnością takiegorozwiązania? Szczegółowo sprawę tę zbadamy w innym artykule,poświęconym testom systemów plików, ale pierwsze wrażenia sądobre – przynajmniej dla dysków talerzowych. ReFS osiągał tuwyniki o ok. 10% lepsze niż NTFS, nie było też żadnych problemówze stabilnością. Pozostaje więc tylko żałować, że wciąż zReFS nie można zrobić partycji startowej.
Na koniec jeszcze jedna refleksja. ReFS wydaje się mniejdojrzałym systemem plików, niż jego bezpośredni konkurent,linuksowy btrfs. Nie przynosi wsparcia dla deduplikacji danych,migawek typu copy-on-write (choć można podobny efekt osiągnąćprzez wspomniane Storage Spaces), szyfrowania na poziomie plików czykompresji. Dla środowiska Windows stanowi jednak spory krok naprzód,pokazujący, że coś się jeszcze w „okienkach” poza zabawami zinterfejsem użytkownika dzieje. I tak w kwestii tej Microsoft radzisobie lepiej, niż Apple, które w OS X stosuje dość anachronicznysystem plików HFS+, pamiętający jeszcze czasy klasycznych Maków –i swego czasu określony przez Linusa Torvaldsa jako kompletnełajno. Być może w strategiiApple, nieistniejącego praktycznie na rynku serwerowym, posiadanienowoczesnego systemu plików nie jest sprawą pierwszorzędną, alemartwi, że firma z Cupertino nawet nie sygnalizuje jakichkolwiekprac w tej dziedzinie, które mogłyby uchronić użytkownikówchoćby przed degradacjądanych.