Convert to Software mirror in 3 min without reformatting


Click to play

メリット

初期化しないで変換できるので、再設定の手間がかからないのは大きな利点と言えます。

概要

Mac OS X のソフトウエアRIAD機能は、シングルボリュームをそのままRAID 1 ミラーに変換することができます。そしてその逆もできます。RAID1を解除すると同じ内容のディスクが2つできます。
変換にかかる時間は30秒ほどです。もし起動ボリュームを変換したいのなら、まず別の起動ボリュームから起動し直します。そしてRAID1に変換させます。起動ボリュームを変更して再起動、そして変換作業まで、ここまで3分以内に実施することが可能です。もっともスピード勝負ではありませんので、落ち着いてゆっくりやればいいのです。

変換途中でも再起動できる

シングルボリュームをRAID1に変換して、メンバーを追加すると2つのボリュームの同期が始まります。同期が途中の時に再起動しても問題ありません。同期が終わるまでの時間はどれだけボリュームを使っているかに依存しますが、変換そのものはボリュームサイズにあまり影響を受けないようです。
ともかく同期処理の途中でも再起動できますので、同期が終わるまで再起動を待つ必要はありません。

ところで自動修復は?

GUIでもCLIでもRAID1を作ると、デフォルトでは自動修復がオフになっています。つまり片方が壊れて新しいボリュームを追加しても自動的に修復が始まることはありません。自動修復が始まるようにしておくこともお勧めします。上のムービーの終わりの辺りで自動修復のコマンドを投入していますので、最後までご覧ください。

$ diskutil appleraid update AutoRebuild 1 raid1hd

といっても、本当にすぐリビルドさせたい場合はあらかじめRAIDメンバーの中にスペアドライブを追加しておく必要がありますが。

詳しい情報

詳しくは、diskutil(8) を見てください。Mac OS X 10.5とMac OS X 10.6ではサブコマンド体系が変わっていますが、できることは同じです。上記のビデオはMac OS X 10.6の環境で実施したものです。

応用編

ストレージサイズは年々大きくなっているので将来スペアのドライブがないということもあります。今500GBでRIAD1を作っていて、将来これを1TBでRAID1にするにはどうすればよいでしょうか?もちろん初期化なしで。
まず、500GBのRAID1から一つディスクを抜きます。物理的に外してしまうのが簡単です。
次に、1TBのディスクをメンバーにしてRAID1を構成します。同期が終了するのを待ちます。
そして、diskutil appleraid delete raid1hd とかします。すると、500GBと1TBの中身は同じで空き容量の異なる2つのシングルボリュームのディスクが得られます。
1TBのディスクを使って再びRAID1を作れば、1TBなRAID1を得ることができるってわけ。

asrでリストアした方が早いんじゃないか?と思ったあなたはすごく正しいです(笑)

参考リンク

このやり方ってそんなに新しいトピックではなく2004年にこんな文書が公開されていたりします。この文書の中では、メンバーディスクの追加を再起動してからやってますね。どっちでもよいのですが、個人的な好みとしては全部の作業が終わってから再起動したいものです。



Comments