r   e   k   l   a   m   a
r   e   k   l   a   m   a

Nigdy więcej degradacji danych, czyli przyglądamy się nowemu systemowi plików Windows

Strona główna AktualnościOPROGRAMOWANIE

System plików to fundamentalny element każdego systemu operacyjnego, wpływający na niemal każdy aspekt pracy z komputerem. Dla użytkowników Windows domyślny system plików to od wielu lat NTFS, wprowadzony na rynek w 1993 roku wraz z systemem Windows 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 nad systemem plików Windows najwyraźniej stanęły w miejscu, ku niezadowoleniu wszystkich tych, którzy pamiętali ambitne obietnice Microsoftu z czasu projektu Longhorn. Czekali oni na relacyjny, bazodanowy system WinFS, całkowicie zmieniający proces zarządzania plikami, a dostali prosty mechanizm linków symbolicznych. Dopiero dwa lata temu coś drgnęło w kwestii systemów plików z Redmond. Windows Server 2012 przyniósł debiut ReFS – Resilient File System.

Użytkownicy pracujący na wielu systemach operacyjnych mogą łatwo się przekonać, że dziś NTFS odstaje już trochę od rozwijanych głównie dla Linuksa systemów plików, takich jak xfs, btrfs czy nawet domyślny ext4. Widać to szczególnie w przy zapisie dużych plików, gdzie NTFS potrzebuje nawet dwukrotnie więcej czasu na ukończenie operacji, niż xfs (obecnie domyślny system plików RHEL-a 6 i CentOS-a). Oczywiście NTFS wciąż jest bardziej rozbudowany niż jego szybcy linuksowi konkurenci, ale trzeba pamiętać, że akurat w dziedzinie systemów plików Linux rozwija się bardzo szybko. Pod względem oferowanych możliwości, nowy kandydat do pozycji domyślnego systemu plików, czyli btrfs, oferuje wszystko, czego nawet najbardziej wymagający użytkownik może oczekiwać.

Z braków NTFS zdają sobie sprawę i w Microsofcie. Wspomniany ReFS trafił do Windows Servera 2012 z myślą o zastosowaniu go przede wszystkim w serwerach plików – zastąpić NTFS jeszcze nie był gotów. Jeszcze, gdyż od początku intencją jego autorów było uczynienie z ReFS systemu 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 w klienckim OS-ie wykorzystanie czegoś innego niż NTFS (czy stary FAT).

r   e   k   l   a   m   a

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 poziomie API, tak by dla starszych aplikacji nie było różnicy, na którym systemie plików pracują. Szczegółowe wprowadzenie do ReFS autorstwa Stevena Sinofsky'ego, byłego szefa pionu Windows w Microsofcie, znaleźć można na blogu Building Windows 8. Najważniejsze kwestie streścimy tutaj pokrótce.

  • Do przechowywania wszystkich informacji (także metadanych) wykorzystywane są B+drzewa, 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 nazwa pliku czy katalogu ograniczona jest do 255 znaków, to ReFS wspiera nazwy mające nawet 32 768 znaków. Powiększono też maksymalny rozmiar pliku do 16 eksabajtów (16*1018) i maksymalny rozmiar wolumenu do 1 jottabajta (1024 bajtów). Każdy wolumen może przechowywać do 18 bilionów (1012) plików. Pod tym względem, istotnym dla administratorów hurtowni danych i innych systemów Big Data, ReFS wygrywa nawet z dotychczasowym liderem, solarisowym systemem plików ZFS.
  • ReFS kończy z narzędziem CHKDSK. Ta podstawowa komenda do sprawdzania poprawności plików, której nigdy nie chcieliśmy używać, ale zawsze chcieliśmy mieć pod ręką na wszelki wypadek, w ReFS nie znajduje zastosowania. Microsoft wreszcie wbudował w system plików mechanizmy naprawcze – jeśli dojdzie do awarii, jest ona usuwana na bieżąco. Co prawda pierwsze takie mechanizmy autonaprawcze pojawiły się w Windows Serverze 2012 R2 dla NTFS, ale nie dorównują one temu, co zapewnia nowy system plików. ReFS wykorzystuje sumy kontrolne, by potwierdzić poprawność zapisu wszystkich danych, a następnie regularnie je sprawdza, by zaradzić degradacji danych, nieuniknionej choćby ze względu na losowe błędy kontrolera pamięci masowej. W dzisiejszych scenariuszach zastosowań ReFS nie ma zresztą innego wyjścia – ile czasu zajęłoby sprawdzenie za pomocą CHKDSK wolumenu utworzonego z petabajtowej macierzy dyskowej?
  • Porzucając CHKDSK, ReFS kończy także z koniecznością wyłączania wolumenu podczas napraw. Wszystkie naprawy zachodzą w trakcie pracy systemu, w sposob niewidoczny dla użytkownika i pracujących aplikacji.
  • Nowy system plików Microsoftu jest także całkowicie odporny na awarie zapisu wynikające z przerw w zasilaniu. O ile NTFS wszystkie zmiany w metadanych plików (np. zmiana nazwy czy zmiana zawartości pliku) nadpisuje nad ostatnim zbiorem metadanych, to ReFS stosuje strategię allokacja-po-zapisie, w której metadane są zapisywane w nowym miejscu, a następnie dołączane do pliku po zakończeniu operacji zapisu. W ten sposób na wolumenach ReFS nigdy nie dojdzie do uszkodzenia danych, które mogły w wypadku wolumenów NTFS zakończyć się nawet niebieskim ekranem śmierci.

