この節では、Solaris ボリュームマネージャ環境でディスクを交換する方法について説明します。
不良ディスク上または不良ディスク上に構築したボリューム上でソフトパーティションを使用していた場合は、新しいディスクを交換対象ディスクと同じ物理位置に配置し、同じc*t*d* 番号を使用する必要があります。
/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 つの複製は正常です。
状態データベースの複製があるスライス名とその複製の数を書き留めておき、状態データベースの複製を削除します。
状態データベースの複製の数は、 metadb コマンド出力に同じスライス名が表示される行数と同じです。 この例では、c0t1d0s4 にある 3 つの状態データベースの複製を削除します。
# metadb -d c0t1d0s4 |
不良の状態データベースの複製を削除すると、複製の数が 3 以下になることがあります。その場合は、状態データベースの複製を追加してから先に進みます。 これによって、前と同じ構成情報が保たれます。
不良ディスクにホットスペアがないか探して、あれば削除します。 ホットスペアの検索には、 metastat コマンドを使用します。 この例では、c0t1d0s6 がホットスペア集合 hsp000 に含まれていたので、集合から削除します。
# metahs -d hsp000 c0t1d0s6 hsp000: Hotspare is deleted |
不良ディスクを物理的に交換します。
devfsadm コマンド、cfgadm コマンド、 luxadm コマンド、または使用ハードウェアと環境に適したほかのコマンドを使用して、不良ディスクを論理的に交換します。
metadevadm -u cntndn コマンドを使用して、Solaris ボリュームマネージャの状態データベースを新しいディスクのデバイス ID で更新します。
この例では、新しいディスクは c0t1d0 です。
# metadevadm -u c0t1d0 |
新しいディスクのパーティションを再分割します。
format か fmthard コマンドを使い、不良ディスクと同じスライス情報に基づいてディスクをパーティション分割します。 不良ディスクに対する prtvtoc の出力がある場合は、fmthard -s /tmp/failed-disk-prtvtoc-output で新しいディスクをフォーマットできます。
状態データベースの複製を削除した場合は、同じ数の複製を適切なスライスに追加します。
この例では、/dev/dsk/c0t1d0s4 を使用します。
# metadb -a -c 3 c0t1d0s4 |
ディスク上のスライスが、RAID 5 ボリュームのコンポーネントである場合、あるいは RAID 0 ボリュームのコンポーネントで、それが RAID 1 ボリュームのサブミラーになっている場合は、各スライスに metareplace -e コマンドを実行します。
この例では、/dev/dsk/c0t1d0s4 およびミラー d10 を使用します。
# metareplace -e d10 c0t1d0s4 |
ソフトパーティションが交換ディスクのスライス上に直接構築されている場合は、ソフトパーティションのあるスライスごとに metarecover -d -p コマンドを実行して、ディスクのエクステントヘッダーを再生します。
この例では、/dev/dsk/c0t1d0s4 の再作成されたディスクにソフトパーティションのマーキングが必要なので、このディスクをスキャンし、状態データベースの複製の情報に基づいてマーキングを再度適用します。
# metarecover c0t1d0s4 -d -p |
ディスク上のソフトパーティションが、RAID 5 ボリュームのコンポーネントである場合、あるいは RAID 0 ボリュームのコンポーネントで、それが RAID 1 ボリュームのサブミラーになっている場合は、各スライスに metareplace -e コマンドを実行します。
この例では、/dev/dsk/c0t1d0s4 およびミラー d10 を使用します。
# metareplace -e d10 c0t1d0s4 |
RAID 0 ボリューム上にソフトパーティションが構築されている場合は、各 RAID 0 ボリュームに metarecover コマンドを実行します。
この例では、RAID 0 ボリューム d17 にソフトパーティションが構築されています。
# metarecover d17 -m -p |
削除されたホットスペアを置き換え、それを 1 つまたは複数の適切なホットスペア集合に追加します。
# metahs -a hsp000 c0t0d0s6 hsp000: Hotspare is added |
ソフトパーティションまたは非冗長ボリュームが障害の影響を受けた場合は、バックアップからデータを復元します。 冗長ボリュームだけが影響を受けた場合は、データを検証します。
すべてのボリュームのユーザーデータやアプリケーションデータをチェックします。 必要であれば、アプリケーションレベルの整合性チェックプログラムなどのツールを使ってデータをチェックします。