Mekanisme blksnap yang diusulkan untuk membuat snapshot perangkat blok di Linux

Perusahaan Veeam, yang memproduksi perangkat lunak untuk pencadangan dan pemulihan bencana, mengusulkan modul blksnap untuk dimasukkan dalam kernel Linux dengan penerapan mekanisme untuk membuat snapshot perangkat blok dan melacak perubahan pada perangkat blok. Untuk bekerja dengan snapshot, utilitas baris perintah blksnap dan perpustakaan blksnap.so telah disiapkan, memungkinkan Anda berinteraksi dengan modul kernel melalui panggilan ioctl dari ruang pengguna.

Tujuan pembuatan modul adalah untuk mengatur pencadangan drive dan disk virtual tanpa menghentikan pekerjaan - modul ini memungkinkan Anda menangkap status terkini dari seluruh perangkat blok dalam snapshot, menyediakan potongan terisolasi untuk pencadangan yang tidak bergantung pada perubahan yang sedang berlangsung . Fitur penting dari blksnap adalah kemampuan untuk membuat snapshot secara bersamaan untuk beberapa perangkat blok sekaligus, yang memungkinkan tidak hanya memastikan integritas data di tingkat perangkat blok, tetapi juga untuk mencapai konsistensi dalam status perangkat blok yang berbeda dalam cadangan.

Untuk melacak perubahan pada subsistem perangkat blok (bdev), kemampuan untuk melampirkan filter yang memungkinkan Anda mencegat permintaan I/O telah ditambahkan. blksnap mengimplementasikan filter yang mencegat permintaan tulis, membaca nilai lama, dan menyimpannya dalam daftar perubahan terpisah yang menentukan status snapshot. Dengan pendekatan ini, logika bekerja dengan perangkat blok tidak berubah, perekaman di perangkat blok asli dilakukan apa adanya, terlepas dari snapshot, yang menghilangkan kemungkinan kerusakan data dan menghindari masalah bahkan jika terjadi kesalahan kritis yang tidak dapat diprediksi. di blksnap dan meluapnya ruang yang dialokasikan untuk perubahan.

Modul ini juga memungkinkan Anda menentukan blok mana yang diubah antara snapshot terakhir dan sebelumnya, yang dapat berguna untuk mengimplementasikan pencadangan tambahan. Untuk menyimpan perubahan, relatif terhadap status snapshot, rentang sektor yang berubah-ubah dapat dialokasikan pada perangkat blok mana pun, yang memungkinkan Anda menyimpan perubahan ke file individual dalam FS pada perangkat blok. Ukuran area penyimpanan perubahan dapat ditingkatkan kapan saja, bahkan setelah snapshot dibuat.

Blksnap didasarkan pada kode modul veeamsnap, yang merupakan bagian dari produk Veeam Agent untuk Linux, tetapi didesain ulang untuk spesifikasi pengiriman di bagian utama kernel Linux. Perbedaan konseptual antara blksnap dan veeamsnap adalah penggunaan sistem filter yang terpasang pada perangkat blok, bukan komponen bdevfilter terpisah yang memotong I/O.

Sumber: opennet.ru

Tambah komentar