Solstice DiskSuite 4.2.1 ユーザーズガイド

状態データベースの複製の不足からの回復方法 (コマンド行)

たとえば、ドライブの障害など、何らかの理由によって状態データベースの複製が規定数に満たない場合、システムはリブートできません。DiskSuite の用語では、これを状態データベースが「無効」になったと表現します。ここでは、その回復方法について説明します。

この作業の手順を次に示します。

例 - 無効な状態データベースの複製からの回復

次の例では、2 つの複製を含むディスクが不良となりました。システムには正常な複製が 2 つしか残されておらず、システムはリブートできません。

  1. マシンをブートして、どの状態データベースの複製が障害を受けているのかを判定する。


    ok boot
    ...
    Hostname: demo
    metainit: demo: stale databases
     
    Insufficient metadevice database replicas located.
     
    Use metadb to delete databases which are broken.
    Ignore any "Read-only file system" error messages.
    Reboot the system when finished to reload the metadevice
    database.
    After reboot, repair any broken database replicas which were
    deleted.
     
    Type Ctrl-d to proceed with normal startup,
    (or give root password for system maintenance): <パスワードを入力>
    Entering System Maintenance Mode
     
    SunOS Release 5.5 Version Generic [UNIX(R) System V Release 4.0]
  2. metadb(1M) コマンドを使用してメタデバイスの状態データベースを調べ、状態データベースの複製のうち、使用できないものを判定する。


    # metadb -i
       flags          first blk         block count
        a m  p  lu     16                1034             /dev/dsk/c0t3d0s3
        a    p  l      1050              1034             /dev/dsk/c0t3d0s3
        M    p         unknown           unknown          /dev/dsk/c1t2d0s3
        M    p         unknown           unknown          /dev/dsk/c1t2d0s3
    ...

    システムは、障害の発生したディスクに含まれるスライス /dev/dsk/c1t2d0s3 上では、もう状態データベースの複製を検出できません。metadb コマンドは、このスライス上の複製に対して、マスターブロックに障害があるというフラグを立てます。

  3. -d オプション付きの metadb(1M) コマンドを使用して、不良ディスク上の状態データベースの複製を削除する。

    この時点では、ルート (/) ファイルシステムは読み取り専用である。mddb.cf のエラーメッセージは無視できる。


    # metadb -d -f c1t2d0s3
    metadb: demo: /etc/lvm/mddb.cf.new: Read-only file
    system
  4. 複製が削除されたことを確認する。


    # metadb -i
       flags          first blk         block count
        a m  p  lu     16                1034             /dev/dsk/c0t3d0s3
        a    p  l      1050              1034             /dev/dsk/c0t3d0s3
  5. リブートする。

  6. 交換用のディスクを用意できたらシステムを停止し、故障したディスクを交換し、もう一度システムをリブートする。format(1M) コマンドまたは fmthard(1M) コマンドを使用して、ディスクを故障の前と同じようにパーティション分割する。


    # halt
    ...
    ok boot
    ...
    # format /dev/rdsk/c1t2d0s0
    ...
  7. metadb(1M) コマンドを使用して、状態データベースの複製を追加して戻し、状態データベースの複製が正常であることを確認する。


    # metadb -a -c 2 c1t2d0s3
    # metadb
       flags          first blk         block count
        a m  p  luo    16                1034             dev/dsk/c0t3d0s3
        a    p  luo    1050              1034             dev/dsk/c0t3d0s3
        a       u      16                1034             dev/dsk/c1t2d0s3
        a       u      1050              1034             dev/dsk/c1t2d0s3

    -c 2 オプション付きの metadb コマンドは、同じスライスに状態データベースの複製を 2 つ追加します。