Kurs Red Hat Certified System Administrator (RHCSA 7) – Systemy plików (Ext2, Ext3, Ext4, Xfs, BtrFS) cz.11

Print Friendly, PDF & Email

Dziś chciałbym przybliżyć nieco system plików (file system), czym jest i dlaczego chociaż wielu „zwykłych” użytkowników go używa nie bardzo wie do czego służy. Wedle definicji „system plików to logicznie uporządkowany, zorganizowany obszar nieulotnej pamięci masowej, gdzie dane reprezentują informacje przechowywane w plikach, specjalnym przypadkiem pliku jest katalog”. Sam system plików, składa się z dwóch poziomów, na pierwszym (logicznym) dane są organizowane, drugim (fizycznym) system plików zabezpiecza możliwość odszukania danych, które przechowywane są na urządzeniach blokowych.

Struktura katalogów GNU/Linux

Struktura katalogów w systemach z rodziny GNU/Linux różni się od tych znanych z systemów Microsoft. Chodzi o praktykę rozdzielenia tzw. punktów montowania, czyli katalogów (plików), które przechowuje specyficzne dane, niezbędne dla działania systemu. Rozdzielenie ich jest spowodowane tym, że w ten sposób możliwe jest ochronienie systemu przed, np. wykorzystaniem całego miejsca na dysku lub partycji systemowej przez nieoczekiwany przyrost logów systemowych.

Poniżej krótki opis do czego służą konkretne katalogi w strukturze systemu:

  • / – katalog główny,
  • /boot – pliki rozruchowe systemu (pliki jądra, ustawienia bootloadera),
  • /mnt – punkty, w których możesz zamontować dodatkowe systemy plików,
  • /media – w systemach Red Hat oraz podobnych możesz dodać tam własne punkty montowania dodatkowych plików/wolumenów,
  • /tmp – miejsce na przechowywanie plików tymczasowych, jednak usuwane są po restarcie (przynajmniej w większości),
  • /home – tutaj każdy użytkownik (domyślnie) ma miejsce na swoje pliki,
  • /bin – w tym katalogu znajdują się podstawowe polecenia oraz programy systemowe,
  • /lib – biblitoeki systemowe oraz moduły jądra systemowego,
  • /etc – pliki konfiguracyjne systemu operacyjnego,
  • /sbin – polecenia administracyjne dostępne dla konta root,
  • /var – przechowywanie min. logów systemowych, dokumentacja
  • /dev – pliki urządzeń fizycznych,
  • /opt – miejsce do instalacji oprogramowania poza,
  • /root – użytkownik root posiada oddzielny katalog na swoje dane oddzielne,
  • /proc – parametry jądra systemu,
  • /usr – lista aplikacji zainstalowanych przez uzytkownika

Dobre praktyki wskazują, żeby kilka z powyższych katalogów w trakcie instalacji odseparować czyli umieścić na oddzielnych wolumenach dla bezpieczeństwa.

  • /boot – potrzebuje około 200-300MB na przechowywanie kilku jąder systemu,
  • / – główny katalog w drzewie około 500-600MB,
  • /tmp – na pliki tymczasowe powinno wystarczyć 500-600MB,
  • /var – około 500MB będzie wystarczające, jeżeli używasz serwera plików, www należy doliczyć dodatkowe miejsce,
  • /usr – tutaj zależy od liczby zainstalowanych dodatkowych aplikacji,
  • /home – wielkość potrzebnego miejsca zalezy od liczby użytkowników w systemie

Przykłady kilku systemów plików

EXT2

Powstał w 1993, zachował on kompatybilność wsteczną z EXT. Poniżej zalety oraz wady odnośnie tego systemu plików.

