Wprowadzenie do systemu plików BTRFS

Wprowadzenie do systemu plików BTRFS
BTRFS (B-Tree FileSystem) to nowoczesny system plików kopiowania (COW) dla Linux. BTRFS ma na celu wdrożenie wielu zaawansowanych funkcji systemu plików, jednocześnie koncentrując się na tolerancji błędów, naprawie i łatwej administracji. System plików BTRFS został zaprojektowany w celu obsługi wymagań wysokiej wydajności i dużych serwerów pamięci. Jest odpowiedni do centrów danych w skali petabajtów, a także smartfonów komórkowych.W tym artykule omówię system plików BTRFS i jego funkcje. Więc zacznijmy.

Kopiuj na zapis - system plików:

BTRFS to system plików kopiowania (COW). W systemie plików krów, gdy próbujesz modyfikować dane w systemie plików, system plików kopiuje dane, modyfikuje dane, a następnie zapisuje zmodyfikowane dane z powrotem do innej bezpłatnej lokalizacji systemu plików.

Główną zaletą systemu plików kopiowania (COW) jest to, że zasięg danych, który chce modyfikować, jest kopiowany do innej lokalizacji, modyfikowany i przechowywany w innym zakresie systemu plików. Oryginalny zasięg danych nie jest modyfikowany. Tak więc system plików BTRFS może wyeliminować ryzyko uszkodzenia danych lub częściowej aktualizacji w przypadku awarii zasilania podczas modyfikacji danych, ponieważ oryginalne dane pozostają niezmienione.

Główną wadą systemu plików kopiowania (COW) jest to, że duże pliki mają tendencję do fragmentacji. Zatem defragmentacja jest wymagana od czasu do czasu. Na szczęście system plików BTRFS obsługuje defragmentację online. Więc nie musisz umniejszyć systemu plików, aby defragmentować system plików BTRFS.

Główne funkcje systemu plików BTRFS:

Główne cechy systemu plików BTRFS to:

i) Stopera plików oparta na zakresie: W zakresie systemu plików oparty na systemie magazynowym nazywa się zasięgiem. Zakres jest przylegającym obszarem pamięci, która jest zarezerwowana dla pliku. Jeden plik wymaga jednego zakresu, bez względu na to, jak mały jest plik. W przypadku większych plików (rozmiar pliku większy niż rozmiar zakresu), wymagane będzie wiele zakresów. W przypadku większych plików metadane zostaną użyte do śledzenia zakresów, których plik używa. W systemie plików BTRFS metadane są znacznie mniejsze. Mniejsze metadane poprawia wydajność pamięci i wydajność systemu plików.

ii) Ogromna obsługa rozmiaru pliku: W systemie plików BTRFS pojedynczy plik może wynosić około 264 bajty lub 16 EIB (exbibytes) wielkości. Bez względu na to, jak duży staje się twój plik, BTRFS może go obsługiwać.

iii) Efektywne opakowanie małych plików: Zwykle bez względu na to, jak mały jest plik, będzie wymagał jednego bloku lub jednego stopnia do przechowywania pliku. To marnuje dużo miejsca na dysku. Aby rozwiązać ten problem, system plików BTRFS osadza mniejsze pliki w metadanych, aby efektywnie przechowywać mniejsze pliki.

iv) Współczynnik ekonomiczny indeksowane w kosmosie: Katalogi systemu plików BTRFS są indeksowane na dwa różne sposoby. Do wyszukiwania nazwy pliku używane jest indeksowanie oparte na kluczu. Aby odwołać dane, używane jest indeksowanie kluczy oparte na INODE. Dwupoziomowe indeksowanie poprawia wydajność wyszukiwania katalogu/plików i zmniejsza wymagania dotyczące przechowywania indeksów.

