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

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

この章では、Sun Cluster HA for Network File System (NFS) を Sun Cluster ノードにインストールして構成するための手順を説明します。

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

Sun Cluster HA for NFS は、フェイルオーバーデータサービスとして構成する必要があります。データサービス、リソースグループ、リソースなどの関連トピックについては、『Sun Cluster データサービスの計画と管理 (Solaris OS 版)』の第 1 章「Sun Cluster データサービスの計画」と『Sun Cluster の概念 (Solaris OS 版)』を参照してください。


注 –

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


Sun Cluster HA for NFS をインストールして構成する前に、『Sun Cluster データサービスの計画と管理 (Solaris OS 版)』「構成のワークシート」にあるワークシートを使用して、リソースとリソースグループについて計画してください。

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

Sun Cluster HA for NFS では、すべての NFS クライアントがハードマウントされている必要があります。

Sun Cluster ノードは、Sun Cluster HA for NFS によりエクスポートされ、同じクラスタ内のノードにマスターされているファイルシステムの NFS クライアントになることはできません。このような Sun Cluster HA for NFS のクロスマウントは禁止されています。クラスタノード間でファイルを共有するときは、クラスタファイルシステムを使用してください。

Solaris 9 より、クラスタ上の NFS に割り当てられたシステムリソースの管理に Solaris Resource Manager が使用される場合は、共通のクラスタノードにフェイルオーバーできる Sun Cluster HA for NFS リソースはすべて、 同じ Solaris Resource Manager プロジェクト ID を持つ必要があります。このプロジェクト ID は、Resource_project_name リソースプロパティーで設定します。


注意 – 注意 –

VERITAS Volume Manager (SPARC ベースのクラスタのみで使用可能) を使用すると、NFS フェイルオーバーの実行時にクライアントで発生する「stale file handle (無効なファイルハンドル)」エラーを防止できます。vxio ドライバの疑似デバイスメジャー番号が、すべてのクラスタノードで同一であることを確認してください。この番号は、インストールを完了したあと、/etc/name_to_major ファイルに記述されています。


Sun Cluster HA for NFS のインストールおよび構成プロセスの概要

インストール作業と構成作業を説明している節は以下のとおりです。

表 1 Task Map: 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 の登録と構成」

Kerberos V5 を使用した Sun Cluster HA for NFS の保護 

「Kerberos V5 を使用した Sun Cluster HA for NFS の保護」

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

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

SUNW.nfs リソースタイプのアップグレード

SUNW.nfs リソースタイプのアップグレード」

Sun Cluster HA for NFS のインストールと構成に関する計画

この節では、Sun Cluster HA for NFS のインストールと構成を計画する上で必要な情報を示します。

Service Management Facility の制限

Solaris 10 以降では、次の Service Management Facility (SMF) サービスは NFS に関連付けられています。

Sun Cluster HA for NFS データサービスは、次の 3 つのサービスについてはプロパティー application/auto_enableFALSE に、プロパティー startd/duration transient に設定します。

この 3 つのサービスでは、これらのプロパティー設定によって次の動作が生じます。

ループバックファイルシステムの制限

次の 2 つの状況を満たしている場合は、ループバックファイルシステム (LOFS) を使用しないでください。

これらの 2 つの状況を満たしている場合は、スイッチオーバー問題や障害を避けるため、LOFS を無効にする必要があります。これらの状況の一方だけを満たしている場合は、LOFS を有効にしても支障ありません。

LOFS と automountd デーモンの両方を有効にする必要がある場合は、Sun Cluster HA for NFS によってエクスポートされる高可用ローカルファイルシステムに含まれるファイルをすべて自動マウンタマップから除外してください。

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

Sun Cluster の初回のインストール時に Sun Cluster HA for NFS パッケージをインストールしなかった場合は、この手順でパッケージをインストールしてください。この手順は、Sun Cluster HA for NFS パッケージをインストールする各クラスタノード上で個別に実行します。この手順の実行には、Sun Cluster Agents CD が必要です。

