HAクラスタ
複数のコンピュータを協調させ、故障時に別のコンピュータへ処理を引き継ぐことで、サービスの停止を抑える構成。障害を検知して処理を切り替える動作をフェイルオーバーという。
イマシルちゃんの解説
お店の担当者が急に休んでも、別の人が注文を引き受けられると助かるね。
そのためには、注文のメモと、誰が担当するかの決まりが必要なんだ。
二人とも勝手に同じ注文を作り始めても困るよね。
交代できる準備と、重複しない仕組みをそろえるんだ。
この解説はわかりやすかったですか?
より深い解説
複数の計算機を協調させる
クラスタリングは、複数の計算機を協調動作させる構成の技術である。目的には処理性能の向上や負荷分散もあり、すべてのクラスタが障害時の引継ぎを目的とするわけではない。HAクラスタでは可用性を重視する。
| 構成 | 通常時 | 障害時 |
|---|---|---|
| アクティブ・スタンバイ | 一方が処理し、他方が待機する | 予備側が引き継ぐ |
| アクティブ・アクティブ | 複数台が処理を分担する | 生き残った側へ処理を寄せる |
障害時の処理能力を考えて余裕を持たせる。台数だけを増やしても、共用ストレージや電源が単一障害点のままなら、そこが停止するとサービスも止まる。
検知と切替え
ノード間では、定期的な生存確認であるハートビートなどを用いる。異常を検出したら、サービス、共有ディスクの利用権、仮想IPアドレスなどを安全に移す。
通信が途絶えただけなのか、相手が停止したのかは区別しにくい。双方が自分を稼働系と判断するスプリットブレインは、共有データの破損につながりうる。投票によるクォーラムや、旧稼働系を隔離するフェンシングが重要になる。
似た対策との区別
| 用語 | 対象と役割 |
|---|---|
| コールドスタンバイ | 待機機を停止状態などで準備し、障害後に起動して切り替える |
| ホットスワップ | システムを動かしたまま対応する部品を交換する |
| ミラーリング | 同じデータを複数の媒体へ複製する |
| ロードバランサ | 要求を複数の処理先へ振り分ける |
ミラーリングは媒体故障への対策になるが、誤った更新も両方へ反映される。過去の状態に戻すバックアップとは目的が違う。
引継ぎの限界
切替え中の通信や処理は中断する場合がある。再接続、再試行、未完了の処理の回復まで設計して初めて利用者の影響を抑えられる。切替え機構があることと、停止時間がゼロであることは同義ではない。