XFS

XFS – 64-bitowy system plików zaprojektowany przez firmę Silicon Graphics z przeznaczeniem do użycia go w systemie operacyjnym IRIX (wersja UNIX-a firmy SGI). Aktualnie jest dostępna również jego implementacja dla systemu Linux rozwijana przez SGI jako projekt na licencji wolnego oprogramowania.

XFS pozwala na obsługę dużych dysków twardych. Maksymalny rozmiar woluminu jest ograniczony do 16 milionów TB. Natomiast rozmiar pojedynczego pliku może wynosić maksymalnie 263 bajtów czyli ponad 8 milionów TB (dokładnie 8 388 608 TB). Rozmiar jednostki alokacji może wynosić od 512 bajtów (wielkość fizycznej jednostki alokacji) do 1 MB.

XFS posiada szereg cech zaawansowanego systemu plików do zastosowań serwerowych oraz dla wydajnych stacji roboczych.

Jednym z nich jest realtime subvolume – udostępnienie procesowi możliwości zarezerwowania dla siebie pasma dostępu do podanego pliku, o podanej szerokości (w bajtach na sekundę). Znajduje to zastosowanie na przykład przy obróbce m.in. plików multimedialnych, gdzie proces musi mieć stały szybki dostęp do plików, aby umożliwić ich edycję na bieżąco.

Drugie rozwiązanie aktualnie szeroko już stosowane to księgowanie metadanych, dzięki któremu sprawdzenie i naprawienie błędów w strukturze systemu plików zajmuje ułamki sekundy. Dane nie są jednak, ze względów wydajnościowych księgowane, co powoduje niekiedy utratę zawartości pliku podczas awarii (jest to możliwe tylko wtedy, gdy metadane zostały zmienione, a dane nie zostały jeszcze zapisane na dysku).

Innym interesującym rozwiązaniem jest możliwość defragmentacji systemu plików XFS zamontowanego i posiadającego otwarte pliki (pliki otwarte w trybie do zapisu nie są defragmentowane). Stworzenie, usunięcie czy modyfikacja pliku, który nie jest aktualnie optymalizowany nie powoduje przerwania tego procesu.

System ten obsługuje również inne technologie takie jak:

  • pliki rzadkie (ang. sparse files),
  • rozszerzone atrybuty plików (ang. extended attributes),
  • listy dostępu (ang. POSIX Access Control ListsACLs),
  • etykiety bezpieczeństwa (ang. security labels),
  • limitowane przydziały (ang. quota).

System plików XFS jest wewnętrznie podzielony na następujące subwolumeny:

  • data subvolume – przechowuje dane (pliki),
  • naming subvolume – przechowuje metadane,
  • log subvolume – przechowuje metadane, które zostały zmodyfikowane ale odpowiadające im zmiany w data subvolume nie zostały jeszcze wprowadzone,
  • realtime subvolume – przechowuje dane do których może być wymagany dostęp z rezerwacją pasma.

Z powodu różnic w architekturach między Iriksem a Linuksem, przy przenoszeniu XFS-a na Linuksa, wprowadzono dodatkową warstwę logiczną pomiędzy XFS-em a wirtualnym systemem plików Linuksa, tłumaczącą odwołania do VFS-a IRIX-a na odwołania do VFS-a Linuksa.

Linki zewnętrzne