Sun Cluster Data Service for Network File System (NFS) ガイド (Solaris OS 版)

Sun Cluster HA for NFS の登録と構成

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


注 –

データサービスはここで説明するオプション以外のオプションを使用して登録と構成を行えます。これらのオプションの詳細は、『Sun Cluster データサービスの計画と管理 (Solaris OS 版)』「データサービスリソースを管理するためのツール」を参照してください。


Sun Cluster HA for NFS の登録と構成を行う前に、次のコマンドを実行して Sun Cluster HA for NFS パッケージの SUNWscnfs がクラスタにインストールされていることを確認してください。


# pkginfo -l SUNWscnfs

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

Sun Cluster HA for NFS 拡張プロパティーの設定

以下の各項ではリソースの登録と構成について説明します。Sun Cluster HA for NFS の拡張プロパティーについては、付録 A 「Sun Cluster HA for NFS 拡張プロパティー」 を参照してください。「調整可能」の欄には、そのプロパティーをいつ変更できるかが示されています。

リソースの拡張プロパティーを設定するには、リソースを作成または変更する scrgadm(1M) コマンドに次のオプションを含めます。


-x property=value 
-x property

設定する拡張プロパティーを指定します。

value

設定する拡張プロパティーの値を指定します。

リソースの作成後は、『Sun Cluster データサービスの計画と管理 (Solaris OS 版)』の第 2 章「データサービスリソースの管理」に示されている手順でリソースを構成できます。

ProcedureSun Cluster HA for NFS を登録して構成する

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

  2. すべてのクラスタノードがオンラインであることを確認します。


     # scstat -n
    
  3. Pathprefix ディレクトリを作成します。

    HA ファイルシステム (広域ファイルシステムまたはフェイルオーバーファイルシステム) 上に Pathprefix ディレクトリを作成します。Sun Cluster HA for NFS リソースは、このディレクトリを使用して管理情報を保持します。

    Pathprefix ディレクトリには任意のディレクトリを指定できます。ただし、作成するリソースグループごとに Pathprefix ディレクトリを手動で作成する必要があります。


    # mkdir -p Pathprefix-directory
    
  4. NFS リソースを含むフェイルオーバーリソースグループを作成します。


    # scrgadm -a -g resource-group -y Pathprefix=Pathprefix-directory [-h nodelist]
    -a

    新しい構成を追加することを指定します。

    -g resource-group

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

    -y Pathprefix= Pathprefix-directory

    このリソースグループ内のリソースが管理情報の保持に使用するディレクトリを指定します。これは、手順 3 で作成したディレクトリです。

    [-h nodelist]

    潜在マスターを識別する物理ノード名または ID をコンマで区切ったリストで指定します (省略可能)。この順序で、リソースグループマネージャー (RGM) は、フェイルオーバー時の主ノードを決定します。

  5. すべての論理ホスト名リソースがネームサービスデータベースに追加されているかどうかを確認します。

    ネームサービスの検索が原因で障害が発生するのを防ぐためには、 Sun Cluster HA for NFS によって使用される IP アドレスとホスト名のマッピングが、 サーバーおよびクライアントの /etc/inet/hosts ファイルに登録されていることを確認してください。この要件は、Sun Cluster HA for NFS によって使用される論理ホスト名の任意の IPMP テスト IP アドレスにも適用されます。

  6. クラスタノードの /etc/nsswitch.conf ファイルのネームサービスマッピングは、rpc 検索で NIS または NIS+ にアクセスする前に、最初にローカルファイルを検査するように構成します。

    このように構成することで、パブリックネットワークまたはネームサービスが利用できないとき、rpc 検索でのタイミング関連エラーを防止できます。

  7. 名前をローカルで解決する際、ホストが最初に NIS/DNS に問い合わせを行わず、代わりに成功した状態を直ちに返すように /etc/nsswitch.conf のホストエントリを変更します。

    このように変更することで、パブリックネットワークの障害時に HA-NFS は正しくフェイルオーバーできるようになります。


    # hosts: cluster files [SUCCESS=return] nis
    # rpc: files nis
    
  8. (省略可能) nfsd または lockd 起動オプションをカスタマイズします。

    1. nfsd オプションをカスタマイズするには、各クラスタノードで /etc/init.d/nfs.server ファイルを開きます。/usr/lib/nfs/nfsdで開始されるコマンド行を見つけて、希望する引数を追加します。

    2. lockd 起動オプションをカスタマイズするには、各クラスタノードで /etc/init.d/nfs.client ファイルを開きます。 /usr/lib/nfs/lockd で開始されるコマンド行を見つけて、希望する引数を追加します。

      Solaris 9 より、lockd 猶予期間は、/etc/default/nfs ファイルの LOCKD_GRACE_PERIOD パラメータで設定できます。ただし、猶予期間が /etc/init.d/nfs.client ファイルのコマンド行引数で設定されている場合は、その値が LOCKD_GRACE_PERIOD で設定されている値に優先します。


    注 –

    コマンド行は 1 行に収まるようにしてください。コマンド行を 2 行以上に分けることはできません。追加する引数は、nfsd(1M) および lockd(1M) のマニュアルページで説明されている有効なオプションである必要があります。


  9. フェイルオーバーリソースグループに必要な論理ホスト名リソースを追加します。

    この手順を行うには論理ホスト名リソースを設定する必要があります。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

    各ノード上の IP ネットワークマルチパス グループをコンマで区切って指定します (省略可能)。netiflist の各要素は、netif@node の形式にする必要があります。netif は IP ネットワークマルチパス グループ名 (sc_ipmp0 など) として指定できます。ノードは、ノード名またはノード ID (sc_ipmp0@1sc_ipmp@phys-schost-1 など) で識別できます。


    注 –

    現バージョンの Sun Cluster では、netif にアダプタ名を使用できません。


  10. 任意のクラスタノードから、SUNW.nfs サブディレクトリを作成します。

    手順 4Pathprefix プロパティーを使用して特定したディレクトリの下にサブディレクトリ SUNW.nfs を作成します。


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

    1. Pathprefix /SUNW.nfs/dfstab を作成します。resource ファイルを作成します。

      このファイルには、共有パス名が指定された一連の share コマンドが入ります。共有パスは、クラスタファイルシステム上のサブディレクトリになります。


      注 –

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


    2. 共有されるように作成した各パスに対し、共有オプションを設定します。

      このファイルで使用する書式は、/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

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

    共有オプションを設定する場合、以下の点を考慮してください。

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

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

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

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

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

    share -o rw コマンドは、Sun Cluster ソフトウェアが使用するホスト名を含むすべてのクライアントに対する書き込みアクセス権を付与します。このコマンドにより、 Sun Cluster HA for NFS 障害モニターの機能を最大限に有効利用できます。詳細は、各マニュアルページを参照してください。

    • dfstab(4)

    • share(1M)

    • share_nfs(1M)

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


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

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

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


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

    構成を追加することを指定します。

    -j resource

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

    -g resource-group

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

    -t resource-type

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

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

    • リソースと障害の監視を有効にします。

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

    • リソースグループをオンラインにします。


    # scswitch -Z -g resource-group
    

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

