Sun Cluster のシステム管理 (Solaris OS 版)

クラスタファイルシステムの管理

クラスタファイルシステムは、クラスタのどのノードからでも読み取りやアクセスが可能なグローバルなファイルシステムです。

表 5–5 作業リスト : クラスタファイルシステムの管理

作業 

参照先 

クラスタファイルシステムを Sun Cluster の最初のインストール後に追加する 

「クラスタファイルシステムを追加する」

クラスタファイルシステムを削除する 

「クラスタファイルシステムを削除する」

クラスタ内のグローバルマウントポイントをチェックして、ノード間の一貫性が保たれているかどうかを確認する 

「クラスタ内のグローバルマウントを確認する」

Procedureクラスタファイルシステムを追加する

次の作業は、Sun Cluster の初期インストール後に作成するクラスタファイルシステムごとに実行します。


注意 – 注意 –

必ず、正しいディスクデバイス名を指定してください。クラスタファイルシステムを作成すると、ディスク上のデータはすべて消去されます。デバイス名を誤って指定すると、本来消去する必要のないデータを失うことになります。


クラスタファイルシステムを追加する前に、次の必要条件が満たされていることを確認します。

Sun Cluster Manager を使用してデータサービスをインストールした場合は、クラスタファイルシステムがすでに自動的に作成されています (十分な共有ディスクが存在する場合)。

phys-schost# プロンプトは、グローバルクラスタのプロンプトを表します。この手順は、グローバルクラスタ上で実行します。