同時に複数のデータサービスをインストールする場合は、『Sun Cluster ソフトウェアのインストール (Solaris OS 版)』「ソフトウェアのインストール」の手順を実行してください。

次のインストールツールのどちらかを使用して、Sun Cluster HA for NFS パッケージをインストールします。


注 –

Solaris 10 を使用している場合は、これらのパッケージを大域ゾーンにだけインストールしてください。パッケージをインストールしたあとで作成されたローカルゾーンにそれらのパッケージが転送されないようにするには、scinstall ユーティリティーを使用してパッケージをインストールしてください。Web Start プログラムは使用しないでください。


ProcedureWeb Start プログラムを使用して Sun Cluster HA for NFS パッケージをインストールする

Web Start プログラムは、コマンド行インタフェース (CLI) またはグラフィカルユーザーインタフェース (GUI) を使用して実行できます。CLI と GUI での作業の内容と手順はほとんど同じです。Web Start プログラムの詳細は、installer(1M) のマニュアルページを参照してください。

手順
  1. Sun Cluster HA for NFS パッケージをインストールするクラスタノード上で、スーパーユーザーになります。

  2. (省略可能) GUI で Web Start プログラムを実行する場合は、DISPLAY 環境変数が設定されていることを確認してください。

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

    ボリューム管理デーモン vold(1M) が実行されており、CD-ROM デバイスを管理するように構成されている場合は、デーモンによって CD-ROM が自動的に /cdrom/cdrom0 ディレクトリにマウントされます。

  4. CD-ROM の Sun Cluster HA for NFS コンポーネントディレクトリに切り替えます。

    Sun Cluster HA for NFS データサービスの Web Start プログラムは、このディレクトリに入っています。


    # cd /cdrom/cdrom0/components/SunCluster_HA_NFS_3.1
    
  5. Web Start プログラムを起動します。


    # ./installer
    
  6. プロンプトが表示されたら、インストールの種類を選択します。

    • C ロケールのみをインストールする場合は、「一般」を選択します。

    • ほかのロケールをインストールする場合は、「カスタム」を選択します。

  7. 表示される手順に従って、ノードに Sun Cluster HA for NFS パッケージをインストールします。

    インストールが終了すると、Web Start プログラムのインストールサマリーが出力されます。この出力を使用して、インストール時に Web Start によって作成されたログを確認できます。これらのログは、/var/sadm/install/logs ディレクトリにあります。

  8. Web Start プログラムを終了します。

  9. Sun Cluster Agents CD を CD-ROM ドライブから取り出します。

    1. CD-ROM が使用されないように、CD-ROM 上のディレクトリ以外に移動します。

    2. CD-ROM を取り出します。


      # eject cdrom
      
次の手順

「Sun Cluster HA for NFS の登録と構成」に進みます。

Procedurescinstall ユーティリティーを使用して Sun Cluster HA for NFS パッケージをインストールする

この手順は、Sun Cluster HA for NFS をマスターできるすべてのクラスタメンバーで実行してください。

始める前に

Sun Cluster Agents CD が存在することを確認します。

手順
  1. CD-ROM ドライブに Sun Cluster Agents CD をロードします。

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

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

  3. メニューオプション「新しいデータサービスのサポートをこのクラスタノードに追加」を選択します。

    scinstall ユーティリティーにより、ほかの情報を入力するためのプロンプトが表示されます。

  4. Sun Cluster Agents CD のパスを指定します。

    ユーティリティーはこの CD をデータサービス CD-ROM として示します。

  5. インストールするデータサービスを指定します。

    選択したデータサービスが scinstall ユーティリティーによって示され、選択を確定するように求められます。

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

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

次の手順

「Sun Cluster HA for NFS の登録と構成」に進みます。

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 版)』「リソースグループとディスクデバイスグループ間での起動の同期」を参照してください。)

Kerberos V5 を使用した Sun Cluster HA for NFS の保護

Kerberos V5 を使用した Sun Cluster HA for NFS は、Kerberos クライアントを構成することによって保護できます。この構成では、すべてのクラスタノード上で論理ホスト名に対する NFS の Kerberos 主体を追加する作業も行います。

Kerberos クライアントを構成するには、次の手順を実行します。

Procedureノードを準備する

手順
  1. クラスタノードによって使用される KDC (Key Distribution Center) サーバーを構成します。

    詳細は、Solaris Kerberos/SEAM (Sun Enterprise Authentication Mechanism) のマニュアルを参照してください。

  2. 時間の同期を設定します。

    KDC サーバーは、クラスタノードとの間と、クラスタの Sun Cluster HA for NFS サービスを利用するすべてのクライアントとの間で、時間の同期をとる必要があります。NTP (Network Time Protocol) メソッドはほかのメソッドよりもはるかに密な時間補正を行うため、時間同期の信頼性が高いと言えます。この高い信頼性のメリットを得るには、時間同期に NTP を使用してください。

  3. DNS クライアント構成の検証を行います。

    DNS クライアント構成は、すべてのクラスタノードと、クラスタのセキュア NFS サービスを利用するすべての NFS クライアント上で稼働する確実なものである必要があります。DNS クライアント構成の検証には resolv.conf(4) を使用してください。

    DNS ドメイン名は、krb5.conf(4) ファイルの domain_realm セクションに DNS ドメイン名をマッピングして、Kerberos 構成に認識させる必要があります。

    次に、Kerberos レルム (realm) ACME.COM に DNS ドメイン名 mydept.company.com をマッピングする例を示します。

    [domain_realm]
    .mydept.company.com = ACME.COM
  4. クラスタノード上に Kerberos クライアントソフトウェアを構成する場合は、Master KDC サーバーが稼働するようにします。

  5. 同一の構成ファイルと同一のサービスキーテーブルファイルがすべてのクラスタノードで利用できるようにします。

    /etc/krb5/krb5.conf ファイルは、すべてのクラスタノードで同じ構成にする必要があります。また、デフォルトの Kerberos キータブファイル (サービスキーテーブル) である /etc/krb5/krb5.keytab も、すべてのクラスタノードで同じ構成にする必要があります。これは、ファイルをすべてのクラスタノードにコピーするか、あるいは各ファイルの単一のコピーを広域ファイルシステム上に置き、すべてのクラスタノード上の /etc/krb5/krb5.conf/etc/krb5/krb5.keytab にシンボリックリンクをインストールすることによって実現できます。

    また、フェイルオーバーファイルシステムを使用し、すべてのクラスタノードでファイルが利用できるようにすることも可能です。しかし、フェイルオーバーファイルシステム上の各ファイルを認識できるのは、一度に 1 つのノードだけです。したがって、複数のノードでマスターされている可能性がある複数のリソースグループで Sun Cluster HA for NFS が使用されている場合は、すべてのクラスタノードファイルを認識できません。また、この構成では、Kerberos クライアントの管理作業が複雑になります。

  6. ファイル /etc/nfssec.conf 内のすべての Kerberos 関連エントリがコメント解除されていることを確認します。

    すべてのクラスタノードと、クラスタのセキュア NFS サービスを使用するように設定されたすべての NFS クライアント上で、ファイル /etc/nfssec.conf 内のすべての Kerberos 関連エントリがコメント解除される必要があります。nfssec.conf(4) を参照してください。

ProcedureKerberos 主体を作成する

次に、必要な Kerberos 主体とキータブのエントリを KDC データベース内に作成する手順を示します。サービス主体を作成するキータブエントリは、クラスタノードごとに、クラスタノードで使用されている Solaris のバージョンによって異なります。

論理ホスト名に対する 「nfs」サービスの主体は 1 つのノード上でだけ作成し、各クラスタノード上のデフォルトの Kerberos キータブファイルに追加します。Kerberos 構成ファイル krb5.conf とキータブファイル krb5.keytab は、広域ファイルシステム上で共有するのではなく、各クラスタノード上に個々のコピーとして保存する必要があります。

手順
  1. 各クラスタノードで管理者として KDC サーバーにログインし、クラスタノードごとにホスト主体を作成します。

    Solaris 8 では、クラスタノードごとにホスト主体とルート主体の両方を作成する必要があります。

    主体は、完全修飾されたドメイン名を使用して作成する必要があります。

    これらのエントリは、各ノードのデフォルトのキータブファイルに追加します。これらの作業は、クラスタコンソールユーティリティーを使用することで非常に簡単に行えます (cconsole(1M) を参照)。

    次に、ルートエントリとホストエントリを作成する例を示します。この手順は、すべてのクラスタノードで行います。 ホスト名の位置には、各クラスタノードの物理ホスト名を入れてください。


    # kadmin -p  username/admin
    Enter Password:
    kadmin: addprinc -randkey host/phys-red-1.mydept.company.com
    Principal "host/phys-red-1.mydept.company.com@ACME.COM" created.

    kadmin: addprinc -randkey root/phys-red-1.mydept.company.com
    Principal "root/phys-red-1.mydept.company.com@ACME.COM" created.

    kadmin: ktadd host/phys-red-1.mydept.company.com
    Entry for principal host/phys-red-1.mydept.company.com with kvno 2, 
    encryption type DES-CBC-CRC added to keytab WRFILE:/etc/krb5/krb5.keytab.

    kadmin: ktadd root/phys-red-1.mydept.company.com
    Entry for principal root/phys-red-1.mydept.company.com with kvno 2, 
    encryption type DES-CBC-CRC added to keytab WRFILE:/etc/krb5/krb5.keytab.

    kadmin: quit
    #
  2. 1 つのクラスタノードで、Sun Cluster HA for NFS サービスを提供する論理ホスト名に対する Sun Cluster HA for NFS サービスの主体を作成します。

    主体は、完全修飾されたドメイン名を使用して作成する必要があります。この手順は、1 つのクラスタノードでだけ行なってください。


    # kadmin -p  username/admin
    Enter Password:
    kadmin: addprinc -randkey nfs/relo-red-1.mydept.company.com
    Principal "nfs/relo-red-1.mydept.company.com@ACME.COM" created.

    kadmin: ktadd -k /var/tmp/keytab.hanfs nfs/relo-red-1.mydept.company.com
    Entry for principal nfs/relo-red-1.mydept.company.com with kvno 3, 
    encryption type DES-CBC-CRC added to keytab WRFILE:/var/tmp/keytab.hanfs.

    kadmin: quit
    #

    上記の例では、relo-red-1 は Sun Cluster HA for NFS で使用される論理ホスト名です。

  3. 安全な方法を使用して、手順 2 で指定したキータブデータベース /var/tmp/keytab.hanfs をほかのクラスタノードにコピーします。

    安全でないコピー手段 (通常使用される ftprcp など) は使用しないでください。クラスタ独自のインターコネクトを使用してデータベースをコピーすれば、安全性がさらに高まります。

    次に、データベースをコピーする例を示します。


    # scp /var/tmp/keytab.hanfs clusternode2-priv:/var/tmp/keytab.hanfs
    # scp /var/tmp/keytab.hanfs clusternode3-priv:/var/tmp/keytab.hanfs
    
  4. すべてのクラスタノードで、論理ホスト名に対する「nfs」サービスのキータブエントリをローカルキータブデータベースに追加します。

    次の例では、ktutil(1M) コマンドを使用してエントリを追加しています。一時的なキータブファイル /var/tmp/keytab.hanfs は、デフォルトのキータブデータベース /etc/krb5/krb5.keytab に追加したあとで、すべてのクラスタノードで削除してください。


    # ktutil
    ktutil: rkt /etc/krb5/krb5.keytab
    ktutil: rkt /var/tmp/keytab.hanfs
    ktutil: wkt /etc/krb5/krb5.keytab
    ktutil: quit#
    # rm /var/tmp/keytab.hanfs
    
  5. Kerberos クライアント構成の検証を行います。

    各クラスタノードでデフォルトのキータブエントリを表示し、「nfs」サービス主体のキーバージョン番号 (KVNO) がすべてのクラスタノードで同じであることを確認してください。


    # klist -k
    Keytab name: FILE:/etc/krb5/krb5.keytab
    KVNO Principal
    ---- ---------------------------------
    2    host/phys-red-1.mydept.company.com@ACME.COM
    2    root/phys-red-1.mydept.company.com@ACME.COM
    3    nfs/relo-red-1.mydept.company.com@ACME.COM

    論理ホストに対する「nfs」サービスの主体は、すべてのクラスタノードで同じ KVNO 番号を持つ必要があります。上記の例では、論理ホストに対する「nfs」サービスの主体は nfs/relo-red-1.mydept.company.com@ACME.COM で、KVNO は 3 です。

  6. (Solaris 9 のみ) ユーザー資格情報データベース gsscred は、クラスタからセキュア NFS サービスにアクセスするすべてのユーザーについて最新の状態でなければなりません。

    ユーザー資格情報データベースは、すべてのクラスタノードで次のコマンドを実行して構築してください。


    # gsscred -m kerberos_v5 -a
    

    詳細は、gsscred(1M) のマニュアルページを参照してください。

    上記の方法は、ユーザー資格情報データベースを一度だけ構築するものです。ユーザー群の変化に合わせてこのデータベースのローカルコピーを最新状態に維持するには、ほかのメカニズム (cron(1M) など) を使用する必要があります。

    この手順は、Solaris リリース 10 には不要です。

