Sun Cluster 3.0 U1 データサービスのインストールと構成

第 7 章 Sun Cluster HA for Network File System (NFS) のインストールと構成

この章では、Sun Cluster に Sun Cluster HA for Network File System (NFS) データサービスをインストールして構成する手順と、Sun Cluster ソフトウェアがすでに実行されているシステムに Sun Cluster HA for NFS データサービスを追加する手順を説明します。

この章の内容は次のとおりです。

Sun Cluster HA for NFS データサービスは、フェイルオーバーサービスとして構成する必要があります。データサービス、リソースグループ、リソース、関連事項については、第 1 章「Sun Cluster データサービスの計画」および『Sun Cluster 3.0 U1 の概念』を参照してください。


注 -

このデータサービスのインストールと構成には、SunPlex Manager が使用できます。詳細は、SunPlex Manager のオンラインヘルプを参照してください。


Sun Cluster HA for NFS データサービスをインストールして構成する前に、『Sun Cluster 3.0 U1 ご使用にあたって』にあるワークシートを使用し、リソースとリソースグループについて計画してください。

Sun Cluster HA for NFS データサービスの制御下に置かれる NFS ファイルシステムのマウントポイントは、これらのファイルシステムを含むディスクデバイスグループをマスターできるすべてのノードで同じにする必要があります。


注 -

ネームサービスの検索が原因で障害が発生するのを防ぐために、サーバーの /etc/hosts ファイルに、すべての論理ホスト名が登録されていることを確認してください。サーバーの /etc/nsswitch.conf ファイルのネームサービスマッピングは、NIS または NIS+ にアクセスする前に、最初にローカルファイルを検査するように構成してください。このように構成することで、タイミングに関連するエラーを防止でき、ifconfig および statd が正しく論理ホスト名を解決できます。



注 -

NFS のフェイルオーバー中にクライアント上で「stale file handle (無効なファイルハンドル)」エラーの発生を防止するには、VERITAS Volume Manager を使用している場合は、すべてのクラスタノード上で、vxio ドライバが同じ疑似デバイスメジャー番号を持つようにしてください。この番号は、インストールを完了した後、/etc/name_to_major ファイルに記述されています。


Sun Cluster HA for NFS のインストールと構成

表 7-1 に、インストールと構成作業について説明している節を示します。

表 7-1 作業マップ: Sun Cluster HA for DNS のインストールと構成

作業 

参照個所 

Sun Cluster HA for NFS パッケージのインストール 

「Sun Cluster HA for NFS パッケージのインストール」

Sun Cluster HA for NFS データサービスの設定と構成 

「Sun Cluster HA for NFS の設定と構成」

リソース拡張プロパティの構成 

「Sun Cluster HA for NFS 拡張プロパティの構成」

障害モニターの情報の表示 

「Sun Cluster HA for NFS の障害モニター」

Sun Cluster HA for NFS パッケージのインストール

scinstall(1M) ユーティリィティは、 Sun Cluster HA for NFS データサービスパッケージ (SUNWscnfs) をクラスタにインストールします。このときに、非対話型の scinstall にすべてのデータサービスパッケージをインストールする -s オプションを指定しないでください。

Sun Cluster のインストール時に SUNWscnfs データサービスパッケージをすでにインストールしている場合は、「Sun Cluster HA for NFS の設定と構成」に進んでください。まだインストールしていない場合は、次の手順に従って SUNWscnfs パッケージをインストールします。

Sun Cluster HA for NFS パッケージをインストールする

この手順を実行するには、Sun Cluster Agents CD が必要です。Sun Cluster HA for NFS データサービスを実行できるすべてのクラスタノードで、この手順を実行してください。

  1. Agents CD を CD-ROM ドライブに挿入します。

  2. オプションは指定せずに、scinstall ユーティリティを実行します。

    scinstall ユーティリティが対話型モードで起動します。

  3. 「Add support for new data service to this cluster node.」メニューオプションを選択します。

    このオプションにより、CD 内に存在するのと同数のデータサービスソフトウェアを読み込むことができます。

  4. scinstall ユーティリティを終了します。

  5. ドライブから CD を取り出します。

