Apa sebenarnya yang dilakukan Gluster?

12

Saya telah bermain dengan gluster selama 2 hari terakhir dan telah mengajukan pertanyaan di sini dan di sistem pertanyaan mereka. Saya benar-benar tidak mengerti beberapa hal. Saya melihat orang-orang mengatakan hal-hal seperti

Menyiapkan batu bata yang direplikasi antara server (karena Anda hanya menggunakan 3, direplikasi akan lebih aman), dan setiap server akan melihat file dari semua server lain sebagai 'lokal' - bahkan jika satu server gagal, file telah direplikasi ke server lain.

atau

Gluster akan menjaga sinkronisasi file di seluruh volume (batu bata), dan memiliki kemampuan 'penyembuhan sendiri' yang akan menangani semua ketidakkonsistenan karena satu server sedang offline.

Karena saya memasang volume jarak jauh dari server ke klien, bagaimana cara gluster menangani kegagalan node server, yang mana volumenya dipasang? Dari apa yang saya coba folder pada klien di mana volume dipasang menjadi tidak dapat diakses dan saya harus menggunakan umount untuk membuka blokir itu. Dan setelah itu tidak ada konten dari server.

Ini, pada dasarnya apa yang saya lihat tidak tercakup dalam penjelasan apa pun: apa yang terjadi ketika simpul server gagal dan apakah mungkin untuk benar-benar mereplikasi konten, seperti yang dilakukan secara bersamaan atau rsync?

cbaltatescu
sumber

Jawaban:

8

Kami baru-baru ini mulai meneliti GlusterFS untuk penggunaan kami sendiri sehingga pertanyaan ini menarik bagi saya. Gluster menggunakan apa yang disebut 'penerjemah' pada klien FUSE untuk menangani bagaimana Anda menyimpan data. Ada beberapa jenis penerjemah yang diuraikan di sini:

http://www.gluster.com/community/documentation/index.php/GlusterFS_Translators_v1.3

Yang Anda tanyakan secara spesifik disebut Penerjemah Replikasi File Otomatis atau AFR, dan dibahas secara rinci di sini:

http://www.gluster.com/community/documentation/index.php/Understanding_AFR_Translator

Melihat kode sumber tampak bahwa data sebenarnya ditulis ke node secara bersamaan, jauh lebih baik daripada rsync!

Mengenai pemulihan dari situasi kegagalan ada satu catatan menarik yang saya temukan. Sistem Gluster berbeda dari Ceph dalam hal itu tidak secara aktif menyadari perubahan status replikasi dan harus 'dipicu'. Jadi, jika Anda kehilangan simpul di kluster Anda, Anda harus mencari setiap file agar Gluster memastikannya direplikasi:

http://www.gluster.com/community/documentation/index.php/Gluster_3.2:_Triggering_Self-Heal_on_Replicate

Saya tidak dapat menemukan halaman yang bagus menggambarkan mekanisme skenario kegagalan secara internal, seperti bagaimana klien mendeteksi hal-hal yang rusak. Namun mengunduh kode sumber dan melihat melalui klien tampaknya ada berbagai timeout yang digunakan untuk perintah dan penyelidikan itu sering dilakukan ke sistem lain di cluster. Sepertinya sebagian besar memiliki tanda TODO dan saat ini tidak dapat dikonfigurasi kecuali melalui modifikasi kode sumber, yang mungkin menjadi perhatian Anda jika waktu konvergensi sangat penting.

jumlahnya banyak
sumber
Saya telah mengetahui tentang AFR sendiri, namun ketika menggunakannya, saya tidak dapat menulis di klien, hanya di server. Apakah ini konsekuensi dari logika di baliknya, atau ini sesuatu yang perlu saya perhatikan?
cbaltatescu
2
Kemungkinan besar itu adalah masalah konfigurasi (bukan karena desain).
polinomial
3

Dengan hanya 2 node mereplikasi, gluster tidak jauh berbeda dari skrip rsync otomatis. Hal-hal yang benar-benar hanya mulai menarik setelah Anda memiliki 4 atau lebih node penyimpanan - mesin klien Anda melihat kumpulan ruang, tetapi file konstituen tersebar di semua node penyimpanan (batu bata). Ini berarti bahwa jika 4 server Anda memiliki 10TB ruang lokal, mesin klien Anda dapat melihat ruang nama tunggal 20TB (direplikasi, atau 40TB penyimpanan yang tidak terlindungi).

Saya telah melihat cegukan singkat - mungkin 30 detik atau lebih - pada mesin klien ketika mencoba IO setelah batu bata penyimpanan tidak tersedia. Namun, setelah cegukan, IO akan berlanjut secara normal selama ada server online yang masih menyimpan set lengkap volume data.

techieb0y
sumber
slideshare.net/Gluster/… presentasi oleh CTO Gluster tentang cara kerjanya.
polinomial
1
Masalahnya adalah BUKAN melakukan apa yang dilakukan rsync. Rsync menyediakan salinan data di komputer lain. Gluster, ketika master (dalam konfigurasi 2-server-client) gagal meninggalkan apa-apa di belakang atau saya belum bisa mengerti, maka pertanyaannya.
cbaltatescu
2
Jika Anda hanya memiliki 2 node, dan salah satu node adalah klien (tidak menyimpan data apa pun secara lokal), maka hilangnya 'master' dengan data akan mengakibatkan tidak tersedianya dan memblokir IO pada klien. Anda memerlukan setidaknya 2 server dengan volume yang dikonfigurasi untuk replikasi, plus klien Anda.
techieb0y
0

Ketika klien menghadapi server gagal (yaitu server yang IP / DNSnya digunakan oleh klien untuk me-mount sistem file) maka seluruh volume menjadi offline ke klien itu yaitu tidak dapat membaca / menulis pada volume.

Namun jika klien memasangnya menggunakan IP / DNS server lain maka volumenya akan tetap online untuk klien tersebut. Namun baca / tulis tidak akan pergi ke contoh gagal / macet.

Harit Vishwakarma
sumber