メインサーバ移行

本日、だいぶ長い間放置していた、メインサーバの新サーバへの移行作業を決行しました。

年払いの利用期間の区切りが7月末だった、というのもありますが…

これで性能が大きく改善した…わけではなくて、正直体感で気づくような違いは何もないと思うんですが、たまにOSインストールからごっそりリフレッシュ作業を行うのは悪くはないと思うのです。たぶん。

移行メモ

1.旧サーバと利用期間が重なるように、先に新サーバを契約する

  • 年払いの場合、もったいないのでちゃんと契約期間を見て計画的に準備すること
  • さくらのVPSは、契約後72時間はOP25Bの制限があるので注意すること
  • お試し期間なしですぐに費用を支払って、OP25Bを除く制限を全解除すること

2.旧サーバと新サーバをローカルネットワーク機能でつなぐ

  • 仮想スイッチを1個作り、旧サーバと新サーバの2番目か3番目のNICをスイッチにつなぐ
  • 両者に適当な固定IPを割り当てる
  • この接続は後でデータ転送に使う

3.ふつうにFreeBSDをインストールして、アップデートまで済ませておく

  • 1番目のNICIPv4設定だけを済ませて、IPv6は後回し
  • 2・3番目は後回し
  • いまどき32bit互換ライブラリは要らない
  • 終わったら再起動して、2.の工程でつなげたデータ転送用ローカルネットワークのIPを割り当てる
  • 忘れないうちに1番目のNICIPv6設定もしておくとよい

4.ネットワーク越しにデータ転送

  • /home など巨大なやつはrsyncで。uid・gidの設定をスーパーユーザーにしておかないとパーミッションエラーになるので注意
  • /etc /usr/local/etc /var/db などは tar と nc の合わせ技で。ただしセキュリティもへったくれもないので手早く済ますこと。
# 受け側
nc -l ポート | pv | tar xz -C /ディレクトリ
# 送り側
tar czf - -C /ディレクトリ 転送したいディレクトリ名 | pv | nc サーバIP ポート
# ToDo シンボリックリンクの扱いのオプションをtarに加えたほうがいいかも
# あと文字コードエラーになりやすいので大量のファイルを正確にコピーするならrsyncで
  • /var/db/freebsd-updateにゴミがたくさんあるので、/var/db全体を転送するなら先に消しておくこと
  • /var全体は/var/runなどがあるので除外設定を考えるか別々に転送したほうがいい
  • 各ユーザーのcronは/var/cronにある