次の作業

Sun Cluster HA for NFS データサービスを登録し、データサービス用にクラスタを構成するには、「Sun Cluster HA for NFS の設定と構成」を参照してください。

Sun Cluster HA for NFS の設定と構成

この手順では、scrgadm(1M) コマンドを使って Sun Cluster HA for NFS データサービスの登録と構成を行う方法を説明します。


注 -

このデータサービスの登録と構成は、他のいくつかの方法でも行うことができます。これらの方法については、「データサービスリソースを管理するためのツール」を参照してください。


Sun Cluster HA for NFS データサービスを設定して構成する前に、次のコマンドを使用し、Sun Cluster HA for NFS パッケージの SUNWscnfs がクラスタにインストールされていることを確認してください。


# pkginfo -l SUNWscnfs

パッケージがインストールされていない場合は、「Sun Cluster HA for NFS パッケージのインストール」を参照してください。

Sun Cluster HA for NFS を設定する

  1. クラスタメンバーでスーパーユーザーになります。

  2. クラスタ内のすべてのノードが起動されて稼動していることを確認します。


    # scstat
    
  3. NFS リソースを含むフェイルオーバーリソースグループを作成します。


    注 -

    この際に、Sun Cluster HA for NFS リソースグループの Pathprefix を定義する必要があります。Pathprefix は、Sun Cluster HA for NFS データサービスが管理や状態の情報を維持するディレクトリです。これには任意のディレクトリを指定できますが、クラスタファイルシステムにディレクトリを作成する必要があります。



    # scrgadm -a -g resource-group -y Pathprefix=/global/admin-dir
    

    注 -

    admin-dir ディレクトリは、クラスタファイルシステム上になければなりません。これはユーザーが作成する必要があります。


    -a -g resource-group

    指定したフェイルオーバーリソースグループを追加します。

    -y Pathprefix=path

    Sun Cluster HA for NFS の管理ファイルが使用する、クラスタファイルシステム上のディレクトリを指定します (例: /global/nfs)。Pathprefix は、作成した各リソースグループで一意にする必要があります。

  4. 使用するすべての論理ホスト名がネームサービスデータベースに登録されていることを確認します。

    Sun Cluster のインストール時に、この確認を行います。詳細は、『Sun Cluster 3.0 U1 ソフトウェアのインストール』の計画に関する章を参照してください。


    注 -

    ネームサービスの検索が原因で障害が発生するのを防ぐために、サーバーおよびクライアントの /etc/hosts ファイルに、すべての論理ホスト名が登録されていることを確認してください。サーバーの /etc/nsswitch.conf のネームサービスマッピングは、NIS または NIS+ にアクセスする前に、最初にローカルファイルを検査するように構成してください。このように構成することで、タイミングに関連するエラーを防止でき、ifconfig および statd が正しく論理ホスト名を解決できます。


  5. 希望する論理ホスト名リソースをフェイルオーバーリソースグループに追加します。

    この手順で、LogicalHostname リソースを設定する必要があります。Sun Cluster HA for NFS でデータサービス使用されるホスト名が、SharedAddress リソースになることはありません。


    # scrgadm -a -L -g resource-group -l logical-hostname, ... [-n netiflist]
    -a -L -g resource-group

    論理ホスト名リソースを配置するフェイルオーバーリソースグループを指定します。

    -l logical-hostname, ...

    追加するネットワークリソース (論理ホスト名) を指定します。

    -n netiflist

    各ノード上の NAFO グループをコンマで区切って指定します (オプション)。netiflist は、リソースグループの nodelist にあるすべてのノードを包含していなければなりません。このオプションを指定しないと、scrgadm(1M) が、netiflist のノードごとに、hostname リストに指定されているサブネットからネットアダプタの発見を試みます。

  6. クラスタの任意のノードから、NFS 構成ファイル用のディレクトリ構造を作成します。

    手順 3Pathprefix プロパティで指定したディレクトリの下に、管理サブディレクトリを作成してください (例: /global/nfs/SUNW.nfs)。


    # mkdir Pathprefix/SUNW.nfs
  7. 手順 6 で作成した SUNW.nfs ディレクトリに dfstab.resource ファイルを作成し、共有オプションを設定します。

    たとえば、一連の共有パス名と共有コマンドが含まれる Pathprefix/SUNW.nfs/dfstab.resource を作成します。共有パスは、クラスタファイルシステム上のサブディレクトリになります。

    作成する予定の NFS リソース (手順 9) を指定する resource-name 接尾辞を選択します。リソース名は、そのリソースが実行するタスクを表す名前にします。たとえば、ユーザーのホームディレクトリを共有する NFS には、user-nfs-home という名前にします。

    共有されるように作成した各パスに対し、共有オプションを設定します。このファイルで使用する書式は、/etc/dfs/dfstab ファイルで使用される書式と同じです。


    share [-F nfs] [-o] specific_options [-d "description"] pathname 
    
    -F nfs

    ファイルシステムタイプを nfs に指定します。

    -o specific_options

    オプションについては、share(1M) のマニュアルページを参照してください。Sun Cluster には、rw オプションを推奨します。このコマンドは、読み取りと書き込みアクセス権をすべてのクライアントに付与します。

    -d description

    追加するファイルシステムについての説明です。

    pathname

    共有するファイルシステムを指定します。

    Tshare -o rw コマンドは、Sun Cluster ソフトウェアが使用するホスト名を含む、すべてのクライアントに書き込みアクセスを付与し、Sun Cluster HA for NFS 障害モニターが最も効果的に動作するようにします。詳細は、各マニュアルページを参照してください。

    • dfstab(4)

    • share(1M)

    • share_nfs(1M)

    share コマンドでクライアントリストを指定する場合は、クラスタが接続するすべてのパブリックネットワーク上のすべてのクライアント用のホスト名のほかに、そのクラスタと関連付けられるすべての物理ホスト名と論理ホスト名を含めてください。

    share コマンドで、個々のホスト名を使用する代わりにネットグループを使用する場合は、これらすべてのクラスタホスト名を適切なネットグループに追加してください。


    注 -

    クラスタインターコネクト上のホスト名にアクセス権を付与しないでください。


    Sun Cluster HA for NFS による監視が十分に機能できるように、読み取りと書き込みの両方のアクセス権をすべてのクラスタノードに付与してください。ただし、ファイルシステムへの書き込みを制限したり、ファイルシステム全体を読み取り専用にすることはできます。この場合、Sun Cluster HA for NFS 障害モニターは、書き込みアクセス権なしで監視を実行できます。


    注 -

    共有オプションを構成するときは、root オプションの使用と、rorw オプションを組み合わせて使用することは避けてください。


  8. NFS リソースタイプを登録します。


    # scrgadm -a -t resource-type
    
    -a -t resource-type

    指定したリソースタイプを追加します。Sun Cluster HA for NFS データサービスの場合、リソースタイプは SUNW.nfs です。

  9. NFS リソースをフェイルオーバーリソースグループに作成します。


    # scrgadm -a -j resource -g resource-group -t resource-type
    
    -a

    リソースを追加します。

    -j resource

    手順 7 で定義した、追加するリソースの名前を指定します。任意の名前を指定できますが、クラスタ内で一意にする必要があります。

    -g resource-group

    このリソースが追加される、作成済みのリソースグループの名前を指定します。

    -t resource-type

    このリソースが属するリソースタイプの名前を指定します。この名前は、登録されているリソースタイプの名前にする必要があります。

  10. scswitch(1M) コマンドを実行して次の作業を行います。

    • リソースとリソースモニターを有効にする。

    • リソースグループを管理状態にする。

    • リソースグループをオンライン状態に切り替える。


    # scswitch -Z -g resource-group
    