v) Dynamiczny alokacja iNODE: Potrzebujesz 1 plik odniesienia 1. Wiele systemów plików (i.mi., Ext4) mają stałą liczbę inod. Tak więc, jeśli utworzysz zbyt wiele małych plików, możesz mieć dużo miejsca na dysku, ale nie będziesz mógł tworzyć żadnych nowych plików. Nie można również zwiększyć maksymalnej liczby INODS po utworzeniu systemu plików.

BTRFS rozwiązuje ten problem, dynamicznie przydzielić INODES, ponieważ są one wymagane. Możesz więc utworzyć tyle plików, ile chcesz, o ile masz bezpłatne miejsce na dysku.

vi) Wpisane migawki i migawki tylko do odczytu: BTRFS FileSystem obsługuje migawki. Możesz zrobić migawkę bieżącego systemu plików, którego możesz użyć do przywrócenia danych, jeśli przypadkowo usunąłeś niektóre pliki lub uszkodziłeś niektóre dane.

Domyślnie migawki BTRFS są tylko do odczytu. Po wykonaniu migawki tylko do odczytu nie możesz zmienić żadnych plików/katalogów w tej migawce. W każdym razie, jeśli chcesz zmienić dowolne pliki/katalogi po wykonaniu migawki istniejącego systemu plików BTRFS, możesz zmienić migawkę tylko do odczytu na migawkę zapisaną i zmodyfikować dowolne pliki/katalogi w tym migawce.

VII) Subwolume: System plików BTRFS może mieć wiele podwolumów. Subvolume to nazwane drzewo binarne (B-drzewa) (lub wewnętrzny/logiczny root systemu plików) istniejącego drzewa korzeniowego systemu plików (główny) systemu plików BTRFS. Podwolu nie jest własnym urządzeniem blokowym. Ale możesz montować subwolume BTRFS indywidualnie. Możesz myśleć o podwolu jako przestrzeni nazw.

VIII) Subvolume Autor Wsparcie: Możesz przydzielić kwoty również na subwolume. Po przekroczeniu kwoty nie będziesz mógł dodać żadnych nowych danych do podwoluminy. Nie będziesz potrzebować żadnych oddzielnych programów, aby tworzyć kwoty Subvolume BTRFS.

IX) Suma kontroli danych i metadanych: Aby uniknąć uszkodzenia danych, BTRFS używa algorytmów sumy kontrolnej CRC32C dla danych i metadanych systemu plików. Suma kontrolna jest przechowywana w systemie plików w celu automatycznego sprawdzania błędów systemu plików i uszkodzeń danych w tle.

BTRFS ma obsługę wielu innych algorytmów sumy kontrolnej: XXHASH, SHA256 i BLAKE2B.

x) kompresja: BTRFS FileSystem obsługuje przezroczystą kompresję plików. Kompresja i dekompresja plików w systemie plików BTRFS odbywa się w tle automatycznie.

BTRFS obsługuje 3 algorytmy kompresji: ZLIB, LZO i ZSTD.

ZLIB jest domyślną metodą kompresji systemu plików BTRFS.

XI) Zintegrowane obsługę wielu urządzeń: BTRFS FileSystems ma wbudowaną obsługę logicznego menedżera woluminów (LVM). Możesz dodać wiele urządzeń do przechowywania w jednym systemie plików BTRFS. Możesz także skonfigurować tablice RAID w systemie plików BTRFS bez konieczności dodatkowego oprogramowania.

BTRFS FileSystem obsługuje paski danych, lustrzanie danych, paski danych+lustrzanie oraz implementacje pojedynczej i podwójnej parytetu.

Striping danych: Jeśli dodałeś wiele urządzeń pamięci w tym samym systemie plików BTRFS, BTRFS może przechowywać ten sam plik na różnych urządzeniach/partycjach fizycznych. To nazywa się paskiem danych. Striping danych poprawia wydajność odczytu/zapisu systemu plików. RAID-0 szeroko używa funkcji pasów danych.

