HDDが届いたので、早速zfsの設定を行っています。
(1) 旧HDD構成はada0〜ada4で、ada4が起動ディスクで/, /var, /usrもada4上にある。そこで/etc/fstabをeditして、ada4以外 はmountしないようにコメントアウトする。 (2) 5個の旧HDDを外して、新しいHDDと入れ替える。 (3) 旧ada4をESATAで6個目のHDDとして接続する。(当初、SATAで 繋ぐつもりだったのですが、SATAケーブルをどこにしまったの か忘れてしまい探すのが面倒だったのでESATAで接続した。) ESATAが5個目の内蔵HDDよりも前に来るので、新HDDはada0〜 ada3、ada5になり、旧HDDはada4になる。 (4) 6個目のHDD(ada4)から起動した後、別マシンからsshでログイン して作業する。5個の新設HDD(ada0〜ada3, ada5)にswapと raidzを作成。更にada0にはbootcodeを書き込む。 # for a in 0 1 2 3; do > gpart create -s GPT ada$a > gpart add -t freebsd-swap -s 2g -l freebsd-swap$a \ ada$a > gpart add -t freebsd-zfs -l freebsd-zfs$a ada$a > done # gpart create -s GPT ada5 # gpart add -t freebsd-swap -s 2g -l freebsd-swap4 \ ada5 # gpart add -t freebsd-zfs -l freebsd-zfs4 ada5 # gpart delete -i 1 ada0 # gpart add -i 127 -t freebsd-boot -s 512k \ -l freebsd-boot ada0 # gpart add -t freebsd-swap -l freebsd-swap0 ada0 # gpart bootcode -b /boot/pmbr ada0 # gpart bootcode -p /boot/gptzfsboot -i 127 ada0 # zpool create -o altroot=/mnt -m none hoge \ raidz ada0p2 ada1p2 ada2p2 ada3p2 ada5p2 # zfs set compression=lz4 hoge # zfs set atime=off hoge # zfs create -o mountpoint=none hoge/ROOT # zfs create -o mountpoint=/ hoge/ROOT/default (snip) # zpool set bootfs=hoge/ROOT/default hoge # reboot (5) ここでrebootしてsingle user modeで旧HDDから新HDDへ dump/restoreする。しかし、何故かESATA接続が安定せず、エ ラーを吐くのでada5を外し、ada4をESATAではなく内蔵SATAで 接続して作業を行う。(raidzはada5が故障したのと同じ状況に なる。) (6) 旧ada4から起動した後、 # zpool import -f -R /mnt hoge # cd /mnt # dump 0af - / | restore rf - # cd /mnt/usr # dump 0af - /usr | restore rf - (その他のパーティションも同様にdump & restoreする) (7) 旧ada4のdump & restoreが全て終了したら一旦shutdownして、 旧HDDを交換して、全ての旧HDDをdump & restoreする。なお、 旧ada4のdump & restoreが終了した時点で新HDDでzfs boot できる状態なので、旧HDD交換後は新HDDからzfs bootしてssh経 由で他のマシンから作業を行っている。 (8) 現在、旧HDDからのdump & restore途中なので、本日はここま で。約4TB/日しかdump & restoreできないので、完了までには 4日近くかかる見込みです。(ということは50MB/sec程度しか 出ていないことになるなぁ。300MB/sec出る訳はないけど、も うちょっと速いといいのになぁ。)