第 3章. サービス管理

ここでは、サービスの表示、有効、無効、変更、再配置、削除を行う方法について 説明します。また、起動できなかったサービスの処理方法についても説明します。 特定のサービスタイプの設定方法を例としていくつか挙げておきます。

3.1. サービスの設定

ディスクストレージのセットアップとクラスタが管理するアプリケーション のインストールが終了したら、クラスタ設定ツール を使用してこれらのアプリケーションとリソースを管理するためにサービスを 設定することができます。

サービスを設定するには、以下の手順に従ってください。

  1. 必要に応じて、サービスで使用するアプリケーションを起動、停止及び状況を チェックするスクリプトを作成します。 詳細については、 項3.1.2を参照してください。

  2. サービスのリソースとプロパティに関する情報を収集します。詳細については、項3.1.1を参照してください。

  3. サービスが使用するファイルシステムまたはrawデバイスを設定します。 詳細については、項3.1.3を参照してください。

  4. アプリケーションソフトウェアが(クラスタ内の、または使用している場合は 関連したフェイルオーバーのドメインにある)各メンバー上で実行できることを確認します。 また、サービススクリプトがある場合には、それがサービスアプリケーションを起動および停止できることを確認します。アップグレードの説明については、 項3.1.4を参照してください。

  5. 既存のクラスタからアップグレードする場合は、 /etc/cluster.confファイルをバックアップします。 アップグレードの説明については、項2.2 を参照してください。

  6. クラスタ設定ツールを起動してサービスを追加し、 2の手順にあるサービスのリソースと プロパティに関する情報を指定します。

  7. 設定を保存します。クラスタメンバー1つの設定保存は、自動的に 他のクラスタメンバーに伝搬します。

クラスタサービスの追加方法の詳細については、以下を参照してください。

3.1.1. サービス情報の収集

サービスの設定を行なう前に、サービスのリソースとプロパティに関して利用できる すべての情報を収集します。 場合によっては、サービスの複数のリソースを指定することもできます (たとえば、複数のIPアドレスとディスクデバイス)。

クラスタ設定ツールを使用して指定できる サービスのプロパティとリソースを表3-1に説明します。

プロパティ説明
サービス名各サービスには、固有な名前を付ける必要があります。サービス名は、1 - 63文字で指定し、英字(大文字または小文字)、整数、下線、ピリオド、ハイフンを組み合わせて ください。 サービス名の先頭の文字は、英字または下線にしてください
フェイルオーバーのドメイン

サービスを既存のフェイルオーバーのドメインと関連付ける ことによりそのサービスを実行するメンバーを識別します。
優先順位があるフェイルオーバーを有効にすると、 サービス実行中のメンバーに障害が発生した場合、サービスは自動的に 優先順位一覧にある次の順位のメンバーに再配置されます。(優先の順位は、 フェイルオーバーのドメイン一覧にあるメンバー名の順序で定められます)。 詳細については、項2.9を参照してください。

間隔のチェックメンバーが、サービスに関連付けられているアプリケーションの状態をチェックする頻度(秒単位)を指定します。 たとえば、NFSまたはSambaサービスにゼロ以外の間隔のチェックを指定すると、 Red Hat クラスタ マネージャは、必要なNFSまたはSambaデーモンが実行されていることをチェックします。 他のサービスタイプの場合は、アプリケーションサービススクリプトのstatus句を呼び出したときに返されたステータスをチェックします。 デフォルトでは、間隔のチェックは0になっており、 これはサービスの監視は無効であることを示します。
ユーザースクリプト必要に応じて、サービスの起動、停止に使用するスクリプトのフルパス名を指定します。詳細については、項3.1.2を参照してください。
IP address

サービスに割り当てる1つまたは複数のIPアドレスです。このIPアドレス(「フローティング」IPアドレスとも言われる)は、フェイルオーバー発生時にサービスのリソースとともに自動的に再配置されるため、メンバーのホスト名Ethernetインターフェースに関連付けられているIPアドレスとは異なります。クライアントがこのIPアドレスを使用してサービスにアクセスした場合、クライアントはどのメンバーがサービスを実行しているか把握することはできず、フェイルオーバーはクライアントに対して透過的になります。
クラスタメンバーは、サービスで使用されている各IPアドレスのIPサブネット内に設定されているネットワークインターフェースカードを持っている必要があります。
各IPアドレスのネットマスクとブロードキャストアドレスを指定することもできます。指定しなかった場合、クラスタはサブネット内のネットワーク相互接続のネットマスクとブロードキャストアドレスを使用します。

デバイス特殊ファイルサービスで使用する各共有ディスクパーティションを指定します。
ファイルシステムと共有オプション