セキュア NFS の有効化

ファイルシステムを安全に共有するためには、dfstab. resource-name エントリで share(1M) コマンドの -o sec=option オプションを使用してください。具体的なオプション設定の詳細は、nfssec(5) のマニュアルページを参照してください。Sun Cluster HA for NFS リソースをすでに構成し、実行している場合は、「NFS ファイルシステムの共有オプションを変更する」dfstab.resource-name ファイル内のエントリの更新に関する情報を参照してください。Sun Cluster 構成では sec=dh オプションはサポートされないことに注意してください。

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

Sun Cluster HA for NFS 障害モニターは、リソースタイプが SUNW.nfs であるリソースに含まれます。

障害モニターの動作についての概要は、『Sun Cluster データサービスの計画と管理 (Solaris OS 版)』「Sun Cluster データサービス用に障害モニターを調整する」を参照してください。

障害モニターの起動

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

障害モニターの停止

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

Sun Cluster HA for NFS 障害モニターの検証中の動作

この節では、以下の障害監視プロセスの動作について説明します。

NFS システム障害監視プロセス

NFS システム障害モニターの検証機能は、ローカルノード上の NFS デーモン (nfsdmountdstatdlockd) と RPC ポートマッパーサービスデーモン (rpcbind) を監視します。この検証機能は、プロセスの存在と、NULL rpc 呼び出しに対するその応答を調べます。このモニターは、次の NFS 拡張プロパティーを使用します。

「Sun Cluster HA for NFS 拡張プロパティーの設定」を参照してください。

