オンボードLSIカードとRAID1ミラーにあった2つのディスクを備えたSunT5220サーバーがあります。現在、データは重要ではありませんが、ディスクに障害が発生しており、障害から回復する必要がある場合に実際にこれを行う方法を理解しようとしています。
初期の状況は次のようになりました。
#raidctl -l c1t0d0 ボリュームサイズストライプステータスキャッシュRAID サブサイズレベル ディスク --------------- ------------------------------------------------- c1t0d0 136.6GN/A DEGRADED OFF RAID1 0.1.0 136.6G GOOD N/A 136.6G FAILED
0.0.0ディスクの緑色のライト。 0.1.0ディスクを見つけて点灯させます。だから私は自分のドライブが悪いのか、それがどれなのかを知っています。サーバーはまだ明らかに起動します。
まず、新しいディスクを挿入してみました。このディスクは不明なソースからのものです。 Formatはそれを認識せず、cfgadm -alはそれを認識しないため、raidctl-lはそれを認識しません。悪いと思います。別のスペアサーバーから別のディスクを試しました。
#raidctl -c c1t1d0 c1t0d0(t1は私の良いディスク-0.1.0) ディスクはスペースを占有しました。
また、異なる構文オプションは何も変更しません。
#raidctl -C "0.1.0 0.0.0" -r 1 1 ディスクがスペースを占有しました。 #raidctl -C "0.1.0 0.0 .0 "1 ディスクがスペースを占有しました。
OK。おそらくこれは、スペアサーバーのディスクにすでにRAID1が搭載されているためです。ああ、私はraidctlで別のボリュームを見ることができます:
#raidctl -l コントローラー:1 ボリューム:c1t1d0(これはサーバーのルートミラーです) ボリューム:c1t132d0(これは外部ルートミラーです) ディスク:0.0.0 ディスク:0.1.0 ...
問題ない。データは気にせず、外部ミラーを削除するだけです。
#raidctl -d c1t132d0 (データの削除について警告しますが、機能します)
この時点で、/ usr/bin /バイナリが異常終了します。つまり、ls -l/usr/bin /は1.4kを示していますが、cat /usr/bin/which
私に改行を与えます。素晴らしいです、私はバイナリを吹き飛ばしました(つまり、memのバイナリはまだ機能します)?ボックスをバウンスします。それはすべてうまく戻ってきます。 WTF。とにかく、私の鏡の再現に戻ります。
#raidctl -l コントローラー:1 ボリューム:c1t1d0(これは私のサーバーのルートミラーです) ディスク:0.0.0 ディスク: 0.1.0 ...
男はあなたが鏡を削除することができ、それがそれを分割すると言います。はい、ルートミラーを削除します。
#raidctl -d c1t0d0 使用中のアレイ。 (これは正確なエラーではない可能性があります)
私はこれをグーグルで検索しましたが、もちろん、ミラーから起動している間は(-fを使用しても)これを行うことはできません。 OK。私 boot cdrom -s
そしてボリュームを削除しました。
これで、c1t1d0(私のデータがある場所)に「LSI-Logical-Volume」タイプのディスクが1つあり、c1t0d0(ミラーリングしようとしているもの)に新しい「Hitachi146GB」があります。
(CDから起動) #raidctl -c c1t1d0 c1t0d0(ミラーリングのソース宛先だと言う人) 不正なアレイレイアウト。 #raidctl -C "0.1.0 0.0.0" -r 1 1(1人あたりの代替構文) 不正な配列レイアウト。 #raidctl -C "0.1.0 0.0 .0 "1(raid1を想定、ヘルプなし) 不正な配列レイアウト。
同じサイズのディスク、同じメーカーですが、空のディスクを投入して再同期するのを待つ代わりに、ボリュームを削除しました。多分これは重大なエラーでした。良いディスクのフォーマットのタイプをプレーンな146GBディスクに選択しようとしましたが、パーティションテーブルがリセットされ、データが消去されると確信しています(これが本番の場合は悪いです)。
私は骨が折れていますか?ミラーを壊して再同期した経験のある人はいますか? 「違法な配列レイアウト」についてGoogleには何もありませんので、これが検索の神々への私の貢献です。
結局のところ、私はこれに対する答えを見つけることができませんでした。しかし、私は回避策といくつかの良い情報を見つけました。まず、これはSolaris 10の10/08(U6)にありました。10/ 09ブートCD(U8)を起動したところ、U8のraidctlにバグがあることがわかりました。 U8は、「破損したラベル-不正なジオメトリ」エラーで失敗します。ディスクを完全にワイプした場合でも、U8ブートCDを使用してミラーを再作成することはできませんでしたが、U7(およびおそらくU6)ではまったく同じコマンドが機能しました。だから、そこにバージョン警告のほんの少し。
回避策の要点は次のようになりました(ディスク、パスなどを置き換えてください)。
prtvtoc /dev/rdsk/c1t0d0s2 > /mnt/space/partitions.txt
を実行しますufsdump 0f - /dev/rdsk/c1t0d0s0 > /mnt/space/root_c1t1d0s0.dmp
ufsdump 0f - /dev/rdsk/c1t1d0s4 > /mnt/space/var_c1t1d0s4.dmp
raidctl -c c1t0d0 c1t1d0
警告:これにより、両方のドライブがワイプされます。raidctl -l
でボリュームを検索します(これらの手順ではc1t1d0であると想定しています)newfs /dev/rdsk/c1t1d0s0
(s7まで、明らかにs2をスキップ)mkdir /tmp/s0
mount /dev/rdsk/ctt1d0s0 /tmp/s0
cd /tmp/s0
cat /mnt/space/root_c1t1d0s0.dmp | ufsrestore xf -
(root dir権限にyesと答えます)umount /tmp/s0
installboot platform/SUNW,SPARC-Enterprise-T5220/lib/fs/ufs/bootblk /dev/rdsk/c1t1d0s0
probe-scei-all
show-disks
(ディスクを選択)nvalias disk Ctrl-Y
boot disk
このすべての途中でdisksuiteに切り替えたい場合:-上記のようにufsdumpを使用してバックアップします-ハードウェアRAID定義を削除します-パーティションを1番目のディスクに復元し、1番目のディスク上のパーティションをnewfsします-ufsrestoreを1番目のディスクに実行しますsanityboot-次に通常のディスクスイートのインストールを開始します。 CDからディスクスイートをすべてワンショットで実行しようとしても、メタサービスが実行されていないため、実行されません。次のエラーが発生します。metadb: network/rpc/meta:default: failed to enable/disable SVM service
メタコマンドを実行しても問題はなく、固執することはありません。 IE:ハードディスクを再起動すると、metastatは「メタデータベースが見つかりません」と表示します。