ここでは、サービスの表示、有効、無効、変更、再配置、削除を行う方法について 説明します。また、起動できなかったサービスの処理方法についても説明します。 特定のサービスタイプの設定方法を例としていくつか挙げておきます。
ディスクストレージのセットアップとクラスタが管理するアプリケーション のインストールが終了したら、クラスタ設定ツール を使用してこれらのアプリケーションとリソースを管理するためにサービスを 設定することができます。
サービスを設定するには、以下の手順に従ってください。
必要に応じて、サービスで使用するアプリケーションを起動、停止及び状況を チェックするスクリプトを作成します。 詳細については、 項3.1.2を参照してください。
サービスのリソースとプロパティに関する情報を収集します。詳細については、項3.1.1を参照してください。
サービスが使用するファイルシステムまたはrawデバイスを設定します。 詳細については、項3.1.3を参照してください。
アプリケーションソフトウェアが(クラスタ内の、または使用している場合は 関連したフェイルオーバーのドメインにある)各メンバー上で実行できることを確認します。 また、サービススクリプトがある場合には、それがサービスアプリケーションを起動および停止できることを確認します。アップグレードの説明については、 項3.1.4を参照してください。
既存のクラスタからアップグレードする場合は、 /etc/cluster.confファイルをバックアップします。 アップグレードの説明については、項2.2 を参照してください。
クラスタ設定ツールを起動してサービスを追加し、 2の手順にあるサービスのリソースと プロパティに関する情報を指定します。
設定を保存します。クラスタメンバー1つの設定保存は、自動的に 他のクラスタメンバーに伝搬します。
クラスタサービスの追加方法の詳細については、以下を参照してください。
サービスの設定を行なう前に、サービスのリソースとプロパティに関して利用できる すべての情報を収集します。 場合によっては、サービスの複数のリソースを指定することもできます (たとえば、複数のIPアドレスとディスクデバイス)。
クラスタ設定ツールを使用して指定できる サービスのプロパティとリソースを表3-1に説明します。
プロパティ | 説明 | ||||
---|---|---|---|---|---|
サービス名 | 各サービスには、固有な名前を付ける必要があります。サービス名は、1 - 63文字で指定し、英字(大文字または小文字)、整数、下線、ピリオド、ハイフンを組み合わせて ください。 サービス名の先頭の文字は、英字または下線にしてください。 | ||||
フェイルオーバーのドメイン |
| ||||
間隔のチェック | メンバーが、サービスに関連付けられているアプリケーションの状態をチェックする頻度(秒単位)を指定します。 たとえば、NFSまたはSambaサービスにゼロ以外の間隔のチェックを指定すると、 Red Hat クラスタ マネージャは、必要なNFSまたはSambaデーモンが実行されていることをチェックします。 他のサービスタイプの場合は、アプリケーションサービススクリプトのstatus句を呼び出したときに返されたステータスをチェックします。 デフォルトでは、間隔のチェックは0になっており、 これはサービスの監視は無効であることを示します。 | ||||
ユーザースクリプト | 必要に応じて、サービスの起動、停止に使用するスクリプトのフルパス名を指定します。詳細については、項3.1.2を参照してください。 | ||||
IP address |
| ||||
デバイス特殊ファイル | サービスで使用する各共有ディスクパーティションを指定します。 | ||||
ファイルシステムと共有オプション |
|
表 3-1. サービスのプロパティとリソースの情報
クラスタインフラストラクチャは、サービス固有のスクリプトを実行して、指定したアプリケーションへのサービスを起動および停止します。NFSサービスおよびSambaサービスでは、関連付けられているスクリプトはクラスタサービスインフラストラクチャに組み込まれています。したがって、クラスタ設定ツールを実行してNFSおよびSambaサービスを設定する場合は、 ユーザースクリプトフィールドは空白のままにします。他のアプリケーションタイプでは、サービススクリプトを指定する必要があります。たとえば、データベースアプリケーションを設定するときには、対応するデータベース起動スクリプトの完全修飾パス名を指定します。
サービススクリプトの形式は、System V initスクリプトが 従っている規約に準じます。この規約は、スクリプトにstart、 stop、status句が含まれていることを 規定しています。これらは、成功時に終了ステータス0 を返します。
あるクラスタメンバーでサービスが起動できないと、 Red Hat クラスタ マネージャ は他のクラスタメンバーでサービスを起動しようと試みます。 他のクラスタメンバーがそのサービスを起動できなかった場合、 Red Hat クラスタ マネージャ はすべてのメンバーでそのサービスを停止しようと試みます。 なんらかの理由でサービスを停止できないと、クラスタインフラストラクチャは サービスを失敗しましたに配置します。 管理者はそのサービスを有効にする前に、 まずクラスタステータスツールを起動し、 失敗したサービスをハイライト、オフにするをクリックする 必要があります。
停止および起動機能の実行に加え、サービススクリプトはアプリケーションサービスのモニタリングにも使用されます。モニタリングは、サービススクリプトのstatus句を呼び出して実行します。サービスのモニタリングを有効にするには、クラスタ設定ツールでサービスの プロパティを指定する際に、間隔のチェックにゼロ以外の 値を指定します。サービススクリプトへのステータスチェック要求によってゼロ以外の 終了値が返された場合、クラスタインフラストラクチャは、 まずアプリケーションが以前実行されていたメンバー上でアプリケーションの再起動を試みます。ステータス機能は、サービススクリプトに完全に実装する必要はありません。 スクリプトがモニタリングを実行しなかった場合、 成功したことを返すスタブstatus句が存在するようになります。
アプリケーションのstatus句で実行されるこの操作は、アプリケーションのニーズとサイト固有のパラメータに最適なようにカスタマイズできます。たとえば、データベースの単純なステータスチェックには、データベースのプロセスが実行されているかどうかの確認が含まれます。より包括的なチェックには、データベーステーブルの照会が含まれます。
/usr/share/cluster/doc/services/examplesディレクトリには、サービススクリプトを作成するためのテンプレートと、サンプルスクリプトが含まれています。 サンプルスクリプトについては、項4.1 、項4.3 、第6章 を参照してください。
サービスを作成する前に、サービスが使用する共有ファイルシステムとrawデバイスを設定します。 詳細については、項1.4.4を参照してください。
クラスタサービスにrawデバイスを使用する場合は、/etc/sysconfig/rawdevicesファイルを使用して、起動時にデバイスをバインドできます。ファイルを編集し、メンバーを起動するたびにバインドするrawキャラクタデバイスとブロックデバイスを指定します。詳細については、項2.5を参照してください。
ソフトウェアRAIDとホストベースのRAIDは、共有ディスクストレージ用には使用できません。 共有ディスクストレージに使用できるのは認定SCSIアダプタベースのRAIDカードのみです。
管理者は、以下のサービスディスクストレージの推奨事項に従ってください。
最適なパフォーマンスを得るには、4 KBのブロックサイズでファイルシステムを作成してください。一部のmkfsファイルシステム構築ユーティリティはブロックサイズが1 KBのデフォルト設定になっており、 この場合fsckに時間がかかる要因となり得ます。
フェイルオーバーがすばやく行われるようにするには、ext3ファイルシステムを使用することをお勧めします。詳細については、項1.4.4.6を参照してください。
大容量のファイルシステムには、nocheckオプションを指定して、 パーティション上のすべてのブロックグループをチェックするコードをバイパスします。 nocheckオプションを指定することで、 大容量のファイルシステムのマウント時間を大幅に短縮できます。
サービスを設定する前に、クラスタ内の各メンバー (または、フェイルオーバーのドメインを使用する場合は、その各メンバー)のサービスで 使用するアプリケーションをインストールします。アプリケーションをインストールしたら、 それが実行できること、共有ディスクストレージにアクセスできることを確認します。 データの破損を防止するために、 複数のメンバーで同時にアプリケーションを実行しないでください。
スクリプトを使用してサービスアプリケーションを起動および停止する場合は、 すべてのクラスタシステムにスクリプトをインストールしてテストし、 アプリケーションを起動および停止できることを確認してください。 詳細については、項3.1.2 を参照してください。