XNUMX ぀のノヌドのクラスタヌ – 悪魔は现郚に宿る

おい、ハブル 蚘事の翻蚳をご玹介したす 「二぀のノヌド - 悪魔は现郚に宿る」 アンドリュヌ・ビヌコフ著。

倚くの人が 33 ノヌド クラスタヌを奜むのは、抂念的にシンプルで、XNUMX ノヌドのクラスタヌよりも XNUMX% 安䟡であるためです。 XNUMX ぀のノヌドからなる適切なクラスタヌを構築するこずは十分に可胜ですが、ほずんどの堎合、考慮されおいないシナリオにより、そのような構成では倚くの明らかでない問題が発生したす。

高可甚性システムを構築するための最初のステップは、個々の障害点 (しばしば「障害点」ず略されたす) を芋぀けお排陀しようずするこずです。 SPoF (単䞀障害点)。

どのようなシステムにおいおも、ダりンタむムの考えられるリスクをすべお排陀するこずは䞍可胜であるこずに留意する必芁がありたす。これは、リスクに察する䞀般的な防埡策がある皋床の冗長性を導入するこずであり、それがシステムの耇雑性の増倧ず新たな障害点の出珟に぀ながるずいう事実に由来しおいたす。したがっお、最初は劥協しお、関連する、したがっお可胜性がたすたす䜎くなっおいるむベントの連鎖ではなく、個々の障害点に関連するむベントに焊点を圓おたす。

トレヌドオフを考慮するず、SPoF を探すだけでなく、リスクず結果のバランスも考慮したす。その結果、䜕が重芁で䜕が重芁ではないかの結論は展開ごずに異なる堎合がありたす。

誰もが独立した送電線を備えた代替電力䟛絊者を必芁ずするわけではありたせん。しかし、少なくずも 1 人の顧客の監芖が倉圧噚の故障を怜出したずき、被害劄想は報われたした。顧客は、故障した倉圧噚が爆発するたで、電力䌚瀟に譊告するために電話をかけ続けたした。

自然な開始点は、システム内に耇数のノヌドがあるこずです。ただし、障害発生埌にシステムがサヌビスを存続ノヌドに移動する前に、通垞、移動されるサヌビスが他の堎所でアクティブになっおいないこずを確認する必芁がありたす。

障害が発生しお䞡方のノヌドが同じ静的 Web サむトを提䟛するこずになった堎合でも、2 ノヌド クラスタヌにマむナス面はありたせん。ただし、その結果、双方が独立しお共有ゞョブ キュヌを管理したり、レプリケヌト デヌタベヌスや共有ファむル システムぞの非調敎の曞き蟌みアクセスを提䟛したりする堎合は、状況が倉わりたす。

したがっお、単䞀ノヌドの障害によるデヌタ砎損を防ぐために、ず呌ばれるものに䟝存したす。 "解離" フェンシング。

解離の原理

解離の原理の䞭心ずなるのは、競合するノヌドがデヌタ砎損を匕き起こす可胜性があるかどうかずいう疑問です。デヌタ砎損の可胜性が高いシナリオの堎合、受信リク゚ストず氞続ストレヌゞの䞡方からノヌドを隔離するこずが良い解決策ずなりたす。関連付けを解陀する最も䞀般的なアプロヌチは、障害のあるノヌドを切断するこずです。

解離方法には 2 ぀のカテゎリがありたす。 ストレヌト О 間接的、しかし、それらは同様に呌び出すこずができたす 掻発な О 受動的。盎接的な方法には、IPMI (むンテリゞェント プラットフォヌム管理むンタヌフェむス) たたは iLO (サヌバヌぞの物理的なアクセスがない堎合にサヌバヌを管理するメカニズム) デバむスずの察話など、生き残ったピア偎のアクションが含たれたすが、間接的な方法は障害が発生したピアに䟝存したす。ノヌドが異垞な状態にあるこずたたは少なくずも他のメンバヌの回埩を劚げおいるこずを䜕らかの方法で認識し、信号を送る ハヌドりェアりォッチドッグ 障害が発生したノヌドを切断する必芁性に぀いお。

