Promovarea Bcachefs la Kernel-ul Linux

Kent Overstreet, autorul sistemului de stocare în cache a dispozitivelor bloc SSD BCache, care face parte din nucleul Linux, a rezumat rezultatele muncii de promovare a sistemului de fișiere Bcachefs în discursul său la conferința LSFMM 2023 (Linux Storage, Filesystem, Memory Management). & BPF Summit). în compoziția principală a nucleului Linux și a vorbit despre planurile pentru dezvoltarea ulterioară a acestui FS. În mai, un set actualizat de patch-uri cu implementarea FS Bcachefs a fost propus pentru revizuire și includere în compoziția principală a nucleului Linux. FS Bcachefs se dezvoltă de aproximativ 10 ani. Pregătirea pentru revizuirea implementării Bcachefs înainte de includerea în nucleu a fost anunțată la sfârșitul anului 2020, iar versiunea actuală a patch-urilor ține cont de comentariile și deficiențele identificate în timpul revizuirii anterioare.

Scopul de dezvoltare Bcachefs este de a atinge nivelul XFS în performanță, fiabilitate și scalabilitate, oferind în același timp caracteristici suplimentare inerente Btrfs și ZFS, cum ar fi includerea mai multor dispozitive într-o partiție, layout-uri de stocare multi-strat, replicare (RAID 1/10), cache, compresie transparentă a datelor (modurile LZ4, gzip și ZSTD), slice-uri de stare (instantanee), verificarea integrității prin sume de control, capacitatea de a stoca coduri de corectare a erorilor Reed-Solomon (RAID 5/6), stocare criptată a informațiilor (ChaCha20 și Poly1305) sunt folosite). În ceea ce privește performanța, Bcachefs este înaintea Btrfs și a altor sisteme de fișiere bazate pe mecanismul Copy-on-Write și demonstrează performanțe apropiate de Ext4 și XFS.

Dintre cele mai recente realizări în dezvoltarea Bcachefs, se remarcă stabilizarea implementării instantaneelor ​​disponibile pentru scriere. În comparație cu Btrfs, instantaneele din Bcachefs sunt acum mult mai bine scalabile și lipsite de problemele inerente Btrfs. În practică, munca instantaneelor ​​a fost testată la organizarea backup-urilor MySQL. Bcachefs a depus, de asemenea, multă muncă pentru a îmbunătăți scalabilitatea - sistemul de fișiere a funcționat bine la testarea în stocarea de 100 TB, iar Bcachefs este de așteptat să fie implementat în stocarea de 1 PB în viitorul apropiat. Un nou mod nocow a fost adăugat pentru a dezactiva mecanismul „copy-on-write” (nocow). În timpul verii, intenționează să aducă implementarea codurilor de corectare a erorilor și a RAIDZ într-o stare stabilă, precum și să rezolve problemele cu un consum mare de memorie la restaurarea și verificarea sistemelor de fișiere cu utilitarul fsck.

Dintre planurile de viitor este menționată dorința de a folosi limbajul Rust în dezvoltarea Bcachefs. Potrivit autorului Bcachefs, îi place să codeze, nu să depaneze cod, iar acum e o nebunie să scrie cod în C când există o opțiune mai bună. Rust este deja implicat în Bcachefs în implementarea unora dintre utilitățile spațiului utilizator. Mai mult decât atât, se naște ideea de a rescrie treptat complet Bcachef-urile în Rust, deoarece utilizarea acestui limbaj economisește semnificativ timpul de depanare.

În ceea ce privește mutarea Bcachef-urilor în curentul principal al nucleului Linux, procesul de adoptare poate fi întârziat din cauza dimensiunii mari a modificărilor (2500 de patch-uri și aproximativ 90 de mii de linii de cod), care este dificil de revizuit. Pentru a accelera revizuirea, unii dezvoltatori au sugerat împărțirea seriei de patch-uri în părți mai mici și mai separate logic. În timpul discuției, unii participanți au atras atenția și asupra dezvoltării proiectului de către un dezvoltator și asupra pericolului ca codul să fie lăsat neîntreținut dacă s-ar întâmpla ceva cu dezvoltatorul acestuia (doi angajați Red Hat sunt interesați de proiect, dar munca lor este încă remedieri limitate de erori).

Bcachefs este dezvoltat folosind tehnologii deja testate în dezvoltarea dispozitivului bloc Bcache, concepute pentru a stoca în cache accesul la hard disk-uri lente pe SSD-uri rapide (incluse în kernel încă de la lansarea 3.10). Bcachefs folosește mecanismul Copy-on-Write (COW), în care modificările nu duc la suprascrierea datelor - noua stare este scrisă într-o nouă locație, după care se modifică indicatorul de stare curentă.

O caracteristică a Bcachefs este suportul pentru conectarea pe mai multe straturi a unităților, în care stocarea este compusă din mai multe straturi - cele mai rapide unități (SSD-uri) sunt conectate la stratul de jos, care sunt folosite pentru a stoca în cache datele utilizate frecvent și formele de strat superior. discuri mai încăpătoare și mai ieftine care stochează date mai puțin solicitate. Memorarea în cache de scriere inversă poate fi utilizată între straturi. Unitățile pot fi adăugate și detașate dinamic dintr-o partiție fără a întrerupe utilizarea sistemului de fișiere (datele migrează automat).

Sursa: opennet.ru

Adauga un comentariu