This site best when viewed with a modern standards-compliant browser. We recommend Firefox Get Firefox!.

Linux-HA project logo
Providing Open Source High-Availability Software for Linux and other OSes since 1999.

USA Flag UK Flag

Japanese Flag

ホームページ

サイトについて

コンタクト情報

使用条件

協力方法

セキュリティ

This web page is no longer maintained. Information presented here exists only to avoid breaking historical links.
The Project stays maintained, and lives on: see the Linux-HA Reference Documentation.
To get rid of this notice, you may want to browse the old wiki instead.

2010.1.28
追加パッケージ集リニューアル
追加パッケージ集は、こちらから

2008.8.28
RHEL用rpm更新
更新情報はこちらから

2008.8.18
Heartbeat 2.1.4
リリース!
Downloadはこちらから

2007.11.13
Linux-ha-japan日本語ML移植しました

2007.10.5
日本語サイトOPEN
日本語MLも開設しました

2007.10.5
OSC2007 Tokyo/Fall で Heartbeat紹介
発表資料を公開しました

Last site update:
2017-12-11 11:50:32

OCF仕様は、基本的にLSBリソースエージェントの定義を拡張したものです。

OCFリソースエージェントとは、/usr/lib/ocf/resource.d/{provider} に用意されているものです。

OCF仕様(リソースエージェント関連)については、以下をご参照ください。

http://www.opencf.org/cgi-bin/viewcvs.cgi/specs/ra/resource-agent-api.txt?rev=HEAD

独自のOCFリソースエージェントを書く

/usr/lib/ocf/resource.d/heartbeatに用意されているものはすべて、バージョン2.0.0でサポートされており、Heartbeatパッケージの一環として提供されています。独自のエージェントを作成する場合には、/usr/lib/ocf/resource.d/の下に新しいディレクトリを作成し、provider={your subdirectory name} を使用することをお勧めします。そこで、例えば自分のプロバイダ名をdubrouskiとして、sergeという名前のリソースを作成したい場合、/usr/lib/ocf/resource.d/dubrouskiというディレクトリを作成し、リソーススクリプトを /usr/lib/ocf/resource.d/dubrouski/sergeと命名します。

便宜上、リターンコード、デフォルト、その他のOCFユーティリティ機能の多くは、カスタムOCFエージェントによって追加できるよう、 /usr/lib/heartbeat/ocf-shellfuncsに用意されています。

注意:: Linux-HAインプレメンテーションは、OCF仕様を多少拡張したものですが、そうした変更内容もすべてOCF仕様と互換性を保っています。独自のリソースエージェントを書く/テストしていただければ、OCFテスタースクリプトが非常に有用であることがお分かりいただけるでしょう。これについては、下記URLのcvsに用意されています。

http://hg.linux-ha.org/heartbeat/raw-file/tip/tools/ocf-tester

アクション

通常のOCFリソースエージェントには、以下のアクションが要求されます。

  • start - リソースを開始します。リソースが正しく実行されている(サービスを提供している)場合、およびその他失敗して7になる場合以外は0で終了

  • stop - リソースを停止します。リソースが正しく停止した場合、およびその他失敗して7になる場合以外は0で終了

  • monitor - リソースの健全性を監視します。リソースが実行中である場合は0で終了、停止している場合、およびその他失敗した場合は7

  • meta-data - 当該リソースに関する情報をXMLの断片(snippet)として提供します。0で終了

注記: OCF仕様には、終了コードアクションが返さなければならない内容について、厳密な定義があります。当プロジェクトもこの仕様に従っていますので、間違った終了コードで終了した場合には、 Heartbeatを快適と感じられないことがあるかもしれません。とりわけ、Heartbeatとしては、完全に停止したリソースと、何らかの間違った、不確定な状態にあるリソースを識別する必要があります。

OCFリソースエージェントは、以下のアクションをサポートする必要があります。

  • validate-all - 当該環境において与えられている一連の設定パラメータを確認します。パラメータが有効である場合は0で終了、無効の場合は2、リソースが設定されていない場合は6。

クローンおよびマルチ・ステート・リソースに対して使われるエージェントには、追加要件(OCF仕様の一部ではない)が課せられます。

  • promote - リソースのローカルインスタンスをマスター/プライマリステートに昇格します。0で終了すること。

  • demote - リソースのローカルインスタンスをスレーブ/セカンダリステートに降格します。0で終了すること。

  • notify - Heartbeatがエージェントに対して、プレおよびポスト 通知イベントを送るために使用するもので、リソースに何が起こっているのか、あるいは何が起こったところなのかを知らせます。0で終了しなければなりません。

SOCF仕様に指定されている一部のアクションは、現時点でHeartbeatには使われていません。

  • reload - サービスを中断せずに、リソースインスタンスの設定をリロードします。

  • recover - startアクションの変種で、ローカルでリソースの修復を試みます。

パラメータ

より多くのアクションに対応する以外にも、独自のOCFリソースエージェントには、リソースのうち、どのインスタントのコントロールを求められているのかを告げるパラメータや、何をすべきか、正確にはそれがどのように行われるべきなのかを告げるのに必要な、単純な設定パラメータを持つことが認められています。

これらについては、特殊なプレフィックスOCF_RESKEY_を伴って、環境変数としてスクリプトに渡されます。そのため、いわゆるipのようなパラメータが必要な場合はスクリプトには、OCF_RESKEY_ipとして渡されます。

OCFリソースエージェントのデバッグ

OCFリソースエージェントを実装する際に起こりうる問題には以下のものが挙げられます。

  • モニタオペレーションをまったく実装していない。
  • Start/stop/statusアクションに関して正しい終了(Exit)ステータスコードを守っていない。
  • スタート済みのリソースをstartするとエラーを返す(これはOCF仕様の違反になる)。
  • ストップ済みのリソースをstopするとエラーを返す(これはOCF仕様の違反になる)。
  • リソースが完全に開始/停止していないときのstart/stopアクションに対して0を返す。
  • meta-dataコマンドに対する無効なXMLアウトプット。

関連情報

リソースエージェント