/var/adm/messages ファイルと metastat コマンドの出力を調べて、交換する不良ディスクを特定します。
不良ディスクに状態データベースの複製がないかチェックします。
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 |
この出力には、ローカルディスク c0t0d0 と c0t1d0 のスライス 4 にそれぞれ 3 つの状態データベースの複製があることがわかります。c0t1d0s4 スライスのフラグフィールドの W は、このデバイスに書き込みエラーがあることを示しています。c0t0d0s4 スライスの 3 つの複製は正常です。
状態データベースの複製があるスライス名とその複製の数を書き留めておき、状態データベースの複製を削除します。
状態データベースの複製の数は、手順 2 の metadb コマンド出力に同じスライス名が表示される行数と同じです。この例では、c0t1d0s4 にある 3 つの状態データベースの複製を削除します。
# metadb -d c0t1d0s4 |
不良の状態データベースの複製を削除すると、複製の数が 3 以下になることがあります。その場合は、状態データベースの複製を追加してから先に進みます。これによって、前と同じ構成情報が保たれます。
不良ディスク上のスライスを使用するサブミラーがある場合は、それらのサブミラーを切断します。
metastat コマンドを実行すると、関連しているミラーが表示されます。この例では、1 つのサブミラー d10 が c0t1d0s4 を使用しています。 ミラーは d20 です。
# metadetach d20 d10 d20: submirror d10 is detached |
不良ディスクにホットスペアがある場合は、それらを削除します。
# metahs -d hsp000 c0t1d0s6 hsp000: Hotspare is deleted |
システムを停止し、シングルユーザーモードで起動します。
# halt ... ok boot -s ... |
不良ディスクを物理的に交換します。
新しいディスクのパーティションを再分割します。
format か fmthard コマンドを使い、不良ディスクと同じスライス情報に基づいてディスクをパーティション分割します。不良ディスクに対する prtvtoc の出力がある場合は、fmthard -s /tmp/failed-disk-prtvtoc-output で新しいディスクをフォーマットできます。
手順 3 で状態データベースの複製を削除した場合は、同じ数の複製を適切なスライスに追加します。
この例では、/dev/dsk/c0t1d0s4 を使用します。
# metadb -a c 3 c0t1d0s4 |
この後の作業は、このディスクがどのように使用されていたかによって異なります。次の表から判断してください。
表 24-1 ディスク交換のための決定表
デバイスタイプ |
作業 |
---|---|
スライス |
通常のデータ回復手順を使用します。 |
ミラー化解除された RAID 0 ボリュームまたはソフトパーティション |
このボリュームをファイルシステムに使用する場合は、newfs コマンドを実行し、ファイルシステムをマウントし、バックアップからデータを復元します。RAID 0 ボリュームを、raw デバイスを使用するアプリケーションに使用する場合は、そのアプリケーション独自の方法で回復手順を行う必要があります。 |
RAID 1 ボリューム (サブミラー) |
metattach コマンドを実行して、切断されたサブミラーを再び接続します。これによって、再同期が開始されます。 |
RAID 5 ボリューム |
metareplace コマンドを実行してスライスを有効にします。これによって、再同期が開始されます。 |
トランザクションボリューム |
トランザクションボリュームを構成するボリュームタイプによって異なります。たとえば、トランザクションボリュームが RAID 5 ボリューム上にある場合は、この表の該当する回復手順を使用します。 |
削除されたホットスペアを置き換え、それを 1 つまたは複数の適切なホットスペア集合に追加します。
# metahs -a hsp000 c0t0d0s6 hsp000: Hotspare is added |
データを検証します。
すべてのボリュームのユーザーデータやアプリケーションデータをチェックします。必要であれば、アプリケーションレベルの整合性チェックプログラムなどのツールを使ってデータをチェックします。