例 - Sun Cluster HA for NFS の設定と構成

次に、Sun Cluster HA for NFS データサービスを設定して構成する例を示します。


(論理ホストリソースグループを作成し、NFS (Pathprefix) が使用する管理ファイルへのパスを指定する)
# scrgadm -a -g resource-group-1 -y Pathprefix=/global/nfs
 
(論理ホスト名リソースを論理ホストリソースグループに追加する)
# scrgadm -a -L -g resource-group-1 -l schost-1
 
(Sun Cluster HA for NFS 構成ファイルを含むディレクトリ構造を作成する)
# mkdir -p /global/nfs/SUNW.nfs
 
(dfstab.resource ファイルを nfs/SUNW.nfs ディレクトリの下に作成し、共有オプションを設定する)
 
(NFS リソースタイプを登録する)
# scrgadm -a -t SUNW.nfs
 
(NFS リソースをリソースグループに作成する)
# scrgadm -a -j r-nfs -g resource-group-1 -t SUNW.nfs
 
(リソースとそのモニターを有効にし、リソースグループを管理し、リソースグループをオンライン状態に切り替える)
# scswitch -Z -g resource-group-1

次の作業

NFS ファイルシステムの共有オプションを設定するには、「NFS ファイルシステムの共有オプションを変更する」を参照してください。拡張プロパティを表示または設定するには、「Sun Cluster HA for NFS 拡張プロパティの構成」を参照してください。

