概要

LifeKeeper for Linux のリソースポリシー管理では、リソースのローカルリカバリとフェイルオーバの動作管理機能が提供されます。リソースポリシーは、 lkpolicy コマンドラインツール (CLI) を使用して管理できます。  

LifeKeeper

LifeKeeper for Linux には、個々のアプリケーションおよび関連し合うアプリケーションのグループを監視する機能があり、定期的にローカルリカバリを実行したり、保護下のアプリケーションに障害が発生したときに通知することができます。関連し合うアプリケーションの例としては、主アプリケーションが下位のストレージまたはネットワークリソースに依存する階層などがあります。アプリケーションまたはリソースに障害が発生した場合のデフォルトの動作は以下の通りです。

  1. ローカルリカバリ: 最初に、リソースまたはアプリケーションの ローカル でリカバリを試みます。このときは、外部の介入なしにローカルサーバ上でリソースまたはアプリケーションをリストアしようとします。ローカルリカバリが成功した場合、LifeKeeper for Linuxは追加のアクションを実行しません。
  1. フェイルオーバ: 次に、ローカルリカバリでリソースまたはアプリケーションのリストアに 失敗した (またはリソースを監視する リカバリキット がローカルリカバリをサポートしていない) 場合、 フェイルオーバ は開始されます。フェイルオーバ処理では、クラスタ内の別のサーバ上で該当アプリケーション (および依存するすべてのリソース) を起動しようと試みます。

リカバリ動作の詳細については、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 サーバーに最初にアクセスしようとしたときに、そのサーバーに対する認証情報がまだ保存されていない場合、ユーザーは認証情報を求められます。認証情報はユーザー名とパスワードの形式であり、さらに以下の条件があります。

  1. クライアントには LifeKeeper for Linux の管理者権限が必要です。したがって、そのユーザ名は、( PAM による) オペレーティングシステムの認証設定によって lkadmin グループ に属する必要があります。必ずしも root で実行する 必要はありません が、root ユーザはデフォルトで適切なグループに属しているため、root を使用することもできます。
  1. 認証情報は 認証情報ストア に保存されるため、ツールを使用してこのサーバにアクセスするたびに手動で認証情報を入力する必要はありません。

認証情報ストアと 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 ポリシーを無効にすることと等価です。

フィードバック

お役に立ちましたか?

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

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

送信