LifeKeeperの「Quorum/Witness」とは

こんにちは、SCSK 野口です。

『 第6回 HAクラスター構成の敵「スプリットブレイン対策」はこれだ! 』 では、
LifeKeeper の Quorum/Witnessについて少し触れましたが、Quorum/Witness は
クラスターシステムにおいて重要な役割(スプリットブレイン対策)です。

今回は、もう少し深堀をし、Quorum/Witnessの種類とパラメータについてお伝えします。

Quorum/Witnessとは

おさらい

『 第6回 』 でも Quorum/Witness の機能について説明しましたが、
改めて「Quorum Check」(Quorum機能) と 「Witness Check」(Witness機能) を下記に記します。

Quorum Check⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅クラスター全体で合意(多数決)するための機能
                              「リソースを起動する権利はあるのか」クラスター全体で合意するための仕組みです。

Witness Check⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅第三者ノードに問い合わせて再確認する機能 (セカンドオピニオン)
                              「相手ノードは本当にダウンしたのか」第三者ノード(デバイス)に問い合わせる仕組みです。

Quorum/Witnessは、「Quorum Check」と「Witness Check」が合わさった機能なんだね!

Quorumの種類(Majorityモード、Storageモード)

おさらいで、Quorum/Witnessの機能についてざっくりと説明しましたが、
次は、実際にどのような構成があるか具体的な例を2つご紹介いたします。

Storage構成図では、Node1がQWKオブジェクト1にデータを書き込み、そのデータをNode2が監視しています。
同時に、Node2はQWKオブジェクト2にデータを書き込み、そのデータをNode1が監視しています。
つまり、両方のノードが互いにデータを書き込み、監視し合っている状態です。

Majority構成は多数決だから、ノードを奇数台用意しなきゃなんだね!

Storage構成はお互いに書き込みと監視してるんだ⁉

 

Quorumの種類によって設定可能なWitnessモード

majorityモードで使用可能なWitnessモード          storageモードで使用可能なWitnessモード
・remote_verify                      ・storage(他は選択できません。)
・none または off

選択したQuorumモードで、設定できるWitnessモードは決まっています。

QuorumとWitnessの構成が正しくないと、

リソース作成 & 拡張時にサーバーが誤って停止する可能性があるわよ!

 

パラメータの設定値

続いては、実際にどのようなパラメータの設定値があるのかをご紹介いたします。

今回、ご紹介するパラメータの設定値は
「Quorum/Witness共通のパラメーター」「選択したモードによって有効なパラメーター」です。

Quorum/Witness共通のパラメータ


※ 青文字はデフォルト値となります。

QUORUM_MODE
・majority………ハートビート通信で疎通確認をし、Quorum チェックを行う
・tcp_remote……ハートビート通信で独立したホストに対して、
                         指定されたポート上の TCP/IP サービスに接続確認をし、Quorum チェックを行う
・storage………共有ストレージを Witness デバイスとして用いて、Quorum チェックを行う
・none/off………Quorumチェックを無効にする。

WITNESS_MODE
・remote_verify……クラスター内で他のすべてのノードに対して
                             障害が疑われるノードのステータスに関する意見を求める
・storage………共有ストレージに書き込まれた情報を定期的に確認する
・none/off………Witnessチェックを無効にする

QUORUM_LOSS_ACTION
・fastkill……Quorumの喪失が検出されると、システムを直ちに再起動する
・fastboot……Quorumの喪失が検出されると、システムを直ちに停止する (手動で起動する必要があります)
・osu……………Quorumの喪失が検出されると、システム上のリソースをサービス休止状態にする

ALLOW_EXTEND_WITH_QUORUM_ERROR
・true……Quorumシステムの障害/エラーが発生した場合拡張する
・false……Quorumシステムの障害/エラーが発生した場合拡張しない

選択したモードによって有効なパラメーター


※ 青文字はデフォルト値となります。

QUORUM_HOSTS
・”host:port” 形式……複数指定の場合はカンマ区切り
 (設定例)QUORUM_HOSTS=myhost:80,router1:443,router2:22

QUORUM_TIMEOUT_SECS
・整数値を指定


※ 青文字はデフォルト値となります。

QWK_STORAGE_TYPE
・block………共有ストレージに物理ストレージやRDM(物理互換)、iSCSI(VM 内イニシエーター)を使用する場合
・file…………共有ストレージにNFS (または Amazon EFS) を使用する場合
・aws_s3……共有ストレージに AmazonのS3 、または Amazon S3互換のオブジェクトストレージを使用する場合

QWK_STORAGE_HBEATTIME
・5以上10以下……QWKオブジェクトへ読み書きする間隔を秒単位で設定

QWK_STORAGE_NUMHBEATS
・3以上……QWKオブジェクトの読み込みにおいて、設定した回数以上更新が停止していると障害と判断

QWK_STORAGE_OBJECT_<ホスト名>
・ホスト名に”-”または”.”を含む場合、アンダースコア“_”に置き換える

HTTP_PROXY,  HTTPS_PROXY,  NO_PROXY
AWS CLIの通信をプロキシ経由で行う場合に設定 (設定した値がそのまま AWS CLI へ渡される)

これらのパラメータは etc/default/LifeKeeper 設定ファイルで編集や追記できるわよ!

まとめ

今回は、Quorum/Witness の種類 と パラメータ についてご紹介しましたがいかがでしたか。

Quorum/Witnessは「Quorum Check」と「Witness Check」という 2つの機能がある
・Quorumの種類には「Majorityモード」と「Storageモード」という種類がある
・パラメータは「共通のパラメーター」と「選択したモードによって有効なパラメーター」がある

この記事で、上記3点をご認識いただけたら幸いです。

 

詳細情報をご希望の方は、以下のバナーからSCSK Lifekeeper公式サイトまで

著者について
野口要をフォローする

クラウドに強いによるエンジニアブログです。

SCSKでは、自社クラウドと3大メガクラウドの強みを活かし、ハイブリッドクラウド/マルチクラウドのソリューションを展開しています。業界の深い理解をもとに、お客様の業務要件に最適なアーキテクチャをご提案いたします。サービスサイトでは、お客様のDX推進をワンストップで支援するサービスの詳細や導入事例を紹介しています。

LifeKeeperプロダクト
シェアする
タイトルとURLをコピーしました