Kluster saka rong kelenjar - setan ana ing rincian

Hey Habr! Aku menehi perhatian marang terjemahan artikel kasebut "Loro Node - Sétan ana ing Rincian" dening Andrew Beekhof.

Akeh wong seneng kluster loro-simpul amarga padha katon konseptual prasaja lan uga 33% luwih murah tinimbang mitra telung simpul. Senajan iku cukup bisa kanggo sijine bebarengan kluster apik loro kelenjar, ing paling kasus, amarga skenario unconsidered, konfigurasi kuwi bakal nggawe akeh masalah unobvious.

Langkah pisanan kanggo nggawe sistem kasedhiyan dhuwur yaiku nemokake lan nyoba ngilangi titik kegagalan individu, asring disingkat SPoF (titik kegagalan tunggal).

Sampeyan kudu eling yen ora bisa ngilangi kabeh risiko downtime ing sistem apa wae. Iki asale saka kasunyatan manawa pertahanan khas nglawan risiko yaiku ngenalake sawetara redundansi, sing ndadékaké tambah kerumitan sistem lan munculé titik kegagalan anyar. Mula, kita pisanan nggawe kompromi lan fokus ing acara sing ana gandhengane karo titik-titik kegagalan individu, lan ora ana hubungane lan, mula, kedadeyan sing luwih sithik.

Given trade-offs, kita ora mung golek SPoF, nanging uga imbangan risiko lan jalaran, minangka asil kang kesimpulan saka apa kritis lan apa ora bisa beda-beda kanggo saben penyebaran.

Ora saben wong mbutuhake panyedhiya listrik alternatif kanthi saluran listrik mandiri. Sanajan paranoia mbayar paling ora siji pelanggan nalika ngawasi ndeteksi trafo sing salah. Pelanggan nggawe telpon nyoba menehi tandha marang perusahaan listrik nganti trafo sing rusak mbledhos.

Titik wiwitan alami yaiku nduwe luwih saka siji simpul ing sistem. Nanging, sadurunge sistem bisa mindhah layanan menyang simpul sing isih urip sawise gagal, umume kudu mesthekake yen layanan sing dipindhah ora aktif ing papan liya.

Ora ana kekurangan kanggo kluster rong simpul yen gagal nyebabake loro simpul nglayani situs web statis sing padha. Nanging, owah-owahan yen asile loro pihak kanthi mandiri ngatur antrian proyek sing dienggo bareng utawa nyedhiyakake akses nulis sing ora terkoordinasi menyang database replika utawa sistem file sing dienggo bareng.

Mulane, kanggo nyegah korupsi data minangka asil saka Gagal simpul siji - kita gumantung ing soko disebut "disosiasi" (pagar).

Prinsip disosiasi

Ing jantung prinsip disosiasi yaiku pitakonan: bisa simpul saingan bisa nyebabake korupsi data? Yen korupsi data minangka skenario sing bisa ditindakake, solusi sing apik yaiku ngisolasi simpul kasebut saka panjaluk sing mlebu lan panyimpenan sing terus-terusan. Pendekatan sing paling umum kanggo disassociation yaiku medhot simpul sing rusak.

Ana rong kategori metode disosiasi, sing bakal daksebut sakcara langsung и ora langsung, nanging padha bisa disebut aktif и pasif. Cara langsung kalebu tumindak ing bagean saka kanca-kanca sing isih urip, kayata interaksi karo piranti IPMI (Intelligent Platform Management Interface) utawa iLO (mekanisme kanggo ngatur server tanpa akses fisik), nalika cara ora langsung gumantung marang piranti sing gagal. node kanggo ngerteni manawa ana ing kahanan sing ora sehat (utawa paling ora nyegah anggota liyane supaya bisa pulih) lan sinyal pengawas hardware bab perlu kanggo medhot simpul gagal.

Kuorum mbantu nalika nggunakake cara langsung lan ora langsung.

Disosiasi langsung

Ing kasus disosiasi langsung, kita bisa nggunakake kuorum kanggo nyegah balapan disosiasi yen ana kegagalan jaringan.

Kanthi konsep kuorum, ana informasi sing cukup ing sistem kasebut (sanajan tanpa nyambungake karo kanca-kancane) kanggo node kanthi otomatis ngerti apa kudu miwiti disosiasi lan / utawa pemulihan.

Tanpa kuorum, loro-lorone pamisah jaringan bakal nganggep manawa sisih liya wis mati lan bakal ngupayakake pamisahan liyane. Ing kasus sing paling ala, loro-lorone pihak bisa nutup kabeh kluster. Skenario alternatif yaiku pertandhingan pati, gelung simpul tanpa telas sing muncul, ora ndeleng kanca-kancane, urip maneh, lan miwiti pemulihan mung kanggo urip maneh nalika kanca-kancane ngetutake logika sing padha.

Masalah karo disassociation yaiku piranti sing paling umum digunakake dadi ora kasedhiya amarga kedadeyan kegagalan sing padha sing pengin ditargetake kanggo pemulihan. Umume kertu IPMI lan iLO dipasang ing host sing dikontrol lan, kanthi standar, nggunakake jaringan sing padha, sing nyebabake host target percaya yen host liyane offline.

