さくら VPS 旧プランから 2G 新プランへの移行手順
前回のエントリで「さくら VPS 新プラン発表で、旧プラン契約更新の人はどうなるの?」という内容を書きましたが、個別に来ていたメールの通り優遇措置が発表されました。
http://vps.sakura.ad.jp/resource/pdf/vpsnorikae.pdf
お乗り換え先の「さくらのVPS」新プランのご利用料金を1ヶ月分無料とさせていただきます。
なお、年間一括払いのご契約に関しましては、2012年6月以降の利用期間が残っているご利用料金を算出(※1)し、返金いたします。
・・・中略・・・
●お手続きの受付期間
2012年3月29日(木)12:00 [正午] 〜 2012年4月20日(金)23:59まで ※
※上記期間内にすべてのお手続きの完了を確認できない場合、優遇施策が適用されませんのでご注意ください。
受付期間が 4/20 までとのことで 2G プラン初期日無料キャンペーンが開始されるやいなや、申し込みが殺到し、あっという間に在庫切れで一時申し込み停止状態になりましたが、めでたく 4/6 のお昼頃から受け付け再開。申し込みが集中してサイトがもの凄く重かったけど、無事に申し込みができたので、昨晩から夜な夜な移行作業を行いました。同じく移行作業を予定している方のために手順をメモとして残しました。
さくら VPS 旧プランから 2G 新プランへの移行手順
基本的な手順は、さくら社長ブログの手順に準ずるものですが、そのままの手順だと kernel panic で起動しなかったので、若干コマンドを変更しています。
さくらのVPSで上位プランに移行するための手順 - さくらインターネット創業日記
修正手順は以下のとおりです。
- 新サーバは CentOS6 がインストールされているので旧サーバの OS をカスタム再インストールする
- 旧サーバから新サーバへ rsync を使って同期対象ファイルをコピーする
- 新サーバを再起動
- 新サーバの /etc/sysconfig/network-scripts/ifcfg-eth0 を修正
- 自分の PC の C:\windows\system32\frivers\etc\hosts を書き換えて新サーバを動作確認
- 旧サーバの httpd などサービスを停止
- 再度、差分を旧サーバから新サーバへ rsync して新サーバを最新化
- DNS の TTL を短い時間に設定する。僕は 120 に設定
- DNS の Aレコードを新サーバ向けに変更
- httpd のログを tail しつつ新サーバへのアクセス集約を確認
- DNS の TTL を元に戻す
- 新サーバの本契約と旧サーバの解約(毎月20日が解約締切り)
1. 新サーバは CentOS6 がインストールされているので旧サーバの OS をカスタム再インストールする
VPS コントロールパネルにログインして、OS再インストールメニューから、「OS カスタムインストールへ」を押下して旧サーバの OS と同じ OS をインストールします。旧サーバを yum などで kernel を update していない場合は、同じ OS でも若干違うバージョンがインストールされることかと思います。
カスタムインストールの手順は公式に手順が公開されていますので、その手順を正しく守っていけばインストールは成功します。
OS カスタムインストールの公式手順書:http://support.sakura.ad.jp/manual/vps/mainte/custom.html
OS カスタムインストール時には、 java プラグインが必要になります。firefox ではうまくアプレットが起動してこなかったので chrome でインストール作業を行いました。とりあえず再インストールを行う際の、下記の画面は頻繁に見ることになるので閉じないようにしましょう。
2. 旧サーバから新サーバへ rsync を使って同期対象ファイルをコピーする
旧サーバの root ユーザになって、下記のコマンドを実行します。
rsync -rtlzvogpHAX --exclude /boot/ --exclude /dev/ --exclude /proc/ --exclude /sys/ --exclude /var/run/ --exclude /var/lock/ --exclude ifcfg* --exclude ssh_host_* --exclude fstab --block-size=4096 -e ssh / 219.94.255.217:/
コマンドの意味の詳細は、元のブログの情報を見ていただくとして、変更点は delete コマンドで新サーバのファイルを削除しないって点と、/boot を転送しないって点です。元の情報のままの手順では、再起動後に kernel panic になって OS が起動しませんでした。/boot 配下を転送しないことにより、kernel はそのまま、他のライブラリ関係は多少バージョンが古くなってしまうものもあるけど同期するってイメージの手順です。ちょっとした手抜きは目をつぶりましょう。
除外ファイル、ディレクトリは下記の通りです。
--exclude /dev/
--exclude /proc/
--exclude /sys/
--exclude /var/run/
--exclude /var/lock/
--exclude ifcfg*
--exclude ssh_host_*
--exclude fstab
3. 新サーバを再起動
コントロールパネルから再起動を行います。
4. 新サーバの /etc/sysconfig/network-scripts/ifcfg-eth0 を修正
OS カスタムインストールの手順でインストールした場合、何故かデフォルトゲートウェイの設定が反映できておりませんでした。そのためネットワーク的につながっていない状態で再起動されているので、作業はリモートコンソールで実施します。
/etc/sysconfig/network-scripts/ifcfg-eth0 にデフォルトゲートウェイの情報を追加して上げます。
※下記の例はHWADDR, IPADDR の部分はマスクした情報で * になっていますが、インストール時に入力した値が入っています。
vi /etc/sysconfig/network-scripts/ifcfg-eth0 # Intel Corporation 82540EM Gigabit Ethernet Controller DEVICE=eth0 BOOTPROTO=static DHCPCLASS= HWADDR=**:**:**:**:**:** IPADDR=***.***.***.*** NETMASK=255.255.254.0 ONBOOT=yes GATEWAY=219.94.254.1
追加が終わったらネットワークサービスを再起動します。
/etc/init.d/network restart
おそらく皆様は旧サーバはセキュリティーを考慮して正しく /etc/hosts.allow, deny で接続制御されていることでしょうから、再起動時点で、旧サーバから新サーバへの接続がつながらない状態になっていると思います。/etc/hosts.allow に元サーバの sshd の許可設定を追加して旧サーバ→新サーバの ssh+rsync がつながる状態に再設定します。
vi /etc/hosts.allow sshd: 旧サーバのIPアドレス
5. 自分の PC の C:\windows\system32\frivers\etc\hosts を書き換えて新サーバを動作確認
新サーバへいきなり切り替えるのは愚の骨頂なので、この時点でしっかりと試験を行います。windows 端末であるならば、C:\windows\system32\frivers\etc\hosts にドメインを新サーバの IP と紐づけることで検証を行うことが可能です。hosts ファイルは管理者権限で起動したメモ帳じゃないと変更が出来ないので多少面倒です。
スタートメニュー > 全てのプログラム > アクセサリ > メモ帳 から右クリックで管理者権限で起動を行います。
これまた面倒なことに、エクスプローラからドラッグで hosts ファイルを持ってこれないので、メモ帳の「開く」から、フォルダをたどって hosts ファイルを開く必要があります。設定は下記を参考に設定を行います。
新サーバIPアドレス ドメイン名 219.94.255.217 www.drk7.jp
これでブラウザからは新サーバへアクセスしに行くはずなので試験可能な状態になります。
6. 旧サーバの httpd などサービスを停止
次の手順のために旧サーバの各種サービスを一時休止します。この間、ウェブサービスは停止するので、ユーザからもサイトが落ちているように見えます。手順は必要に応じて各自カスタマイズします。
/etc/init.d/mysql stop /etc/init.d/httpd stop ・・・
7. 再度、差分を旧サーバから新サーバへ rsync して新サーバを最新化
新サーバ確認中の間の差分を旧サーバから新サーバへ同期します。
rsync -rtlzvogpHAX --exclude /boot/ --exclude /dev/ --exclude /proc/ --exclude /sys/ --exclude /var/run/ --exclude /var/lock/ --exclude ifcfg* --exclude ssh_host_* --exclude fstab --block-size=4096 -e ssh / 219.94.255.217:/
8. DNS の TTL を短い時間に設定する。僕は 120 に設定
各種ネームサービスによって手順が異なると思うので、その手順に習って TTL の設定部分を変更します。60-120 秒程度が良いと思います。これで理論上は 120 秒後には新サーバへアクセスが繰るはずです。僕の場合は 10 分程度で DNS が浸透しました。
9. DNS の Aレコードを新サーバ向けに変更
こちらも各種ネームサービスによって手順が異なると思うので、その手順に習って A レコードの設定部分を変更します。
僕の場合はこんな感じに変更しました。
a www 49.212.18.160 ↓ a www 219.94.255.217
10. httpd のログを tail しつつ新サーバへのアクセス集約を確認
apache, nginx なんでもよいですが httpd サーバのアクセスログを tail -f して旧サーバ、新サーバともに監視し続けます。旧サーバへのアクセスがなくなった時点で DNS の変更が浸透したことになります。完全に浸透するまでは旧サーバも落とさずそのままにしておけば、ユーザからはサイトは適切に表示されているはずです。(※ブログなどエントリを早速書き始めている場合には、旧サーバで古いコンテンツが見えている可能性もあります。)
tail -f logs/access.log
11. DNS の TTL を元に戻す
数日後で良いかと思いますが、DNS の TTL の設定を元に戻しておきます。
12. 新サーバの本契約と旧サーバの解約(毎月20日が解約締切り)
切替が終わったら忘れず新サーバの本契約を行いましょう。一年契約ですよね。やっぱし。
旧サーバは 4/20 前まで解約します。最低利用期間は3ヶ月なのです、コンパネ上から解約が出来ないため、メールにて解約申請を行います。このエントリを読んでいる方は、ほとんど、そんな方が多いのではないでしょうか。
以下の情報を記載の上、メールにてお問い合わせください。
【件名】
[さくらのVPS]乗り換えに伴う最低利用期間中の解約希望
【本文】
会員ID:
契約者名:
旧サービスのサービスコードまたはIPアドレス:
新サービスのサービスコードまたはIPアドレス:
以上おしまい。あと数日様子を見て解約手続きを行いますです。
コメントやシェアをお願いします!