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

ディスクの交換

この節では、Solaris ボリュームマネージャ環境でのディスク交換の方法について説明します。


注意 – 注意 –

不良ディスク上または不良ディスク上に構築したボリューム上でソフトパーティションを使用していた場合は、新しいディスクを交換対象ディスクと同じ物理位置に配置し、交換対象ディスクと同じ cntndn 番号を使用する必要があります。


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. 不良ディスクを交換します。

    この手順では、使用しているハードウェアと環境によって、cfgadm コマンド、luxadm コマンド、またはその他のコマンドを使用しなければならないことがあります。この手順の実行時には、使用しているハードウェアのマニュアルを参照しながら、Solaris 上でのこのディスクの状態を適切に操作してください。

  6. 新しいディスクのパーティションを再分割します。

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

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

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


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

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


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

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


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

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


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

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


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

    この例では、ホットスペア集合 hsp000c0t1d0s6 が含まれていました。このスライスをホットスペア集合に追加します。


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

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