さくらのVPSに自宅サーバ(Ubuntu)を引っ越し
Ubuntuで構築していた自宅サーバをさくらのVPSにrsyncで引っ越した話です。
昨年末に自宅サーバが突然壊れました。
電源が落ちたと思ったら、それ以後まったく電源が入らなくなったのです。
メールサーバとして使われてたりするので、早急に復旧したいんですが、分解して色々チェックするもお手上げで、電源を交換するのが早いとの結論に達しました。
よりによって大晦日に適応する電源を探しに秋葉原を駆けずり回ることになっちゃったわけです。
(TFX規格の電源というマイナーさw)
取り急ぎ電源を交換して事なきを得たんですが、さすがに自宅サーバの時代じゃないし、電気代払いたくないしということで、さくっとさくらのVPSに引っ越ししました。
このブログでも記事にしていますが、MondoRescueを使うとかなり楽(安心感も含めて)にサーバを移転できます。
しかしこの方法にも問題があります。それは、
・ さくらのVPSのISOイメージアップロード機能は1枚のISOしかマウントできない
・ その容量は5GBに制限されている
ということです。
1枚しか駄目なのはmondoarchiveのオプションをいじれば何とかなるんですが、5GBの制限が問題です。
このサーバは1996年から稼働しているドメインを扱っており、利用者さんの18年分のゴミ貴重なファイルが溜まっています。
そのため、作成したイメージは45GBを超えるものとなりました。
そこで、さくらの田中社長さんも紹介しているrsyncでまるごとコピー方式を採用してサーバを移転させました。
ただ、お約束で結構古いし、デフォルトでインストールされるCentOSでの手順なんですよね。
ということで、↓この辺を参考にして行った、Ubuntuでのrsyncを使った引っ越し手順を紹介します。
- さくらVPS の契約を追加して rsync でまるっと移行してみた
- rsync でまるっと移行してみたと思ったらまるっと移行できていなかったので対応を加えた(特定のコマンドだけtty無しのsudoを許可する方法)
- さくらVPSを512→1Gのプランに移行してみた。
- rootだけtty無しのsudoを許可
1. 元のサーバを移行先サーバと同じバージョンに揃える
移行元はUbuntu 12.04LTSだったので14.04LTSまでアップグレードし、さくらのVPSにはUbuntu 14.04LTSをインストールしました。
「apt-get upgrade」 するなどで、うまいことしましょう。
2. rsyncの設定を移行先サーバで行う
Ubuntuの場合、 /etc/sudoers.d/ディレクトリに追加の設定ファイルを置くと読み込まれる仕組みになっています。
今回は /etc/sudoers.d/rsyncというファイルを作り、そこに
Defaults:root !requiretty Defaults:%adm !requiretty Defaults:%admin !requiretty %adm ALL=(ALL) ALL, (root) NOPASSWD: /usr/bin/rsync %admin ALL=(ALL) ALL, (root) NOPASSWD: /usr/bin/rsync
オーナーはrootで、0440にchmodしておきます。
3. とりあえず元サーバでrsyncを実行
# rsync -rtlzvogpHAX --rsync-path="sudo /usr/bin/rsync" --exclude /boot/ --exclude /dev/ --exclude /proc/ --exclude /sys/ --exclude /var/run/ --exclude /var/lock/ --exclude ssh_host_* --exclude fstab --exclude /etc/network/interfaces --exclude /etc/resolv.conf --exclude /run --block-size=4096 --delete -e ssh / (移行先サーバの管理ユーザー)@(移行先サーバのIPアドレス):/
4. 移転先サーバを再起動してチェック
5. 元サーバでアナウンス後、すべてのサービスを停止
6. もう一回rsync
7. DNSを書き換えて移転先サーバを再起動
追記:
コピー終わったw
昨晩の9時間がwww pic.twitter.com/5sDp3L4Wk6
— Takuya.K (@min_meou) 2015, 1月 15