GlusterFS membelah otak tanpa jalan, apa artinya?

11

Saya baru saja memeriksa status volume glusterfs saya dan saya memilikinya dengan entri otak-terpisah yang tidak memiliki jalur:

# gluster volume heal private_uploads info
Brick server01:/var/lib/glusterfs/brick01/uploads/
<gfid:4c0edafb-0c28-427c-a162-e530280b3396> - Is in split-brain
<gfid:42d62418-1be9-4f96-96c4-268230316869> - Is in split-brain
Number of entries: 2

Brick server02:/var/lib/glusterfs/brick01/uploads/
<gfid:42d62418-1be9-4f96-96c4-268230316869> - Is in split-brain
<gfid:4c0edafb-0c28-427c-a162-e530280b3396> - Is in split-brain
Number of entries: 2

Apa artinya? Bagaimana saya memperbaikinya?

Saya menjalankan GlusterFS 3.5.9:

# gluster --version
glusterfs 3.5.9 built on Mar 28 2016 07:10:17
Repository revision: git://git.gluster.com/glusterfs.git
pupeno
sumber
Apakah Anda hanya menggunakan 2 server di cluster Anda?
Anak yatim

Jawaban:

8

Apa itu Split-Brain?

Seperti disebutkan dalam Dokumentasi Resmi tentang Mengelola Split-Brain yang disediakan oleh RedHat, split-brain adalah keadaan ketika data atau ketidakkonsistenan ketersediaan yang berasal dari pemeliharaan dua set data terpisah dengan tumpang tindih dalam ruang lingkup, baik karena server dalam desain jaringan, atau kondisi kegagalan berdasarkan pada server yang tidak berkomunikasi dan menyinkronkan data mereka satu sama lain. Dan itu adalah istilah yang berlaku untuk mereplikasi konfigurasi.

Perhatikan bahwa dikatakan "kondisi kegagalan berdasarkan pada server yang tidak berkomunikasi dan menyinkronkan data satu sama lain" - karena kemungkinan apa pun - tetapi itu tidak berarti bahwa node Anda mungkin kehilangan koneksi. Peer mungkin belum dalam cluster dan terhubung.

Jenis-jenis Otak Berpisah:

Kami memiliki tiga jenis otak yang berbeda, dan sejauh yang saya bisa lihat, otak Anda adalah otak terbelah. Untuk menjelaskan tiga jenis otak terpisah:

  • Data split-brain: Isi file di bawah split-otak berbeda dalam pasangan replika yang berbeda dan penyembuhan otomatis tidak mungkin.

  • Metadata split-brain :, Metadata file (contoh, atribut extended yang ditentukan pengguna) berbeda dan penyembuhan otomatis tidak dimungkinkan.

  • Entry split-brain: Ini terjadi ketika file memiliki gfid berbeda pada masing-masing pasangan replika.


Apa itu GFID?

Pengidentifikasi file internal GlusterFS (GFID) adalah uuid yang unik untuk setiap file di seluruh cluster. Ini analog dengan nomor inode dalam sistem file normal. GFID file disimpan dalam xattr-nya yang bernama trusted.gfid. Untuk menemukan jalur dari GFID, saya sangat menyarankan Anda membaca artikel resmi yang disediakan oleh GlusterFS ini.


Bagaimana cara mengatasi entri-otak?

Ada beberapa metode untuk mencegah split-brain terjadi tetapi untuk menyelesaikannya, file-file gfid-link yang sesuai harus dihapus. File tautan-gfid ada di direktori .glusterfs di direktori tingkat atas bata. Omong-omong, berhati-hatilah bahwa sebelum menghapus gfid-link, Anda harus memastikan bahwa tidak ada tautan keras ke file yang ada di bata itu. Jika ada tautan keras, Anda harus menghapusnya juga. Kemudian Anda dapat menggunakan proses penyembuhan diri dengan menjalankan perintah berikut.

Sementara itu, untuk melihat daftar file pada volume yang berada dalam kondisi otak terpisah yang dapat Anda gunakan:

