Kent Overstreet objavio je izdanje datotečnog sustava Bcachefs 1.38.0. Izdanje obuhvaća dva paketa: bcachefs-kernel-dkms s kernel modulom koji se sastavlja pomoću DKMS (Dynamic Kernel Module Support) sustava, i bcachefs-tools s korisničkim korisničkim alatom bcachefs, koji implementira naredbe za kreiranje (mkfs), montiranje, obnavljanje i provjeru FS-a. Paketi su sastavljeni za Debian, Ubuntu i očekuju se za Arch Linux, Fedoru, openSUSE i NixOS. DKMS modul podržava rad s Linux kernelima počevši od verzije 6.16.
Projektom Bcachefs razvija se datotečni sustav koji ciljano kombinira proširenu funkcionalnost karakterističnu za Btrfs i ZFS s razinom performansi, pouzdanosti i skalabilnosti koja je karakteristična za XFS. Bcachefs podržava mogućnosti kao što su uključivanje više uređaja u jedan dio, višeslojni raspored spremnika (donji sloj s često korištenim podacima na brzim SSD-ovima dok je gornji sloj s manje traženim podacima s tvrdih diskova), replikacija (RAID 1/10), keširanje, prozirno komprimiranje podataka (modovi LZ4, gzip i ZSTD), snimci stanja (snapshots), verifikacija integriteta putem kontrolnih zbrojeva, kodovi za ispravak grešaka, pohrana informacija u šifriranom obliku (korišteni su ChaCha20 i Poly1305).
U novoj verziji:
- Btree struktura need_discard, koja se koristi za praćenje oslobođenih skupova blokova, prevedena je na indeksiranje prema rednom broju iz dnevnika umjesto para uređaj/skup blokova (device/bucket). Ova promjena omogućila je bržu obradu strukture need_discard i isključila mogućnost pojave međusobnog blokiranja prilikom obnavljanja iz dnevnika tijekom montiranja FS-a s nedovoljnim brojem slobodnih blokova za metapodatke.
- Radnje zapisivanja u dnevnik premještene su u zasebnu fifo-ured, a maksimalan broj istovremenih operacija zapisivanja u dnevnik povećan je s 16 na 256, što je omogućilo brži rad većih spremišta s intenzivnim opterećenjem zapisivanja.
- Značajno je ubrzan proces montiranja FS-a s velikim brojem snimaka.
Dodatno se može istaknuti izdavanje projekta NASty 0.0.3, koji razvija distribuciju za izradu mrežnih pohrana (NAS) temeljenih na standardnoj opremi. Distribucija je izgrađena na paketskoj bazi NixOS, koristi datotečni sustav Bcachefs i podržava pristup datotekama putem NFS i SMB, kao i izvoz blok uređaja putem iSCSI i NVMe-oF. Upravljanje se vrši putem web sučelja. Veličina instalacijskog iso-izraza je 1.9 GB. Razvoj projekta distribuira se pod GPLv3 licencom. Web sučelje je napisano u TypeScriptu uz korištenje SvelteKit okvira. Motor za upravljanje pohranom i sustavom napisan je u jeziku Rust.
Ažuriranja se preuzimaju i instaliraju automatski. Sustav se ažurira atomski s mogućnošću povratka na prethodno stanje u slučaju problema u novoj verziji. U web sučelju dostupne su mogućnosti za upravljanje datotečnim sustavima, snimkama, particijama, diskovima, virtualnim strojevima i dijeljenjem. U web sučelju su ugrađeni upravitelj datotekama i emulatore terminala koji rade u pregledniku. Moguće je postavljanje pravila za izvršavanje radnji i obavještavanje administratora u slučaju prekomjerne potrošnje prostora na disku, kvarova u radu uređaja i pregrijavanja.
Podržava pokretanje izoliranih okruženja i aplikacija koristeći virtualizaciju temeljenu na QEMU/KVM i kontejnersku izolaciju putem k3s runtime (iz WebUI-a se izravno mogu instalirati Helm chartovi za pokretanje aplikacija u kontejnerima i postavljanje propuštanja pristupa preko nginx ingress). Podržava integraciju s platformom Kubernetes, za koju je dostavljen CSI upravljački program za dinamičko dodjeljivanje prostora u pohrani. Distribucija po defaultu šalje telemetriju s anonimnim podacima o broju uređaja i veličini pohrane (telemetrija se isključuje u odjeljku 'Settings → Telemetrija').
Kao razlozi za izbor Bcachefs umjesto ZFS ističu se aktivni razvoj, distribucija pod GPL licencom, jednostavan model rada s datotečnim sustavom, pododjelima i snimcima (bez kompliciranih koncepcija poput datasetova, zvol i ugniježdenih poolova) te prisutnost naprednih mogućnosti, kao što su automatsko premještanje rijetko korištenih podataka na sporije spremnike, kodovi za ispravak pogrešaka i oporavak od oštećenja bez prekida rada s datotečnim sustavom.
Od promjena u verziji NASty 0.0.3 ističu se:
- prijelaz na korištenje mehanizma nix flake za pakiranje i upravljanje ovisnostima;
- podrška VPN Tailscale za proslijeđivanje NVMe-oF preko VPN-a;
- integracija k3s runtime; dodavanje NUT (Network UPS Tools) za praćenje uređaja neprekidnog napajanja;
- web-izbornik za precizno podešavanje NFS, SMB i iSCSI (uključujući opcije za odabir planera I/O, dnevnik i rezerviranje metapodataka);
- dodatne postavke za Bcachefs (upravljanje kodovima za ispravak pogrešaka, odabir algoritma kontrolnih zbrojeva, online rebalance i sl.);
- podrška za Cachix keš za ubrzanje dostave ažuriranja;
- mogućnost generiranja TLS certifikata putem Let’s Encrypt;
- uključivanje u sastav alata iotop-c, btop, fwupd, rsync i croc.

Izvor: opennet.ru
