Wydanie Bcachefs 1.38.0. Dystrybucja NASty do wdrażania NAS opartych na Bcachefs

Kent Overstreet opublikował wersję systemu plików Bcachefs 1.38.0. Wydanie obejmuje dwa pakiety: bcachefs-kernel-dkms z modułem jądra, budowanym za pomocą systemu DKMS (Dynamic Kernel Module Support), oraz bcachefs-tools z użytkową aplikacją bcachefs, która implementuje polecenia do tworzenia (mkfs), montowania, przywracania i sprawdzania FS. Pakiety są dostępne dla Debiana, Ubuntu i oczekiwane dla Arch Linux, Fedory, openSUSE oraz NixOS. Moduł DKMS obsługuje jądra Linux od wersji 6.16.

Projekt Bcachefs rozwija system plików, który łączy zaawansowaną funkcjonalność typową dla Btrfs i ZFS oraz poziom wydajności, niezawodności i skalowalności charakterystyczny dla XFS. Bcachefs obsługuje takie funkcje, jak dołączenie do partycji wielu urządzeń, wielowarstwowe rozmieszczenie nośników (dolna warstwa z często używanymi danymi na szybkich SSD, a górna warstwa z mniej cenionymi danymi z dysków twardych), replikacja (RAID 1/10), buforowanie, przezroczysta kompresja danych (tryby LZ4, gzip i ZSTD), migawki stanu, weryfikacja integralności poprzez sumy kontrolne, kody korekcji błędów, przechowywanie informacji w zaszyfrowanej formie (używane są ChaCha20 i Poly1305).

W nowej wersji:

  • Struktura Btree need_discard, stosowana do śledzenia zwalnianych zestawów bloków, została przetłumaczona na indeksowanie według numeru porządkowego z dziennika zamiast pary urządzenie/zestaw bloków (device/bucket). Zmiana ta przyspieszyła pracę ze strukturą need_discard i wyeliminowała występowanie blokady podczas przywracania z dziennika podczas montowania FS, gdy brakuje wolnych bloków dla metadanych.
  • Operacje zapisu do dziennika zostały przeniesione do osobnej kolejki fifo, a maksymalna liczba jednocześnie wykonywanych operacji zapisu do dziennika zwiększona z 16 do 256, co przyspieszyło działanie dużych magazynów o intensywności zapisu.
  • Znacząco przyspieszono montowanie FS z dużą liczbą zrzutów.

Dodatkowo warto wspomnieć o wydaniu projektu NASty 0.0.3, rozwijającego dystrybucję do tworzenia sieciowych magazynów (NAS) na bazie standardowego sprzętu. Dystrybucja oparta jest na pakietowej bazie NixOS, korzysta z systemu plików Bcachefs i obsługuje dostęp do plików przez NFS i SMB, a także eksport urządzeń blokowych przez iSCSI i NVMe-oF. Zarządzanie odbywa się przez interfejs webowy. Rozmiar instalacyjnego obrazu iso wynosi 1,9 GB. Osiągnięcia projektu są rozpowszechniane na licencji GPLv3. Interfejs webowy został napisany w TypeScript z wykorzystaniem frameworka SvelteKit. Silnik do zarządzania magazynem i systemem napisany jest w języku Rust.

Aktualizacje są pobierane i instalowane automatycznie. System jest aktualizowany atomowo z możliwością przywrócenia poprzedniego stanu w przypadku ujawnienia problemów w nowej wersji. W interfejsie webowym dostępne są opcje zarządzania systemami plików, migawkami, podziałami, dyskami, maszynami wirtualnymi oraz współdzieleniem. Wbudowane w interfejs webowy menedżer plików i emulator terminala działają w przeglądarce. Możliwe jest tworzenie reguł do działania oraz powiadamianie administratora w przypadku nadmiernego zużycia przestrzeni dyskowej, awarii dysków i przegrzewania.

Obsługiwane jest uruchamianie izolowanych środowisk i aplikacji przy użyciu wirtualizacji opartej na QEMU/KVM oraz izolacji kontenerowej dzięki wsparciu runtime k3s (za pośrednictwem WebUI można bezpośrednio instalować wykresy Helm do uruchamiania aplikacji w kontenerach oraz konfigurować dostęp przez nginx ingress). Obsługiwana jest integracja z platformą Kubernetes, dla której dostarczany jest sterownik CSI do dynamicznego przydzielania miejsca w magazynie. Domyślny dystrybucja wysyła dane telemetryczne z zanonimizowanymi informacjami o liczbie dysków i rozmiarze magazynu (telemetria jest wyłączana w sekcji "Ustawienia → Telemetria").

Jako powody wyboru Bcachefs zamiast ZFS wskazuje się aktywny rozwój, licencję GPL, prosty model pracy z systemem plików, podziałami i migawkami (bez skomplikowanych koncepcji, jak dataset-y, zvol i zagnieżdżone puli) oraz istniejące zaawansowane możliwości, takie jak automatyczne przenoszenie rzadko używanych danych na wolniejsze nośniki, kody korekcji błędów oraz możność naprawy uszkodzeń bez przerywania pracy z systemem plików.

W zmianach w wersji NASty 0.0.3 wyróżnia się:

  • przejście na mechanizm nix flake do pakowania i zarządzania zależnościami;
  • wsparcie VPN Tailscale do przesyłania NVMe-oF przez VPN;
  • integracja runtime k3s; dodanie NUT (Network UPS Tools) do monitorowania urządzeń UPS;
  • panel webowy do szczegółowej konfiguracji NFS, SMB i iSCSI (w tym opcje wyboru planisty I/O, rejestrowania i rezerwacji metadanych);
  • dodatkowe ustawienia dla Bcachefs (zarządzanie kodami korekcji błędów, wybór algorytmu sum kontrolnych, online-rebalansowanie itd.);
  • wsparcie dla pamięci podręcznej Cachix w celu przyspieszenia dostarczania aktualizacji;
  • możliwość generowania certyfikatów TLS przez Let’s Encrypt;
  • włączenie do zestawu narzędzi iotop-c, btop, fwupd, rsync i croc.

Wydanie Bcachefs 1.38.0. Dystrybucja NASty do wdrażania NAS opartych na Bcachefs

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster