Kent Overstreet a publicat versiunea 1.38.0 a sistemului de fișiere Bcachefs. Versiunea acoperă două pachete: bcachefs-kernel-dkms, cu un modul de kernel construit folosind sistemul DKMS (Dynamic Kernel Module Support), și bcachefs-tools, o utilitară de utilizator pentru bcachefs, care implementează comenzi pentru crearea (mkfs), montarea, recuperarea și verificarea FS. Pachetele sunt disponibile pentru Debian, Ubuntu și se așteaptă pentru Arch Linux, Fedora, openSUSE și NixOS. Modulul DKMS suportă funcționarea cu nuclee Linux începând cu 6.16.
Proiectul Bcachefs dezvoltă un sistem de fișiere destinat combinării funcționalităților avansate caracteristice Btrfs și ZFS cu nivelul de performanță, fiabilitate și scalabilitate specific XFS. Bcachefs susține funcționalități precum includerea mai multor dispozitive în partajare, aranjamente de stocare stratificate (stratul inferior cu datele utilizate frecvent pe SSD-uri rapide, iar stratul superior cu datele mai puțin solicitate de pe hard disk-uri), replicare (RAID 1/10), caching, compresie transparentă a datelor (moduri LZ4, gzip și ZSTD), instantanee (snapshots), verificare a integrității prin sume de control, coduri de corecție a erorilor, stocarea informațiilor în formă criptată (folosind ChaCha20 și Poly1305).
În noua versiune:
- Structura Btree need_discard, utilizată pentru urmărirea seturilor de blocuri eliberate, a fost convertită la indexare pe baza numărului secvențial din jurnal în loc de perechea dispozitiv/set de blocuri (device/bucket). Această modificare a permis accelerarea procesării structurii need_discard și eliminarea blocajelor aparente în timpul recuperării din jurnal în timpul montării FS-ului cu un număr insuficient de blocuri libere pentru metadate.
- Operațiile de scriere în jurnal au fost separate într-o coadă fifo, iar numărul maxim de operații simultane de scriere în jurnal a fost crescut de la 16 la 256, ceea ce a permis accelerarea funcționării stocărilor mari cu sarcini intensive de scriere.
- Montarea FS-ului cu un număr mare de snapshot-uri a fost semnificativ accelerată.
Se poate menționa, de asemenea, lansarea proiectului NASty 0.0.3, care dezvoltă o distribuție pentru crearea de stocări de rețea (NAS) pe baza hardware-ului standard. Distribuția este construită pe baza pachetelor NixOS, folosește sistemul de fișiere Bcachefs și suportă accesul la fișiere prin NFS și SMB, precum și exportul dispozitivelor de stocare prin iSCSI și NVMe-oF. Managementul este realizat printr-o interfață web. Dimensiunea imaginii ISO de instalare este de 1.9 GB. Realizările proiectului sunt distribuite sub licența GPLv3. Interfața web este scrisă în TypeScript utilizând framework-ul SvelteKit. Motorul pentru gestionarea stocării și sistemului este scris în Rust.
Actualizările sunt descărcate și instalate automat. Sistemul se actualizează atomic, având posibilitatea de revenire la starea anterioară în cazul identificării problemelor în noua versiune. În interfața web sunt disponibile funcționalități pentru gestionarea sistemelor de fișiere, snapshot-urilor, subpartițiilor, discurilor, mașinilor virtuale și partajării. Există un manager de fișiere integrat în interfața web și un emulator de terminal care funcționează în browser. Este posibilă crearea de reguli pentru executarea acțiunilor și notificarea administratorului în cazul consumului excesiv de spațiu pe disc, al defectării dispozitivelor de stocare și al supraîncălzirii.
Se suportă rularea de medii și aplicații izolate, utilizând virtualizarea bazată pe QEMU/KVM și izolarea containerelor cu ajutorul runtime-ului k3s (direct din WebUI se pot instala Helm charts pentru lansarea aplicațiilor în containere și configurarea redirecționării accesului prin nginx ingress). Se suportă integrarea cu platforma Kubernetes, pentru care se furnizează un driver CSI pentru alocarea dinamică a spațiului de stocare. Distribuția, în mod implicit, trimite telemetrie cu date anonimizadoare despre numărul de dispozitive de stocare și dimensiunea stocării (telemetria poate fi dezactivată în secțiunea „Settings → Telemetry”).
Printre motivele alegerii Bcachefs în loc de ZFS se numără dezvoltarea activă, furnizarea sub licență GPL, modelul simplu de lucru cu FS, subpartiții și snapshot-uri (fără concepte complicate, cum ar fi dataset-uri, zvol și pool-uri învăluite) și disponibilitatea unor caracteristici avansate, precum mutarea automată a datelor folosite rar pe dispozitive de stocare mai lente, coduri de corectare a erorilor și recuperarea avariilor fără a opri lucrul cu FS.
Printre schimbările aduse versiunii NASty 0.0.3 se numără:
- trecerea la utilizarea mecanismului nix flake pentru ambalarea și gestionarea dependențelor;
- suport pentru VPN Tailscale pentru redirecționarea NVMe-oF peste VPN;
- integrarea runtime-ului k3s; adăugarea NUT (Network UPS Tools) pentru monitorizarea dispozitivelor de alimentare neîntreruptă;
- panou web pentru configurarea fină a NFS, SMB și iSCSI (inclusiv opțiuni pentru selectarea programatorului de intrare/ieșire, jurnalizare și salvarea metadatelor);
- setări suplimentare pentru Bcachefs (administrarea codurilor de corectare a erorilor, selectarea algoritmului pentru sume de control, rebalance online etc.);
- suport pentru cache-ul Cachix pentru accelerarea livrării actualizărilor;
- posibilitatea de generare certificatelor TLS prin Let’s Encrypt;
- includerea în utilitarele iotop-c, btop, fwupd, rsync și croc.

Sursa: opennet.ro
