この節では、障害の発生したコントローラ上に定義され、散発的なシステムパニックを引き起こすメタデバイスへのアクセスを取り戻す手法について説明します。システムに別の使用可能なコントローラがある場合、コントローラにディスクを移動してメタデバイスを再定義することによって、メタデバイスを新しいコントローラに事実上「移動する」ことができます。この手法では、データをバックアップしメタデバイスに戻す必要がなくなります。
この例は、2 つのスライスをもつ 1 つのディスクから構成されます。この 2 つのスライスは、それぞれ 2 つの別のストライプ方式メタデバイスである d100 と d101 の一部です。d100 と d101 は、それぞれファイルシステム /user6 と /maplib1 を含みます。影響を受けたコントローラは c5 でした。ディスクは空きコントローラ (c4) に移動されます。この例では md.tab ファイルも使用します。
影響を受けるストライプへのアクセスを停止する。
たとえば、ストライプ方式メタデバイスに関連付けられたファイルシステムをマウント解除します。
# umount /user6 # umount /maplib1 |
metaclear を使用して、ストライプ方式メタデバイスを除去する。
# metaclear d100 d100: Concat/Stripe is cleared # metaclear d101 d101: Concat/Stripe is cleared |
サーバーをシャットダウンし、ディスクを新しいコントローラに移動する。
md.tab ファイルを編集して、メタデバイス名の中に新しいコントローラを指示する。
この例では、ディスクをコントローラ 4 に移動したので、ディスクに対しては c5 ではなく c4 を使用します。
(md.tab ファイルの変更前) # Stripe /user6 /dev/md/dsk/d100 1 2 /dev/dsk/c5t0d0s3 /dev/dsk/c2t2d0s3 # Stripe /maplib1 /dev/md/dsk/d101 1 2 /dev/dsk/c5t0d0s0 /dev/dsk/c2t2d0s0 (md.tab ファイルの変更後) # Stripe /user6 /dev/md/dsk/d100 1 2 /dev/dsk/c4t0d0s3 /dev/dsk/c2t2d0s3 # Stripe /maplib1 /dev/md/dsk/d101 1 2 /dev/dsk/c4t0d0s0 /dev/dsk/c2t2d0s0 |
metainit を使用してそのストライプ方式メタデバイスを初期化し、newfs でファイルシステムを再初期化せずにマウントする。
# metainit d100 d100: Concat/Stripe is setup # metainit d101 d101: Concat/Stripe is setup |
metastat を実行して、メタデバイスがオンラインであることを確認する。
メタデバイスまたはその関連付けられたファイルシステム上では、newfs コマンドを実行しないでください。さもなければ大量のデータが失われ、テープから復元しなければなりません。