次の例では、Sun Cluster HA for NFS を設定して構成する方法を示します。

  1. 論理ホストリソースグループを作成し、NFS が使用する管理ファイルのパス (Pathprefix) を指定するには、次のコマンドを実行します。


    # scrgadm -a -g resource-group-1 -y Pathprefix=/global/nfs
    
  2. 論理ホストリソースグループに論理ホスト名リソースを追加するには、次のコマンドを実行します。


    # scrgadm -a -L -g resource-group-1 -l schost-1
    
  3. ディレクトリ構造に Sun Cluster HA for NFS 構成ファイルを含めるには、次のコマンドを実行します。


    # mkdir -p /global/nfs/SUNW.nfs
    
  4. nfs/SUNW.nfs ディレクトリの下に dfstab.resource ファイルを作成し、共有オプションを設定するには、次のコマンドを実行します。


    # share -F nfs -o rw=engineering -d “home dirs” nfs/SUNW.nfs
    
  5. NFS リソースタイプを登録するには、次のコマンドを実行します。


    # scrgadm -a -t SUNW.nfs
    
  6. リソースグループ内に NFS リソースを作成するには、次のコマンドを実行します。


    # scrgadm -a -j r-nfs -g resource-group-1 -t SUNW.nfs
    
  7. リソースとその監視を有効にしてリソースグループを管理し、リソースグループをオンライン状態に切り替えるには、次のコマンドを実行します。


    # scswitch -Z -g resource-group-1
    

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

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

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


注 –

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


また、共有パスとオプションは Sun Cluster HA for NFS リソースをオフラインにしないで動的に変更できます。「NFS File System 上の共有パスを動的に更新する」を参照してください。

Sun Cluster HA for NFS リソースのオフライン時に NFS ファイルシステム上で共有オプションを変更するには、次の手順を実行します。

手順
  1. クラスタノード上にインストールするクラスタノード上でスーパーユーザーになります。

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


    # scswitch -n -M -j resource
    
    -M

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

  3. 新しい share オプションをテストします。

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


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

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

      -o specific_options

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

      -d description

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

      pathname

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

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

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

    1. dfstab.resource ファイルからパスを削除する場合は、以下の手順を順に実行してください。

      1. unshare (1M) コマンドを実行します。


        # unshare -F nfs  [-o specific_options] pathname
        
        -F nfs

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

        -o specific_options

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

        pathname

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

      2. dfstab.resource ファイルから、削除したいパスの share コマンドを削除します。


        # vi dfstab.resource
        
    2. dfstab.resource ファイルにパスを追加する場合、またはこのファイルの既存のパスを変更する場合は、マウントポイントが正しいことを確認してから、dfstab.resource ファイルを編集します。


    注 –

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


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


    # scswitch -e -M -j resource
    