# gluster volume heal VOLNAME info split-brain

Anda juga harus berhati-hati bahwa untuk volume yang direplikasi, ketika batu bata menjadi offline dan kembali online, penyembuhan diri diperlukan untuk menyinkronkan ulang semua replika.

Untuk memeriksa status penyembuhan volume dan file yang dapat Anda gunakan:

# gluster volume heal VOLNAME info

Karena Anda menggunakan versi 3.5, Anda tidak memiliki penyembuhan otomatis. Jadi setelah melakukan langkah-langkah yang disebutkan sebelumnya, Anda perlu memicu penyembuhan diri. Untuk melakukannya:

  • Hanya pada file yang membutuhkan penyembuhan:

    # gluster volume heal VOLNAME

  • Di semua file:

    # gluster volume heal VOLNAME full

Saya harap ini akan membantu Anda memperbaiki masalah Anda. Silakan baca dokumen resmi untuk informasi lebih lanjut. Bersulang.

FarazX
sumber
2

Saya pikir dokumen cukup jelas, bahkan memberi Anda contoh serupa.

Dan untuk perintah penyembuhan Gluesterfs seperti

Volume gemerlap sembuh ** VOLNAME ** otak-terbelah-jam terbaru ** FILE **

FILE dapat berupa nama file lengkap seperti yang terlihat dari akar volume (atau) representasi gfid-string dari file

Jadi Anda tidak perlu khawatir tentang itu.

Dan seperti mengkonversi GFID ke path mengatakan:

Pengidentifikasi file internal GlusterFS (GFID) adalah uuid yang unik untuk setiap file di seluruh cluster.

skrip ini dapat memberi tahu Anda nama file mana yang dimiliki gfid, tetapi perpecahan otak terjadi, mungkin tidak memiliki nama file.

Anda menjalankan 3.5 dan tidak memiliki cmd sembuhkan semi-otomatis, jadi Anda mungkin perlu memperbaiki sendiri konflik secara manual yang biasanya berarti memutuskan file gfid mana yang perlu dihapus.

pingz
sumber
Versi saya dari Gluster sepertinya tidak memiliki perintah itu, jika tidak, ya, itu mudah. Juga, saya tidak punya nama file, saya punya uuids.
pupeno
2

Bagaimana saya memperbaikinya?

Resolusi split-brain dapat ditemukan di sini . Dalam hal ini tidak akan banyak membantu, cara manual di sini harus melakukan pekerjaan. Untuk kasus ini, saya melihat artikelnya juga bermanfaat.

Bagaimana menghindari Split-brain.

Perlindungan terhadap partisi jaringan dilakukan melalui algoritma pemilihan kuorum. Jika tuan rumah gagal, atau ada skenario otak terbelah di mana node terus berjalan tetapi tidak dapat lagi berkomunikasi satu sama lain, node atau node yang tersisa dalam gugusan berlomba untuk menempatkan reservasi SCSI pada drive saksi. Dalam kasus otak ganda, saksi akan membantu memutuskan host mana yang memegang salinan data yang harus mengambil alih kendali.

Beberapa contoh.

VMware VSAN memungkinkan menjalankan klaster 2-simpul dengan drive saksi berjalan pada host ketiga atau di cloud. Sumber

StarWind Virtual SAN berjalan hanya dalam pengaturan 2-simpul menggunakan layanan Microsoft Failover Cluster, yang juga berisi mekanisme pemilihan kuorum untuk menghindari masalah otak-terbelah. Sumber

Untuk keduanya, jaringan Heartbeat digunakan untuk melayani / memantau komunikasi antara node dan kuorum. Untuk menghindari belahan otak, saya melihat itu wajib untuk pergi dengan saluran Detak Jantung berlebihan.

Tuan Raspberry
sumber
1

split-brain terjadi ketika dua node dari sebuah cluster terputus. Setiap node berpikir yang lain tidak berfungsi.

otak terbelah

Untuk memperbaikinya, Anda harus memahami mengapa kedua node Anda tidak saling berbicara lagi.

bgtvfr
sumber