Promozione di Bcachefs nel kernel Linux

Kent Overstreet, autore del sistema di caching per dispositivi di blocco su SSD BCache incluso nel kernel di Linux, nel suo intervento alla conferenza LSFMM 2023 (Linux Storage, Filesystem, Memory Management & BPF Summit) ha riassunto i risultati del lavoro sullo sviluppo del file system Bcachefs per l'inclusione nel kernel di Linux e ha parlato dei piani per il suo ulteriore sviluppo. A maggio è stato proposto un insieme aggiornato di patch per la revisione e l'inclusione nel kernel principale di Linux, contenente l'implementazione del file system Bcachefs. Il file system Bcachefs è in fase di sviluppo da circa 10 anni. La disponibilità della revisione dell'implementazione di Bcachefs prima dell'inclusione nel kernel era stata annunciata già alla fine del 2020 e nell'attuale versione delle patch sono state considerate le osservazioni e i miglioramenti emersi dalla precedente revisione.

L'obiettivo dello sviluppo di Bcachefs è raggiungere il livello di prestazioni, affidabilità e scalabilità di XFS, fornendo al contempo funzionalità aggiuntive caratteristiche di Btrfs e ZFS, come l'inclusione di più dispositivi in una partizione, disposizioni a più livelli per i dispositivi di memorizzazione, replicazione (RAID 1/10), caching, compressione trasparente dei dati (modalità LZ4, gzip e ZSTD), snapshot, verifica dell'integrità tramite checksum, possibilità di memorizzare codici di correzione d'errore di Reed-Solomon (RAID 5/6), memorizzazione di informazioni in forma crittografata (utilizzando ChaCha20 e Poly1305). In termini di prestazioni, Bcachefs supera Btrfs e altri file system basati su Copy-on-Write, mostrando velocità di funzionamento simile a quella di Ext4 e XFS.

Tra gli ultimi risultati nello sviluppo di Bcachefs si segnala la stabilizzazione dell'implementazione degli snapshot scrivibili. Rispetto a Btrfs, gli snapshot in Bcachefs ora scalano significativamente meglio e sono privi dei problemi comuni a Btrfs. Nella pratica, il funzionamento degli snapshot è stato testato nell'organizzazione di backup di MySQL. Sono stati inoltre condotti ampi lavori per migliorare la scalabilità: il file system ha dimostrato buone prestazioni nei test su archiviazioni di 100 TB e si prevede a breve l'implementazione di Bcachefs in un'archiviazione di 1 PB. È stata aggiunta una nuova modalità nocow per disattivare il meccanismo

Per il futuro, si menziona la volontà di utilizzare il linguaggio Rust nello sviluppo di Bcachefs. Secondo l'autore di Bcachefs, gli piace programmare e non fare debug, e ora trova insensato scrivere codice in C, ora che c'è un'opzione migliore. Rust è già utilizzato in Bcachefs per implementare alcune utility in esecuzione nello spazio utente. Inoltre, si sta valutando l'idea di riscrivere completamente Bcachefs in Rust, poiché l'uso di questo linguaggio riduce notevolmente il tempo necessario per il debug.

Per quanto riguarda la promozione di Bcachefs nel kernel principale di Linux, il processo di accettazione potrebbe allungarsi a causa delle dimensioni significative delle modifiche (2500 patch e circa 90.000 righe di codice), che sono difficili da revisionare. Per accelerare la revisione, alcuni sviluppatori hanno proposto di suddividere la serie di patch in parti più piccole e logicamente separate. Durante il dibattito, alcuni partecipanti hanno anche sottolineato lo sviluppo del progetto da parte di un singolo sviluppatore e il rischio che il codice possa rimanere senza manutenzione nel caso in cui succeda qualcosa al suo sviluppatore (due membri di Red Hat sono interessati al progetto, ma il loro lavoro è attualmente limitato alla correzione di bug).

Bcachefs si sviluppa utilizzando tecnologie già testate nello sviluppo del dispositivo di blocco Bcache, progettato per memorizzare nella cache l'accesso a dischi rigidi lenti su unità SSD veloci (parte del kernel dalla versione 3.10). In Bcachefs viene utilizzato il meccanismo Copy-on-Write (COW), in cui le modifiche non portano alla riscrittura dei dati: il nuovo stato viene registrato in un nuovo luogo, dopodiché il puntatore allo stato attuale viene aggiornato.

Una delle caratteristiche di Bcachefs è il supporto per la connessione a strati dei dispositivi di archiviazione, dove lo storage è composto da più strati: al livello inferiore sono collegati i dispositivi più veloci (SSD), utilizzati per la memorizzazione nella cache dei dati frequentemente utilizzati, mentre il livello superiore è composto da dischi più capienti e economici, che forniscono lo storage per i dati meno richiesti. Tra i vari strati può essere applicata la memorizzazione nella cache in modalità writeback. I dispositivi possono essere aggiunti e rimossi dinamicamente dalla partizione senza interrompere l'uso del file system (i dati migrano automaticamente).

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster