Sun Cluster 3.0 のシステム管理

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

表 3-2 作業マップ : クラスタファイルシステムの管理

作業 

参照箇所 

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

- newfsmakedir を使用します。

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

クラスタファイルシステムを削除します。 

- fuserumount を使用します。

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

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

- sccheck を使用します。

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

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

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


注意 - 注意 -

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


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

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


    ヒント -

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


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


    # newfs raw-disk-device
    

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

    表 3-3 raw ディスクデバイス名の例

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

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

    説明 

    Solstice DiskSuite 

    /dev/md/oracle/rdsk/d1

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

    VERITAS Volume Manager 

    /dev/vx/rdsk/oradg/vol01

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

    なし 

    /dev/global/rdsk/d1s3

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

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

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


    # mkdir -p /global/device-group/mount-point
    
    device-group

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

    mount-point

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


    ヒント -

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


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

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

    2. 次の必須マウントオプションを使用します。

      • global マウントオプションは、すべてのクラスタファイルシステムに必要です。このオプションにより、ファイルシステムをクラスタファイルシステムとして扱うように指定します。

      • ファイルシステムロギングは、すべてのクラスタファイルシステムに必要です。UFS ロギングは、Solaris DiskSuite メタトランスデバイスを使用して実行するか、直接 Solaris UFS マウントオプションを使用して実行できます。ただし、これらの方法は組み合わせて使用するべきではありません。Solaris UFS ロギングを直接使用する場合は、logging マウントオプションを使用する必要があります。一方、メタトランスファイルシステムロギングを使用する場合は、他のマウントオプションは不要です。

    3. 各クラスタファイルシステムについて、/etc/vfstab エントリの情報が、このエントリを持つ各ノードで同一であることを確認します。

    4. ファイルシステムの起動順序の依存関係に注意します。

      通常、クラスタファイルシステムについては、マウントポイントを入れ子にしないでください。たとえば、phys-schost-1/global/oracle にディスクデバイス d0 をマウントし、phys-schost-2/global/oracle/logs にディスクデバイス d1 をマウントするとします。この構成では、phys-schost-1 が起動して /global/oracle をマウントした後でなければ、phys-schost-2 が起動して /global/oracle/logs をマウントすることはできません。

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

      たとえば、phys-schost-1phys-schost-2 がデバイス d0d1d2 に物理的に接続されている場合は、各 /etc/vfstab ファイルのエントリは d0d1d2 の順に記載されている必要があります。

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

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


    # sccheck
    

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

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


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

    df(1M) または mount(1M) のどちらかのコマンドを使用して、マウントされたファイルシステムの一覧を表示できます。

例 - クラスタファイルシステムの追加

次に、Solstice DiskSuite メタデバイス /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
[保存して終了する]
 
[任意のノードで実行する]
# sccheck
 
# mount /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 1999

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

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


注 -

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


クラスタファイルシステムをマウント解除するには以下が必要です。

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

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


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


    # fuser -c [ -u ] mount-point
    
    -c

    ファイルシステムのマウントポイントにあたるファイルと、マウントされているファイルシステム内にあるファイルを報告します。

    -u

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

    mount-point

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

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

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


    # fuser -c -k mount-point
    

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

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


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


    # umount mount-point
    
    mount-point

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

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

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

  8. (任意) ディスクデバイスグループ、メタデバイス、プレックスを削除します。

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

例 - クラスタファイルシステムの削除

次に、Solstice DiskSuite メタデバイス /dev/md/oracle/rdsk/d1 にマウントされている UFS クラスタファイルシステムを削除する例を示します。


# mount -v
...
/global/oracle/d1 on /dev/md/oracle/dsk/d1 read/write/setuid/global/logging/largefiles on Sun Oct  3 08:56:16 1999
# 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
[保存して終了]

注 -

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


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

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


注 -

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


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

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


    # sccheck
    

ディスクデバイスグループからノードを削除する (Solstice DiskSuite)

次の手順で、Solstice DiskSuite を実行中のディスクデバイスグループ (ディスクセット) からクラスタノードを削除します。

  1. 削除するノードがメンバーになっているディスクデバイスグループを確認します。


    # scstat -D
    
  2. ノードが削除されるディスクデバイスグループを現在所有しているノードでスーパーユーザーになります。

  3. ディスクデバイスグループから、削除するノードのホスト名を削除します。

    ノードを削除する各ディスクデバイスグループに対してこの手順を繰り返します。


    # metaset -s setname -d -f -h node
    
    -s setname

    ディスクデバイスグループ (ディスクセット) の名前を指定します。

    -f

    強制的に実行します。

    -d

    ディスクデバイスグループから削除します。

    -h nodelist

    ディスクデバイスグループをマスターできるノードの一覧からノードを削除します。


    注 -

    更新が完了するまでに数分間かかることがあります。


  4. ディスクデバイスグループからノードが削除されたことを確認します。

    ディスクデバイスグループの名前は、metaset で指定したディスクセットの名前に一致します。


    # scstat -D
    