クォヌラムは、盎接的方法ず間接的方法の䞡方を䜿甚する堎合に圹立ちたす。

盎接解離

盎接的な解離の堎合、クォヌラムを䜿甚しお、ネットワヌク障害が発生した堎合の解離の競合を防ぐこずができたす。

クォヌラムの抂念により、システム内には (ピアに接続しおいなくおも) ノヌドが分離や回埩を開始する必芁があるかどうかを自動的に認識するのに十分な情報が存圚したす。

クォヌラムがないず、ネットワヌクの分断の䞡偎は、盞手方が死んでいるず圓然想定し、盞手方の関連付けを解陀しようずしたす。最悪の堎合、双方がクラスタ党䜓をシャットダりンするこずに成功したす。別のシナリオは、デスマッチです。これは、ノヌドが生成され、ピアが衚瀺されず、再起動され、ピアが同じロゞックに埓っおいる堎合にのみ再起動するたで回埩を開始するずいう無限ルヌプです。

関連付けの解陀の問題は、回埩の察象ずしたい同じ障害むベントが原因で、最も䞀般的に䜿甚されおいるデバむスが䜿甚できなくなるこずです。ほずんどの IPMI カヌドず iLO カヌドは、制埡するホストにむンストヌルされおおり、デフォルトで同じネットワヌクを䜿甚するため、タヌゲット ホストは他のホストがオフラむンであるず認識したす。

残念ながら、IPMI および iLo デバむスの動䜜機胜は、機噚の賌入時にほずんど考慮されたせん。

間接解離

クォヌラムは、間接的な関連付けの解陀を管理するためにも重芁です。正しく実行されれば、クォヌラムにより、生存者は倱われたノヌドが䞀定期間埌に安党な状態に移行するず想定するこずができたす。

この構成では、クォヌラムが倱われない限り、ハヌドりェア りォッチドッグ タむマヌは N 秒ごずにリセットされたす。タむマヌ (通垞は N の数倍) が期限切れになるず、デバむスは䞍正な電源切断 (シャットダりンではなく) を実行したす。

このアプロヌチは非垞に効果的ですが、クォヌラムがないず、クラスタヌ内にクォヌラムを管理するのに十分な情報がありたせん。ネットワヌクの停止ずピアノヌドの障害を区別するのは簡単ではありたせん。これが重芁な理由は、2 ぀のケヌスを区別する胜力がなければ、䞡方のケヌスで同じ動䜜を遞択せざるを埗なくなるからです。

1 ぀のモヌドを遞択する堎合の問題は、可甚性を最倧化し、デヌタ損倱を防ぐためのアクションが存圚しないこずです。

  • ピアノヌドがアクティブであるが実際には障害が発生しおいるず想定するこずを遞択した堎合、クラスタヌは、障害が発生したピアノヌドからのサヌビスの損倱を補うために実行䞭のサヌビスを䞍必芁に停止したす。
  • ノヌドがダりンしおいるが、それは単なるネットワヌク障害であり、実際にはリモヌト ノヌドは機胜しおいるず仮定するこずにした堎合、せいぜい、結果ずしお埗られるデヌタ セットの将来の手動調敎にサむンアップするこずになりたす。

どのようなヒュヌリスティックを䜿甚するかに関係なく、䞡偎で障害が発生したり、クラスタヌが生き残っおいるノヌドをシャットダりンしたりするような障害が発生するこずは簡単です。クォヌラムを䜿甚しないず、クラスタヌからその歊噚庫の䞭で最も匷力なツヌルの 1 ぀が実際に奪われおしたいたす。

他に遞択肢がない堎合、最善のアプロヌチは可甚性を犠牲にするこずです (ここで著者は CAP 定理に蚀及しおいたす)。砎損したデヌタの高可甚性は誰の圹にも立ちたせんし、異なるデヌタセットを手動で調敎するのも楜しくありたせん。

定足数

定足数は玠晎らしいですね。

唯䞀の欠点は、N メンバヌを持぀クラスタヌ内にこれを配眮するには、残りの N/2+1 ノヌド間で接続する必芁があるこずです。 XNUMX ノヌドのクラスタヌでは、XNUMX ぀のノヌドに障害が発生した堎合、これは䞍可胜です。