NFS ファイルシステムの共有オプションを変更する

share -o コマンドで rwrw=roro= オプションを使用する場合は、すべての物理ホストまたはすべての Sun Cluster サーバーと関連付けられる netgroups にアクセス権を付与してください。NFS 障害モニターが効果的に動作します。

share(1M) コマンドで、netgroups を使用する場合は、Sun Cluster のすべてのホスト名を適切な netgroup に追加してください。理想的には、読み取りと書き込みの両方のアクセス権をすべての Sun Cluster ホスト名に付与し、NFS 障害検証機能が正常に動作するようにします。.


注 -

共有オプションを変更する前に、share_nfs(1M) のマニュアルページを参照し、有効なオプションの組み合わせを理解してください。


  1. クラスタノードのスーパーユーザーになります。

  2. NFS リソースの障害モニターを無効にします。


    # scswitch -n -M -j resource
    
    -M

    リソースモニターを無効にします。

  3. 新しく設定した share コマンドを実行します。

    新しい共有オプションで dfstab.resource ファイルを編集する前に、新しい share コマンドでオプションの組み合わせが有効であることを確認してください。


    # share -F nfs [-o] specific_options [-d "description"] pathname
    
    -F nfs

    ファイルシステムタイプを NFS に指定します。

    -o specific_options

    オプションを指定します。読み取りと書き込みの両方のアクセス権をすべてのクライアントに付与する rw の使用を推奨します。

    -d description

    追加するファイルシステムについての説明です。

    pathname

    共有するファイルシステムを指定します。

    新しい share コマンドの実行に失敗した場合は、直ちに以前のオプションを使用してもう一度 share コマンドを実行してください。新しい share コマンドが正しく実行された場合は、手順 4へ進んでください。

  4. 新しい共有オプションを使用し、dfstab.resource ファイルを編集します。

    このファイルで使用する書式は、/etc/dfs/dfstab ファイルで使用する書式と同じです。各行は、share コマンドから成ります。

  5. (省略可能) dfstab.resource ファイルからパスを削除する場合は、unshare(1M) コマンドを実行してから、そのパスの share コマンドを dfstab.resource ファイルから削除します。


    # unshare [-F nfs] [-o rw] pathname
    # vi dfstab.resource
    
    -F nfs

    ファイルシステムタイプを NFS に指定します。

    -o options

    NFS ファイルシステム固有のオプションを指定します。

    pathname

    無効にするファイルシステムを指定します。

  6. (省略可能) dfstab.resource ファイルにパスを追加する場合、またはこのファイルの既存のパスを変更する場合は、マウントポイントが正しいことを確認してから、手順 3手順 4 へ進んでください。

  7. NFS リソースで障害モニターを有効にします。


    # scswitch -e -M -j resource
    

Sun Cluster HA for NFS メソッドのタイムアウトを調整する

Sun Cluster HA NFS メソッドが終了するために要する時間は、dfstab.resource ファイルに含まれる、リソースによって共有されるパスの数に依存します。これらのメソッドのデフォルトのタイムアウト値は、300 秒です。単純に、各共有パスのメソッドタイムアウト値に 10 秒を割り当てます。デフォルトのタイムアウトは、30 の共有パスを処理するように設計されているため、共有パスの数が 30 未満の場合には、タイムアウト値を短かくしないでください。

ただし、共有パスの数が 30 を超える場合は、共有パスの数に 10 を掛けて、推奨するタイムアウト値を計算してください。たとえば、 dfstab.resource ファイルに共有パスが 50 含まれている場合は、推奨するタイムアウト値は 500 秒です。

次のメソッドタイムアウトを変更します。

Prenet_start_timeoutPostnet_stop_timeoutMonitor_Start_timeout
Start_timeoutValidate_timeoutMonitor_Stop_timeout
Stop_timeoutUpdate_timeoutMonitor_Check_timeout

メソッドタイムアウトを変更するには、次のように、scrgadm-c オプションを使用します。


% scrgadm -c -j resource -y Prenet_start_timeout=500

SUNW.HAStorage リソースタイプを構成する

SUNW.HAStorage リソースタイプは、データサービスHA 記憶装置とデータサービス間の動作を同期させます。Sun Cluster HA for NFS データサービスはディスクに負荷がかかることが多いので、SUNW.HAStorage リソースタイプを設定することを強く推奨します。

このリソースタイプの詳細については、SUNW.HAStorage(5) のマニュアルページおよび「リソースグループとディスクデバイスグループの関連性」を参照してください。設定手順については、「新しいリソース用に SUNW.HAStorage リソースタイプを設定する」を参照してください。

Sun Cluster HA for NFS 拡張プロパティの構成

通常、拡張プロパティは、NFS リソースを作成するときにコマンド行から scrgadm -x parameter=value を実行して構成します。拡張プロパティは、第 11 章「データサービスリソースの管理」に示す手順を使って後で構成することもできます。Sun Cluster HA for NFS データサービスの拡張プロパティは必須ではありません。すべての Sun Cluster プロパティについての詳細は、付録 A 「標準プロパティ」を参照してください。

表 7-2 に、Sun Cluster HA for NFS データサービス用に構成できる拡張プロパティを示します。拡張プロパティによっては、動的に更新できるものもあります。それ以外の拡張プロパティは、リソースを作成するときにしか更新できません。次の表の「調整」列は、各プロパティをいつ更新できるかを示しています。

表 7-2 Sun Cluster HA for NFS 拡張プロパティ

名前/データタイプ 

デフォルト 

範囲 

調整 

説明 

Lockd_ nullrpc_ timeout (整数)

120

最小 = 60 

任意の時点 

lockd を検証するときに使用するタイムアウト値 (秒)。

Monitor_ retry_ count (i整数)

4

0 - 2,147,483,641

 

-1 は、再試行の数が無限であることを示す。 

任意の時点 

Monitor_retry_ interval プロパティで指定された時間の範囲内に、プロセスモニター機能 (PMF) が障害モニターを再起動する回数。このプロパティは、障害モニターの再起動について制御するのであって、リソースの再起動を制御するわけではありません。リソースの再起動は、システム定義プロパティの Retry_interval および Retry_count によって制御されます。これらのプロパティについては、scrgadm(1M) のマニュアルページを参照してください。

Monitor_ retry_ interval (整数)

2

0 - 2,147,483,641

 

-1 は、再試行の間隔が無限であることを示す。 

任意の時点 

障害モニターの失敗がカウントされる期間 (分)。この期間内に、障害モニターの失敗の数が、拡張プロパティ Monitor_retry_count で指定した値を超えた場合、PMF は障害モニターを再起動しません。

Mountd_ nullrpc_ restart (ブール値)

True

なし 

任意の時点 

ヌルの rpc 呼び出しに失敗したときに mountd を再起動するかどうかを指定するブール値。

Mountd_ nullrpc_ timeout (integer)

120

最小 = 60 

任意の時点 

mountd の検証時に使用するタイムアウト値 (秒)。

Nfsd_ nullrpc_ restart (ブール値)

True

なし 

任意の時点 

ヌルの rpc 呼び出しに失敗したときに nfsd を再起動するかどうかを指定するブール値。

Nfsd_ nullrpc_ timeout (整数)