Sayange, fitur operasi piranti IPMI lan iLo arang dianggep nalika tuku peralatan.

Disosiasi ora langsung

Kuorum uga penting kanggo ngatur disassociation ora langsung; yen ditindakake kanthi bener, kuorum bisa ngidini wong sing slamet kanggo nganggep yen node sing ilang bakal pindhah menyang negara sing aman sawise sawetara wektu.

Kanthi konfigurasi iki, timer watchdog hardware direset saben N detik yen kuorum ora ilang. Yen wektu (biasane pirang-pirang kelipatan N) kadaluwarsa, mula piranti kasebut bakal mateni daya (ora mati).

Pendekatan iki efektif banget, nanging tanpa kuorum ora cukup informasi ing kluster kanggo ngatur. Ora gampang kanggo mbedakake antarane gangguan jaringan lan kegagalan simpul peer. Alesan iki penting yaiku tanpa kemampuan kanggo mbedakake antarane rong kasus kasebut, sampeyan kudu milih prilaku sing padha ing loro kasus kasebut.

Masalah karo milih mode siji iku ora ana mesthi saka tumindak sing maximizes kasedhiyan lan nyegah mundhut data.

  • Yen sampeyan milih nganggep yen simpul peer aktif nanging nyatane gagal, kluster kasebut bakal mandhegake layanan sing bakal mlaku kanggo ngimbangi kelangan layanan saka simpul peer sing gagal.
  • Yen sampeyan mutusake kanggo nganggep yen simpul mudhun, nanging mung gagal jaringan lan nyatane simpul remot fungsional, mula paling apik sampeyan ndhaptar sawetara rekonsiliasi manual ing mangsa ngarep saka set data sing diasilake.

Preduli saka apa heuristik sampeyan nggunakake, iku ora pati penting kanggo nggawe Gagal sing salah siji bakal nimbulaké loro-lorone kanggo gagal utawa njalari kluster kanggo nutup mati kelenjar isih urip. Ora nggunakake kuorum pancen nyuda klompok salah sawijining alat sing paling kuat ing arsenal.

Yen ora ana alternatif liyane, pendekatan paling apik kanggo kurban kasedhiyan (kene penulis nuduhake teorema CAP). Kasedhiyan dhuwur saka data rusak ora mbantu sapa wae, lan kanthi manual rekonsiliasi set data sing beda uga ora nyenengake.

Kuorum

Kuorum muni apik, bener?

Siji-sijine kekurangan yaiku supaya bisa dadi klompok karo anggota N, sampeyan kudu duwe sambungan antarane N / 2 + 1 saka kelenjar sing isih ana. Kang ora bisa ing kluster loro simpul sawise siji simpul gagal.

Sing pungkasane nggawa kita menyang masalah dhasar kanthi rong simpul:
Kuorum ora nggawe pangertèn ing rong kluster simpul, lan tanpa iku mokal kanggo andal nemtokake tumindak sing maximizes kasedhiyan lan nyegah mundhut data.
Malah ing sistem loro simpul disambungake dening kabel silang, iku mokal kanggo mbedakake definitively antarane outage jaringan lan Gagal saka simpul liyane. Mateni siji mburi (kemungkinan sing, mesthi, sebanding karo jarak antarane kelenjar) bakal cukup kanggo mbatalake asumsi manawa kesehatan link padha karo kesehatan simpul partner.

Nggawe kluster rong simpul

Kadhangkala klien ora bisa utawa ora pengin tuku simpul katelu, lan kita kepeksa golek alternatif.

Opsi 1 - Metode disosiasi duplikat

Piranti iLO utawa IPMI simpul nuduhake titik kegagalan amarga, yen gagal, wong sing slamet ora bisa nggunakake piranti kasebut kanggo nggawa simpul kasebut menyang kahanan sing aman. Ing kluster 3 utawa luwih simpul, kita bisa nyuda iki kanthi ngitung kuorum lan nggunakake watchdog hardware (mekanisme disassociation ora langsung, kaya sing wis dibahas sadurunge). Ing kasus rong simpul, kita kudu nggunakake unit distribusi daya jaringan (PDU).

Sawise gagal, sing slamet pisanan nyoba ngubungi piranti pamisahan utama (iLO utawa IPMI sing dipasang). Yen iki sukses, pemulihan terus kaya biasane. Mung yen piranti iLO/IPMI gagal, PDU bisa diakses; yen akses kasebut sukses, pemulihan bisa diterusake.

Dadi manawa kanggo nyelehake PDU ing jaringan sing beda tinimbang lalu lintas kluster, yen gagal jaringan siji bakal mblokir akses menyang piranti disassociation lan mblokir pemugaran layanan.

Ing kene sampeyan bisa takon - apa PDU minangka titik kegagalan? Sing jawabane, mesthi wae.