ProcedureNFS File System 上の共有パスを動的に更新する

NFS ファイルシステム上の共有パスは、Sun Cluster HA for NFS リソースをオフラインにすることなく動的に変更できます。この変更は、一般的に Sun Cluster HA for NFS の dfstab. resource ファイルを変更し、続いて該当するコマンド (share コマンドまたは unshare コマンド) を手動で実行することによって行います。このコマンドは直ちに有効になります。Sun Cluster HA for NFS はこれらのパスの利用度を大幅に高めます。

共有するパスは、フェイルオーバー時に Sun Cluster HA for NFS が常に利用できるようにしてください。これは、(HA ファイルシステム以外の) ローカルパスが使用されないようにするためです。

HAStoragePlus によって管理されるファイルシステムのパスが共有される場合、HAStoragePlus リソースは Sun Cluster HA for NFS リソースと同じリソースグループ内にある必要があり、それらの間の依存関係が正しく設定されている必要があります。

手順
  1. scstat -g コマンドを使用して、Sun Cluster HA for NFS リソースがオンラインであるノードを探します。

  2. このノードで /usr/sbin/share コマンドを実行し、現在共有されているパスの一覧を表示します。このリストをどのように変更するかを決定しておきます。

  3. 共有パスを追加するには、次の手順を実行します。

    1. dfstab. resource ファイルに share コマンドを追加します。

      Sun Cluster HA for NFS は次回ファイルを確認する際に新しいパスを共有します。これらの確認の頻度は、Thorough_Probe_Interval プロパティー (デフォルトでは 120 秒) によって制御されます。

    2. share コマンドを手動で実行し、追加したパスを直ちに有効にします。潜在的なクライアントが確実に共有パスを利用できるよう、コマンドを手動で実行することをお勧めします。Sun Cluster HA for NFS は、新しく追加されたパスがすでに共有されていることを検出し、とくに何の動作も行いません。

  4. 共有を解除するには、次の手順を実行します。

    1. dfmounts(1M) コマンドを実行し、現在クライアントがそのパスを使用していないことを確認します。

      クライアントがパスを使用していたとしても、そのパスの共有を解除できます。ただし、これらのクライアントは無効なファイルエラーハンドルを受け取り、回復するために特別な処理 (強制アンマウントまたは再起動) が必要となります。

    2. dfstab. resource ファイルから共有パスを削除します。

    3. unshare コマンドを手動で実行します。

  5. 既存の共有パスのオプションを変更するには、次の手順を実行します。

    1. 必要に応じ、dfstab.resource ファイルを変更します。

    2. 該当するコマンド (share または unshare ) を手動で実行します。

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

Sun Cluster HA for NFS メソッドが終了するために要する時間は、dfstab.resource ファイルに含まれる、リソースによって共有されるパスの数に依存します。これらのメソッドのデフォルトのタイムアウト値は、300 秒です。

一般には、共有される各パスのメソッドタイムアウト値に 10 秒を割り当てます。デフォルトのタイムアウトは 30 の共有パスを処理するように設計されています。

共有パスの数が 30 を超える場合は、次のメソッドのタイムアウト値を更新してください。

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


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

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

SUNW.HAStoragePlus リソースタイプは、Sun Cluster 3.0 5/02 から導入されました。この新しいリソースタイプは、SUNW.HAStorage と同じ機能を実行し、HA ストレージと Sun Cluster HA for NFS との間のアクションを同期します。SUNW.HAStoragePlus には、ローカルファイルシステムを高可用性にする追加機能があります。Sun Cluster HA for NFS は、フェイルオーバー機能を持ちディスク集約型であるため、SUNW.HAStoragePlus リソースタイプを設定する必要があります。

背景情報については、SUNW.HAStoragePlus(5) のマニュアルページと『Sun Cluster データサービスの計画と管理 (Solaris OS 版)』「リソースグループとディスクデバイスグループの関係」を参照してください。手順については、『Sun Cluster データサービスの計画と管理 (Solaris OS 版)』「リソースグループとディスクデバイスグループ間での起動の同期」を参照してください。5/02 以前の Sun Cluster 3.0 バージョンを使用している場合は、SUNW.HAStoragePlus ではなく SUNW.HAStorage を設定する必要があります。手順については、『Sun Cluster データサービスの計画と管理 (Solaris OS 版)』「リソースグループとディスクデバイスグループ間での起動の同期」を参照してください。)