RAID総合スレッド No.5at LINUX
RAID総合スレッド No.5 - 暇つぶし2ch570:568
11/11/28 14:50:52.12 SzpgZCSv
連投すみません。
仮想環境で
# mdadm -C /dev/md0 --chunk 64K -l 5 -n 3 /dev/sd[bcd]1
とすればデータは無傷だったということは確認しました。

また、一旦chunksize=512Kで構築されたアレイを解除して、
64Kで作り直してもデータは復旧しませんでした。

571:568
11/11/28 15:01:22.13 SzpgZCSv
はたまた連投すみません
512Kで再構築されてしまった場合でも、mkfsなど余計なことしなければ

# mdadm /dev/md0 -f /dev/sd[bcd]1
# mdadm --misc --stop /dev/md0
# mdadm -C /dev/md0 --chunk 64K -l 5 -n 3 /dev/sd[bcd]1
で仮想環境では復旧しました。
一人で勝手に騒いですみません。
現実環境のリビルドが完了したら試してみようと思います。

おっちょこちょいな自分の失敗が誰かの役に立てばと思います。

572:568
11/11/28 15:38:35.38 SzpgZCSv
現実環境でやってみましたがダメでした。
メタデータのバージョンが同じでないとうまくいかないような感じです。
CentOSで64kで構築

Scientificで512kで構築

Scientificで64kで再構築

ダメ ←いまここ

です。
これからCentOSで64kで再構築してみます。
まずは仮想環境でやってみようと思います。

573:568
11/11/28 16:23:08.43 SzpgZCSv
バージョンによってメタデータの書き込まれる場所が違うことがわかりました
URLリンク(hellokitty68.main.jp)
ここにあるように、0.9と1.2ではずいぶんと違うようです。
これは困りました。
さらに、これだけがわかっても自分にはどうしたらいいのかわかりません。

574:login:Penguin
11/11/28 16:47:50.20 zJmMr8wx
dd でディスク毎に吸い上げて処理したほうが早くないか?

575:568
11/11/28 16:54:58.39 SzpgZCSv
>>574
現在、本番環境でのddでの吸い上げ先がない状態ですが、
ddで吸い上げた後にどう処理すればいいのか教えていただけますか?

metadataがあると思われる部分をddでファイルに書き出して
hexdumpなんてしてみましたが、どうしたらいいのかさっぱりわかりませんでした。

576:login:Penguin
11/11/28 18:43:29.50 GpepBfXK
dd で吸い出してそこで作業したら失敗してもやり直しが効く
そのデータがどのくらい大事かに寄るね
失ってもいいのであれば実HDDで作業してもいいかも

577:login:Penguin
11/11/28 19:55:43.30 nPrmxBAd
>>575
losetupでloopデバイスを割り当てる

ddで吸い上げたイメージをdisk1.img, disk2.imgとすると
↓こんな感じでloopデバイスを割り当てられる(未使用のloopデバイスはlosetup -f で確認)
# losetup /dev/loop0 disk1.img
# losetup /dev/loop1 disk2.img

/dev/sd*の代わりに、このloopデバイスでRAID1を作ったり出来る
# mdadm --create /dev/md0 --raid-devices=2 --level=1 --verbose /dev/loop0 /dev/loop1
mdadm: size set to 131008K
mdadm: array /dev/md0 started.

578:login:Penguin
11/11/29 10:25:15.02 00jPXJK8
吸い上げたイメージ同士でデータとメタデータ領域が重なってるので、稀だけど壊れることないか。
真面目にするならメタデータ領域分は切り貼りして揃えてから再構築、かな?

579:login:Penguin
11/11/29 12:25:33.10 Yf0+yFDJ
RAID0組んでるHDDにOS再インストールするときって、そのままOSインストール作業する?
それとも、一度、Delete RAID Volumeで崩してからCreate RAID VolumeでまたRAID構築してからOSインストールしてる?

580:login:Penguin
11/11/29 15:13:40.75 iTSjKJPG
バージョンが同じならそのまま
違う場合は別の環境でテストしてOKならそのまま
違うなら別のPCを用意
かな

581:568
11/11/29 15:46:31.33 nWLFZrGz
>>577
わざわざ丁寧にありがとうございます。
その方法ももちろん考えたのですが、
いかんせん、退避場所がありません。
タイの洪水でHDDの価格が高騰しているため手軽に買えない状況です・・・

582:568
11/11/29 15:54:45.87 nWLFZrGz
さて、今日もシコシコと仮想環境で試行錯誤していましたら、
もしかしたら、完全復活はできなくても
一部の復活はできるかもしれない方法を見つけました。

簡単に言うとアレイをバージョン0.9のメタデータで構築しなおし、
思い切ってfsckをかける方法です。
仮想環境でやってみたところ、とりあえずデータの復活を確認しました。
後は本番環境ですが、>>581に書いたとおり、HDDが高くてすぐには実行できません。
アレイのサイズが1TBが3台のRAID5なので、余裕を持って2TBを
2本ほどRAID0で動かして作業をしたいところです。
それか、2TB1本にして縮退状態でやるかといった感じです。

ちなみにメタデータ、chunksizeを指定してアレイを構築する場合は以下のようになります

mdadm -C /dev/md0 -l 5 -n 3 --chunk=64K --metadata=0.9 /dev/sd[bcd]1

583:login:Penguin
11/11/30 10:23:52.58 /CGQEQQw
md127の何が気にくわないのか。
自分はそのまま使ってるぞ。
直すスキルがないってのは内緒・・・

584:login:Penguin
11/11/30 13:28:21.02 OuQeDi8o
>>583
ちゃんと流れを読めよw

585:login:Penguin
11/12/03 20:43:01.66 TtU/rjkx
127が気に入らないならアレイ止めてからこれだけでよかったのにずいぶん余計なことを

mdadm -A /dev/md0 /dev/sd[bcd]1

586:login:Penguin
11/12/05 23:56:34.31 6e/+yMbn
/boot を RAID1, swap を RAID0 にして、
あと全部 / で RAID1 にして普通にインストール成功 (ScientificLinux)
再起動してみるとBIOS直後から何も表示せず立ち上がらない。
どうしてかわかる人いる?

587:login:Penguin
11/12/06 16:20:07.48 D33FO92h
>>586
ドライバが足りなくて
> /boot を RAID1
のとこで転けてるんじゃ?

588:login:Penguin
11/12/06 22:50:52.50 ICuP3dI/
>>586
レイドパーティションを/bootにする場合は、メタデータを0.90にしないと
だめだよ。それかメタデータを1.2にして、grubを1.0以上にする。

589:586
11/12/08 19:52:18.26 Hmnoh3H0
>>587-588
ありがとう。インストーラのバグなのか
grub が default では /dev/md0 に入ってしまっていた。
オプションで grub を /dev/sda1 の MBR に書くと起動した。
片方が死んだときのために
RAID 構成ディスクの /dev/sdb1 にも grub を入れた。
これで大丈夫だといいんだが。

590:login:Penguin
11/12/09 00:31:48.61 u1j4XOSq
/bootなんか、わざわざRAIDに置かずに別途USBメモリに保存したほうが
トラブルも無く、運用も楽。
そりゃ、万一の時は多少手間が増えるが。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch