Btrfs

Btrfs
Deweloper Oracle Corporation (początkowo)
angielskie imie Btrfs
Wprowadzenie Stabilny: jądro Linuksa 3.10, 29 lipca 2013
Niestabilny: jądro Linuksa 2.6.29, marzec 2009
( Linux )
Struktura
Zawartość katalogów Drzewo B
Alokacja plików stopień
Ograniczenia
Maksymalny rozmiar pliku 16 Eio
Maksymalna liczba plików 2 64
Maksymalny rozmiar nazwy pliku 255 bajtów
Maksymalny rozmiar wolumenu 16 Eio
Znaki dozwolone w nazwach plików Wszystkie oprócz NUL („\ 0”) i „/”
funkcje
Nagrane daty modyfikacja (mtime), modyfikacja atrybutów (ctime), dostęp (atime)
Atrybuty POSIX , rozszerzone atrybuty
Uprawnienia POSIX, ACL
Zintegrowana kompresja Tak ( zlib , LZO i (od jądra 4.14) Zstd )
Zintegrowane szyfrowanie Zaplanowany

Btrfs ( system plików B-tree , wymawiane ButterFS) to system plików z 2010 roku oparty na Copy-On-Write (kopiowanie przy zapisie w języku francuskim) na licencji GNU GPL , opracowany wspólnie przez Oracle , Red Hat , Fujitsu , Intel , SUSE , STRATO AG  (in) i inne. W 2012 roku, kiedy nie był jeszcze uważany za całkiem stabilny, społeczność podjęła intensywne prace rozwojowe i testowe, aby Btrfs stał się następcą ext4 i ext3 , zwykłych systemów plików dystrybucji. Linux. OpenSuse 13.2 od momentu uruchomienia domyślnie oferuje Btrfs dla partycji głównej w celu zapewnienia bezpieczeństwa i pozostawia wybór między ext4 i XFS (szybciej) dla / home.

Btrfs zapewnia następujące funkcje, których nie można znaleźć w innych systemach plików:

Te cechy są ważne dla systemów Linux, zarówno serwerów, jak i stacji roboczych klientów, ponieważ rozmiary i konfiguracje pamięci masowej zwykle rosną i stają się bardziej złożone.

W szczególności technika migawki zapewnia spójną kopię zapasową plików systemowych, tak jak były one w momencie tworzenia migawki, nawet jeśli tworzenie kopii zapasowej trwa kilka godzin, a wiele plików jest zmienianych w międzyczasie.

Historia

Struktura danych Btrfs (kopiowanie przy zapisie z Tree B ) została zaproponowana przez badacza IBM , Ohada Rodeha , na konferencji USENIX w 2007 roku. Chris Mason, były inżynier SUSE , Oracle dołączył pod koniec 2007 roku i zaczyna pracę nad projekt Btrfs oparty na strukturze danych B Tree . Możliwość tworzenia kopii zapasowych serwerów bez przerywania ich działania jest w rzeczywistości bardzo poszukiwana.

Red Hat usunął obsługę Btrfs od wersji RHEL 7.4 , wydanej 1 sierpnia 2017 r. Dystrybucja Linuksa CentOS 8.0 nie ma już żadnych pakietów w swoich repozytoriach do obsługi systemów plików Btrfs.

funkcje

Stopień

Btrfs, podobnie jak Ext4 , opiera się na pojęciu zakresu . Jest to ciągły obszar (do kilkuset MB, w przeciwieństwie do klastrów starszych o kilka KB), rezerwowany za każdym razem, gdy plik jest zapisywany na dysku twardym . Dlatego podczas zapisywania na końcu pliku (dołączania) lub całkowitego przepisywania go, nowe dane często trafiają bezpośrednio do istniejącego zakresu, a nie do innego obszaru dysku twardego. Takie użycie zakresu zmniejsza fragmentację , a zatem zwiększa wydajność na konwencjonalnym dysku twardym (ale nie zapewnia żadnego zysku na dysku SSD ). Ta efektywność czasowa odbywa się kosztem większego zajęcia miejsca na dysku, którego koszt został zmniejszony o kilka rzędów wielkości. Btrfs przechowuje również dane dla bardzo małych plików bezpośrednio w rozszerzeniu katalogu , a nie w oddzielnym zakresie.

