Sun Cluster の PNM 機能は、障害監視とフェイルオーバーによって、単一のネットワークアダプタまたはケーブルの障害によってノードが使用できなくなる状況を防ぎます。PNM の障害監視は、ローカルノードモードまたは全クラスタモードで、ノード、ネットワークアダプタ、ケーブル、ネットワークトラフィックの状態を確認します。PNM フェイルオーバーは、「バックアップグループ」と呼ばれるネットワークアダプタセットを使用して、クラスタノードとパブリックネットワーク間に冗長接続を提供します。障害監視機能とフェイルオーバー機能は、サービス継続のため連携して動作します。
HA データサービスは、PNM の障害監視に依存します。そのため、構成に HA データサービスが含まれる場合は、PNM を有効にする必要があります。HA データサービスで可用性問題が発生すると、HA データサービスはその問題がパブリックネットワーク接続に関連したものであるかを確認するため、クラスタフレームワークを介して PNM に問い合わせます。パブリックネットワーク接続に関連している場合、データサービスは PNM が問題を解決するまで待ちます。パブリックネットワーク接続に関連していない場合、データサービスは独自のフェイルオーバー機構を呼び出します。
PNM パッケージ SUNWpnm は、Sun Cluster ソフトウェアの最初のインストール時にインストールされます。PNM に関連するコマンドを次に示します。
pnmset(1M) - クラスタを構成する前または後に PNM を設定する場合と、既存の PNM 構成の正確さを確認する場合に使用します。
pnmstat(1M) - ネットワークとアダプタの状態を確認するために使用します。
pnmconf(1M) - PNM ネットワークインタフェースの構成と状態を表示するために使用します。
pnmrtop(1M) - コマンドに指定する実際のアダプタ名 (hme2 など) に対応するバックアップグループ名または疑似アダプタ名 (nafo1 など) を表示します。
pnmptor(1M) - コマンドに指定する疑似アダプタ名またはバックアップグループ名 (nafo1 など) に対応する実際のアダプタ名 (hme2 など) を表示します。
pnmd(1M) - PNM デーモン。
詳細は、対応するマニュアルページを参照してください。
PNM は、クラスタ内の各ノードに対応するパブリックネットワークとネットワークアダプタの状態を監視し、疑わしい状態またはエラー状態を報告します。主アダプタ (現在、ノードとの間でネットワークトラフィックを伝送しているアダプタ) からの応答がないことを感知すると、PNM はそのノードのアダプタバックアップグループに存在する別の稼動アダプタに、ネットワークサービスをフェイルオーバーします。続いて、PNM は、アダプタとネットワークのどちらに障害が発生しているかを確認します。
アダプタ障害の場合、PNM は syslog(3) にエラーメッセージを送ります。このエラーメッセージは、次にクラスタマネージャによって検出され、GUI を介してユーザーに表示されます。障害が発生したアダプタは、修復された後、次のクラスタ再構成時にバックアップグループで自動的にテストされ回復されます。アダプタバックアップグループ全体がダウンしている場合には、Sun Cluster フレームワークはノードのフェイルオーバーを呼び出して、ノードを使用できる状態に保ちます。サブネット全体の障害のようにエラーが PNM 制御の範囲外で発生した場合には、通常のフェイルオーバーとクラスタ再構成が行われます。
PNM 監視は、クラスタ認識モードとクラスタ非認識モードで行われます。PNM は、クラスタが使用可能な場合、クラスタ認識モードで動作します。PNM は、クラスタ構成データベース (CCD) を使用して、ネットワークの状態を監視します (CCD の詳細は、『Sun Cluster 2.2 ソフトウェアのインストール』の概要の章を参照してください)。PNM は、CCD を使用して、パブリックネットワーク障害とローカルアダプタ障害を区別します。パブリックネットワーク障害によって起きる論理ホストのフェイルオーバーについては、「Sun Cluster の障害検証」を参照してください。
PNM は、クラスタが使用不可能な場合、クラスタ非認識モードで動作します。このモードでは PNM は CCD を使用できないため、PNM はアダプタ障害とネットワーク障害を区別できません。クラスタ非認識モードでは、PNM はローカルネットワーク接続の問題を検出するだけです。
パブリックネットワークとアダプタの状態は、PNM 監視コマンド pnmstat(1M) を使用して確認できます。詳細は、マニュアルページを参照してください。
バックアップグループは、単一のクラスタノードとパブリックネットワーク間に冗長接続を提供するネットワークアダプタセットです。バックアップグループは、最初のインストール時に scinstall(1M) コマンドを使用して構成するか、最初のインストールの後で pnmset(1M) コマンドを使用して構成します。冗長アダプタは、単一のホスト上にいくつでも構成できます。
バックアップグループを初めて構成する場合は、クラスタが起動する前に root として pnmset(1M) を実行します。このコマンドは、対話型のスクリプトとして動作し、バックアップグループの構成と検証を行います。このコマンドは、主 (アクティブ) アダプタとして使用されるアダプタの選択も行います。pnmset(1M) コマンドは、バックアップグループに nafon という名前を付けます (n はユーザーが割り当てる整数)。このコマンドは、バックアップグループ情報を /etc/pnmconfig ファイルに格納します。
クラスタノードの既存の PNM 構成を変更するには、クラスタからそのノードを削除し、続いて pnmset(1M) コマンドを実行する必要があります。PNM は、変更を監視して、バックアップグループメンバーシップにその変更を動的に組み入れます。
ソフトウェアのアップグレードなどの際に SUNWpnm パッケージが削除されても、/etc/pnmconfig ファイルは削除されません。つまり、ソフトウェアアップグレードが行われてもバックアップグループのメンバーシップ情報は維持されるため、バックアップグループメンバーシップの変更が必要ない場合は、pnmset(1M) ユーティリティを再実行する必要はありません。
バックアップネットワークアダプタを使用して PNM を構成する場合、/etc/nsswitch.conf ファイルに netmasks エントリとして次の 1 つを指定します。
表 6-1 /etc/nsswitch.conf ファイルのネームサービスエントリの選択
使用中のネームサービス |
netmasks エントリ |
---|---|
なし |
netmasks: files |
nis |
netmasks: files [NOTFOUND=return] nis |
nisplus |
netmasks: files [NOTFOUND=return] nisplus |
上記の設定が行われると、NIS/NIS+ ルックアップテーブルで netmasks 設定は照合されません。このことは、障害が発生したアダプタが主パブリックネットワークであり、そのため要求された情報を提供できない場合に重要な意味を持ちます。ネットマスクエントリが所定の方法で設定されない場合、バックアップアダプタに対するフェイルオーバーは成功しません。
上記の変更が行われると、ルックアップテーブルとしてローカルファイル /etc/netmasks と /etc/groups が使用されます。NIS/NIS+ サービスは、これらのローカルファイルが使用できない場合にだけ使用されます。そのため、これらのファイルはその NIS/NIS+ バージョンを使用して最新の状態に保つ必要があります。更新が行われないと、クラスタノードでこれらのファイル内の期待値にアクセスできなくなります。