Bcachef-ийг Линукс цөмд сурталчлах

Линуксийн цөмийн нэг хэсэг болох BCache SSD блок төхөөрөмжийн кэшийн системийн зохиогч Кент Оверстрит LSFMM 2023 бага хурал дээр хэлсэн үгэндээ Bcachefs файлын системийг сурталчлах ажлын үр дүнг нэгтгэн дүгнэв (Linux Storage, Filesystem, Memory Management). & BPF Summit).-г Линуксийн цөмийн үндсэн бүрэлдэхүүнд оруулж, энэхүү FS-ийн цаашдын хөгжлийн төлөвлөгөөний талаар ярьсан. Тавдугаар сард Bcachefs FS-ийг хэрэгжүүлсэн шинэчилсэн засваруудыг Линуксийн цөмийн үндсэн бүрэлдэхүүнд оруулахыг санал болгов. FS Bcachefs нь 10 орчим жил хөгжиж байна. Үндсэн хэсэгт оруулахаас өмнө Bcachefs-ийн хэрэгжилтийг шалгахад бэлэн байгаа талаар 2020 оны сүүлээр зарласан бөгөөд засварын одоогийн хувилбар нь өмнөх шалгалтын явцад илэрсэн санал, дутагдлыг харгалзан үзсэн болно.

Bcachefs-ийн хөгжүүлэлтийн зорилго нь гүйцэтгэл, найдвартай байдал, өргөтгөх чадвараараа XFS түвшинд хүрэхийн зэрэгцээ Btrfs болон ZFS-д хамаарах нэмэлт боломжуудыг, тухайлбал хуваалтад олон төхөөрөмж оруулах, олон давхаргат хадгалалтын зохион байгуулалт, хуулбарлах (RAID 1/10), кэш хийх, ил тод өгөгдөл шахах (LZ4, gzip болон ZSTD горимууд), төлөвийн зүсмэлүүд (хормын хувилбарууд), хяналтын нийлбэрээр бүрэн бүтэн байдлыг шалгах, Reed-Solomon алдаа засах кодыг хадгалах чадвар (RAID 5/6), мэдээллийн шифрлэгдсэн хадгалалт (ChaCha20 болон Poly1305) ашиглаж байна). Гүйцэтгэлийн хувьд Bcachefs нь Copy-on-Write механизм дээр суурилсан Btrfs болон бусад файлын системүүдээс түрүүлж, Ext4 болон XFS-тэй ойролцоо гүйцэтгэлийг харуулдаг.

Bcachefs-ийг хөгжүүлэх хамгийн сүүлийн үеийн ололт амжилтуудаас бичих боломжтой агшин зуурын зургуудын хэрэгжилт тогтворжиж байгааг тэмдэглэв. Btrfs-тэй харьцуулахад Bcachefs дахь хормын хувилбарууд нь одоо илүү томорч, Btrfs-д байдаг асуудлуудаас ангид болсон. Практикт MySQL нөөцлөлтийг зохион байгуулахдаа агшин зуурын зургийг туршиж үзсэн. Bcachefs нь өргөтгөх чадварыг сайжруулахын тулд маш их ажил хийсэн - файлын систем нь 100 TB санах ойд сайн туршилт хийсэн бөгөөд Bcachefs-ийг ойрын ирээдүйд 1 PB санах ойд нэвтрүүлэх төлөвтэй байна. "Бичих дээр хуулбарлах" (nocow) механизмыг идэвхгүй болгохын тулд шинэ nocow горим нэмэгдсэн. Зуны улиралд тэд алдаа засах код болон RAIDZ-ийн хэрэгжилтийг тогтвортой байдалд хүргэхээс гадна fsck хэрэгслээр файлын системийг сэргээх, шалгах үед санах ойн хэрэглээ ихтэй асуудлыг шийдвэрлэхээр төлөвлөж байна.

Ирээдүйн төлөвлөгөөнүүдийн дотроос Bcachefs-ийг хөгжүүлэхэд Rust хэлийг ашиглах хүсэл эрмэлзэлийг дурдсан болно. Bcachefs-ийн зохиогчийн хэлснээр тэрээр кодыг дибаг хийх биш харин кодлох дуртай бөгөөд одоо илүү сайн сонголт байхад C хэл дээр код бичих нь галзуу юм. Rust нь Bcachefs-д хэрэглэгчийн орон зайн зарим хэрэгслийг хэрэгжүүлэхэд аль хэдийн оролцсон. Түүгээр ч зогсохгүй, энэ хэлийг ашиглах нь дибаг хийх цагийг ихээхэн хэмнэдэг тул Rust-д Bcachefs-ийг аажмаар бүрэн дахин бичих санааг гаргаж байна.

Bcachefs-ийг Линуксийн цөмийн үндсэн урсгал руу шилжүүлэх тухайд, өөрчлөлтийн хэмжээ том (2500 засвар, 90 мянга орчим мөр код) тул хүлээн авах үйл явц удааширч магадгүй бөгөөд үүнийг хянахад хэцүү байдаг. Хяналтыг хурдасгахын тулд зарим хөгжүүлэгчид засварын цувралыг жижиг, логикоор тусгаарлагдсан хэсгүүдэд хуваахыг санал болгосон. Хэлэлцүүлгийн үеэр зарим оролцогчид төслийг нэг хөгжүүлэгч боловсруулж байгаа бөгөөд хэрэв хөгжүүлэгчид ямар нэг зүйл тохиолдсон тохиолдолд кодыг засварлахгүй байх аюулд анхаарлаа хандуулав (Red Hat-ийн хоёр ажилтан төслийг сонирхож байгаа боловч тэдний ажил хэвээр байна. хязгаарлагдмал алдаа засварууд).

Bcachefs нь хурдан SSD дээр (3.10 хувилбараас хойш цөмд багтсан) удаашралтай хатуу хөтчүүдэд нэвтрэх боломжийг олгох зорилготой Bcache блок төхөөрөмжийн хөгжүүлэлтэд аль хэдийн туршиж үзсэн технологиудыг ашиглан бүтээгдсэн. Bcachefs нь Copy-on-Write (COW) механизмыг ашигладаг бөгөөд өөрчлөлт нь өгөгдлийг дарж бичихэд хүргэдэггүй - шинэ төлөвийг шинэ байршилд бичиж, дараа нь одоогийн төлөвийн үзүүлэлт өөрчлөгддөг.

Bcachefs-ийн онцлог нь хөтчүүдийн олон давхаргат холболтыг дэмждэг бөгөөд үүнд хадгалалт нь хэд хэдэн давхаргаас бүрддэг - хамгийн хурдан хөтчүүд (SSD) нь байнга ашиглагддаг өгөгдлийг кэшлэхэд ашигладаг доод давхаргад холбогддог бөгөөд дээд давхарга нь бүрддэг. эрэлт багатай өгөгдлийг хадгалдаг илүү багтаамжтай, хямд дискүүд. Бичлэгийн кэшийг давхаргын хооронд ашиглаж болно. Файлын системийн ашиглалтыг тасалдуулахгүйгээр хөтчүүдийг динамикаар нэмж, хуваалтаас салгаж болно (өгөгдөл автоматаар шилжинэ).

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх