概要

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

LifeKeeper

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

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

リカバリ動作の詳細については、LifeKeeper for Linux 障害検出とリカバリのシナリオ を参照してください。

ポリシーによるカスタム動作およびメンテナンスモード動作

LifeKeeper for Linux Version 7.5 以降では、デフォルトのリカバリ動作を変更する追加ポリシーを設定する機能をサポートします。リソース単位またはサーバ単位で、4 つのポリシーが設定可能です (リソース単位のポリシーに関する注意については下のセクションを参照してください)。 サーバーレベルでポリシーを変更する方法を推奨します。

利用可能なポリシーは以下の通りです。

標準ポリシー

  • Failover - このポリシー設定を使用すると、リソースフェイルオーバーを有効 / 無効にできます。(Note: リザベーションが適切に処理されるには、 フェイルオーバー は、個々の SCSI リソースで無効にすることはできません。)
  • LocalRecovery - LifeKeeper for Linux は、デフォルトでは、フェイルオーバーを実行する前に、個々のリソースまたは保護対象アプリケーション全体を再起動することにより、保護対象リソースのリカバリーを試みます。このポリシー設定を使用すると、ローカルリカバリを有効 / 無効にできます。
  • TemporalRecovery - 通常、LifeKeeper for Linux は、障害リソースのローカルリカバリーを実行します。ローカルリカバリーに失敗すると、LifeKeeper は、リソース階層を別ノードにフェイルオーバーします。ローカルリカバリーに成功した場合は、フェイルオーバーは実行されません。

ローカルリカバリーに成功した場合でも、サーバーの何らかの異常によって短時間の間にローカルリカバリーが再試行される場合があり、結果として何度も連続してローカルリカバリーが試行されることになります。これが発生すると、問題のアプリケーションは可用性が悪化します。

この反復的なローカルリカバリー / 障害サイクルを回避するために、時間的リカバリポリシーを設定できます。時間的リカバリーポリシーを使用すると、管理者は指定した時間内に試行するローカルリカバリーの回数を (成功かどうかにかかわらず) 制限することができます。

例: リソースが試行するローカルリカバリーの回数を 30 分間で 3 回に限定するポリシー定義をユーザが設定した場合、30 分以内に 3 回目のローカルリカバリーが試行されると、LifeKeeper for Linux はフェイルオーバを実行します。 

定義した時間的リカバリーポリシーは有効または無効にできます。時間的リカバリーポリシーが無効の場合、時間的リカバリ処理は継続して実行され、ポリシーが適用されるはずの時間に通知がログに表示されますが、実際のアクションは実行されません。

注記: 時間的リカバリーポリシーを設定した状態で、フェイルオーバーとローカルリカバリーの一方または両方を無効にすることは可能です。フェイルオーバーまたはローカルリカバリーを無効にした場合に、時間的リカバリポリシーは実行されることが ない ため、この状態は非論理的です。

メタポリシー

「メタ」ポリシーは、他の複数のポリシーに影響を与える可能性があるポリシーです。通常これらのポリシーは、標準ポリシーであれば複数個の設定が必要になるような特定のシステム動作を実現するためのショートカットとして使用します。

  • NotificationOnly - このモードでは、管理者は LifeKeeper を「監視専用」状態にすることができます。 1 つのリソース (または、サーバ単位のポリシーの場合はすべてのリソース) のローカルリカバリーおよびフェイルオーバーの両方が影響を受けます。 障害が検知されると、ユーザーインターフェースには Failure 状態が表示されます。 ただし、リカバリーもフェイルオーバーも実行されません。 注記: 管理者は、障害の原因となった問題を手動で修正し、障害が起きたリソースを復帰させて通常の LifeKeeper の運用を継続する必要があります。

リソースレベルのポリシーに関する重要な考慮事項

リソースレベルのポリシーとは、リソース階層全体またはサーバーレベルのポリシーとは異なり、特定のリソースにのみ適用されるポリシーです。

例:

アプリケーション

- IP 

- file system

上記のリソース階層では、アプリケーションは IP とファイルシステムの両方に依存しています。ポリシーは、特定のリソースのローカルリカバリーまたはフェイルオーバーを無効にするように設定できます。これは、例えば、IP リソースのローカルリカバリーが失敗し、IP リソースのフェイルオーバーが無効に設定されていた場合、IP リソースはフェイルオーバーを実行せず、他のリソースのフェイルオーバーも発生させないことを意味します。ただし、ファイルシステムリソースのローカルリカバリーが失敗し、ファイルシステムリソースのポリシーのフェイルオーバーが無効化されていない場合、階層全体がフェイルオーバーを実行します。

上記は単純な例です。複雑な階層を構成することもできるため、リソースレベルのポリシーを設定するときは注意してください。

lkpolicy ツール

lkpolicy ツールは、LifeKeeper が稼働するサーバのポリシーを管理 (参照、設定、削除) するためのコマンドラインツールです。lkpolicy は、ポリシーの設定および修正、ポリシーの削除、利用可能なポリシーと現在の設定値の表示をサポートします。さらに、設定したポリシーは有効または無効に設定できるため、リカバリー動作に影響を与えながらリソース / サーバー設定を保持できます。

全体的な使用方法は次の通りです。

lkpolicy [--list–policies | --get–policies | --set–policy | --remove–policy] <name value pair data…>

<name value pair data…>は、運用方法および対象のポリシーによって異なります (特にポリシーを設定する場合)。例: 有効 / 無効タイプのポリシーのほとんどでは、必要なのは [--on] または [--off] のスイッチのみですが、時間的ポリシーの場合は、しきい値を設定するための値も必要です。

lkpolicy の使用方法の例

ローカルおよびリモートサーバーとの認証

lkpolicy ツールは、サーバが公開する API を通じて LifeKeeper サーバと通信します。この API は、 lkpolicy ツールなどのクライアントに対して認証を要求します。 lkpolicy ツールで LifeKeeper サーバーに最初にアクセスしようとしたときに、そのサーバーに対する認証情報がまだ保存されていない場合、ユーザーは認証情報を求められます。認証情報はユーザー名とパスワードの形式であり、さらに以下の条件があります。

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

認証情報ストアと credstore ユーティリティによる管理の詳細については、LifeKeeper の認証情報の設定 を参照してください。

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 ポリシーを無効にすることと等価です。

フィードバック

お役に立ちましたか?

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

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

送信