概要
SIOS Protection Suite for Linux のリソースポリシー管理では、リソースのローカルリカバリとフェイルオーバの動作管理機能が提供されます。リソースポリシーは、 lkpolicy コマンドラインツール (CLI) を使用して管理できます。
SIOS Protection Suite/LifeKeeper
SIOS Protection Suiteには、個々のアプリケーションおよび関連し合うアプリケーションのグループを監視する機能があり、定期的にローカルリカバリを実行したり、保護下のアプリケーションに障害が発生したときに通知することができます。関連し合うアプリケーションの例としては、主アプリケーションが下位のストレージまたはネットワークリソースに依存する階層などがあります。アプリケーションまたはリソースに障害が発生した場合のデフォルトの動作は以下の通りです。
- ローカルリカバリ : 最初に、リソースまたはアプリケーションの ローカル でリカバリを試みます。このときは、外部の介入なしにローカルサーバ上でリソースまたはアプリケーションをリストアしようとします。ローカルリカバリが成功した場合、SIOS Protection Suite は追加のアクションを実行しません。
- フェイルオーバ : 次に、ローカルリカバリでリソースまたはアプリケーションのリストアに失敗した (またはリソースを監視するリカバリキットがローカルリカバリをサポートしていない) 場合、 フェイルオーバ は開始されます。フェイルオーバ処理では、クラスタ内の別のサーバ上で該当アプリケーション (および依存するすべてのリソース) を起動しようと試みます。
リカバリ動作の詳細については、SIOS Protection Suite 障害検出とリカバリのシナリオ を参照してください。
ポリシーによるカスタム動作およびメンテナンスモード動作
SIOS Protection Suite Version 7.5 以降では、デフォルトのリカバリ動作を変更する追加ポリシーを設定する機能をサポートします。リソース単位またはサーバ単位で、4 つのポリシーが設定可能です (リソース単位のポリシーに関する注意については下のセクションを参照してください)。 サーバレベルでポリシーを変更する方法を推奨します。
利用可能なポリシーは以下の通りです。
標準ポリシー
- Failover - このポリシー設定を使用すると、リソースフェイルオーバを有効 / 無効にできます。(S: リザベーションが適切に処理されるには、 フェイルオーバ は、個々の SCSI リソースで無効にすることはできません。)
- LocalRecovery - SIOS Protection Suite は、デフォルトでは、フェイルオーバを実行する前に、個々のリソースまたは保護対象アプリケーション全体を再起動することにより、保護対象リソースのリカバリを試みます。このポリシー設定を使用すると、ローカルリカバリを有効 / 無効にできます。
- TemporalRecovery - 通常、SIOS Protection Suite は、障害リソースのローカルリカバリを実行します。ローカルリカバリに失敗すると、SIOS Protection Suite は、リソース階層を別ノードにフェイルオーバします。ローカルリカバリに成功した場合は、フェイルオーバは実行されません。
ローカルリカバリに成功した場合でも、サーバの何らかの異常によって短時間の間にローカルリカバリが再試行される場合があり、結果として何度も連続してローカルリカバリが試行されることになります。これが発生すると、問題のアプリケーションは可用性が悪化します。
この反復的なローカルリカバリ / 障害サイクルを回避するために、時間的リカバリポリシーを設定できます。時間的リカバリポリシーを使用すると、管理者は指定した時間内に試行するローカルリカバリの回数を (成功かどうかにかかわらず) 制限することができます。
例: リソースが試行するローカルリカバリの回数を 30 分間で 3 回に限定するポリシー定義をユーザが設定した場合、30 分以内に 3 回目のローカルリカバリが試行されると、SIOS Protection Suite はフェイルオーバを実行します。
定義した時間的リカバリポリシーは有効または無効にできます。時間的リカバリポリシーが無効の場合、時間的リカバリ処理は継続して実行され、ポリシーが適用されるはずの時間に通知がログに表示されますが、実際のアクションは実行されません。
注記: 時間的リカバリポリシーを設定した状態で、フェイルオーバとローカルリカバリの一方または両方を無効にすることは可能です。フェイルオーバまたはローカルリカバリを無効にした場合に、時間的リカバリポリシーは実行されることが ない ため、この状態は非論理的です。
メタポリシー
「メタ」ポリシーは、他の複数のポリシーに影響を与える可能性があるポリシーです。通常、これらのポリシーは、標準ポリシーであれば複数個の設定が必要になるような特定のシステム動作を実現するためのショートカットとして使用します。
- NotificationOnly - このモードでは、管理者は SIOS Protection Suite を「監視専用」状態にすることができます。 1 つのリソース (または、サーバ単位のポリシーの場合はすべてのリソース) のローカルリカバリおよびフェイルオーバの両方が影響を受けます。 障害が検知されると、ユーザインターフェースには Failure 状態が表示されます。 ただし、リカバリもフェイルオーバも実行されません。 注記: 管理者は、障害の原因となった問題を手動で修正し、障害が起きたリソースを復帰させて通常の SIOS Protection Suite の運用を継続する必要があります。
リソースレベルのポリシーに関する重要な考慮事項
リソースレベルのポリシーとは、リソース階層全体またはサーバレベルのポリシーとは異なり、特定のリソースにのみ適用されるポリシーです。
例:
アプリケーション
- IP
- file system
上記のリソース階層では、アプリケーションは IP とファイルシステムの両方に依存しています。ポリシーは、特定のリソースのローカルリカバリまたはフェイルオーバを無効にするように設定できます。これは、例えば、IP リソースのローカルリカバリが失敗し、IP リソースのフェイルオーバが無効に設定されていた場合、IP リソースはフェイルオーバを実行せず、他のリソースのフェイルオーバも発生させないことを意味します。ただし、ファイルシステムリソースのローカルリカバリが失敗し、ファイルシステムリソースのポリシーのフェイルオーバが無効化されていない場合、階層全体がフェイルオーバを実行します。
上記は単純な例です。複雑な階層を構成することもできるため、リソースレベルのポリシーを設定するときは注意してください。
lkpolicy ツール
lkpolicy ツールは、SIOS Protection Suite for Linux が稼働するサーバのポリシーを管理 (参照、設定、削除) するためのコマンドラインツールです。lkpolicy は、ポリシーの設定および修正、ポリシーの削除、利用可能なポリシーと現在の設定値の表示をサポートします。さらに、設定したポリシーは、有効または無効に設定できるため、リカバリ動作に影響を与えながらリソース / サーバ設定を保持できます。
全体的な使用方法は次の通りです。
lkpolicy [--list–policies | --get–policies | --set–policy | --remove–policy] <name value pair data…>
<name value pair data…>は、運用方法および対象のポリシーによって異なります (特にポリシーを設定する場合)。例: 有効 / 無効タイプのポリシーのほとんどでは、必要なのは [--on] または [--off] のスイッチのみですが、時間的ポリシーの場合は、しきい値を設定するための値も必要です。
lkpolicy の使用方法の例
ローカルおよびリモートサーバとの認証
lkpolicy ツールは、サーバが公開する API を通じて SIOS Protection Suite サーバと通信します。この API は、 lkpolicy ツールなどのクライアントに対して認証を要求します。 lkpolicy ツールで SIOS Protection Suite サーバに最初にアクセスしようとしたときに、そのサーバに対する認証情報がまだ保存されていない場合、ユーザは認証情報を求められます。認証情報はユーザ名とパスワードの形式であり、さらに以下の条件があります。
- クライアントには SIOS Protection Suite の管理者権限が必要です。したがって、そのユーザ名は、( PAM による) オペレーティングシステムの認証設定によって lkadmin グループ に属する必要があります。必ずしも root で実行する 必要はありません が、root ユーザはデフォルトで適切なグループに属しているため、root を使用することもできます。
- 認証情報は認証情報ストアに保存されるため、ツールを使用してこのサーバにアクセスするたびに手動で認証情報を入力する必要はありません。
認証情報ストアと credstore ユーティリティによる管理の詳細については、SIOS Protection Suite の認証情報の設定 を参照してください。
lkpolicy によるセッションの例は以下のようになります。
[root@thor49 ~]# lkpolicy –l –d v6test4
Please enter your credentials for the system ‘v6test4’.
Username: root
Password:
Confirm password:
Failover
LocalRecovery
TemporalRecovery
NotificationOnly
[root@thor49 ~]# lkpolicy –l –d v6test4
Failover
LocalRecovery
TemporalRecovery
NotificationOnly
[root@thor49 ~]#
ポリシーのリスト表示
lkpolicy --list–policy–types
現在のポリシーの表示
lkpolicy --get–policies
lkpolicy --get–policies tag=\*
lkpolicy --get–policies --verbose tag=mysql\* # all resources starting with mysql
lkpolicy --get–policies tag=mytagonly
ポリシーの設定
lkpolicy --set–policy Failover --off
lkpolicy --set–policy Failover --on tag=myresource
lkpolicy --set–policy Failover --on tag=\*
lkpolicy --set–policy LocalRecovery --off tag=myresource
lkpolicy --set–policy NotificationOnly --on
lkpolicy --set–policy TemporalRecovery --on recoverylimit=5 period=15
lkpolicy --set–policy TemporalRecovery --on --force recoverylimit=5 period=10
ポリシーの削除
lkpolicy --remove–policy Failover tag=steve
注記: NotificationOnly はポリシーのエイリアスです。 NotificationOnly を有効にすることは、対応する LocalRecovery および Failover ポリシーを無効にすることと等価です。
このトピックへフィードバック