Zalety:

  • Wspiera elementy systemu plików Unix takie jak: dowiązania symboliczne, pliki specjalne, prawa dostępu, etc,
  • Lepsza wydajność dzięki przeciwdziałaniu fragmentacji (poprzez przydzielanie bliskich bloków oraz prealokację),
  • Wydajny mechanizm dowiązań symbolicznych,
  • Stabilny i dobrze przetestowany (sam system plików, jak również program naprawiający e2fsck),
  • Dobrze zdefiniowany sposób dodawania rozszerzeń,
  • Niezależny od tworzącego systemu operacyjnego,
  • Maksymalny rozmiar partycji to 4TB, a pojedynczego pliku 2GB,
  • Maksymalna długość nazwy pliku wynosi 255 znaków,
  • Obsługa „dziurawych” plików (nieużywane bloki nie zostają przydzielone),
  • Automatyczne sprawdzanie systemu po awarii oraz co określony czas

Wady:

  • Problemy z obłsugą obsługą katalogów (pomaga nieco użycie pamięci podręcznej),
  • Niska wydajność dla bardzo małych plików (rzędu kilkuset bajtów) – duże straty na alokację i stosunkowo wolny dostęp,
  • Długi czas potrzebny na sprawdzenie systemu plików w momencie błędnego zamknięcia systemu

EXT3/EXT4

Systemy ten powstały odpowiednio 2001 oraz 2008, działają bardzo podobnie, ponieważ EXT4 jest ewolucją z EXT3. Systemy te wykorzystują księgowanie operacje w kronice (journal), takie podejście daje możliwość zbierania zmian w systemie plików w transakcje, które są zapisywane w kronice. Ułatwia to ewentualne naprawy uszkodzonego fragmentu systemu plików w dużo szybszy sposób, ponieważ naprawa wykonywana jest na jego fragmencie. Omawaine systemy plików pozwalają na trzy różne tryby pracy kroniki:

  • journal – do kroniki zapisywane są dane oraz ich metadane co pozwala na kontynuowanie później dopisania danych, jednak jest on kosztowny czasowo, ze względu na ilość danych, które należy zapisać,
  • ordered – dane są zapisywane bezpośrednio do przestrzeni składowania systemu plików a dopiero później zmieniane są metadane. Takie podejście powoduje problemy ze spójnością danych , jednak taką transakcję można dokończyć lub odwołać lub w zależności od tego czy mamy komplet danych,
  • writeback – w dzienniku zapisywane są jedynie struktury kontrolne, dane natomiast lądują na dysku bez zachowania kolejności zapisu, co może doprowadzić do istnienia w tym samym czasie starych oraz nowych wersji danych, dlatego jest on nie zalecany do włączenia, ze względu na możliwość uszkodzenia przechowywanych danych

Dodatkowe plusy EXT4

Wprowadzenie EXT4 pozwoliło na szybsze sprawdzanie systemu plików po awarii, dzięki pominięciu w tym procesie nieużywanych bloków danych. Poprawiona została również technika zapisu czasu oraz ominięcie problemu z rokiem 2038 (przekręcenie licznika systemowego i cofnięcie się do roku 1901). EXT4 pozwala na utworzenie nieskończonej liczby podkatalogów (EXT3 pozwalał tylko na 32 000). Maksymalna wielkość wolumenów to eksabajt (1000 * 1000 * 1000GB), natomiast pojedyńczy plik może mieć rozmiar 16TB. Na koniec test zapisu pliku 4GB w EXT4 był około 2x szybszy niż w systemach EXT3 czy XFS.

XFS

Kolejnym systemem plików o którym chciałbym wspomnieć jest XFS. W ogólnym zarysie jest on przeznaczony pod serwery, ponieważ wspiera dużą liczbę procesorów oraz dysków. Pozwala na obsługę dużych plików oraz pozwala na lepszą wydajność I/O przy zapisie oraz odczycie danych z dysku. XFS został przesienowny do systemów GNU/Linux na przełomie lat 90 oraz 2000. Pierwotnie powstał w 1993 w laboratoriach Silicon Graphics Inc. XFS pozwala przy pomocy księgowania metadanych pozwala na sprawe sprawdzanie oraz naprawianie ewentualnych błędów w strukturze systemu plików. Możliwe jest również wykonanie defragmentacji systemu plików nawet gdy jest on zamontowany lub są w nim otwarte jakieś pliki. XFS posiada tzw. realtime subvolume czyli pozwala działającemu procesowi zabezpieczyć dostęp do obrabianego pliku w takim stopniu, aby praca np. z plikiem multimedialnym nie miała przerw.