Yen risiko iki penting kanggo sampeyan, sampeyan ora mung siji: nyambungake loro kelenjar menyang rong PDU lan ngandhani piranti lunak clustering supaya bisa digunakake nalika nguripake lan mateni kelenjar. Kluster saiki tetep aktif yen siji PDU mati, lan gagal kapindho PDU utawa piranti IPMI liyane bakal dibutuhake kanggo mblokir pemulihan.

Pilihan 2 - Nambah Arbiter

Ing sawetara skenario, nalika metode disosiasi duplikat sacara teknis bisa ditindakake, nanging sacara politik angel. Akeh perusahaan seneng duwe sawetara pamisahan antarane administrator lan pamilik aplikasi, lan administrator jaringan sadar keamanan ora tansah antusias kanggo nuduhake setelan akses PDU karo sapa wae.

Ing kasus iki, alternatif sing disaranake yaiku nggawe pihak katelu netral sing bisa nambah petungan kuorum.

Yen gagal, simpul kudu bisa ndeleng gelombang udara saka kanca utawa arbiter kanggo mulihake layanan. Arbiter uga kalebu fungsi pedhot yen loro simpul bisa ndeleng arbiter nanging ora bisa ndeleng siji liyane.

Opsi iki kudu digunakake bebarengan karo cara disassociation ora langsung, kayata timer watchdog hardware, sing dikonfigurasi kanggo mateni mesin yen kelangan sambungan menyang peer lan simpul arbiter. Mangkono, wong sing slamet bisa nganggep manawa simpul peer bakal aman sawise timer pengawas hardware kadaluwarsa.

Bentenane praktis antarane arbiter lan simpul katelu yaiku arbiter mbutuhake sumber daya sing luwih sithik kanggo operate lan duweni potensi bisa nglayani luwih saka siji kluster.

Pilihan 3 - Faktor manungsa

Pendekatan pungkasan yaiku supaya wong-wong sing slamet terus nglakokake layanan apa wae sing wis ditindakake, nanging ora miwiti layanan anyar nganti masalah kasebut rampung dhewe (pulihake jaringan, urip maneh simpul) utawa ana wong sing tanggung jawab kanggo konfirmasi kanthi manual manawa sisih liya wis mati.

Pilihan bonus

Apa aku sebutno sampeyan bisa nambah simpul katelu?

rong rak

Kanggo argumentasi, ayo padha ndalang yen aku wis ngyakinake sampeyan babagan kaluwihan saka simpul katelu, saiki kudu nimbang susunan fisik saka simpul. Yen padha manggon (lan powered) ing rak padha, iki uga SPoF, lan siji sing ora bisa ditanggulangi dening nambah rak liya.

Yen iki ngageti, nimbang apa bakal kelakon yen rak karo loro kelenjar gagal, lan carane simpul urip bakal mbedakake antarane sing lan Gagal jaringan.

Jawaban singkat iku ora bisa, lan kita maneh dealing with kabeh masalah ing cilik saka rong kelenjar. Utawa slamet:

  • nglirwakake kuorum lan salah nyoba miwiti pemugaran sajrone gangguan jaringan (kemampuan kanggo ngrampungake disosiasi minangka crita sing beda lan gumantung manawa PDU melu lan apa padha nuduhake kekuwatan karo rak apa wae), utawa
  • ngajeni kuorum lan pedhot dhewe prematur nalika simpul peer sawijining gagal

Ing kasus, loro rak ora luwih saka siji, lan simpul kudu salah siji nampa daya Penyetor independen utawa disebarake liwat telung (utawa luwih, gumantung carane akeh kelenjar duwe) rak.

Loro pusat data

Ing wektu iki, para pamaca sing ora ana risiko bisa uga pengin nimbang pemulihan bencana. Apa sing kedadeyan nalika asteroid nyerang pusat data sing padha karo telung kelenjar sing nyebar ing telung rak sing beda? Temenan Bad Things, nanging gumantung saka kabutuhan, nambah pusat data kapindho bisa uga ora cukup.

Yen rampung kanthi bener, pusat data kapindho menehi sampeyan (lan cukup) salinan layanan lan data sing paling anyar lan konsisten. Nanging, kaya ing skenario rong simpul, rong rak, ora ana informasi sing cukup ing sistem kanggo njamin kasedhiyan maksimal lan nyegah korupsi (utawa bedo set data). Malah kanthi telung simpul (utawa rak), nyebarake mung ing rong pusat data, sistem kasebut ora bisa nggawe keputusan sing bener yen ana acara (saiki luwih akeh) sing ora bisa komunikasi karo pihak loro.

Iki ora ateges solusi pusat data dual ora cocog. Perusahaan asring pengin wong ngerti sadurunge njupuk langkah luar biasa kanggo pindhah menyang pusat data serep. Elinga yen sampeyan pengin ngotomatisasi pemadaman, sampeyan bakal mbutuhake pusat data katelu kanggo kuorum supaya bisa dimangerteni (langsung utawa liwat arbiter), utawa sampeyan bakal nemokake cara kanggo nutup kabeh data kanthi andal. tengah.

Source: www.habr.com

Add a comment