さくら 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で上位プランに移行するための手順 - さくらインターネット創業日記

修正手順は以下のとおりです。

  1. 新サーバは CentOS6 がインストールされているので旧サーバの OS をカスタム再インストールする
  2. 旧サーバから新サーバへ rsync を使って同期対象ファイルをコピーする
  3. 新サーバを再起動
  4. 新サーバの /etc/sysconfig/network-scripts/ifcfg-eth0 を修正
  5. 自分の PC の C:\windows\system32\frivers\etc\hosts を書き換えて新サーバを動作確認
  6. 旧サーバの httpd などサービスを停止
  7. 再度、差分を旧サーバから新サーバへ rsync して新サーバを最新化
  8. DNS の TTL を短い時間に設定する。僕は 120 に設定
  9. DNS の Aレコードを新サーバ向けに変更
  10. httpd のログを tail しつつ新サーバへのアクセス集約を確認
  11. DNS の TTL を元に戻す
  12. 新サーバの本契約と旧サーバの解約(毎月20日が解約締切り)

1. 新サーバは CentOS6 がインストールされているので旧サーバの OS をカスタム再インストールする

VPS コントロールパネルにログインして、OS再インストールメニューから、「OS カスタムインストールへ」を押下して旧サーバの OS と同じ OS をインストールします。旧サーバを yum などで kernel を update していない場合は、同じ OS でも若干違うバージョンがインストールされることかと思います。

img010.jpg

カスタムインストールの手順は公式に手順が公開されていますので、その手順を正しく守っていけばインストールは成功します。
OS カスタムインストールの公式手順書:http://support.sakura.ad.jp/manual/vps/mainte/custom.html

img001.jpg

OS カスタムインストール時には、 java プラグインが必要になります。firefox ではうまくアプレットが起動してこなかったので chrome でインストール作業を行いました。とりあえず再インストールを行う際の、下記の画面は頻繁に見ることになるので閉じないようにしましょう。

img011.jpg


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 /boot/
--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 ファイルは管理者権限で起動したメモ帳じゃないと変更が出来ないので多少面倒です。

スタートメニュー > 全てのプログラム > アクセサリ > メモ帳 から右クリックで管理者権限で起動を行います。

img012.jpg

これまた面倒なことに、エクスプローラからドラッグで 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ヶ月なのです、コンパネ上から解約が出来ないため、メールにて解約申請を行います。このエントリを読んでいる方は、ほとんど、そんな方が多いのではないでしょうか。

※2 最低利用期間に満たない解約について
以下の情報を記載の上、メールにてお問い合わせください。
【件名】
[さくらのVPS]乗り換えに伴う最低利用期間中の解約希望
【本文】
会員ID:
契約者名:
旧サービスのサービスコードまたはIPアドレス:
新サービスのサービスコードまたはIPアドレス:


以上おしまい。あと数日様子を見て解約手続きを行いますです。

- スポンサーリンク -