Mempromosikan Bcachef kepada Kernel Linux

Kent Overstreet, pengarang sistem caching peranti blok BCache SSD, yang merupakan sebahagian daripada kernel Linux, meringkaskan hasil kerja mempromosikan sistem fail Bcachefs dalam ucapannya pada persidangan LSFMM 2023 (Linux Storage, Filesystem, Memory Management & BPF Summit). ke dalam komposisi utama kernel Linux dan bercakap tentang rancangan untuk pembangunan selanjutnya FS ini. Pada bulan Mei, satu set patch yang dikemas kini dengan pelaksanaan Bcachefs FS telah dicadangkan untuk semakan dan dimasukkan dalam komposisi utama kernel Linux. FS Bcachefs telah dibangunkan selama kira-kira 10 tahun. Kesediaan untuk menyemak semula pelaksanaan Bcachef sebelum dimasukkan ke dalam teras diumumkan pada penghujung tahun 2020, dan versi tampung semasa mengambil kira ulasan dan kekurangan yang dikenal pasti semasa semakan sebelumnya.

Matlamat pembangunan Bcachefs adalah untuk mencapai tahap XFS dalam prestasi, kebolehpercayaan dan skalabiliti, sambil menyediakan ciri tambahan yang wujud dalam Btrfs dan ZFS, seperti memasukkan berbilang peranti dalam partition, susun atur storan berbilang lapisan, replikasi (RAID 1/10), caching, pemampatan data telus (mod LZ4, gzip dan ZSTD), kepingan keadaan (snapshot), pengesahan integriti dengan jumlah semak, keupayaan untuk menyimpan kod pembetulan ralat Reed-Solomon (RAID 5/6), penyimpanan maklumat yang disulitkan (ChaCha20 dan Poly1305 digunakan). Dari segi prestasi, Bcachefs mendahului Btrfs dan sistem fail lain berdasarkan mekanisme Copy-on-Write, dan menunjukkan prestasi hampir dengan Ext4 dan XFS.

Daripada pencapaian terkini dalam pembangunan Bcachefs, penstabilan pelaksanaan syot kilat yang tersedia untuk penulisan dicatatkan. Berbanding dengan Btrfs, syot kilat dalam Bcachefs kini jauh lebih baik berskala dan bebas daripada masalah yang wujud dalam Btrfs. Dalam amalan, kerja syot kilat telah diuji semasa mengatur sandaran MySQL. Bcachefs juga telah melakukan banyak kerja untuk meningkatkan kebolehskalaan - sistem fail telah menunjukkan prestasi yang baik dalam ujian dalam storan 100 TB, dan Bcachefs dijangka akan dilaksanakan dalam storan 1 PB dalam masa terdekat. Mod nocow baharu telah ditambahkan untuk melumpuhkan mekanisme "salin atas tulis" (nocow). Semasa musim panas, mereka merancang untuk membawa pelaksanaan kod pembetulan ralat dan RAIDZ ke keadaan stabil, serta menyelesaikan masalah dengan penggunaan memori yang tinggi apabila memulihkan dan menyemak sistem fail dengan utiliti fsck.

Daripada rancangan untuk masa depan, keinginan untuk menggunakan bahasa Rust dalam pembangunan Bcachefs disebutkan. Menurut pengarang Bcachefs, dia suka mengekod, bukan menyahpepijat kod, dan kini adalah gila untuk menulis kod dalam C apabila terdapat pilihan yang lebih baik. Rust telah pun terlibat dalam Bcachefs dalam pelaksanaan beberapa utiliti ruang pengguna. Lebih-lebih lagi, idea sedang ditetaskan untuk menulis semula Bcachef secara beransur-ansur dalam Rust, kerana menggunakan bahasa ini dengan ketara menjimatkan masa penyahpepijatan.

Bagi mengalihkan Bcachef ke dalam arus utama kernel Linux, proses penerimaan mungkin tertunda kerana saiz perubahan yang besar (2500 tampalan dan kira-kira 90 ribu baris kod), yang sukar untuk disemak. Untuk mempercepatkan semakan, sesetengah pembangun telah mencadangkan memecahkan siri tampalan kepada bahagian yang lebih kecil dan dipisahkan secara logik. Semasa perbincangan, beberapa peserta juga menarik perhatian kepada pembangunan projek oleh seorang pemaju dan bahaya bahawa kod itu boleh dibiarkan tanpa diselenggara jika sesuatu berlaku kepada pemajunya (dua pekerja Red Hat berminat dengan projek itu, tetapi kerja mereka masih pembetulan pepijat terhad).

Bcachefs dibangunkan menggunakan teknologi yang telah diuji dalam pembangunan peranti blok Bcache, yang direka untuk capaian cache kepada pemacu keras yang perlahan pada SSD pantas (disertakan dalam kernel sejak keluaran 3.10). Bcachefs menggunakan mekanisme Copy-on-Write (COW), di mana perubahan tidak membawa kepada menimpa data - keadaan baharu ditulis ke lokasi baharu, selepas itu penunjuk keadaan semasa berubah.

Satu ciri Bcachefs ialah sokongan untuk sambungan berbilang lapisan pemacu, di mana storan terdiri daripada beberapa lapisan - pemacu terpantas (SSD) disambungkan ke lapisan bawah, yang digunakan untuk cache data yang kerap digunakan dan lapisan atas terbentuk. cakera yang lebih luas dan lebih murah yang menyimpan data yang kurang diminta . Cache tulis balik boleh digunakan antara lapisan. Pemacu boleh ditambah secara dinamik dan dialihkan daripada partition tanpa mengganggu penggunaan sistem fail (data berhijrah secara automatik).

Sumber: opennet.ru

Tambah komen