Dane lustrzane: Jeśli dodałeś wiele urządzeń pamięci w tym samym systemie plików BTRFS, wszystkie dane zapisane na jednym urządzeniu pamięci zostaną zapisane na wszystkich innych urządzeniach pamięci masowej. To nazywa się lustrzanką danych. RAID-1 szeroko używa funkcji lustrzaka danych.

Striping danych+pojedynczy parytet: RAID-5 wykorzystuje paski danych i pojedynczy parytet rozproszony. Jeśli dodałeś wiele urządzeń do przechowywania w systemie plików BTRFS, wówczas RAID-5 rozebrał dane na wielu urządzeniach pamięci i oblicza i przechowuje bloki parytetów na urządzeniach pamięci. RAID-5 może utrzymać awarię pojedynczego napędu.

Striping danych+podwójna parytet: RAID-6 wykorzystuje paski danych i parytet podwójny rozproszony. Jeśli dodałeś wiele urządzeń do przechowywania w systemie plików BTRFS, wówczas RAID-6 rozebrał dane na wielu urządzeniach pamięci i oblicza i przechowuje bloki podwójnego parytetu na urządzeniach pamięci masowej. RAID-6 może utrzymać dwie niepowodzenia napędowe. Poza tym jest to samo jak RAID-5 (paski danych+pojedyncza parytet).

Striping danych+lustrzanie: RAID-10 korzysta jednocześnie paski danych i lusterka danych. RAID-10 wymaga parzystej liczby urządzeń do przechowywania tego samego rozmiaru do dodania do jednego systemu plików BTRFS. Minimalna liczba urządzeń pamięci, które można dodać do systemu plików RAID-10 BTRFS wynosi 4. Połowa urządzenia pamięci będzie używane do pasów danych, a druga połowa jest używana do odzwierciedlenia danych pierwszej połowy urządzeń pamięci (gdzie dane są paski).

XII) świadomość i optymalizacje SSD: System plików BTRFS jest świadomy SSD i ma kilka funkcji optymalizacji SSD. System plików BTRFS ma również obsługę TRIM/odrzucania urządzeń pamięci masowej SSD.

Funkcja wykończenia może wykryć i oznaczać zakresy danych, które nie są już używane. Po oznaczeniu rozszerzenia system plików BTRFS może je wyczyścić, aby inne pliki mogły korzystać z tych zakresów danych.

Funkcja odrzucona usunie wszystkie dane rozszerzenia SSD. Jeśli chcesz sprzedać swój dysk SSD, ta funkcja może się przydać.

XIII) wydajna przyrostowa kopia zapasowa: BTRFS obsługuje przyrostową kopię zapasową. Po raz pierwszy tworząc kopię zapasową systemu plików BTRFS, wykonuje migawkę bieżącego systemu plików. Następnie wszelkie kolejne kopie zapasowe zostaną porównane z pierwszą migawką, a tylko zmiany będą przechowywane na dysku. Tak więc wszelkie kolejne kopie zapasowe zajmie mniej miejsca na dysku, a kopie zapasowe będą szybsze.

xiv) Peeld tło: Jest to proces systemu plików BTRFS używany do znajdowania i naprawy błędów w plikach, które mają zbędne kopie (wiele kopii) przechowywane w systemie plików BTRFS.

XV) Defragmentacja systemu plików online: Wyjaśniłem wcześniej, jak działa system plików kopiowania BTRFS. Pliki Larges są przechowywane w wielu stopniach systemu plików BTRFS. Po modyfikowaniu dużych plików, zakresy, które mają zostać zmodyfikowane, są kopiowane w różnych bezpłatnych zakresach systemu plików i zmodyfikowane tam. Tak więc niezmodyfikowane zakresy danych są również przechowywane na wypadek, gdyby były one wymagane do odzyskiwania systemu plików. Powoduje to fragmentację (zakres danych dużych plików nie będzie ciągły i będzie rozproszony wokół całego urządzenia pamięci) na systemie plików, ponieważ duże pliki są modyfikowane. Zbyt duża fragmentacja negatywnie wpływa na system plików (sprawia, że ​​działanie/zapisu systemu plików jest wolniejsze).

