Rewolucja na dysku
Współczesne systemy plików, takie jak NTFS, używany w Windows, są już z nami od ponad dekady. W tym czasie programiści, pracujący nad rozwojem systemów operacyjnych, utworzyli nowe mechanizmy zarządzania danymi, które zrewolucjonizują sposób korzystania z komputera.
System plików jest niezbędnym elementem każdego systemu operacyjnego. Zapewnia zapisywanie danych na nośnikach, ich odczytywanie, a także bezpieczne przechowywanie informacji. Poza tym system plików udostępnia metody zarządzania informacjami, takie jak grupowanie plików w katalogach, opisywanie ich metadanymi, np. informacją, kto jest właścicielem pliku, kto może go otworzyć i co z nim zrobić.
Obecne systemy plików
Nowoczesne systemy plików mają wbudowane mechanizmy ochrony danych przed skutkami awarii. NTFS w systemie Windows, Ext4 w Linuksie czy HFS+ w Mac OS X wyróżniają się zastosowaniem mechanizmu kronikowania, który zmniejsza ryzyko utraty danych np. w wyniku przerwy w zasilaniu. Przed zapisaniem do pliku dane są wstępnie zapisywane w kronice, dopiero potem następuje nadpisanie właściwego zbioru. Dzięki temu w razie awarii dane nie przepadają, lecz po restarcie systemu zapis zostaje dokończony.
Współczesne systemy plików korzystają także ze wsparcia menedżerów dysków logicznych. Dzięki temu użytkownicy komputerów mogą tworzyć tzw. dyski dynamiczne, rozciągające się na więcej niż jeden dysk fizyczny, a także konfigurujące dyski logiczne w software’owe macierze RAID. W systemie Windows menedżer dysków logicznych uruchamiasz poleceniem diskmgmt.msc, które trzeba wpisać w polu Uruchom znajdującym się w menu Start.
Nowa generacja
Obecnie są opracowywane rozwiązania nowej generacji. Najbardziej zaawansowany pod względem funkcji jest obecnie system plików Btrfs (od B-tree file system), do pewnego stopnia wzorowany na uniksowym ZFS, który powstaje na potrzeby Linuksa. Kod jest pisany wspólnymi siłami przez wielkie firmy informatyczne, które sprzedają rozwiązania bazujące na Linuksie.
Kopiowanie-przy-zapisie
Najważniejszą funkcją nowego systemu plików jest kopiowanie-przy-zapisie, czyli możliwość skopiowania sektora dysku w tej samej chwili, gdy jest nadpisywany nową porcją informacji. Umożliwia to łatwe tworzenie kopii zapasowej. Dotychczas, aby wykonać taką kopię, trzeba było fizycznie skopiować dane w inne miejsce na dysku. W Btrfs nie jest to wymagane, gdyż wystarczy utworzenie dodatkowego powiązania w systemie plików, które sprawi, że dwa odrębne pliki wskazują na ten sam blok danych, fizycznie zapisanych na nośniku.
W jaki sposób jest zachowywana informacja w kopii zapasowej? Otóż w chwili, gdy oryginalny plik jest modyfikowany przez zapisanie nowych informacji, zastępowany blok danych nie jest kasowany, lecz kopiowany w innym miejscu.
Takie rozwiązanie pozwala nie tylko łatwo i szybko tworzyć kopie, ale także umożliwia oszczędzanie miejsca na dysku, gdyż kopiowane są tylko te informacje, które odróżniają oryginalny plik od jego kopii zapasowej.
Kopie systemu plików
Kolejną zaletą systemu plików Btrfs jest to, że zawiera on mechanizm tworzenia dysków logicznych. Za pomocą jednej komendy można utworzyć wewnątrz danej partycji dysk logiczny z odrębnym systemem plików i zamontować go w systemie tak jak np. zewnętrzny nośnik. Ta funkcja w połączeniu z mechanizmem kopiowania-przy-zapisie pozwala na utworzenie kopii całego systemu plików, bez poświęcania dużej ilości przestrzeni dyskowej.
W tym wypadku, podobnie jak przy kopiowaniu jednego pliku, modyfikowane są tylko połączenia w logicznych strukturach systemu plików, bez przenoszenia danych. Kopiowanie następuje dopiero wówczas, gdy pliki w oryginalnym systemie plików są modyfikowane.
System plików Btrfs ułatwia także skopiowanie systemu plików do innej lokalizacji, np. do zdalnego dysku w chmurze. Wówczas nie da się uniknąć fizycznego skopiowania wszystkich danych, co jest czasochłonne. Natomiast dzięki funkcji kopiowania-przy-zapisie aktualizacja zdalnej kopii zapasowej nie jest problemem. Dzięki temu, że nie są przenoszone całe pliki, ale poszczególne sektory z danymi, które ulegają modyfikacji, utrzymywanie zdalnej kopii dużego systemu plików jest możliwe nawet przy użyciu domowego łącza internetowego.
Bez mikrouszkodzeń
Obecnie używane systemy plików są bezradne wobec mikrouszkodzeń plików w wyniku zmiany wartości pojedynczych bitów. To może nastąpić w wyniku zużycia nośnika magnetycznego, źle działającego kontrolera, uszkodzonego kabla itp. System plików Btrfs tworzy sumę kontrolną dla każdego sektora dysku z zapisanymi informacjami. Suma kontrolna jest ponownie obliczana podczas każdego odczytu. Jeśli w sektorze zmienił się choć jeden bit, suma kontrolna nie będzie się zgadzała z tą zapisaną wcześniej, operacja weryfikacji nie powiedzie się, a system operacyjny otrzyma stosowny komunikat. Informację o uszkodzeniu można wówczas wykorzystać do naprawienia szkody. Jeśli system plików korzysta z macierzy RAID1, która przechowuje kopię danych, Btrfs może automatycznie, bez angażowania użytkownika, przywrócić właściwe informacje, zapobiegając trwałemu uszkodzeniu pliku.
Macierze i partycje
Btrfs zachęca do takiego zabezpieczania plików, gdyż tworzenie programowych macierzy RAID jest w nim wyjątkowo łatwe. Nie trzeba nawet odmontowywać systemu plików, nie mówiąc już o konieczności reinstalacji systemu. Wystarczy włożyć nowy dysk do komputera, skopiować tablicę partycji, w celu odtworzenia struktury logicznej, a następnie skorzystać z funkcji tzw. rebalansowania, co uruchamia kopiowanie plików. Co ważne, cały proces odbywa się w tle. Jeśli dwudyskowa macierz RAID1 nie wystarcza, można w taki sam sposób rozszerzyć ją do trzydyskowego RAID5 albo czterodyskowego RAID6 lub RAID10.
Zarządzanie partycjami
Btrfs pozwala także na wygodne zarządzanie partycjami, również bez konieczności odmontowywania systemu plików. Można na przykład zwiększyć wielkość partycji i rozszerzyć ją na kolejny dysk – wszystko przy działającym systemie. Zapewnia to trwałość systemu plików, gdyż można go powiększać w miarę rosnących potrzeb oraz dostępności nośników danych.
Rozwiązanie jest perspektywiczne, gdyż Btrfs jest 64-bitowy, co pozwala na obsługę nieprawdopodobnych pojemności dysków. Jeden wolumin może liczyć aż 16 exabajtów. Jest to spora rezerwa na przyszłość, jeśli weźmiemy pod uwagę, że na potrzeby Wielkiego Zde- rzacza Hadronów, który jest obecnie urządzeniem generującym najwięcej danych na świecie, przygotowano macierz liczącą „zaledwie” 20 petabajtów (1024 petabajty = 1 exabajt).
Inteligentna kompresja
Nowy system plików przynosi także wiele udoskonaleń w sferze kompresji danych. Przede wszystkim można ją włączyć dla pojedynczych katalogów, a nawet pojedynczych plików. Co więcej, mechanizm kompresji jest inteligentny, gdyż wykrywa pliki, które już są skompresowane (np. JPEG, MP3, MP4) i pomija je. Dzięki temu system nie traci czasu na pliki, których i tak nie da się zmniejszyć.
Btrfs w praktyce
System plików Btrfs jest rozwijany w ramach projektu jądra Linuksa. W związku z dynamicznym rozwojem kodu implementacja, która odzwierciedla najpełniejsze możliwości, znajduje się w najnowszym, eksperymentalnym jądrze systemu Linux 3.9.
Z systemem plików Btrfs można poeksperymentować, korzystając ze starszych kerneli, w jednej z popularnych dystrybucji Linuksa. Obsługują go: Debian, Fedora, Gentoo, openSuSE oraz najpopularniejsza dystrybucja Ubuntu. Aby skorzystać z systemu plików Btrfs w Ubuntu, trzeba zainstalować pakiet btrfstools, który oprócz programu btrfs do zarządzania partycjami sformatowanymi za pomocą btrfs zawiera narzędzia dyskowe dla nowego systemu plików mkfs oraz fsck, do tworzenia oraz sprawdzania tego systemu. Aby wygodnie utworzyć system plików, bez odwoływania się do linii komend, możesz użyć wizualnego menedżera partycji GParted, który po zainstalowaniu wspomnianego pakietu obsługuje system plików Btfrs.
je się w fazie rozwojowej. Wszystkie funkcje opisane w artykule działają, ale mogą być niestabilne. Nie zaleca się używania Btrfs na partycji głównej (root) oraz rozruchowej (boot). Natomiast można korzystać z niego na partycjach przeznaczonych do przechowywania danych. W przypadku Linuksa mogą to być partycje montowane np. w punkcie /home, czyli przeznaczone do przechowywania plików użytkowników komputera.
A co do Windows?
Niestety system Btrfs nie będzie, przynajmniej na razie, obsługiwany w systemach z rodziny Windows, bo nie ma odpowiedniego sterownika. Nie ma także informacji o implementacji opisanych funkcji w systemie plików NTFS. Pozostaje tylko mieć nadzieję, że Microsoft zostanie zmotywowany do działania przez konkurencję.
Dodatkowe informacje
Szczegółowe informacje dotyczące systemu plików Btrfs znajdziesz na stronie https://btrfs.wiki.kernel.org