Woluminy podrzędne i migawki

Btrfs utrzymuje pojęcie „woluminów podrzędnych” jako oddzielnego drzewa (w tym katalogu głównego ) katalogów i plików, umożliwiając jednoczesne korzystanie z różnych drzew, czyniąc je bardziej niezależnymi od głównego systemu. W ten sposób dane są lepiej rozdzielone, a różne limity mogą być nakładane na podstawie wolumenów. Główną zaletą jest możliwość tworzenia migawek (zwanych również migawkami ). Migawka umożliwia „wykonanie migawki” w danym momencie systemu plików w celu zapisania jej w tym spójnym stanie podczas kontynuowania pracy. Ta migawka jest woluminem podrzędnym, który można edytować po fakcie. Taka modyfikacja zapisu, która jest możliwa podczas tworzenia kopii zapasowej (z poprzedniego stanu), zapewnia wysoką dostępność baz danych online.

Kopiuj przy zapisie

Aby wykorzystać te pod-woluminy i migawki, Btrfs używa klasycznej techniki „  kopiuj przy zapisie  ”. Jeśli dane mają być zapisane w bloku pamięci, wówczas blok pamięci jest kopiowany w inne miejsce w systemie plików, aby nie zmieniać oryginału, a nowe dane są następnie zapisywane w kopii. Następnie metadane wskazujące na blok są automatycznie modyfikowane w celu uwzględnienia nowych danych. Ten mechanizm transakcyjny różni się od logowania obecnego w ext3, które pamięta tylko to, co istniało przed zapisaniem i przechowuje je do momentu potwierdzenia, że ​​zapis poszedł dobrze. Wykonanie migawki systemu umożliwiłoby w przypadku wystąpienia problemu natychmiastowy powrót do migawki, bez konieczności odtwarzania pliku, który był w toku w momencie awarii. Oprócz problemów z wydajnością (Btrfs nie ma wydajności XFS), pojawia się pytanie: kiedy wykonać migawkę dla jakich ilości danych? Nazwa „migawka”, zapożyczona ze świata fotografii, jest myląca o tyle, że jeśli stan zamrożenia jest rzeczywiście stanem chwilowym, operacja trwa zwykle kilkadziesiąt milisekund, nawet jeśli nie ma związku z dziesiątkami minut kopia zapasowa. Wykorzystanie migawek w tym celu nie jest kwestią podnoszoną przez programistów.

Z drugiej strony jest to niezbędne do synchronizacji , archiwizacji i tworzenia kopii zapasowych , zapewniając, że cały wybrany system plików zostanie zsynchronizowany, zarchiwizowany lub zarchiwizowany będzie w stanie zgodnym z tym, jaki był na początku operacji, nawet jeśli operacja została rozpoczęta. ”kontynuujemy pracę, a operacja tworzenia kopii zapasowej trwa kilka godzin. Taka możliwość pozwala na spójne kopie zapasowe, pod warunkiem, że wdroży je zespół IT.

Ochrona danych

Btrfs ma swoje własne techniki ochrony danych: wykorzystanie odniesień wstecznych - to znaczy wiedzy z bloku danych, które metadane wskazują na blok) umożliwia identyfikację uszkodzenia systemu. Jeśli plik twierdzi, że należy do zestawu bloków, a te bloki twierdzą, że należą do innego pliku, oznacza to, że zmieniła się spójność systemu. Btrfs wykonuje również sumy kontrolne na wszystkich przechowywanych danych i metadanych, aby móc wykryć wszelkiego rodzaju uszkodzenia na gorąco, naprawić niektóre z nich, a tym samym zapewnić wyższy poziom niezawodności.

Zmiana rozmiaru na gorąco

Umożliwia zmianę rozmiaru systemu plików na gorąco (w tym zmniejszenie go) przy jednoczesnym zachowaniu doskonałej ochrony metadanych, które są kopiowane w wielu miejscach w celu zapewnienia bezpieczeństwa. Operacja jest prosta: btrfs filesystem resize +2g /mntdodaj 2  GiB do swojego systemu plików. Ta funkcja nie jest w zamierzeniu nadmiarowa w stosunku do tego, co zapewnia menedżer woluminów logicznych dla systemu Linux, ale twierdzi, że jest technicznie kompletna.

