経緯

一週間前くらいに、md0のうち1台がI/O errorを出してDegradedArrayになっていた。
容量的にもう手狭なのと、Recovery中にもう1台クラッシュするのを避けるため、
Recoveryはせず、新しくArrayを組んでコピーすることにした。
買ったのは下記の3台。タイの洪水で割高なタイミングになってしまった。
- WD20EARX \9890
- ST2000DL003 \9965
- ST2000DM001 \11375
構築

アセンブルしたら、このうちST2000DM001がI/O errorを出した。
SATAポートをPCIeのボードから、オンボードのポートに変えたら動くようになった。
データコピー

DegradedArrayに負荷を掛けないように、
まずはシーケンシャルリードでディスクイメージをコピー
# mount -o remount,ro /dev/md0
# dd if=/dev/md0 of=/home/data2/md0_image bs=4M
ディスクイメージをマウント
# mount /home/data2/md0_image /home/data2/_md0 -t xfs -o loop,ro,nouuid
ディスクイメージからファイルコピー
パーミッションやタイムスタンプの保持を忘れずに
# cp --archive /home/data2/_md0/* /home/data2
元のアレイが更新されている部分を追加でコピー
# mount -o remount,ro /dev/md0
# cp --archive --update /home/data/* /home/data2/
念のため、旧アレイのHDDはしばらく上書きせずに寝かせておく
微妙な容量だし、そのまま実家に持っていってバックアップにしてもいいかも
次回やるときは、素直にumountしてからddでパーティションごとコピー、
その後ファイルシステム拡張のほうが楽かも