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



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