例 - ディスクデバイスグループからのノードの削除 (SDS)

次に、ディスクデバイスグループ (メタセット) からホスト名を削除し、ノードがディスクデバイスグループから削除されたことを確認する例を示します。この例では単一のディスクデバイスグループから 1 つのノードを削除する場合を示していますが、1 つのノードは同時に複数のディスクデバイスグループに所属できます。ノードを削除する各ディスクデバイスグループに対して、metaset コマンドを繰り返します。


[ノードのディスクデバイスグループを確認する] 
# scstat -D 
  -- Device Group Servers -- 
                      Device Group  Primary       Secondary
                      ------------  -------       ---------
  Device group servers: dg-schost-1  phys-schost-1  phys-schost-2 
[スーパーユーザになる] 
[すべてのディスクデバイスグループからホスト名を削除する] 
# metaset -s dg-schost-1 -d -f -h phys-schost-2 
[ノードが削除されたことを確認する] 
# scstat -D 
  -- Device Group Servers -- 
                       Device Group  Primary       Secondary 
                       ------------  -------       --------- 
  Device group servers: dg-schost-1  phys-schost-1  -

ディスクデバイスグループからノードを削除する (VERITAS Volume Manager)

次の手順で、VERITAS Volume Manager (VxVM) を実行中の既存のディスクデバイスグループ (ディスクセット) からクラスタノードを削除します。

  1. 削除するノードがメンバーになっているディスクデバイスグループを確認します。


    # scstat -D
    
  2. 現在のクラスタメンバーノードでスーパーユーザーになります。

  3. scsetup ユーティリティを実行します。


    # scsetup
    

    「Main Menu」が表示されます。

  4. 3 (Device groups and volumes) を入力し、ディスクデバイスグループを再構成します。

  5. 5 (Remove a node from a VxVM device group) を入力し、VxVM ディスクデバイスグループからノードを削除します。

    プロンプトに従って、ディスクデバイスグループからクラスタノードを削除します。次の情報を入力するよう求められます。

    VxVM デバイスグループ

    ノード名

  6. VxVM ディスクデバイスグループからノードが削除されたことを確認します。


    # scstat -D	
      ...
      Device group name: devicegroupname
      Device group type: VxVM
      Device group failback enabled: no
      Device group node list: nodename
      Diskgroup name: diskgroupname
      ...

例 - ディスクデバイスグループからのノードの削除 (VxVM)

次に、phys-schost-4 という名前のノードを VxVM ディスクデバイスグループ dg1 から削除する例を示します。


[ノードのディスクデバイスグループを確認する] 
# scstat -D 
  -- Device Group Servers -- 
                       Device Group  Primary        Secondary 
                       ------------  -------        --------- 
  Device group servers: dg-schost-1  phys-schost-1  phys-schost-2 
[スーパーユーザーになって scsetup ユーティリティを実行する] 
# scsetup 
[オプション 3 を選択する] 
*** Main Menu *** 
    Please select from one of the following options: 
      ... 
      3) Device groups and volumes 
      ... 
    Option: 3 
[オプション 5 を選択する] 
*** Device Groups Menu *** 
    Please select from one of the following options: 
      ... 
      5) Remove a node from a VxVM device group 
      ... 
    Option:  5 
[プロンプトが表示されたら質問に答える] 
>>> Remove a Node from a VxVM Device Group <<< 
    ... 
    Is it okay to continue (yes/no) [yes]? 
yes 
    ... 
    Name of the VxVM device group from which you want to remove a node?  dg1 
    Name of the node to remove from this group?  phys-schost-4 
    Is it okay to proceed with the update (yes/no) [yes]? yes 
  
scconf -r -D name=dg1,nodelist=phys-schost-4 
  
    Command completed successfully. 
    Hit ENTER to continue:

[scsetup の「Device Groups Menu」と「Main Menu」を終了する]
    ...
    Option:  q
[ノードが削除されたことを確認する]
# scstat -D
  ...
  Device group name: 		dg1
  Device group type: 	VxVM
  Device group failback enabled: 	no
  Device group node list: 	phys-schost-3
  Diskgroup name: 	dg1
  ...