atacontrolでRAID:もしくは「無知で哀れなマカー」

まぁ、その、atacontrolでRAIDって話はググれば出てきますし、マカーである私が解説するのも畏れ多いし、void GraphicWizardsLair( void ); // さんの

にまとまっているし。


ただちょっと今回私の手元では2台を一気に作業したんですが、片方はPromiseの FastTrak TX2000 を使っているとゆーちょっと変則的な状態。
FastTrak TX2000を使っている方では、TX2000のIDE2系統×マスター&スレーブそれぞれに同容量のHD=都合4発を繋いでRAID 0+1の構成で。この部分は、TX2000をマシンに挿してブートしればBIOSの設定画面が出てくるんで楽ちんに設定可能。
BSD magazine No.18 にも書かれてますが、FastTrak TX2000で構築したRAIDはatacontrolで状況を確認したり制御したりできるようで。
加えてマシン自体の内蔵のプライマリIDEにもう一つ同容量のHDを繋いで、それをスペアにする予定。


さて、純粋にatacontrolでソフトウェアRAID 1構成にしたもう一台の方が「無知で哀れなマカー」なんですが。
いや普通、内蔵IDEのプライマリ(のマスター)に1発、セカンダリ(のマスター)にもう一発ってするんですよね。
それをですね、「あぁこのマシン狭くて手入れしにくいから、目の前にあるコレ(プライマリIDE)に2発つないじゃお。」とやるとですね、まぁそれは哀れなコトになる訳です。
結局、プライマリIDEにHDがマスター&スレーブで2発、セカンダリIDEのマスターにCD-ROMドライブ、って構成でatacontrolを叩いたんですが。
まぁ、そのどうなるかってゆーと、シングルユーザモードで

mount -a
vi /etc/fstab(ad0をar0に置換)
umount -a
mount -u -o ro /
atacontrol create RAID1 ad0 ad1
atacontrol detach 1
atacontrol attach 1
reboot

※ad1なのは、HDのもう一発がプライマリIDEのスレーブにあったからです。

ってやると、ブートできなくなります。シングルユーザモードでも。
まぁ、考えれば当たり前の話。だって、create RAID1 ad0 ad1 はプライマリIDEのマスターのHDとスレーブのHDに対して実行してるかもしれないけど、detach 1 と attach 1 はね...セカンダリIDEを切り離したりしてる訳だから...。
結局どこにもDEGRADEされてるRAIDボリュームさえ作られてない訳で...。そりゃブートできんわなぁ...。ってのは後から気づくんですが...。


普通は detach 1 と attach 1 した時に「CD-ROMがどうこう」って警告が出るんで気づくんでしょうけどね...。
なーんにも考えずに、他の方が書いてくれたコマンドの羅列だけ見て作業してると見逃したり...
# は、しないんだろうなぁ。ホントは。
# いやぁ、コマンドってのは何も考えずに見たまんま打つのはホントいけませんね...


まぁ、そんな訳でですね、シングルユーザモードでも手が出なくなりましたので、miniroot.isoのCDでブートして、「Fix it」でDisc2.isoのCDを使い、mount /dev/ad0s1a /mnt して、vi /mnt/etc/fstabでもう一度 ar0 から ad0 に置き換えて、exitして、再起動。*1
んで、心を入れ替えて、プライマリIDEのスレーブにしちゃったHDもセカンダリのマスターとして入れ替えて、もう一度上の作業(ad1はちゃんとad2で)をして。んで、

atacontrol addspare 0 ad2
atacontrol rebuild 0

で無事終了。


いやぁ、ブートしなくなった時はあせったなぁ(苦笑
以上、「detach 1」の「1」の意味を理解してなかった「無知で哀れなマカー」によるatacontrolでのRAIDのお話でした。
いやしかし、ホント、バカだオレ。読み返してイヤになった...orz

*1:実は、minirootでブートした時点ではDisc2を会社に置いてきてしまっていて持ってなかったり(汗 しかもこいつはPPPoEルータにしてたマシンだったのでDisc2を手に入れる術も無くしばらく途方に暮れたり。んが、iBook G4でPPPoEしてDisc2.isoをgetしてhdiutil burnしましたです。デフォルトでPPPoEできてCD-Rも焼けちゃうMac OS Xマンセー(笑