Sun Cluster 3.1 のシステム管理

メタデバイスにあったルート (/) ファイルシステムを復元する (Solstice DiskSuite/Solaris Volume Manager)

この手順を使用し、バックアップ実行時にメタデバイスに存在していたルート (/) ファイルシステムを復元します。この手順は、破損したルートディスクを新しいディスクに交換する場合などに実行します。復元するノードは起動しないでください。復元手順を実行する前に、クラスタが正常に動作していることを確認してください。


注 –

新しいディスクは、障害の発生したディスクと同じ形式でパーティション分割する必要があります。この手順を始める前に、パーティションの分割方式を確認し、ファイルシステムを適切に再作成しておいてください。


  1. 復元するノード以外で、メタセットへのアクセスを持つクラスタノード上でスーパーユーザーになります。

  2. 復元するノードのホスト名をすべてのメタセットから削除します。


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

    -s setname

    メタセット名を指定します。

    -f

    強制的に実行します。

    -d

    メタセットから削除します。

    -h nodelist

    メタセットから削除するノードの名前を指定します。

  3. ルート (/) ファイルシステムを復元するノードで、障害の発生したディスクを交換します。

    ディスク交換手順については、サーバーに付属のマニュアルを参照してください。

  4. 復元するノードを起動します。

    • Solaris CD-ROM を使用している場合は、次のコマンドを実行します。


      ok boot cdrom -s
      

    • JumpStart サーバーを使用している場合は、次のコマンドを実行します。


      ok boot net -s
      

  5. format(1M) コマンドを使用し、ルートディスクのすべてのパーティションとスワップを作成します。

    障害の発生したディスクに存在していた元のパーティションの分割方式を再作成します。

  6. newfs(1M) コマンドを使用し、必要に応じてルート (/) ファイルシステムやその他のファイルシステムを作成します。

    障害の発生したディスクに存在していた元のファイルシステムを再作成します。


    注 –

    /global/.devices/node@nodeid ファイルシステムが作成されていることを確認します。


  7. ルート (/) ファイルシステムを一時マウントポイントにマウントします。


    # mount device temp-mountpoint
    

  8. 次のコマンドを使用し、ルート (/) ファイルシステムを復元します。


    # cd temp-mountpoint
    # ufsrestore rvf dump-device
    # rm restoresymtable
    

  9. 新しい起動ブロックを新しいディスクにインストールします。


    # /usr/sbin/installboot /usr/platform/`uname -ì/lib/fs/ufs/bootblk raw-disk-device
    

  10. /temp-mountpoint/etc/system ファイルの MDD ルート情報の行を削除します。


    * Begin MDD root info (do not edit)
    forceload: misc/md_trans
    forceload: misc/md_raid
    forceload: misc/md_mirror
    forceload: misc/md_hotspares
    forceload: misc/md_stripe
    forceload: drv/pcipsy
    forceload: drv/glm
    forceload: drv/sd
    rootdev:/pseudo/md@0:0,10,blk
    * End MDD root info (do not edit)

  11. /temp-mountpoint/etc/vfstab ファイルを編集し、ルートエントリを、メタデバイスから、そのメタデバイスの一部であるルートディスクの各ファイルシステムに対応する通常のスライスに変更します。


    Example: 
    Change from—
    /dev/md/dsk/d10   /dev/md/rdsk/d10    /      ufs   1     no       -
    
    Change to—
    /dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0  /usr   ufs   1     no       -

  12. 一時ファイルシステムをマウント解除し、raw ディスクデバイスを確認します。


    # cd /
    # umount temp-mountpoint
    # fsck raw-disk-device
    

  13. ノードをシングルユーザーモードで再起動します。


    # reboot -- "-s"
    

  14. scdidadm コマンドを使用し、ディスク ID を置換します。


    # scdidadm -R rootdisk
    

  15. metadb(1M) コマンドを使用し、状態データベースの複製を再作成します。


    # metadb -c copies -af raw-disk-device
    

    -c copies

    作成する複製の数を指定します。

    -af raw-disk-device

    指定した raw ディスクデバイスに初期状態のデータベースの複製を作成します。

  16. ノードをクラスタモードで再起動します。

    1. 再起動します。


      # reboot
      

      この起動中、次のような指示で終了するエラーまたは警告メッセージが表示されることがあります。


      Type control-d to proceed with normal startup,
      (or give root password for system maintenance):

    2. Control-D キーを押してマルチユーザーモードで起動します。

  17. 復元したノード以外のクラスタノードから、metaset(1M) コマンドを使用し、復元したノードをすべてのメタセットに追加します。


    phys-schost-2# metaset -s setname -a -h nodelist
    

    -a

    メタセットを追加 (作成) します。

    Solstice DiskSuite のマニュアルに従って、ルート (/) のメタデバイスおよびミラーを設定します。

    ノードがクラスタモードで再起動します。これでクラスタを使用できるようになります。

例 — メタデバイスに存在していたルート (/) ファイルシステムを復元する (Solstice DiskSuite/Solaris Volume Manager)

次に、テープデバイス /dev/rmt/0 からノード phys-schost-1 に復元したルート (/) ファイルシステムの例を示します。metaset コマンドは、クラスタの別のノード phys-schost-2 から実行し、ノード phys-schost-1 を削除し、後でメタセット schost-1 に追加します。そのコマンドはすべて phys-schost-1 から実行します。新しいブートブロックが /dev/rdsk/c0t0d0s0 に作成され、3 つの状態データベースの複製が /dev/rdsk/c0t0d0s4 に再作成されます。


[Become superuser on a cluster node with access to the metaset, other than the node to be restored.]
[Remove the node from the metaset:]
phys-schost-2# metaset -s schost-1 -f -d -h phys-schost-1
[Replace the failed disk and boot the node:]
ok boot cdrom -s
[Use format and newfs to recreate partitions and file systems.]
[Mount the root file system on a temporary mount point:]
# mount /dev/dsk/c0t0d0s0 /a
[Restore the root file system:]
# cd /a
# ufsrestore rvf /dev/rmt/0
# rm restoresymtable
[Install a new boot block:]
# /usr/sbin/installboot /usr/platform/`uname \
-ì/lib/fs/ufs/bootblk /dev/rdsk/c0t0d0s0
[Remove the lines in /temp-mountpoint/etc/system file for MDD root information:]
* Begin MDD root info (do not edit)
forceload: misc/md_trans
forceload: misc/md_raid
forceload: misc/md_mirror
forceload: misc/md_hotspares
forceload: misc/md_stripe
forceload: drv/pcipsy
forceload: drv/glm
forceload: drv/sd
rootdev:/pseudo/md@0:0,10,blk
* End MDD root info (do not edit)
[Edit the /temp-mountpoint/etc/vfstab file]
Example: 
Change from—
/dev/md/dsk/d10   /dev/md/rdsk/d10    /      ufs   1     no       -

Change to—
/dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0  /usr   ufs   1     no       -
[Unmount the temporary file system and check the raw disk device:]
# cd /
# umount /a
# fsck /dev/rdsk/c0t0d0s0
[Reboot in single-user mode:]
# reboot -- "-s"
[Replace the disk ID:]
# scdidadm -R /dev/dsk/c0t0d0
[Recreate state database replicas:]
# metadb -c 3 -af /dev/rdsk/c0t0d0s4
# reboot
Type CTRL-d to boot into multiuser mode.
[Add the node back to the metaset:]
phys-schost-2# metaset -s schost-1 -a -h phys-schost-1