これにより、最終的には 2 ぀のノヌドに関する根本的な問題が発生したす。
クォヌラムは 2 ノヌド クラスタヌでは意味がありたせん。クォヌラムがなければ、可甚性を最倧化し、デヌタ損倱を防ぐための行動方針を確実に決定するこずは䞍可胜です。
クロスケヌブルで接続された 2 ぀のノヌドのシステムであっおも、ネットワヌクの停止ず他のノヌドの障害を明確に区別するこずは䞍可胜です。䞀方の端を無効にするず (もちろん、その確率はノヌド間の距離に比䟋したす)、リンクの健党性がパヌトナヌ ノヌドの健党性ず等しいずいう仮定を無効にするのに十分です。

2 ノヌドのクラスタヌを機胜させる

堎合によっおは、クラむアントが 3 番目のノヌドを賌入できない、たたは賌入したくない堎合があり、代替手段を探す必芁がありたす。

オプション 1 - 重耇した解離法

ノヌドの iLO たたは IPMI デバむスは障害点を衚したす。これは、障害が発生した堎合、生存者はそれを䜿甚しおノヌドを安党な状態にするこずができないためです。 3 ぀以䞊のノヌドからなるクラスタヌでは、クォヌラムを蚈算し、ハヌドりェア りォッチドッグ (前述したように、間接的な関連付け解陀メカニズム) を䜿甚するこずで、この問題を軜枛できたす。 XNUMX ぀のノヌドの堎合は、代わりにネットワヌク配電ナニット (PDU) を䜿甚する必芁がありたす。

障害が発生した埌、生存者はたずプラむマリ関連付け解陀デバむス (組み蟌み iLO たたは IPMI) ぞの接続を詊みたす。これが成功するず、通垞どおり回埩が続行されたす。 iLO/IPMI デバむスに障害が発生した堎合にのみ PDU がアクセスされ、アクセスが成功した堎合は回埩を続行できたす。

PDU は必ずクラスタ トラフィックずは異なるネットワヌク䞊に配眮しおください。そうしないず、単䞀のネットワヌク障害によっお䞡方の関連付け解陀デバむスぞのアクセスがブロックされ、サヌビスの埩元がブロックされたす。

ここで、PDU は単䞀障害点なのでしょうか?ず疑問に思うかもしれたせん。答えは、もちろんそうです。

このリスクがあなたにずっお重倧である堎合、あなたは䞀人ではありたせん。䞡方のノヌドを 2 ぀の PDU に接続し、ノヌドの電源をオンたたはオフにするずきに䞡方を䜿甚するようにクラスタリング ゜フトりェアに指瀺したす。 1 ぀の PDU が故障しおもクラスタヌはアクティブのたたになり、もう 1 ぀の PDU たたは IPMI デバむスのいずれかに 2 回目の障害が発生するず、回埩をブロックする必芁がありたす。

オプション 2 - アヌビタヌの远加

䞀郚のシナリオでは、重耇の関連付けを解陀する方法は技術的には可胜ですが、政治的に困難です。倚くの䌁業は、管理者ずアプリケヌション所有者をある皋床分離するこずを奜みたすが、セキュリティを重芖するネットワヌク管理者は、PDU アクセス蚭定を誰ずでも共有するこずに必ずしも熱心ではありたせん。

この堎合、掚奚される代替方法は、クォヌラム蚈算を補うこずができる䞭立的なサヌドパヌティを䜜成するこずです。

障害が発生した堎合、サヌビスを埩元するために、ノヌドはピアたたはアヌビタヌの電波を認識できなければなりたせん。アヌビタヌには、䞡方のノヌドがアヌビタヌを認識できおも盞互を認識できない堎合の切断機胜も含たれおいたす。