各 NFS システム障害モニターの検証サイクルでは、次の作業が順に行われます。システムプロパティー Cheap_probe_interval は、検証の間隔を指定します。

  1. 障害モニターが rpcbind を検証します。

    プロセスが不意に終了したが、デーモンのウォームリスタートが実行中の場合、rpcbind は引き続きほかのデーモンを検証します。

    プロセスが不意に終了した場合、障害モニターはそのノードを再起動します。

    デーモンに対する NULL rpc 呼び出しが不意に終了した場合 (Rpcbind_nullrpc_reboot =TrueFailover_mode =HARD)、障害モニターはノードを再起動します。

  2. 障害モニターは、まず statd を検証し、続いて lockd を検証します。

    statd または lockd が不意に終了した場合、システム障害モニターは両デーモンの再起動を試みます。

    これらのデーモンに対する NULL rpc 呼び出しが不意に終了した場合、障害モニターは syslog にメッセージを記録しますが、statdlockd を再起動しません。

  3. 障害モニターは、mountd を検証します。

    mountd が不意に終了した場合、障害モニターはデーモンの再起動を試みます。

    デーモンに対する NULL rpc 呼び出しが不意に終了し、 Mountd_nullrpc_restart= True の場合、クラスタファイルシステムが利用可能であれば、障害モニターは mountd の再起動を試みます。

  4. 障害モニターは、nfsd を検証します。

    nfsd が不意に終了した場合、障害モニターはデーモンの再起動を試みます。

    デーモンに対する NULL rpc 呼び出しが不意に終了し、Nfsd_nullrpc_restart=TRUE の場合、クラスタファイルシステムが利用可能であれば、障害モニターは nfsd の再起動を試みます。

  5. rpcbind を除き、上記 NFS デーモンのうちいずれかが検証サイクル中の再起動に失敗した場合、NFS システム障害モニターは、次のサイクルの再開を再度試みます。すべての NFS デーモンが再起動され、状態が正常の場合には、リソースの状態は再び ONLINE に設定されます。モニターは、最後の Retry_interval での NFS デーモンの予期せぬ終了を追跡します。デーモンの予期せぬ終了の合計数が Retry_count に到達した場合、システム障害モニターは scha_control ギブオーバー (中止) を発行します。ギブオーバー呼び出しに失敗した場合、モニターは失敗した NFS デーモンの再起動を試みます。

  6. 各検証サイクルの最後で、すべてのデーモンが正常であれば、モニターは失敗の履歴を消去します。

NFS リソース障害監視プロセス

NFS リソース障害監視は、各 NFS リソースに固有の障害モニターです。各リソースの障害モニターは、リソースによってエクスポートされるファイルシステムを、各共有パスの状態を調べることで監視します。

NFS リソース障害モニター検証を開始する前に、すべての共有パスが dfstab ファイルから読み取られ、メモリーに格納されます。各検証サイクルにおいて、検証機能は次の作業を実行します。

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

    dfstab ファイルの読み取り中にエラーが発生した場合、リソースの状態は FAULTED に設定され、モニターは、現在の検証サイクル内のチェックの残りをとばします。

  2. 障害モニターは、パスに対して stat() を実行することで、すべての共有パスを繰り返し検証します。

    問題のあるパスが見つかると、リソースの状態は FAULTED に設定されます。

  3. 検証機能は、NFS デーモン (nfsdmountdlockdstatd) および rpcbind の存在を確認します。

  4. これらのデーモンのいずれかが停止している場合、リソースの状態は FAULTED に設定されます。

  5. 共有パスがすべて有効で、NFS デーモンが存在する場合、リソースの状態は ONLINE にリセットされます。

ファイル共有の監視

Sun Cluster HA for NFS 障害モニター検証は、次のファイルを監視することによってファイル共有の成否を監視します。

これらのファイルのどれかに変化があったことを検出した場合、検証機能は dfstab.resource 内のパスを再び共有します。

SUNW.nfs リソースタイプのアップグレード

次のような場合は、SUNW.nfs リソースタイプをアップグレードしてください。

リソースタイプをアップグレードする一般的な手順については、『Sun Cluster データサービスの計画と管理 (Solaris OS 版)』「リソースタイプの更新」を参照してください。このあと、このリソースタイプのアップグレードを完了するために必要な情報を示します。

新しいリソースタイプバージョンの登録に関する情報

Sun Cluster データサービスのリリースは、リソースタイプが導入されたバージョンを表します。

登録されているリソースタイプのバージョンを調べるには、次のどちらかのコマンドを使用します。

このリソースタイプに対応するリソースタイプ登録 (RTR) ファイルは、/opt/SUNWscnfs/etc/SUNW.nfs です。

リソースタイプの既存インスタンスの移行に関する情報

このリソースタイプの各インスタンスを編集するために必要な情報は、次のとおりです。

次に、SUNW.nfs リソースタイプのインスタンスを変更するコマンドの例を示します。


例 2 SUNW.nfs リソースタイプのインスタンスの移行


# scrgadm -c -j nfs-rs -y Type_version=3.1 \

このコマンドは、nfs-rs リソースの Type_version プロパティーを 3.1 に変更します。