Jump to contentJump to page navigation: previous page [access key p]/next page [access key n]
適用先 SUSE Linux Enterprise High Availability Extension 12 SP5

9 リソースエージェントの追加または変更

概要

クラスタによる管理が必要なすべての作業は、リソースとして使用できなければなりません。主要なグループとして、リソースエージェントとSTONITHエージェントの2つがあります。両方のカテゴリで、エージェントの追加や所有が可能で、クラスタ機能を各自のニーズに合わせて拡張することができます。

9.1 STONITHエージェント

クラスタがノードの1つの誤動作を検出し、そのノードの削除が必要となることがあります。これをフェンシングと呼び、一般にSTONITHリソースで実行されます。

警告
警告: 外部SSH/STONITHはサポートされていません

SSHが他のシステムの問題にどのように反応するのかを知る方法はありません。このため、外部SSH/STONITHエージェント(stonith:external/sshなど)は、運用環境ではサポートされていません。テスト目的でこのようなエージェントをまだ使用する場合は、libglue-develパッケージをインストールしてください。

現在使用可能なすべてのSTONITHデバイス(ソフトウェア側から)のリストを入手するには、crm ra list stonithコマンドを使用します。お気に入りのエージェントが見つからない場合は、-develパッケージをインストールしてください。STONITHデバイスおよびリソースエージェントの詳細については、第10章 「フェンシングとSTONITHを参照してください。

今のところ、STONITHエージェントの作成に関するマニュアルはありません。新しいSTONITHエージェントを作成する場合は、cluster-glueパッケージのソースに提供されている例を参照してください。

9.2 OCFリソースエージェントの作成

/usr/lib/ocf/resource.d/で提供されているすべてのOCFリソースエージェントの詳細については、6.3.2項 「サポートされるリソースエージェントクラス」を参照してください。各リソースエージェントは、それを制御する次の操作をサポートしている必要があります。

start

リソースを開始または有効化します。

stop

リソースを中止または無効化します。

status

リソースのステータスを返します。

monitor

statusと同様ですが、予期しない状態もチェックします。

validate

リソースの設定を検証します。

meta-data

リソースエージェントの情報をXMLで返します。

OCF RAの作成方法の一般的な手順は、次のとおりです。

  1. テンプレートとして、/usr/lib/ocf/resource.d/pacemaker/Dummyファイルをロードします。

  2. 新しいリソースエージェントごとに新しいサブディレクトリを作成して、名前が競合しないようにします。たとえばリソースグループkitchenにリソースcoffee_machineがある場合、このリソースを/usr/lib/ocf/resource.d/kitchen/ディレクトリに追加します。このRAにアクセスするには、コマンドcrmを実行します。

    root # crm configure primitive coffee_1 ocf:coffee_machine:kitchen ...
  3. 異なるシェル関数を実装し、異なる名前でファイルを保存します。

OCFリソースエージェントの作成についての詳細は、https://github.com/ClusterLabs/resource-agents/blob/master/doc/dev-guides/ra-dev-guide.ascを参照してください。コンセプトの特別な情報については、第1章 「製品の概要を参照してください。

9.3 OCF戻りコードと障害回復

OCF仕様によると、アクションが返す必要がある出口コードの厳密な定義があります。クラスタは常に、予期される結果に対する戻りコードを確認します。結果が予期された値と一致しない場合、アクションは失敗したとみなされ、回復処理が開始されます。障害回復には3種類あります。

表 9.1: 障害回復の種類

回復の種類

説明

クラスタが行うアクション

soft

一時的なエラーが発生しました。

リソースを再起動するか、新しい場所に移動させます。

hard

一時的ではないエラーが発生しました。エラーは、現在のノードに固有の場合があります。

リソースを他の場所に移動して、現在のノードで再試行されないようにします。

fatal

すべてのクラスタノードに共通の、一時的ではないエラーが発生しました。これは、不正な設定が指定されたことを示しています。

リソースを停止して、どのクラスタノードでも開始されないようにします。

アクションが失敗したと想定して、次の表では、異なるOCF戻りコードを概説します。また、エラーコードを受け取った場合にクラスタが開始する回復の種類も示しています。

表 9.2: OCF戻りコード

OCF戻りコード

OCFエイリアス

説明

回復の種類

0

OCF_SUCCESS

成功。コマンドは正常に完了しました。これは、すべてのstart、stop、promote、demoteコマンドの予期された結果です。

soft

1

OCF_ERR_­GENERIC

汎用の問題が発生したことを示すエラーコード。

soft

2

OCF_ERR_ARGS

リソースの設定がこのマシンで有効ではありません(たとえば、ノード上に見つからない場所/ツールを参照している場合)。

hard

3

OCF_­ERR_­UN­IMPLEMENTED

要求されたアクションは実行されていません。

hard

4

OCF_ERR_PERM

リソースエージェントに、作業を完了できるだけの権限がありません。

hard

5

OCF_ERR_­INSTALLED

リソースが必要とするツールがこのコンピュータにインストールされていません。

hard

6

OCF_ERR_­CONFIGURED

リソースの設定が無効です(たとえば、必要なパラメータがないなど)。

fatal

7

OCF_NOT_­RUNNING

リソースが実行されていません。クラスタは、どのアクションについてもこれを返すリソースを停止しようとしません。

このOCF戻りコードはリソース回復を必要することも必要としないこともあります。予期されたリソースの状態に依存します。予期されない場合は、soft回復を行います。

N/A

8

OCF_RUNNING_­MASTER

リソースはマスタモードで実行しています。

soft

9

OCF_FAILED_­MASTER

リソースはマスタモードですが、失敗しました。リソースは降格、停止され、再度開始されます(昇格されます)。

soft

その他

該当なし

カスタムエラーコード。

soft

このページを印刷