Solaris ボリュームマネージャの管理

Procedure不良ディスクを交換するには

手順
  1. /var/adm/messages ファイルと metastat コマンドの出力を調べて、交換する不良ディスクを特定します。

  2. 不良ディスクに状態データベースの複製がないかチェックします。

    metadb コマンドを使って複製を表示します。

    metadb コマンドの出力を見ると、不良ディスクの状態データベースの複製にエラーが表示されていることがわかります。 この例では、c0t1d0 のデバイスに問題があります。


    # metadb
       flags       first blk        block count
      a m     u        16               1034            /dev/dsk/c0t0d0s4
      a       u        1050             1034            /dev/dsk/c0t0d0s4
      a       u        2084             1034            /dev/dsk/c0t0d0s4
      W   pc luo       16               1034            /dev/dsk/c0t1d0s4
      W   pc luo       1050             1034            /dev/dsk/c0t1d0s4
      W   pc luo       2084             1034            /dev/dsk/c0t1d0s4

    この出力には、ローカルディスク c0t0d0c0t1d0 のスライス 4 にそれぞれ 3 つの状態データベースの複製があることがわかります。 c0t1d0s4 スライスのフラグフィールドの W は、このデバイスに書き込みエラーがあることを示しています。 c0t0d0s4 スライスの 3 つの複製は正常です。

  3. 状態データベースの複製があるスライス名とその複製の数を書き留めておき、状態データベースの複製を削除します。

    状態データベースの複製の数は、 metadb コマンド出力に同じスライス名が表示される行数と同じです。 この例では、c0t1d0s4 にある 3 つの状態データベースの複製を削除します。


    # metadb -d c0t1d0s4
    

    注意  注意

    不良の状態データベースの複製を削除すると、複製の数が 3 以下になることがあります。その場合は、状態データベースの複製を追加してから先に進みます。 これによって、前と同じ構成情報が保たれます。


  4. 不良ディスクにホットスペアがないか探して、あれば削除します。 ホットスペアの検索には、 metastat コマンドを使用します。 この例では、c0t1d0s6 がホットスペア集合 hsp000 に含まれていたので、集合から削除します。


    # metahs -d hsp000 c0t1d0s6
    hsp000: Hotspare is deleted
  5. 不良ディスクを物理的に交換します。

  6. devfsadm コマンド、cfgadm コマンド、 luxadm コマンド、または使用ハードウェアと環境に適したほかのコマンドを使用して、不良ディスクを論理的に交換します。

  7. metadevadm -u cntndn コマンドを使用して、Solaris ボリュームマネージャの状態データベースを新しいディスクのデバイス ID で更新します。

    この例では、新しいディスクは c0t1d0 です。


    # metadevadm -u c0t1d0
    
  8. 新しいディスクのパーティションを再分割します。

    formatfmthard コマンドを使い、不良ディスクと同じスライス情報に基づいてディスクをパーティション分割します。 不良ディスクに対する prtvtoc の出力がある場合は、fmthard -s /tmp/failed-disk-prtvtoc-output で新しいディスクをフォーマットできます。

  9. 状態データベースの複製を削除した場合は、同じ数の複製を適切なスライスに追加します。

    この例では、/dev/dsk/c0t1d0s4 を使用します。


    # metadb -a -c 3 c0t1d0s4
    
  10. ディスク上のスライスが、RAID 5 ボリュームのコンポーネントである場合、あるいは RAID 0 ボリュームのコンポーネントで、それが RAID 1 ボリュームのサブミラーになっている場合は、各スライスに metareplace -e コマンドを実行します。

    この例では、/dev/dsk/c0t1d0s4 およびミラー d10 を使用します。


    # metareplace -e d10 c0t1d0s4
    
  11. ソフトパーティションが交換ディスクのスライス上に直接構築されている場合は、ソフトパーティションのあるスライスごとに metarecover -d -p コマンドを実行して、ディスクのエクステントヘッダーを再生します。

    この例では、/dev/dsk/c0t1d0s4 の再作成されたディスクにソフトパーティションのマーキングが必要なので、このディスクをスキャンし、状態データベースの複製の情報に基づいてマーキングを再度適用します。


    # metarecover c0t1d0s4 -d -p 
    
  12. ディスク上のソフトパーティションが、RAID 5 ボリュームのコンポーネントである場合、あるいは RAID 0 ボリュームのコンポーネントで、それが RAID 1 ボリュームのサブミラーになっている場合は、各スライスに metareplace -e コマンドを実行します。

    この例では、/dev/dsk/c0t1d0s4 およびミラー d10 を使用します。


    # metareplace -e d10 c0t1d0s4
    
  13. RAID 0 ボリューム上にソフトパーティションが構築されている場合は、各 RAID 0 ボリュームに metarecover コマンドを実行します。

    この例では、RAID 0 ボリューム d17 にソフトパーティションが構築されています。


    # metarecover d17 -m -p
    
  14. 削除されたホットスペアを置き換え、それを 1 つまたは複数の適切なホットスペア集合に追加します。


    # metahs -a hsp000 c0t0d0s6
    hsp000: Hotspare is added
  15. ソフトパーティションまたは非冗長ボリュームが障害の影響を受けた場合は、バックアップからデータを復元します。 冗長ボリュームだけが影響を受けた場合は、データを検証します。

    すべてのボリュームのユーザーデータやアプリケーションデータをチェックします。 必要であれば、アプリケーションレベルの整合性チェックプログラムなどのツールを使ってデータをチェックします。