120

最小 = 60 

任意の時点 

nfsd の検証時に使用するタイムアウト値 (秒)。

Rpcbind_ nullrpc_ reboot (ブール値)

True

なし 

任意の時点 

rpcbind でのヌルの rpc 呼び出しに失敗したときに、システムを再起動するかどうかを指定するブール値。

Rpcbind_ nullrpc_ timeout (整数)

120

最小 = 60 

任意の時点 

rpcbind の検証時に使用するタイムアウト値 (秒)。

Statd_ nullrpc_ timeout (整数)

120

最小 = 60 

任意の時点 

statd の検証時に使用するタイムアウト値 (秒)。

Sun Cluster HA for NFS の障害モニター

Sun Cluster HA for NFS の障害モニターは、次の2 つの部分から成ります。

障害モニターの起動

NFS システム障害モニターは、NFS リソースの起動メソッドによって起動されます。この起動メソッドは、最初に NFS システム障害モニター (nfs_daemons_probe) がプロセスモニター pmfadm 下ですでに実行されているかどうかを調べます。実行されていない場合は、起動メソッドは、プロセスモニターの制御下で nfs_daemons_probe プロセスを起動します。その後、同様に、プロセスモニターの制御下でリソース障害モニター (nfs_probe) を起動します。

障害モニターの停止

NFS リソースの Monitor_stop メソッドは、リソース障害モニターを停止します。また、ローカルノード上で他に NFS リソース障害モニターが実行されていない場合は、NFS システム障害モニターも停止します。

NFS システム障害モニタープロセス

システム障害モニターは、プロセスの存在および NULL rpc 呼び出しへの応答を調べることで、rpcbindstatdlockdnfsdmountd を検証します。このモニターは、次の NFS 拡張プロパティを使用します。

Rpcbind_nullrpc_timeoutLockd_nullrpc_timeout
Nfsd_nullrpc_timeoutRpcbind_nullrpc_reboot
Mountd_nullrpc_timeoutNfsd_nullrpc_restart

Statd_nullrpc_timeout

Mountd_nullrpc_restart

拡張プロパティの検討や設定については、「Sun Cluster HA for NFS 拡張プロパティの構成」を参照してください。

各システム障害モニターの検証サイクルにおいて、次のことを行います。

  1. Cheap_probe_interval の間、休止します。

  2. rpcbind を検証します。

    プロセスが異常停止しており、Failover_mode=HARD の場合は、システムを再起動します。

    NULL rpc 呼び出しに失敗し、Rpcbind_nullrpc_reboot=True および Failover_mode=HARD の場合は、システムを再起動します。

  3. statdlockd を検証します。

    いずれかのデーモンが停止している場合は、両方のデーモンを再起動します。

    NULL rpc 呼び出しに失敗した場合は、メッセージが syslog に記録されますが、再起動はしません。

  4. mountdmountd を検証します。

    プロセスが停止している場合は、そのプロセスを再起動します。

    NULL rpc 呼び出しに失敗し、クラスタファイルシステムデバイスが利用可能で拡張プロパティ Mountd_nullrpc_restart=True の場合は、mountd を再起動します。

NFS デーモンのうち、いずれかのデーモンの再起動に失敗すると、すべてのオンライン NFS リソースの状態が FAULTED に設定されます。すべての NFS デーモンが再起動され、状態が正常の場合には、リソースの状態は再び ONLINE に設定されます。

NFS リソースモニタープロセス

リソースモニター検証を開始する前に、すべての共有パスが dfstab ファイルから読み取られ、メモリーに格納されます。各検証サイクルでは、パスの stat() を実行することで、各繰り返しですべての共有パスが検証されます。

各リソースモニターの障害検証において、次のことを行います。

  1. Thorough_probe_interval の間、休止します。

  2. 最後の読み取り以降に dfstab が変更されている場合は、メモリーをリフレッシュします。

  3. パスの stat() を実行することで、すべての共有パスを各繰り返しで検証します。

問題のあるパスが見つかると、リソースの状態は FAULTED に設定されます。すべてのパスが正常に動作すると、リソースの状態は再び ONLINE になります。