Cisco memperkenalkan sistem fail PuzzleFS untuk kernel Linux

Cisco telah mencadangkan sistem fail baharu, PuzzleFS, dilaksanakan sebagai modul untuk kernel Linux yang ditulis dalam Rust. FS direka bentuk untuk digunakan untuk mengehoskan bekas terpencil dan meneruskan pembangunan idea yang dicadangkan dalam Atomfs FS. Pelaksanaannya masih di peringkat prototaip, menyokong pembinaan dengan cawangan kernel Linux seterusnya yang berkarat, dan dibuka di bawah lesen Apache 2.0 dan MIT.

Projek ini bertujuan untuk memintas batasan yang timbul apabila menggunakan imej kontena dalam format OCI (Inisiatif Kontena Terbuka). PuzzleFS menangani isu seperti penyimpanan data pendua yang cekap, keupayaan pelekapan terus, pembinaan imej boleh berulang dan keselamatan memori.

Untuk penyahduplikasian data yang diulang dalam bekas yang berbeza, algoritma FastCDC (Fast Content-Defined Chunking) digunakan, yang berfungsi dengan membahagikan data kepada serpihan saiz arbitrari dan mengekalkan indeks dengan cincang serpihan yang diproses. Serpihan berulang disimpan sekali dan diindeks bersama untuk semua lapisan FS, i.e. penyahduplikasian boleh meliputi titik lekap yang berbeza (lapisan FS baharu boleh dilancarkan berdasarkan yang sedia ada dan menggunakan serpihan data di dalamnya semasa penyahduplikasian).

Pemasangan berulang bagi imej kontena dicapai melalui definisi perwakilan kanonik bagi format imej kontena. Pemasangan terus (direct-mount) membolehkan anda melekapkan imej bekas OCI daripada storan kongsi global tanpa membongkarnya terlebih dahulu, menggunakan cincang kandungan daripada manifes bekas sebagai pengecam. Untuk mengesahkan integriti data dalam syarat menggunakan storan kongsi, mekanisme fs-verity boleh digunakan, yang, apabila mengakses fail, menyemak sama ada cincangan yang dinyatakan dalam indeks binari sepadan dengan kandungan sebenar.

Bahasa Rust dipilih sebagai menggabungkan prestasi tinggi kod yang terhasil dengan keupayaan selamat memori, yang mengurangkan risiko kelemahan yang disebabkan oleh masalah seperti capaian memori selepas pembebasan dan overrun penimbal. Penggunaan Rust untuk modul kernel juga memungkinkan untuk berkongsi kod dalam komponen kernel dan ruang pengguna untuk mencipta satu pelaksanaan selamat.

Matlamat projek lain termasuk binaan dan pelekapan imej yang sangat pantas, keupayaan untuk menggunakan peringkat perantaraan pilihan untuk pengkanonikan imej, traversal pokok FS gaya mtree pilihan apabila menggunakan struktur berlapis, perubahan gaya casync dan mudah- untuk melaksanakan seni bina.

Sumber: opennet.ru

Tambah komen