この手順では、長形式の Sun Cluster コマンドを使用して説明します。多くのコマンドには短縮形もあります。コマンド名の形式の長短を除き、コマンドは同一です。コマンドのリストとその短縮形については、付録 B Sun Cluster オブジェクト指向コマンドを参照してください。

  1. クラスタ内にある任意のノード上でスーパーユーザーになります。

    Solaris 10 OS 上で、グローバル以外のゾーンがクラスタで構成されている場合、グローバルゾーンからこの手順を実行してください。


    ヒント –

    ファイルシステムを迅速に作成するには、ファイルシステムを作成するグローバルデバイスの現在の主ノードでスーパーユーザーになります。


  2. ファイルシステムを作成する。


    Caution – Caution –

    ファイルシステムを作成するとき、ディスク上のデータは破壊されます。必ず、正しいディスクデバイス名を指定してください。間違ったデバイス名を指定した場合、削除するつもりのないデータが削除されてしまいます。


    • UFS ファイルシステムの場合は、newfs(1M) コマンドを使用します。


      phys-schost# newfs raw-disk-device
      

      下の表 に、引数 raw-disk-device の名前の例を挙げます。命名規約はボリューム管理ソフトウェアごとに異なるので注意してください。

      ボリューム管理ソフトウェア 

      ディスクデバイス名の例 

      説明 

      Solaris ボリュームマネージャー 

      /dev/md/nfs/rdsk/d1

      nfs ディスクセット内の raw ディスクデバイス d1

      Veritas Volume Manager 

      /dev/vx/rdsk/oradg/vol01

      oradg ディスクセット内の raw デバイス vol01

      なし 

      /dev/global/rdsk/d1s3

      raw ディスクデバイス d1s3

    • Veritas File System (VxFS) ファイルシステムの場合、VxFS ドキュメントに記載されている手順を実行してください。

  3. クラスタ内の各ノードで、クラスタファイルシステムのマウントポイントのディレクトリを作成します。

    そのノードからはクラスタファイルシステムにアクセスしない場合でも、マウントポイントはノードごとに必要です。


    ヒント –

    管理を行いやすくするには、マウントポイントを /global/device-group/ ディレクトリに作成します。この場所を使用すると、グローバルに利用できるクラスタファイルシステムとローカルファイルシステムを区別しやすくなります。



    phys-schost# mkdir -p /global/device-group/mountpoint/
    
    device-group

    デバイスが含まれるデバイスグループ名に対応するディレクトリ名を指定します。

    mountpoint

    クラスタファイルシステムのマウント先のディレクトリ名を指定します。

  4. クラスタ内の各ノードで、マウントポイント用の /etc/vfstabファイルにエントリを追加します。

    詳細については、vfstab(4) のマニュアルページを参照してください。


    注 –

    クラスタに非大域ゾーンが設定されている場合は、大域ゾーンのクラスタファイルシステムを必ず大域ゾーンのルートディレクトリのパスにマウントしてください。


    1. 各エントリで、使用する種類のファイルシステムに必要なマウントオプションを指定します。


      注 –

      Solaris ボリュームマネージャー トランザクションボリュームには、logging マウントオプションは使用しないでください。トランザクションボリュームでは、独自のロギングが実行されます。

      その他、Solaris ボリュームマネージャー トランザクションボリュームロギング が Solaris 10 OS.から削除されます。 Solaris UFS ロギング は、より低い管理条件とオーバーヘッドで、同様の機能を高いパフォーマンスで提供します。


    2. クラスタファイルシステムを自動的にマウントするには、mount at boot フィールドを yes に設定します。

    3. 各クラスタファイルシステムで、/etc/vfstab エントリの情報が各ノードで同じになるようにします。

    4. 各ノードの /etc/vfstab ファイルのエントリに、デバイスが同じ順序で表示されることを確認します。

    5. ファイルシステムの起動順の依存関係を検査します。

      たとえば、phys-schost-1 がディスクデバイス d0/global/oracle/ にマウントし、phys-schost-2 がディスクデバイス d1/global/oracle/logs/にマウントすると仮定します。この構成では、phys-schost-1 が起動され、/global/oracle/ がマウントされたあとにのみ、phys-schost-2 を起動し、/global/oracle/logs/ をマウントできます。

  5. クラスタの任意のノード上で、設定確認ユーティリティを実行します。


    phys-schost# cluster check -k vfstab
    

    設定確認ユーティリティは、マウントポイントが存在することを確認します。また、/etc/vfstab ファイルのエントリが、クラスタのすべてのノードで正しいことを確認します。エラーが発生していない場合は、何も戻されません。

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

  6. クラスタファイルシステムをマウントします。


    phys-schost# mount /global/device-group/mountpoint/
    
    • UFS の場合は、クラスタ内の任意のノードから、クラスタファイルシステムをマウントします。

    • VxFSの場合、 device-group の現在のマスタからクラスタファイルシステムをマウントして、ファイルシステムを確実にマウントします。

      さらに、VxFS ファイルシステムを正しく確実にマウント解除するには、device-group の現在のマスターからファイルシステムをマウント解除します。


      注 –

      VxFS クラスタファイルシステムを Sun Cluster 環境で管理するには、VxFS クラスタファイルシステムがマウントされている主ノードだけから管理コマンドを実行します。


  7. クラスタ内にある各ノード上で、クラスタファイルシステムがマウントされていることを確認します。

    df コマンドまたは mount コマンドのいずれかを使用し、マウントされたファイルシステムの一覧を表示します。詳細は、df(1M) マニュアルページまたは mount(1M) マニュアルページを参照してください。

    Solaris 10 OS の場合、クラスタファイルシステムは大域ゾーンおよび非大域ゾーンの両方からアクセスできます。


例 5–43 UFS クラスタファイルシステムの作成

次に、Solaris ボリュームマネージャー ボリューム /dev/md/oracle/rdsk/d1 上に、UFS クラスタファイルシステムを作成する例を示します。各ノードの vfstab ファイルにクラスタファイルシステムのエントリが追加されます。次に、1 つのノードから cluster check コマンドを実行します。 設定確認プロセスが正しく終了すると、1 つのノードからクラスタファイルシステムがマウントされ、全ノードで確認されます。


phys-schost# newfs /dev/md/oracle/rdsk/d1
…
phys-schost# mkdir -p /global/oracle/d1
phys-schost# vi /etc/vfstab
#device           device        mount   FS      fsck    mount   mount
#to mount         to fsck       point   type    pass    at boot options
#                     
/dev/md/oracle/dsk/d1 /dev/md/oracle/rdsk/d1 /global/oracle/d1 ufs 2 yes global,logging
…
phys-schost# cluster check -k vfstab
phys-schost# mount /global/oracle/d1
phys-schost# mount
…
/global/oracle/d1 on /dev/md/oracle/dsk/d1 read/write/setuid/global/logging/largefiles
on Sun Oct 3 08:56:16 2005

Procedureクラスタファイルシステムを削除する

