Pembaruan sistem file cluster LizardFS 3.13.0-rc2

Setelah jeda pembangunan selama setahun dilanjutkan bekerja pada cabang baru dari sistem file terdistribusi yang toleran terhadap kesalahan KadalF 3.13 ΠΈ diterbitkan kandidat rilis kedua. Baru-baru ini terjadi pergantian pemilik perusahaan yang mengembangkan LizardFS, manajemen baru diadopsi dan pengembang diganti. Selama dua tahun terakhir, proyek ini telah ditarik dari masyarakat dan kurang mendapat perhatian, namun tim baru bermaksud untuk menghidupkan kembali hubungan sebelumnya dengan masyarakat dan menjalin interaksi yang erat dengannya. Kode proyek ditulis dalam bahasa C dan C++ dan didistribusikan oleh di bawah lisensi GPLv3.

KadalFS adalah sistem file cluster terdistribusi, yang memungkinkan Anda mendistribusikan data ke berbagai server, tetapi menyediakan akses ke server tersebut dalam bentuk satu partisi besar, yang bekerja dengan cara yang mirip dengan partisi disk tradisional. Partisi yang terpasang dengan LizardFS mendukung atribut file POSIX, ACL, kunci, soket, pipa, file perangkat, tautan simbolis dan keras. Sistem tidak memiliki satu titik kegagalan; semua komponen berlebihan. Paralelisasi operasi data didukung (beberapa klien dapat mengakses file secara bersamaan).

Untuk memastikan toleransi kesalahan, data dibagi menjadi replika, yang didistribusikan ke node berbeda dengan redundansi (beberapa salinan ditempatkan pada node berbeda); jika node atau drive gagal, sistem terus beroperasi tanpa kehilangan informasi dan secara otomatis mendistribusikan ulang data dengan mempertimbangkan node yang tersisa. Untuk memperluas penyimpanan, cukup menghubungkan node baru ke dalamnya tanpa menghentikan pekerjaan pemeliharaan (sistem itu sendiri mereplikasi sebagian data ke server baru dan menyeimbangkan penyimpanan dengan mempertimbangkan server baru). Anda dapat melakukan hal yang sama untuk mengurangi ukuran cluster - Anda cukup menonaktifkan peralatan usang yang sedang dihapus dari sistem.

Data dan metadata disimpan secara terpisah. Untuk pengoperasiannya, disarankan untuk menginstal dua server metadata yang beroperasi dalam mode master-slave, serta setidaknya dua server penyimpanan data (chunkserver). Selain itu, untuk mencadangkan metadata, server log dapat digunakan untuk menyimpan informasi tentang perubahan metadata dan memungkinkan Anda memulihkan operasi jika terjadi kerusakan pada semua server metadata yang ada. Setiap file dibagi menjadi beberapa blok (potongan), berukuran hingga 64 MB. Blok didistribusikan di antara server penyimpanan sesuai dengan mode replikasi yang dipilih: standar (penentuan eksplisit jumlah salinan yang akan ditempatkan pada node yang berbeda, termasuk yang berkaitan dengan direktori individual - untuk data penting, jumlah salinan dapat ditingkatkan, dan untuk data yang tidak penting dikurangi), XOR (RAID5 ) dan EC (RAID6).

Penyimpanan dapat ditingkatkan hingga ukuran petabyte. Area aplikasinya meliputi pengarsipan, penyimpanan gambar mesin virtual, data multimedia, pencadangan, penggunaan sebagai DRC (Pusat Pemulihan Bencana) dan sebagai penyimpanan dalam cluster komputasi berkinerja tinggi. LizardFS memberikan kecepatan membaca yang sangat tinggi untuk file dengan ukuran berapa pun, dan saat menulis, ini menunjukkan kinerja yang baik saat menulis seluruh file berukuran besar dan sedang, ketika tidak ada modifikasi terus-menerus, pekerjaan intensif dengan file terbuka, dan operasi satu kali dengan a sekumpulan file kecil.

