Kent Overstreet ha pubblicato la versione 1.38.0 del file system Bcachefs. Il rilascio comprende due pacchetti: bcachefs-kernel-dkms con il modulo del kernel costruito tramite il sistema DKMS (Dynamic Kernel Module Support), e bcachefs-tools con l'utilità bcachefs eseguita in spazio utente, che implementa comandi per creare (mkfs), montare, ripristinare e verificare il FS. I pacchetti sono stati costruiti per Debian, Ubuntu e sono attesi per Arch Linux, Fedora, openSUSE e NixOS. Il modulo DKMS supporta i kernel Linux a partire dalla versione 6.16.
Il progetto Bcachefs sviluppa un file system mirato a combinare l'estesa funzionalità tipica di Btrfs e ZFS con il livello di prestazioni, affidabilità e scalabilità caratteristico di XFS. Bcachefs supporta funzionalità come l'inclusione di più dispositivi in una partizione, layout a più livelli dei dischi (uno strato inferiore con i dati frequentemente utilizzati su SSD veloci e uno strato superiore con dati meno richiesti da hard disk), replica (RAID 1/10), caching, compressione dei dati trasparente (modalità LZ4, gzip e ZSTD), snapshot, verifica dell'integrità mediante checksum, codici di correzione degli errori, memorizzazione delle informazioni in forma crittografata (utilizzando ChaCha20 e Poly1305).
Nella nuova versione:
- La struttura Btree need_discard, utilizzata per monitorare i set di blocchi rilasciati, è stata convertita per l'indicizzazione in base al numero di sequenza dal registro invece che dalla coppia dispositivo / set di blocchi (device / bucket). Questa modifica ha permesso di velocizzare l'operazione con la struttura need_discard ed ha eliminato i deadlock durante il ripristino dal registro durante il montaggio del FS con un numero insufficiente di blocchi liberi per i metadati.
- Le operazioni di registrazione sono state trasferite in una coda fifo separata e il numero massimo di operazioni di registrazione simultanee è stato aumentato da 16 a 256, consentendo di velocizzare il funzionamento di grandi archivi con carichi di scrittura intensivi.
- È stato significativamente accelerato il montaggio del FS con un numero elevato di snapshot.
Inoltre, si segnala il rilascio del progetto NASty 0.0.3, che sviluppa una distribuzione per la creazione di archivi di rete (NAS) basati su hardware standard. La distribuzione è costruita sulla base dei pacchetti di NixOS, utilizza il file system Bcachefs e supporta l'accesso ai file tramite NFS e SMB, oltre all'esportazione di dispositivi a blocchi tramite iSCSI e NVMe-oF. La gestione avviene attraverso un'interfaccia web. La dimensione dell'immagine iso di installazione è di 1,9 GB. I risultati del progetto sono rilasciati sotto la licenza GPLv3. L'interfaccia web è scritta in TypeScript utilizzando il framework SvelteKit. Il motore per la gestione dell'archivio e del sistema è scritto in Rust.
Gli aggiornamenti vengono scaricati e installati automaticamente. Il sistema si aggiorna in modo atomico con la possibilità di tornare a uno stato precedente quando sorgono problemi nella nuova versione. Nell'interfaccia web sono disponibili opzioni per gestire file system, snapshot, partizioni, dischi, macchine virtuali e condivisioni. Sono inclusi un file manager integrato nell'interfaccia web e un emulatore di terminale che funzionano nel browser. È possibile creare regole per eseguire azioni e notificare l'amministratore in caso di consumo eccessivo di spazio su disco, guasti nei dischi e surriscaldamento.
Supporta l'esecuzione di ambienti e applicazioni isolate, utilizzando la virtualizzazione basata su QEMU/KVM e l'isolamento dei contenitori mediante k3s runtime (dall'interfaccia WebUI è possibile installare direttamente i chart di Helm per eseguire applicazioni nei contenitori e configurare il forwarding tramite nginx ingress). È supportata l'integrazione con la piattaforma Kubernetes, per la quale è fornito un driver CSI per l'allocazione dinamica dello spazio di archiviazione. La distribuzione per impostazione predefinita invia telemetria con dati anonimizati sul numero di dischi e sulla dimensione dello spazio di archiviazione (la telemetria può essere disattivata nella sezione "Impostazioni → Telemetria").
Le ragioni per scegliere Bcachefs invece di ZFS includono lo sviluppo attivo, la distribuzione sotto licenza GPL, un modello di lavoro semplice con il file system, le partizioni e gli snapshot (senza concetti complicati come dataset, zvol e pool annidati) e la presenza di funzionalità avanzate come il trasferimento automatico di dati poco utilizzati su dischi lenti, codici di correzione degli errori e recupero dei danneggiamenti senza interrompere il lavoro con il file system.
Tra le novità della versione NASty 0.0.3 si segnalano:
- passaggio all'utilizzo del meccanismo nix flake per il packaging e la gestione delle dipendenze;
- highlightsFromPoint() VPN Tailscale per il forwarding NVMe-oF sopra VPN;
- integrazione k3s runtime; aggiunta di NUT (Network UPS Tools) per il monitoraggio dei dispositivi di alimentazione inattaccabile;
- pannello web per la configurazione fine di NFS, SMB e iSCSI (inclusa l'opzione per scegliere lo scheduler I/O, journaling e riserva dei metadati);
- impostazioni aggiuntive per Bcachefs (gestione dei codici di correzione degli errori, scelta dell'algoritmo di checksum, bilanciamento online, ecc.);
- supporto per la cache Cachix per accelerare la consegna degli aggiornamenti;
- possibilità di generazione di certificati TLS tramite Let’s Encrypt;
- inclusione tra gli strumenti iotop-c, btop, fwupd, rsync e croc.

Fonte: opennet.ru