クラスタファイルシステムを削除するには、単に、そのクラスタファイルシステムのマウントを解除します。データも削除する場合は、配下のディスクデバイス (またはメタデバイスかボリューム) をシステムから削除します。


注 –

クラスタファイスシステムは、cluster shutdown を実行してクラスタ全体を停止したときに、システム停止処理の一環として自動的にマウント解除されます。shutdown を実行して単独でノードを停止したときはマウント解除されません。なお、停止するノードが、ディスクに接続されている唯一のノードの場合は、そのディスク上のクラスタファイルシステムにアクセスしようとするとエラーが発生します。


クラスタファイルシステムをマウント解除する前に、次の必要条件が満たされていることを確認します。

  1. クラスタ内にある任意のノード上でスーパーユーザーになります。

  2. マウントされているクラスタファイルシステムを確認します。


    # mount -v
    
  3. 各ノードで、クラスタファイルシステムを使用中の全プロセスの一覧を表示し、停止するプロセスを判断します。


    # fuser -c [ -u ] mountpoint
    
    -c

    ファイルシステムのマウントポイントとなっているファイルと、マウントされているファイルシステム内のファイルがすべて表示されます。

    -u

    (任意) 各プロセス ID のユーザーログイン名を表示します。

    mountpoint

    プロセスを停止するクラスタファイルシステムの名前を指定します。

  4. 各ノードで、クラスタファイルシステムのプロセスをすべて停止します。

    プロセスは任意の方法で停止できます。必要であれば、次のコマンドを使用して、クラスタファイルシステムに関係するプロセスを強制終了してください。


    # fuser -c -k mountpoint
    

    クラスファイルシステムを使用している各ノードに SIGKILL が送信されます。

  5. 各ノードで、ファイルシステムを使用しているプロセスがないことを確認します。


    # fuser -c mountpoint
    
  6. 1 つのノードからファイルシステムをマウント解除します。


    # umount mountpoint
    
    mountpoint

    マウント解除するクラスタファイルシステムの名前を指定します。クラスタファイルシステムがマウントされているディレクトリの名前や、ファイルシステムのデバイス名パスを指定できます。

  7. (任意) /etc/vfstab ファイルを編集して、削除するクラスタファイルシステムのエントリを削除します。

    この手順は、/etc/vfstab ファイルにこのクラスタファイルシステムのエントリがある各クラスタノードで実行してください。

  8. (任意) ディスクデバイス group/metadevice/volume/plex を削除します。

    詳細については、ボリューム管理ソフトウェアのマニュアルを参照してください。


例 5–44 クラスタファイルシステムの削除

次に、Solaris ボリュームマネージャー メタデバイスまたはボリューム /dev/md/oracle/rdsk/d1 にマウントされた UFS クラスタファイルシステムを削除する例を示します。


# mount -v
...
/global/oracle/d1 on /dev/md/oracle/dsk/d1 read/write/setuid/global/logging/largefiles 
# fuser -c /global/oracle/d1
/global/oracle/d1: 4006c
# fuser -c -k /global/oracle/d1
/global/oracle/d1: 4006c
# fuser -c /global/oracle/d1
/global/oracle/d1:
# umount /global/oracle/d1
 
(On each node, remove the highlighted entry:)
# vi /etc/vfstab
#device           device        mount   FS      fsck    mount   mount
#to mount         to fsck       point   type    pass    at boot options
#                       
/dev/md/oracle/dsk/d1 /dev/md/oracle/rdsk/d1 /global/oracle/d1 ufs 2 yes global,logging

[Save and exit.]

クラスタファイルシステム上のデータを削除するには、配下のデバイスを削除します。詳細については、ボリューム管理ソフトウェアのマニュアルを参照してください。


Procedureクラスタ内のグローバルマウントを確認する

cluster(1CL)/etc/vfstab ファイルのユーティリティはクラスタファイルシステムのエントリ構文を検証します。エラーが発生していない場合は、何も戻されません。


注 –

クラスタファイルシステムの削除など、デバイスやボリューム管理コンポーネントに影響を及ぼすような変更をクラスタ構成に加えたあとに cluster check コマンドを実行します。


  1. クラスタ内にある任意のノード上でスーパーユーザーになります。

  2. クラスタのグローバルマウントを確認します。


    # cluster check -k vfstab