XFS pozwala wykonać pewnie operacje na danych:

  • Pliki rzadkie (sparse files) – pliki, które mają większy rozmiar niż ten, który widzi system. Dzięki czemu bardzo szyko można stworzyć plik o rozmiarze 10GB, jednak na dysku jego wielkość jest widoczna jako np. 100MB. Puste bloki nie są zapisywane wprost na dysku ale w postaci metadanych, które opisują miejsca ich występowania.
  • Rozszerzone atrybuty plików (extended attributes) – czyli id użytkownika oraz grupy, uprawnienia, czasy plikó (atime,ctime,mtime), rozmiar pliku, nazwa pliku oraz informacja o typie obiektu (plik lub katalog),
  • Listy ACL – uprawnienia dostępowe do pliku,
  • Etykiety bezpieczeństwa (SELinux) – inny sposób zabezpieczenia dostępu do danych,
  • Przydziały (quota) – ograniczenie miejsca na dane konkretnego użytkownika

BtrFS

W 2009 na światło dzienne ujawnił się nowy system plików BtrFS (better file system). Jeżeli ktoś był zadowolony z XFS to z BtrFS będzie zachwycony.

  • Każdy plik w systmie plików ma wyliczoną sumę kontrolną, aby zapewnić jego poprawnośc,
  • Przezroczysta kompresja pozwalająca na zaoszczędzenie miejsca na dysku bez utraty szybkości odczytu danych. Kompresja wykonywana jest przy pomocy dwóch algorytmów: zlib oraz Izo,
  • Subwoluminy, domyślne w innych systemach plików był tylko jeden katalog główny „/”. Teraz można takich punktów mieć więcej. Należy pamiętać, że nie są one dodatkowymi woluminami (dyskami/partycjami), więc należy ostrożnie podchodzić do przechowywania tam danych, aby nie nadpisać ich przypadkiem pomiędzy subwoluminami,
  • Migawki, która pozwalają na wykonanie kopii woluminu, jes to kopia danych w konkretnego momentu w przeszłości, oczywiscie może być odzyskana w razie problemów z danymi,
  • Deduplikacja, czyli scalanie tych samych danych w jedno, dzięki czemu zostanie zaoszczędzone miejsce na dysku, jednak nie można jej dokonać w momecie zapisu danych a po jego zakończeniu i to tylko gdy wykonanmy to ręcznie przy pomocy np. dedupremove,
  • Możliwość budowania macierzy RAID

Jednak żeby nie było tak cudowanie jest jednak kilka minusów tego systemu plików (cóż nie można mieć wszystkiego)

  • Deduplikacja danych w trybie offline po zakończeniu zapisu, zamiast w trybie live,
  • Brak szyfrowania danych na poziomie systemu plików,
  • Słabsza wydajność w stosunku do EXT4 oraz XFS, przy dużych objętościowo plikach,
  • Problem ze stabilnością pracy,
  • Chyba nie do końca przetestowany ze względu na małą popularność użycia

Zapraszam na kolejny wpis, w którym pokaże jak w praktyce możnesz wykonać montowanie systemu plików dla EXT4, XFS oraz BtrFS.


Dziękuję Ci, za poświęcony czas na przeczytanie tego artykułu. Jeśli był on dla Ciebie przydatny, to gorąco zachęcam Cię do zapisania się na mój newsletter, jeżeli jeszcze Cię tam nie ma. Proszę Cię także o “polubienie” mojego bloga na Facebooku oraz kanału na YouTube – pomoże mi to dotrzeć do nowych odbiorców. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artykułach / projektach zanim staną się publiczne. Możesz również pozostawić całkowicie anonimowy pomysł na wpis/nagranie.

Link do formularza tutaj: https://beitadmin.pl/pomysly

Pozostaw również komentarz lub napisz do mnie wiadomość odpisuję na każdą, jeżeli Masz jakieś pytania:).

Dodaj komentarz

beitadmin.pl - Droga Administratora IT