サービスがファイルシステムを使用している場合は、 ファイルシステムのタイプ、マウントポイント、マウントオプションを指定します。 mount(8)のmanページで説明されている標準的なファイルシステムマウントオプションはすべて指定できます。 rawデバイスのマウント情報を指定する必要はありません(サービスで使用している場合)。 ext2及びext3ファイルシステムはクラスタに対してサポートされています。
ファイルシステムの強制アンマウントを有効にするかどうかを指定します。 強制アンマウントを有効にすると、クラスタサービス管理インフラストラクチャは、 ファイルシステムがビジー状態であっても、再配置やフェイルオーバーをする前に、 ファイルシステムをアンマウントすることができます。 これは、ファイルシステムにアクセスしているすべてのアプリケーションを終了する ことによって実行されます。
NFSセットのアクセス許可を介してファイルシステムをエクスポートするかどうか 指定することもできます。詳細については、項5.1 を参照してください。
Samba共有名を与えて、ファイルシステムをSamba経由でSMBクライアントに アクセス可能にさせるかどうかを指定します。

表 3-1. サービスのプロパティとリソースの情報

3.1.2. サービススクリプトの作成

クラスタインフラストラクチャは、サービス固有のスクリプトを実行して、指定したアプリケーションへのサービスを起動および停止します。NFSサービスおよびSambaサービスでは、関連付けられているスクリプトはクラスタサービスインフラストラクチャに組み込まれています。したがって、クラスタ設定ツールを実行してNFSおよびSambaサービスを設定する場合は、 ユーザースクリプトフィールドは空白のままにします。他のアプリケーションタイプでは、サービススクリプトを指定する必要があります。たとえば、データベースアプリケーションを設定するときには、対応するデータベース起動スクリプトの完全修飾パス名を指定します。

サービススクリプトの形式は、System V initスクリプトが 従っている規約に準じます。この規約は、スクリプトにstartstopstatus句が含まれていることを 規定しています。これらは、成功時に終了ステータス0 を返します。

あるクラスタメンバーでサービスが起動できないと、 Red Hat クラスタ マネージャ は他のクラスタメンバーでサービスを起動しようと試みます。 他のクラスタメンバーがそのサービスを起動できなかった場合、 Red Hat クラスタ マネージャ はすべてのメンバーでそのサービスを停止しようと試みます。 なんらかの理由でサービスを停止できないと、クラスタインフラストラクチャは サービスを失敗しましたに配置します。 管理者はそのサービスを有効にする前に、 まずクラスタステータスツールを起動し、 失敗したサービスをハイライト、オフにするをクリックする 必要があります。

停止および起動機能の実行に加え、サービススクリプトはアプリケーションサービスのモニタリングにも使用されます。モニタリングは、サービススクリプトのstatus句を呼び出して実行します。サービスのモニタリングを有効にするには、クラスタ設定ツールでサービスの プロパティを指定する際に、間隔のチェックにゼロ以外の 値を指定します。サービススクリプトへのステータスチェック要求によってゼロ以外の 終了値が返された場合、クラスタインフラストラクチャは、 まずアプリケーションが以前実行されていたメンバー上でアプリケーションの再起動を試みます。ステータス機能は、サービススクリプトに完全に実装する必要はありません。 スクリプトがモニタリングを実行しなかった場合、 成功したことを返すスタブstatus句が存在するようになります。

アプリケーションのstatus句で実行されるこの操作は、アプリケーションのニーズとサイト固有のパラメータに最適なようにカスタマイズできます。たとえば、データベースの単純なステータスチェックには、データベースのプロセスが実行されているかどうかの確認が含まれます。より包括的なチェックには、データベーステーブルの照会が含まれます。

/usr/share/cluster/doc/services/examplesディレクトリには、サービススクリプトを作成するためのテンプレートと、サンプルスクリプトが含まれています。 サンプルスクリプトについては、項4.1項4.3第6章 を参照してください。

3.1.3. サービスのディスクストレージの設定

サービスを作成する前に、サービスが使用する共有ファイルシステムと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.4. アプリケーションソフトウェアとサービススクリプトの確認

サービスを設定する前に、クラスタ内の各メンバー (または、フェイルオーバーのドメインを使用する場合は、その各メンバー)のサービスで 使用するアプリケーションをインストールします。アプリケーションをインストールしたら、 それが実行できること、共有ディスクストレージにアクセスできることを確認します。 データの破損を防止するために、 複数のメンバーで同時にアプリケーションを実行しないでください。

スクリプトを使用してサービスアプリケーションを起動および停止する場合は、 すべてのクラスタシステムにスクリプトをインストールしてテストし、 アプリケーションを起動および停止できることを確認してください。 詳細については、項3.1.2 を参照してください。