Aby rozwiązać ten problem, BTRFS FileSystem obsługuje defragmentację systemu plików online. Dzięki defragmentacji online nie musisz zdjąć systemu plików, aby defragmentacja systemu plików. Możesz utrzymać system plików i uruchomić i nadal go defragować. Defragmentacja przesunie zakres plików wokół systemu plików, aby zachować zakres tego samego dużego pliku, jak to możliwe. Defragmentacja poprawia wydajność systemu plików.

XVI) Sprawdź system plików offline: System plików BTRFS ma wiele wbudowanych narzędzi, których można użyć do sprawdzania błędów systemu plików i ich naprawy. Możesz także naprawić zepsuty system plików BTRFS (którego nie można zamontować) za pomocą tych narzędzi.

XVII) Konwersja istniejących systemów plików EXT2/3/4 i Reiserfs: BTRFS FileSystem ma wbudowane narzędzia BTRFS-CONVERT, którego można użyć do konwersji istniejących systemów plików Ext2/3/4 i Reiserfs na system plików BTRFS.

Program konwersji systemu plików BTRFS odczytuje metadane istniejącego systemu plików Ext2/3/4 (lub Reiserfs), tworzy metadane BTRFS i przechowuje je na systemie plików. System plików utrzymuje zarówno metadane BTRFS, jak i EXT2/3/4 (lub Reiserfs). BTRFS FileSystem wskazuje na te same bloki plików używane przez pliki systemu ext2/3/4 (lub reiserfs). Istniejący system plików i bloki danych są nietknięte, ponieważ BTRFS jest systemem plików (COW). Po modyfikowaniu pliku BTRFS systemu plików kopiuje oryginalne bloki danych w nowych bezpłatnych zakresach i tam modyfikuje.

XVIII) Urządzenia nasion: BTRFS FileSystem obsługuje urządzenia nasienne. Możesz utworzyć system plików tylko do odczytu i użyć go jako szablonu (urządzenia nasiennego), aby tworzyć inne systemy plików BTRFS. Zaletą tego jest to, że tylko zmodyfikowane dane zostaną zapisane do nowego systemu plików. Oryginalne dane (na urządzeniach nasiennych) będą przechowywane tak, jak są. Tę funkcję można wykorzystać do zaoszczędzenia dużej ilości przestrzeni dysku i redundancji danych.

xix) Wysyłaj/odbieraj zmiany podwpisu: System plików BTRFS może wysyłać/odbierać zmiany subvolume. System plików BTRFS może wysyłać przyrostowe zmiany podwolu do innego systemu plików BTRFS (może również znajdować. Ta funkcja służy do przyjmowania przyrostowych kopii zapasowych systemu plików BTRFS. Ta metoda jest szybsza i bardziej wydajna niż rsync.

xx) Deduplikacja partii/poza pasm: BTRFS FileSystem obsługuje deduplikację partii lub poza pasmem. Duplikacja ma miejsce po zapisaniu pliku w systemie plików. System plików BTRFS aktywnie skanuje cały system plików w poszukiwaniu identycznych zakresów i utrzymuje tylko jedną kopię każdego zasięgu (usuwa redundant/duplikat). Do tego zadania używana jest ta sama zasada kopii na Write (COW). Deduplikacja oszczędza wiele przestrzeni na dysku.

XXI) Wsparcie PLAPSE: Jeśli używasz jądra Linux 5.0 lub nowsze, możesz tworzyć pliki zamienników na systemie plików BTRFS.

Istnieją pewne ograniczenia Swapfile w systemie plików BTRFS:

- Plik swapowy musi być przydzielony jako NOCOW (nie kopiowanie na wwiricie)

