すでに運用に入っているパーティションをミラーリングする方法。
一つは、LVMで運用されているならlvconvertで簡単にできる。
普通にext3なんかのパーティションの場合はどうするか。
sda1, sda2がすでに運用に入っていて、sdb1, sdb2をミラーリングディスクとして追加する例を考える。
ここではmdadmを使うことにする。
で、今回の作業の流れ。
- ブロックデバイスの作成
- 新規追加するディスクを方肺でミラー化
- 既存運用のディスクからデータを移行
- 既存運用のディスクをRAID1に参加
ということでブロックデバイスの作成。
# mknod /dev/md1 b 9 0 # mknod /dev/md2 b 9 1
sdb1, sdb2はsda1, sda2と同じサイズでパーティションを切る。
パーティションのタイプはsda1, sda2も含めてすべてfd(Linux raid autodetect)にする。
で、新しく追加する方のディスクを方肺でミラー化する。
# mdadm --create /dev/md1 --level=1 --raid-devices=2 missing /dev/sdb1 # mdadm --create /dev/md2 --level=1 --raid-devices=2 missing /dev/sdb2
ミラー化したら、ファイルシステムを作成して、既存運用のディスクからデータを移行する。
この辺は/dev/md1, md2をmkfsしてsda1, sda2からmd1, md2にデータをcpする。
コピーが終わったら、元のディスクもミラーリングに参加させる。
# mdadm --add /dev/md1 /dev/sda1 # mdadm --add /dev/md2 /dev/sda2
っていう感じだろうか。