Pembaruan sistem file cluster LizardFS 3.13.0-rc2

Di antara fitur-fitur FS, kita juga dapat mencatat adanya dukungan untuk snapshot, yang mencerminkan keadaan file pada waktu tertentu, dan implementasi β€œrecycle bin” bawaan (file tidak segera dihapus dan tersedia untuk pemulihan untuk beberapa waktu). Akses ke partisi dapat dibatasi oleh alamat IP atau kata sandi (mirip dengan NFS). Terdapat mekanisme manajemen kuota dan kualitas layanan yang memungkinkan Anda membatasi ukuran dan bandwidth untuk kategori pengguna tertentu. Dimungkinkan untuk membuat fasilitas penyimpanan yang terdistribusi secara geografis, yang segmennya berlokasi di pusat data yang berbeda.

Proyek LizardFS didirikan pada tahun 2013 sebagai sebuah cabang RusaFS, dan berbeda terutama dengan adanya mode replikasi berdasarkan kode koreksi kesalahan Reed-Solomon (analog dengan raidzN), dukungan ACL yang diperluas, kehadiran klien untuk platform Windows, optimasi tambahan (misalnya, saat menggabungkan klien dan server penyimpanan, blok, jika memungkinkan, dikirim dengan node saat ini, dan metadata disimpan dalam cache di memori), sistem konfigurasi yang lebih fleksibel, dukungan untuk data read-ahead, kuota direktori, dan pengerjaan ulang internal.

LizardFS 3.13.0 rencananya akan dirilis pada akhir Desember. Inovasi utama LizardFS 3.13 adalah penggunaan algoritma konsensus untuk memastikan toleransi kesalahan (pergantian server master jika terjadi kegagalan) Rakit (menggunakan implementasi uRaft kami sendiri, yang sebelumnya digunakan dalam produk komersial). Penggunaan uRaft menyederhanakan konfigurasi dan mengurangi penundaan pemulihan kegagalan, tetapi memerlukan setidaknya tiga node yang berfungsi, salah satunya digunakan untuk kuorum.

Perubahan lainnya: klien baru berdasarkan subsistem FUSE3, memecahkan masalah dengan koreksi kesalahan, plugin nfs-ganesha telah ditulis ulang dalam bahasa C. Pembaruan 3.13.0-rc2 memperbaiki beberapa bug kritis yang membuat rilis pengujian sebelumnya dari cabang 3.13 tidak dapat digunakan (perbaikan untuk cabang 3.12 belum dipublikasikan, dan pembaruan dari 3.12 ke 3.13 masih menyebabkan hilangnya data sepenuhnya).

Pada tahun 2020, pekerjaan akan fokus pada pengembangan
Agama, kernel LizardFS baru yang sepenuhnya ditulis ulang, yang menurut pengembangnya, akan memberikan peningkatan kinerja tiga kali lipat dibandingkan dengan cabang 3.12. Agama akan bertransisi ke arsitektur berbasis peristiwa, berbasis masukan/keluaran asinkron ASIO, bekerja terutama di ruang pengguna (untuk mengurangi ketergantungan pada mekanisme caching kernel). Selain itu, subsistem debugging baru dan penganalisis aktivitas jaringan dengan dukungan untuk penyetelan otomatis kinerja akan ditawarkan.

Klien LizardFS akan menambahkan dukungan penuh untuk operasi penulisan versi, yang akan meningkatkan keandalan pemulihan bencana, memecahkan masalah yang muncul ketika klien berbeda berbagi akses ke data yang sama, dan memungkinkan peningkatan kinerja yang signifikan. Klien akan ditransfer ke subsistem jaringannya sendiri yang beroperasi di ruang pengguna. Prototipe kerja pertama LizardFS berbasis Agama rencananya akan siap pada kuartal kedua tahun 2020. Pada saat yang sama, mereka berjanji untuk mengimplementasikan alat untuk mengintegrasikan LizardFS dengan platform Kubernetes.

Sumber: opennet.ru

Tambah komentar