conoha VPSの引っ越し(その2:引っ越し作業)

家族の見舞いで病院に行こうと思っていたのですが、最近のcovid-19の影響で見舞いは自粛するよう病院から速達が来ました。
それで少し時間ができたので、conoha VPSの512MBプランのSSD 20GBからSSD 30GBへ引っ越しを行いました。手順は以下の通り。(今回は、zfs send tank@snap | ssh new_machine zfs receive newtankではなく、VPSのimage fileで引っ越しました。)

(1) 元のVPSのimage fileを作成する
 % su
 # zpool scrub peach
 # zpool status peach
 (snip)
   scan: scrub in progress since Sun Feb 23 09:58:17 2020
         12.3G scanned at 51.7M/s, 10.2G issued at 43.1M/s, 13.9G total
         0 repaired, 73.58% done, 0 days 00:01:27 to go
 (snip)
 scrub実行中は上記のような感じで残り時間の予測が表示されます。
 scrubが完了すると
 # zpool status peach
 (snip)
   scan: scrub repaired 0 in 0 days 00:04:55 with 0 errors on Sun Feb 23 10:03:12 2020
 (snip)
 のような表示になります。
 # shutdown -p now
 念の為、VPSをシャットダウンしてからconohaのコントロールパネル
 でimage fileを保存します。
 image fileの保存が終わったら、元のVPSを起動します。
(2) 新たなVPSを作成します。512MBプランで先程のimage file
 を使って作成すると、SSD 30GBのVPSができます。
(3) 新しいVPSをsingle user modeで起動します。
 SSD 20GBのimage fileで作成したため、
 # gpart show
 を実行すると元のVPS(20GB)のSSD partitionが表示されるので、
 # gpart recover
 vtbd0 recovered
 で30GB SSDが正しく利用できるようにリカバーします。
 # gpart show -l
 =>      34  62914486  vtbd0  GPT  (30G)
         34       512      1  freebsd-boot  (256K)
        546  39845376      2  peach  (19G)
   39845922   2097085      3  freebsd-swap  (1.0G)
   41943007  20971513         - free -  (10G)
 今回はpeach(freebsd-zfs)を26GBに、残り(約4GB)をswapに
 しました。
 # gpart delete -i 3 vtbd0
 # gpart resize -i 2 -s 26g vtbd0
 # gpart add -t freebsd-swap -l freebsd-swap vtbd0
 # gpart show -l
 =>      34  62914486  vtbd0  GPT  (30G)
         34       512      1  freebsd-boot  (256K)
        546  54525952      2  peach  (26G)
   54526498   8388022      3  freebsd-swap  (4.0G)
 # zpool get size peach
 NAME   PROPERTY  VALUE  SOURCE
 peach  size      18.9G  -
 gpartだけでは増やしたpeachはまだ拡張前の領域しか使えない
 ためonlineにします。
 # zpool online -e peach vtbd0p2
 # zpool get size peach
 NAME   PROPERTY  VALUE  SOURCE
 peach  size      25.9G  -
 これでちゃんと増えました。
 また、zpool statusでupgradeせよと警告が出ていたので、つい
 でにupgradeしておきました。
 # zpool upgrade peach
 # gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot \
   -i 1 vtbd0
 # zfs mount -a
 # zfs set readonly=off peach
 これでsingle user modeで書き込み可能となります。しかし
 conoha console(svc)は106キーボードを想定しているようで、
 101キーボードでの入力は辛い(例えば=は、テキスト送信ウイン
 ドーに^を書かないと入力できない)ので、ssh接続ができるよう
 に/etc/rc.confと/etc/ipfw.confをssh関連だけ修正して
 multi user modeに移行して、あとはxtermでsshして残りの
 修正を行いました。(これはconohaのカスコンのvps設定でコ
 ンソールキーマップをen-usに変更し忘れていたのが原因でし
 た。)修正したファイルは
 /usr/local/etc/nsd/nsd.conf
 /usr/local/etc/apache24/httpd.conf
 /usr/local/etc/apache24/extra/httpd-ssl.conf
 /usr/local/etc/dovecot/dovecot.conf
 /etc/ssh/sshd_config
 /usr/local/etc/nsd/ish.org.conf
 /usr/local/etc/nsd/peach.ish.org.conf
 /etc/mail/peach.ish.org.mc
 です。またxtermでssh接続する手元のマシンは
 /etc/nsswitch.confを編集してhosts: files dnsに戻し
 てpeachの新アドレスを/etc/hostsに書いて作業しました。
 同様に新VPSはnsdで新しいアドレスを広告してもlocal_unbound
 はrootサーバから古いVPSのnsdを見に行ってしまうので、
 /etc/hostsに新VPSのIPv4/IPv6アドレスを書いて動作確認を
 行いました。
(4) 一通り動作確認が終わったら、conohaのカスコンにログインし
 てDNSを更新する
(5) network solutionsのカスコンにログインしてIPv4のglue
 recordを修正する。IPv6のglue recordは修正できないのでメー
 ルで修正を依頼する。

たったこれだけですがテレビを見ながらやったら5時間近くかかってしまいました。VPSを作成し直せばSSD容量が増えることは昨日知ったばかりで何の前準備もしてなかったので、DNSのA/AAAAレコードのttlはやたら大きいままです。従って、かなり長期に渡って旧サーバのIPアドレスがキャッシュされている可能性がありますが旧サーバは今月末位には止めちゃうつもりです。(と新サーバ上のwordpressには書いても旧サーバには書いていませんが..)

その1へ戻る その3へ続く