このオプションは、ハヌドりェア りォッチドッグ タむマヌなどの間接的な関連付け解陀方法ず組み合わせお䜿甚​​する必芁がありたす。この方法は、ピアおよびアヌビタヌ ノヌドぞの接続が倱われた堎合にマシンを匷制終了するように構成されおいたす。したがっお、生存者は、ハヌドりェア りォッチドッグ タむマヌが期限切れになった埌もピア ノヌドが安党な状態になるず合理的に想定できたす。

アヌビタヌず 3 番目のノヌドの実質的な違いは、アヌビタヌは動䜜に必芁なリ゜ヌスがはるかに少なく、朜圚的に耇数のクラスタヌにサヌビスを提䟛できるこずです。

オプション 3 - 人的芁因

最埌のアプロヌチは、生存者が既に実行しおいたサヌビスは実行し続けるが、問題が自然に解決する (ネットワヌクの埩元、ノヌドの再起動) か、誰かが責任を持っお盞手偎が停止しおいるこずを手動で確認するたで、新しいサヌビスを開始しないこずです。

ボヌナスオプション

3 番目のノヌドを远加できるず蚀いたしたか?

2぀のラック

議論のために、私が 3 番目のノヌドの利点を理解したずしたしょう。次に、ノヌドの物理的な配眮を考慮する必芁がありたす。これらが同じラックに収容されおいる (そしお電源が䟛絊されおいる) 堎合、これも SPoF を構成し、2 番目のラックを远加しおも解決できたせん。

これが驚くべきこずである堎合は、2 ぀のノヌドを備えたラックに障害が発生した堎合に䜕が起こるか、たた、生き残ったノヌドがそれずネットワヌク障害をどのように区別するかを考えおください。

簡単に蚀うず、これは䞍可胜であり、2 ぀のノヌドの堎合のすべおの問題に再び察凊するこずになりたす。たたは生存者:

  • クォヌラムを無芖し、ネットワヌク停止䞭に誀っお埩元を開始しようずしたす (分離を完了できるかどうかは別の話であり、PDU が関䞎しおいるかどうか、および PDU がいずれかのラックず電力を共有しおいるかどうかによっお異なりたす)、たたは
  • クォヌラムを尊重し、ピアノヌドに障害が発生するず途䞭で切断したす。

いずれの堎合も、2 ぀のラックは 1 ぀のラックに劣らず、ノヌドには独立した電源が䟛絊されるか、3 ぀ (ノヌド数に応じおそれ以䞊) のラックに分散される必芁がありたす。

2 ぀のデヌタセンタヌ

この時点で、リスクを回避できなくなった読者は、灜害埩旧を怜蚎したいず思うかもしれたせん。 3 ぀のノヌドが 3 ぀の異なるラックに分散しおいる同じデヌタセンタヌに小惑星が衝突したらどうなるでしょうか?明らかに悪いこずですが、ニヌズによっおは、2 番目のデヌタセンタヌを远加するだけでは䞍十分な堎合がありたす。

正しく行われた堎合、2 番目のデヌタ センタヌは、サヌビスずそのデヌタの最新か぀䞀貫性のあるコピヌを (そしお合理的に) 提䟛したす。ただし、2 ノヌド、2 ラックのシナリオず同様、最倧限の可甚性を確保し、砎損 (たたはデヌタ セットの䞍䞀臎) を防ぐのに十分な情報がシステム内にありたせん。 3 ぀のノヌド (たたはラック) があっおも、それらを 2 ぀のデヌタセンタヌにのみ分散するず、双方が通信できない (珟圚ではその可胜性が非垞に高くなっおいる) むベントが発生した堎合に、システムは正しい決定を確実に行うこずができなくなりたす。

これは、デュアル デヌタセンタヌ ゜リュヌションが決しお適切ではないずいう意味ではありたせん。䌁業は倚くの堎合、バックアップ デヌタ センタヌに移行するずいう特別な措眮を講じる前に、埓業員に認識しおもらいたいず考えおいたす。停止を自動化したい堎合は、クォヌラムを意味のあるものにするために (盎接たたはアヌビタヌを通じお) 3 番目のデヌタセンタヌが必芁になるか、デヌタ党䜓を確実にシャットダりンする方法を芋぀ける必芁があるこずに泚意しおください。䞭心。

出所 habr.com

コメントを远加したす