- Plik swapowy nie może mieć włączonej kompresji.

Stabilność systemu plików BTRFS:

System plików BTRFS jest aktywnie rozwijany przez zespół BTRFS. Większość funkcji systemu plików jest stabilna w momencie tego pisania. Niektóre z zaawansowanych funkcji nie są jeszcze wystarczająco stabilne dla środowiska produkcyjnego. Zespół BTRFS ciężko pracuje, aby rozwiązać te problemy ze stabilnością.

Jeśli chcesz użyć systemu plików BTRFS na swoim serwerze produkcyjnym, sprawdź stronę wiki oficjalnej - BTRFS, aby dowiedzieć się, czy potrzebne funkcje systemu plików są wystarczająco stabilne, czy nie. Upewnij się również, że przeprowadzaj niektóre testy przed ostatecznym wdrożeniem systemu plików BTRFS i pamiętaj o prowadzeniu kopii zapasowych ważnych danych. Utrzymanie kopii zapasowej jest zawsze ważne dla środowisk produkcyjnych.

Przyszła wymiana systemu plików ext4:

BTRFS FileSystem jest szybko opracowywany. Zespół programistów BTRFS dba także o stabilność systemu plików. Dlatego starają się, aby było to jak najbardziej stabilne, opracowując system plików BTRFS. Po pełnym opracowaniu systemu plików BTRFS, a wszystkie funkcje są wystarczająco stabilne, może zastąpić system plików ext4.

Bibliografia:

[1] Btrfs Wiki - https: // btrfs.Wiki.jądro.org/indeks.php/main_page
[2] Btrfs - dokumentacja drzewa jądra - https: // www.jądro.org/doc/html/najnowsze/pliki systemowe/btrfs.html
[3] Btrfs - Glosariusz - https: // btrfs.Wiki.jądro.org/indeks.PHP/Glosariusz
[4] Funkcje systemu plików „BTRFS” - https: // www.Thegeekdiary.com/cechy-btrfs-fileSystem/
[5] Porównanie systemów plików - https: // en.Wikipedia.org/wiki/porównanie_of_file_systems
[6] BTRFS Design - Btrfs Wiki - https: // btrfs.Wiki.jądro.org/indeks.PHP/BTRFS_DESIGN
[7] Być może zabraknie INODES można było traktować „poważniej”? - https: // lwn.net/artykuły/724522/
[8] Wykonanie migawek tylko do odczytu BTRFS jest zapisane - https: // markandruth.współ.Wielka Brytania/2016/12/29/Making-A-A-BTRFS-Read tylko-Snapshot-Writable
[9] Striping danych - https: // en.Wikipedia.org/wiki/data_striping
[10] FAQ - BTRFS Wiki - https: // btrfs.Wiki.jądro.org/indeks.PHP/FAQ
[11] Standardowe poziomy RAID - https: // en.Wikipedia.org/wiki/standard_raid_levels
[12] Trim (Computing) - https: // en.Wikipedia.org/wiki/trim_ (komputer)
[13] Solid State Drive - Archwiki - https: // wiki.Archlinux.org/indeks.php/solid_state_drive#Trim
[14] BTRFSCK - BTRFS Wiki - https: // btrfs.Wiki.jądro.org/indeks.PHP/BTRFSCK
[15] Konwersja z Ext3/4 i Reiserfs - Btrfs Wiki - https: // btrfs.Wiki.jądro.org/indeks.php/conversion_from_ext3
[16] Przyrostowa kopia zapasowa - Btrfs Wiki - https: // btrfs.Wiki.jądro.org/indeks.php/incremental_backup
[17] deduplikacja - Btrfs Wiki - https: // btrfs.Wiki.jądro.org/indeks.PHP/deduplikacja
[18] Status - Btrfs Wiki - https: // btrfs.Wiki.jądro.org/indeks.PHP/Status