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

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

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

表 4–3 Task Map: クラスタファイルシステムの管理

タスク 

参照箇所 

Sun Cluster の初期インストールの後で、クラスタファイルシステムを追加 

- newfs(1M)mkdir を使用します

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

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

- fuser(1M)umount(1M) を使用します

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

ノード間で一貫性を保つように、クラスタ内の広域マウントポイントを検査 

- sccheck(1M) を使用します

「クラスタ内の広域マウントを確認する」

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

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


注意 – 注意 –

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


クラスタファイルシステムを追加するには以下が必要です。

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

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


    ヒント –

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


  2. newfs コマンドを使用してファイルシステムを作成します。


    注 –

    newfs コマンドは、新しい UFS ファイルシステムを作成するときだけ有効です。新しい VxFS ファイルシステムを作成する場合は、VxFS マニュアルの手順に従ってください。



    # newfs raw-disk-device
    

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

    使用中のボリューム管理ソフトウェア 

    使用可能なディスクデバイス名 

    説明 

    Solstice DiskSuite/Solaris Volume Manager 

    /dev/md/oracle/rdsk/d1

    oracle メタセット内部の raw ディスクデバイス d1

    SPARC:VERITAS Volume Manager 

    /dev/vx/rdsk/oradg/vol01

    oradg ディスクグループ内部の raw ディスクデバイス vol01

    なし 

    /dev/global/rdsk/d1s3

    ブロックスライス d1s3 の raw ディスクデバイス

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

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


    ヒント –

    管理を行いやすくするには、マウントポイントを /global/device-group ディレクトリに作成します。これを使用することによって、広域に利用できるクラスタファイルシステムを、ローカルファイルシステムから簡単に判別できるようになります。



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

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

    mountpoint

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

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

    1. 以下の必須マウントオプションを使用します。


      注 –

      ロギングはすべてのクラスタファイルシステムに必要です。


      • Solaris UFS ロギング – global,logging マウントオプションを使用します。UFS マウントポイントの詳細については、mount_ufs(1M) のマニュアルページを参照してください。


        注 –

        syncdir マウントオプションは UFS クラスタファイルシステムには必要ありません。syncdir を指定すると、POSIX に準拠したファイルシステムの動作が保証されます。指定しない場合は、UFS ファイルシステムと同じ動作になります。syncdir を指定しない場合、ディスクブロックを割り当てる (つまり、データをファイルに追加するような) 書き込みの性能が大幅に向上します。ただし、場合によっては syncdir を指定しないと、ファイ ルを閉じるまで容量不足の状態を検出できません。syncdir を指定しないことで生じる問題はほとんどありません。syncdir (つまり、POSIX の動作) を指定した場合、空間不足状態はファイルを閉じる前に見つかります。


      • Solstice DiskSuite/Solaris Volume Manager トランスメタデバイスまたはトランザクションボリューム– global マウントオプションを使用します (logging マウントオプションを使用してはいけません)。トランスメタデバイスとトランザクションボリュームを設定する方法については、Solstice DiskSuite/Solaris Volume Manager のマニュアルを参照してください。


        注 –

        将来の Solaris リリースでは、トランザクションボリュームは Solaris オペレーティングシステムから削除される予定です。Solaris 8 リリースからサポートされている Solaris UFS ロギングは、トランザクションボリュームと同じ機能を備えており、より高い性能を提供します。UFS ロギングでは、システム管理の要件やオーバーヘッドが軽減されます。


      • VxFS ロギング – global および log マウントオプションを使用します。詳細は、VxFS ソフトウェアに付属の mount_vxfs のマニュアルページを参照してください。

    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 をマウントできます。

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

  5. クラスタ内にある任意のノード上で、マウントポイントが存在し、クラスタ内にあるすべてのノード上で /etc/vfstab ファイルのエントリが正しいことを確認します。


     # sccheck
    

    エラーがない場合は何も表示されません。

  6. クラスタ内にある任意のノードから、クラスタファイルシステムをマウントします。


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

    df または mount のいずれかのコマンドを使用し、マウントされたファイルシステムの一覧を表示します。

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


例 4–18 クラスタファイルシステムの追加

次に、Solstice DiskSuite/Solaris Volume Manager メタデバイスまたはボリューム /dev/md/oracle/rdsk/d1 上に UFS クラスタファイルシステムを作成する例を示します。


# newfs /dev/md/oracle/rdsk/d1
...
 
[各ノード上で以下のコマンドを実行:]
# mkdir -p /global/oracle/d1
 
# 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
[保存し、終了する]
 
[1 つのノード上で以下のコマンドを実行する:]
# sccheck
# mount /dev/md/oracle/dsk/d1 /global/oracle/d1
# mount
...
/global/oracle/d1 on /dev/md/oracle/dsk/d1 read/write/setuid/global/logging/largefiles
on Sun Oct 3 08:56:16 2001

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

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


注 –

クラスタファイルスシステムは、scshutdown(1M) を実行してクラスタ全体を停止したときに、システム停止処理の一環として自動的にマウント解除されます。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 を削除します。

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


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

次に、Solstice DiskSuite/Solaris Volume Manager メタデバイスまたはボリューム /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
 
(各ノードごとに強調表示されているエントリを削除する:)
# 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
[保存し終了する]

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


Procedureクラスタ内の広域マウントを確認する

sccheck(1M) ユーティリティーを使用して、/etc/vfstab ファイル内のクラスタファイルシステムのエントリの構文を確認します。エラーがない場合は何も表示されません。


注 –

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


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

  2. クラスタの広域マウントを確認します。


     # sccheck