リザベーションを使用すると、共有ストレージに対する最高レベルのデータ保護が可能になりますが、場合によっては、リザベーションを使用できず LifeKeeper 内で無効にしなければならないことがあります。リザベーションを無効にすると、複数のシステムが意図的または意図せずにストレージにアクセスしようとする場合にストレージが調停役として動作することがなくなります。

そのため、システムハング、システムビジー、またはサーバーが停止したように見えるあらゆる状況に対応できるように、クラスターメンバーシップによってストレージをフェンシングする別の方法を採用することを検討する必要があります。

リザベーションがなくても信頼性の高い構成を実現する鍵は、フェイルオーバが発生したとき、「他の」サーバーの電源がオフになったこと、または電源が再投入されたことを「知る」ことです。この要件を満たすために利用可能なフェンシングオプションは 4 つあり、これらは SCSI リザベーションなしでも LifeKeeper で非常に信頼性の高い構成を実現できます。オプションは以下の通りです。 

  • STONITH (Shoot the Other Node in the Head) (高信頼性のインターコネクト、すなわちサーバーと STONITH デバイスとの間のシリアル接続を使用) - STONITH は、サーバーがクラスターの一部とみなされなくなったときに、そのサーバーを物理的に停止させたり、電源を切断したりする技術です。LifeKeeper フェイルオーバのイベント時にサーバーの電源を切断する機能をサポートしています。これにより共有データへの安全なアクセスを保証します。このオプションはリザベーションと同様の信頼性を提供できますが、利用できるのは物理的に同じ場所に配置された 2 つのノードに限定されます。
  • Quorum/Witness - Quorum/Witness サーバーは、特にクラスターサーバーが異なる場所に配置されている場合に、クラスター内でのメンバーシップを確認するために使用されます。このオプションはスプリットブレインに対応できるもののシステムハングに対応できないため、単独での使用は推奨されません。
  • Watchdog - Watchdog は、サーバーの状態を監視します。問題が検出されると、問題のあるサーバーは再起動または電源を切断されます。このオプションではサーバーのハングからのリカバリはできますが、スプリットブレインには対応できません。したがって、このオプションもまた単独での使用は推奨されません。
  • CONFIRM_SO - このオプションでは自動フェイルオーバを無効にする必要があります。そのため、信頼性が非常に高い (管理者のスキルによって異なります) 一方で、可用性はあまり高くありません。

これらの代替フェンシング方式はどれも単独では十分とは言えませんが、組み合わせて使用​​することで非常に信頼性の高い構成を実現できます。

非共有ストレージ

非共有ストレージ環境で LifeKeeper を使用する計画の場合、共有ストレージに存在するデータ破損のリスクは問題にならないため、リザベーションは不要です。ただし、データの部分的または完全な再同期およびマージが必要な場合があります。信頼性と可用性を最適化するには、非共有ストレージでも上記のオプションを検討する必要があります。

完全なデータ保護を実現するオプションはないことを理解することは重要です。ただし、以下のように組み合わせるとリザベーションとほぼ同等レベルの保護を実現できます。

リザベーションを使用しない I/O フェンシングの設定

ノードフェンシングをサポートするクラスターを構成するには以下の手順を実行します。

  1. LifeKeeper を停止します。
  1. LifeKeeper 内での SCSI リザベーションの使用を無効にします。無効にするには、クラスターのすべてのノードで LifeKeeper のデフォルトファイル /etc/default/LifeKeeper を編集します。Reservations 変数を追加または修正して「none」にします ( 例:RESERVATIONS=none )。このオプションはリザベーションを利用できない場合のみ使用することに注意してください。
  1. I/O フェンシングを提供する STONITH デバイスを用意して設定します。この設定では、STONITH デバイスが reboot コマンドではなく、poweroff コマンドをシステムに対して実行するようにします。LifeKeeper の通信が何らかの理由で中断したとき、手動操作によって同時に両ノード上のデバイス階層を In Service の状態にしないように注意してください。
  1. 必要に応じて、quorum/witness サーバーを用意して設定します。quorum/witness サーバーを設定、使用する詳細な手順と情報については、Quorum/Witness Server Support Package トピックを参照してください。

注記: サイトの障害時に最良の保護機能を提供するため、quorum/witness サーバーはクラスター内の別サーバーから離れた場所にある必要があります。

  1. 必要に応じて、Watchdog を設定します。詳細については、 Watchdog トピックを参照してください。

共有ストレージへのアクセス

リザベーションの有効無効にかかわらず、以下の 2 つの点に注意すべきです。

  • ストレージへのアクセスは LifeKeeper が制御する必要があります。
  • ストレージへの意図しないアクセス (ファイルシステムのマウント、手動の fsck など) が発生しないように細心の注意を払う必要があります。

STANDBY NODE WRITE PROTECTION 機能

リザベーションを無効 ( RESERVATIONS=none ) にした場合においても、不注意な意図しないアクセスによるデータ破損を防ぐために、スタンバイノードからディスクデバイスへの書き込みを禁止することができます。この機能を有効にするには、 /etc/default/LifeKeeper に以下の設定を追加してください。

STANDBY_NODE_WRITE_PROTECTION=enable
SNHC=1
SNHC_DISKCHECK=1

この機能は Standby Node Health Check を利用しています。そのため、OSU リソース監視の OSUquickCheck が実行されるまでは、書き込み禁止にならないことがあります。スイッチオーバーしてから約 LKCHECKINTERVAL(デフォルト120)秒間は書き込み可能になっていることがあるためご注意ください。

この機能は、スプリットブレインの発生を抑止することはできません。また、スプリットブレインが発生すれば、両ノードで書き込みを許可します。リザベーションを無効 ( RESERVATIONS=none ) に設定するときは、クラスター内のデータの信頼性を保証するために、別の方法 で I/O フェンシングを構成する必要があります。

フィードバック

お役に立ちましたか?

はい いいえ
お役に立ちましたか
理由をお聞かせください
フィードバックありがとうございました

このトピックへフィードバック

送信