まとめトクの有効期限が切れる3年後には再度VPSの移行が必要になる可能性が高いので、備忘のために今回の移行手順の概要をメモしておきます。
(1) VPSはconoha標準テンプレートのFreeBSD 14.0R(ufs)を使ってVPSを作成。
当初は、FreeBSD 14.0R(zfs)を使ったのですが、パーティションがfreebsd-boot, freebsd-swap, freebsd-zfsの順番で嫌だったのでufs版のテンプレートで作業しました。
今後のことも考えてfreebsd-bootとfreebsd-zfsはSSDの先頭50GBに収め、残りの50GBにswapや今回の移行作業用(及び今後の緊急作業用)のfreebsd-ufsを作成する。FreeBSD 14.0R(ufs)のイメージは30GB用なので、gpart recover vtbd0
して100GB環境に合わせた後、vtbd0p2のfreebsd-ufsを58GBからのvtbd0p4へddした後にmountして/etc/fstabを/dev/vtbd0p4へ編集した後、vtbd0p2を解放してrebootし、vtbd0p4のFreeBSD(ufs)を起動する。
(2) パーティション構成を変更。
reboot後、gpartで以下の構成に変更する。
% gpart show => 40 209715120 vtbd0 GPT (100G) 40 1024 1 freebsd-boot (512K) 1064 104856576 2 freebsd-zfs (50G) <=== このサーバ 104857640 16777216 3 freebsd-swap (8.0G) 121634856 58719232 4 freebsd-ufs (28G) <=== 移行/緊急作業用 180354088 29361072 - free - (14G)
(3) 旧マシンとの間でzfs send/receiveを実行。
旧マシンで各プールのsnapshotを作成し、それらをsend/receiveする。通常は、その後bectlでreceiveしたもので起動するように設定するだけで良いが、元のサーバのpoolを細かく分けてしまっているのでpool毎にmountpointの設定が必要であった。なお、上位のpoolのmountpointを設定すれば下位のpoolのmountpointは自動的に設定されます。
(4) boot codeを書き込んでzfs bootに切り替えてreboot。
今回、bootcodeの書き換えでgpart bootcode -b /boot/pmbr -p 1 vtbd0
を書き込むのを忘れてrebootしてしまったため、boot:プロンプトでの手入力が必要になったのですが、この作業がvncが101キーボードに対していないためにコロン(:)等の入力に非常に苦労しました。ちゃんとgpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 vtbd0
していれば、余計な苦労はなかったと思います。
(5) 起動後、OS及び各アプリケーションのIPアドレス設定を更新してvpsの設定完了。
(6) DNS関係を設定変更。