Cisco memperkenalkan sistem file PuzzleFS untuk kernel Linux

Cisco telah mengusulkan sistem file baru, PuzzleFS, yang diimplementasikan sebagai modul untuk kernel Linux, yang ditulis dalam Rust. Sistem file dirancang untuk digunakan sebagai host container yang terisolasi dan terus mengembangkan ide-ide yang diusulkan dalam sistem file Atomfs. Implementasinya masih dalam tahap prototipe, mendukung pembangunan dengan cabang kernel Linux Rust-next dan terbuka di bawah lisensi Apache 2.0 dan MIT.

Proyek ini bertujuan untuk mengatasi keterbatasan yang muncul saat menggunakan gambar container dalam format OCI (Open Container Initiative). PuzzleFS memecahkan masalah seperti penyimpanan data duplikat yang efisien, kemampuan pemasangan langsung, pembuatan gambar berulang, dan keamanan memori.

Untuk menghapus duplikat data yang diulang dalam wadah yang berbeda, algoritma FastCDC (Fast Content-Defined Chunking) digunakan, yang bekerja dengan membagi data menjadi fragmen-fragmen dengan ukuran sewenang-wenang dan mempertahankan indeks dengan hash dari fragmen yang diproses. Fragmen berulang disimpan satu kali dan diindeks bersama untuk semua lapisan sistem file, mis. deduplikasi dapat mencakup titik pemasangan yang berbeda (lapisan FS baru dapat diluncurkan berdasarkan yang sudah ada dan menggunakan fragmen data yang ada di dalamnya selama deduplikasi).

Perakitan gambar kontainer yang berulang dicapai melalui pendefinisian representasi kanonik dari format gambar kontainer. Pemasangan langsung memungkinkan Anda memasang gambar kontainer OCI dari penyimpanan bersama global tanpa membongkarnya terlebih dahulu, menggunakan hash konten dari manifes kontainer sebagai pengidentifikasi. Untuk memverifikasi integritas data saat menggunakan penyimpanan bersama, mekanisme fs-verity dapat digunakan, yang, ketika mengakses file, memeriksa korespondensi hash yang ditentukan dalam indeks biner dengan konten sebenarnya.

Bahasa Rust dipilih karena menggabungkan kinerja tinggi dari kode yang dihasilkan dengan kemampuan untuk bekerja secara aman dengan memori, yang mengurangi risiko kerentanan yang disebabkan oleh masalah seperti mengakses area memori setelah dibebaskan dan melampaui batas buffer. Penggunaan Rust untuk modul kernel juga memungkinkan pembagian kode antara kernel dan komponen ruang pengguna untuk membuat implementasi tunggal yang aman.

Tujuan lain dari proyek ini meliputi: pembuatan dan pemasangan gambar yang sangat cepat, kemampuan untuk menggunakan tahap perantara opsional untuk kanonikalisasi gambar, opsionalitas lintasan pohon file bergaya mtree penuh saat menggunakan struktur multi-lapisan, penerapan gaya casync perubahan, dan arsitektur yang mudah diimplementasikan.

Sumber: opennet.ru

Tambah komentar