Bardzo szybkie sprawdzenie systemu plików

Sprawdzanie systemu plików za pomocą programu btrfsck jest odporne na błędy i jest reklamowane jako niezwykle szybkie z założenia. Zastosowanie drzew B umożliwia badanie struktury dysku z prędkością zasadniczo ograniczoną przez prędkość odczytu dysku. Drugą stroną jest duży ślad pamięci, ponieważ btrfsck zużywa trzy razy więcej pamięci niż e2fsck .

Warstwy

Btrfs szanuje hierarchię funkcjonalnych „warstw” Linuksa. Na przykład, chociaż oferuje dodatkowe funkcje, stara się jak najbardziej nie przepisać całego systemu zarządzania wolumenem oferowanego jako standard przez LVM .

Zarządzanie woluminami logicznymi

Btrfs umożliwia zarządzanie woluminami logicznymi , czyli agregację kilku urządzeń pamięci masowej.

NALOT

Btrfs umożliwia implementację kilku funkcji RAID .

Kompresja danych

Btrfs umożliwia kompresję przechowywanych danych . Można go aktywować podczas edycji, wybierając rodzaj kompresji spośród Zstd , Zlib i LZO .

Inne algorytmy kompresji były lub są brane pod uwagę:

Koszt związany z zajętością dysku i luką w wysokiej dostępności

Zapewnienie bezpieczeństwa i spójności danych z pewnością wiąże się z kosztem, który jednak należy porównać z:

Przypomina się:

Wewnętrzne działanie Btrfs praktycznie uniemożliwia określenie ilości wolnej przestrzeni: polecenie „  df  ” odpowiada tylko przestrzeni pozornej, a nie rzeczywistej przestrzeni, która może być znacznie większa. Wcześniej tego typu problem występował w systemie Linux tylko w przypadku pustych (lub „ dziurowych ”) plików .

Uwagi i odniesienia

  1. (en) btrfs.wiki.kernel.org
  2. (in) Chunkfs: Szybkie sprawdzenie i naprawa systemu plików , dostęp do Valerie Henson5 lutego 2008. Scena ma miejsce o 18:49. „Nazywa się Butter FS lub B-tree FS, ale wszystkie fajne dzieciaki mówią, że Butter FS”
  3. CRFS i POHMELFS [LWN.net]
  4. [1]
  5. https://btrfs.wiki.kernel.org/index.php/FAQ#Is_btrfs_stable.3F
  6. http://searchdatacenter.techtarget.com/news/2240185580/Red-Hat-discloses-RHEL-roadmap
  7. http://thread.gmane.org/gmane.linux.file-systems/26246/focus=26492
  8. https://btrfs.wiki.kernel.org/index.php/Using_Btrfs_with_Multiple_Devices
  9. http://www.linuxfoundation.org/news-media/blogs/browse/2009/06/conversation-chris-mason-btrfs-next-generation-file-system-linux
  10. https://btrfs.wiki.kernel.org/index.php/Btrfs_design
  11. http://lwn.net/Articles/342892/
  12. znany wówczas z pracy nad systemem plików ReiserFS
  13. https://lkml.org/lkml/2007/6/12/242
  14. (w) Red Hat, „  Deprecated Functionality  ” (dostęp 3 października 2019 )
  15. O 1 300 000 razy w ciągu 29 lat, zgodnie z oświadczeniem firmy Seagate
  16. (en) Jak zacząć z systemem plików Btrfs dla Oracle Linux
  17. (in) „  Btrfs podnosi obsługę kompresji Snappy  ” na Phoronix ,13 stycznia 2012(dostęp 30 grudnia 2015 )
  18. „  Compression - btrfs Wiki  ” na btrfs.wiki.kernel.org (dostęp: 4 stycznia 2017 )
  19. http://ns1758.ca/winch/cost-hard-drives-komorowski.jpg

Załączniki

Powiązane artykuły

Link zewnętrzny