問題の概要: Sun Cluster HA for NFS では、/etc/nsswitch.conf ファイルの hosts 検索エントリに files [SUCCESS=return] が設定されている必要があり、さらに、すべてのクラスタのプライベート IP アドレスが、すべてのクラスタノード上にある /etc/inet/hosts ファイルに存在する必要がある。
そうでない場合、パブリックネットワークに障害が発生したときに、Sun Cluster HA for NFS は正しくフェイルオーバーできない。
回避方法:クラスタの各ノードで次の作業を実行します。
/etc/nsswitch.conf ファイルの hosts エントリを変更して、ローカルで名前を解決できたときには即座に成功を戻して、NIS や DNS に問い合わせないようにします。
hosts: cluster files [SUCCESS=return] nis dns |
すべてのクラスタのプライベート IP アドレス用のエントリを /etc/inet/hosts ファイルに追加します。
追加する必要がある IP アドレスは、/etc/nsswitch.conf ファイルと /etc/inet/hosts ファイルにある物理プライベートインタフェース上に plumb されている IP アドレスだけです。論理 IP アドレスはすでに、クラスタの nsswitch ライブラリで解決可能です。
物理プライベート IP アドレスのリストを表示するには、次のコマンドを任意のクラスタノード上で実行します。
% grep ip_address /etc/cluster/ccr/infrastructure |
このリスト内の各 IP アドレスは、一意な (ドメイン内にある他のどのドメイン名とも衝突しない) ホスト名に割り当てられている必要があります。
Sun Cluster ソフトウェアでは、HA IP アドレス (LogicalHostname/SharedAddresses) がすべてのクラスタノード上にある /etc/inet/hosts ファイルに存在する必要があり、さらに、files が nis または dns よりも前に存在する必要があります。このバグのために追加された条件としては、[SUCCESS=return] を files の後に指定する必要があり、さらに、すべてのクラスタのプライベート IP アドレスを /etc/inet/hosts ファイルに指定する必要があります。