久しぶりにZFSを使ってみようかなーと思っているのですが、ZFSはメモリを食いますし、 x86(32bit) 環境よりも AMD64(64bit) の方がいろんな面で適しているそうです。最終的には AMD64 + ZFS を狙っているのですが、同時にやるとエラいことになると思うので 難易度の高そうな AMD64化から先にやってみました。
なお、うちのサーバは gmirror による2台のmirror(ad1,ad2) + dump保管用(ad0)の合計3台構成になっています。何かあった時にすぐに戻せるよう、mirror は切り離してから 64 化することにしました。
# gmirror stop gm0
# gmirror clear ad1
# gmirror clear ad2
# mount /dev/ad1s1a /mnt
# mount /dev/ad1s1d /mnt/usr
# cd /usr/src
# make installworld DESTDIR=/mnt
# make installkernel DESTDIR=/mnt
# mergemaster -Ui -D /mnt
手順はだいたいこんな感じ。文章で書くとなんてことはないのですが、12時間ぐらいかかりました(爆)。いや、想定外の事項が多すぎて・・・。
いやはや、難易度高めといっても FreeBSD5~6, 6~7 なんかはわりとスイスイだったので、こんなに時間がかかるとは思いもよりませんでした(^_^)。しかも PHP とか PostgreSQL とか軒並み動かないので、ports ツリーを全部 make し終わるまでサーバーを復旧させられないし(T^T)。(7)だけで数時間かかりましたよ。
でもね、苦労した甲斐はありました。# uname -a
FreeBSD toriyu.toriyu.dd.que.ne.jp 7.1-RELEASE-p1 FreeBSD 7.1-RELEASE-p1 #0: Fri Jan 9 15:48:34 JST 2009 root@:/usr/obj/usr/src/sys/GENERIC amd64
じゃじゃーん。ちゃんとamd64になってますね。まぁハードウェアが同じなので苦労した割には違いがわかんないのですけど(^_^)。気がついたところでは エンコード用に2GBを超えるファイルのファイルサイズをPHPで取得したときにこれまで負の数で返ってきてたのが、64ビット版ではちゃんと大きい整数になってるみたいです。
細かいところはいろいろ調整しなくちゃいけないところもあるかと思いますが、それに関してはおいおいやっていくつもりです。