Podstawowe zastosowanie na dziś: Storage Spaces

Obecnie wolumeny ReFS nie mogą być jeszcze wykorzystywane jako wolumeny systemowe, do rozruchu systemu. Oficjalnie ich główne zastosowanie to Storage Spaces, wygodny mechanizm, który można w uproszczeniu przedstawić jako RAID zrealizowany na poziomie systemu operacyjnego. Korzystać z niego mogą już nie tylko administratorzy Windows Servera, ale też domowi użytkownicy Windows 8.1 (dla których, jak już zostało wspomniane, jest to jedyny oficjalnie uznany sposób zapoznania się z ReFS). Co prawda Storage Spaces działa też z NTFS, ale z ReFS zapewnia większą niezawodność, sprawdzając w tle stan lustrzanych kopii plików. Szczegółowe objaśnienie tego mechanizmu znajdziecie oczywiście na blogu Building Windows 8.

Wielu osobom Storage Spaces może wydać się znacznie wygodniejszy, niż RAID – i chyba nie bez powodu. Możemy wykorzystać wszelkiego rodzaju pamięci masowe – nie tylko dyski SATA, ale nawet te podłączane przez USB (choć oczywiście najlepsze wyniki uzyskamy z dyskami PCIe, M.2 czy chociażby SAS). Z podłą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ące się na wiele pul wykorzystujących wiele napędów. Podobnie jak w wypadku RAID, Storage Spaces możemy sobie skonfigurować na kilka sposobó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 co najmniej dwóch fizycznych napędów).

Mimo młodego wieku tego rozwiązania, wydaje się, że działa ono dokładnie tak, jak Microsoft obiecuje. W krótkim teście Mirror Space utworzonym na dwóch dyskach podłączonych przez USB 3.0, próba symulacji awarii jednego z dysków, polegająca na jego fizycznym odłączeniu od komputera, zakończyła się bezboleśnie – wirtualny wolumen był cały czas dostępny, wraz ze wszystkimi plikami. W panelu administracyjnym można było jedynie przeczytać ostrzeżenie, że jeden z dysków został odłączony i grozi nam zmniejszenie niezawodności.

Warto też podkreślić, że Storage Spaces nie spowalnia pracy systemu, 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 z plików przechowywanych lokalnie czy zdalnie nie miały żadnego problemu z dostępem do wolumenów ReFS. Wspierane jest też wiele znanych 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ć do pierwszych wersji ReFS. Być może z wydaniem kolejnej wersji Windows to 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. EFS czy transakcje) mogą w ogóle zniknąć z Windows, jako przestarzałe. Dla normalnego użytkownika, pracującego na komputerze osobistym, braki te nie są dotkliwe.

Jak włączyć pełne ReFS w Windows 8.1?

Poniżej przedstawione rozwiązanie umożliwia sformatowanie partycji w ReFS poza Storage Spaces w 64-bitowej wersji Windows 8.1 i oczywiście nie jest wspierane przez Microsoft. Ciekawskich to jednak nie powinno powstrzymać przed wypróbowaniem nowego systemu plików.

Po uruchomieniu edytora Rejestru, należy znaleźć ścieżkę HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control. Tworzymy w niej nowy klucz MiniNT (a więc HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MiniNT). W kluczu zakładamy nową wartość typu DWORD, o nazwie AllowRefsFormatOverNonmirrorVolume, a następnie ustawiamy ją na 1.

Po zrestartowaniu komputera, nowy wolumen ReFS można sformatować za pomocą narzędzia Diskpart. Po wybraniu dysku, (select disk numer_dysku) i wyczyszczeniu go poleceniem clean, tworzymy podstawową partycję (create partition primary), a następnie formatujemy ją w ReFS (format fs=refs quick).

Uwaga, wygląda na to, że po wprowadzeniu wspomnianego klucza do Rejestru, niemożliwe jest zainstalowanie 64-bitowej wersji Office 2013 i korzystanie z narzę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ą takiego rozwią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ł tu wyniki o ok. 10% lepsze niż NTFS, nie było też żadnych problemów ze stabilnością. Pozostaje więc tylko żałować, że wciąż z ReFS nie można zrobić partycji startowej.

Na koniec jeszcze jedna refleksja. ReFS wydaje się mniej dojrzał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 czy kompresji. Dla środowiska Windows stanowi jednak spory krok naprzód, pokazujący, że coś się jeszcze w „okienkach” poza zabawami z interfejsem użytkownika dzieje. I tak w kwestii tej Microsoft radzi sobie lepiej, niż Apple, które w OS X stosuje dość anachroniczny system 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 strategii Apple, nieistniejącego praktycznie na rynku serwerowym, posiadanie nowoczesnego systemu plików nie jest sprawą pierwszorzędną, ale martwi, że firma z Cupertino nawet nie sygnalizuje jakichkolwiek prac w tej dziedzinie, które mogłyby uchronić użytkowników choćby przed degradacją danych.

© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.