一昔前までVPSと言えばさくらでしたが、
最近さくらに追い上げてきているのがGMOが運営するのVPS「ConoHa」です。
最近人気が上がりつつあるこのサービス。
特徴は何と言っても、VPSでありながらクラウド並のオプションが用意されていること。
初期費用が無料ですぐ使え、スケールアウトやプライベートIPの割当ができる。
月額料金の範囲で、時間単位の課金も行えるという、AWSと非常に似ているVPSです。
詳しい説明は公式サイトに書いてあるので端折ります。
ここではVPSをまるまる移設した時のことを書きます。
主な流れ
- 旧鯖と新鯖のOSバージョンを合わせる
- 旧鯖でrsyncコマンドを打つ(要 root)
- 待機
- 再起動
- MACアドレスの変更
- httpd、 mysql、 screen のエラー解消
- サービスの停止
- 再度 rsync
- 再起動
- 旧鯖停止
1.旧鯖と新鯖のOSバージョンを合わせる
旧鯖はConoHaとは別サービスの環境ですが、OSのバージョンはCentOS6.7で統一しています。
ここでLinuxのバージョンに差異があると、エラーがでたり最悪Kernel Panicになりますので
yum updateを実行して最新の状態に揃えておいてください。
2.旧鯖でrsyncコマンドを打つ(要 root)
旧鯖と新鯖に rsync がインストールされていることを確認してください。
rsyncは旧鯖から実行してください。
※ コマンドを打つ前に旧鯖から新鯖へ ssh でアクセスできるように設定する必要があります。
新鯖側はrootユーザでパス認証できるように設定してありますが、セキュリティ上好ましくないので
移行中以外は設定を外しておきましょう。
[bash]
rsync -rtlzvogpHAX –delete –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 / ***.***.***.***:/
[/bash]
3.待機
まちましょう。
環境にもよりますが、自分の場合は15分程でコピーが完了しました。
4.再起動
rsync が終了したら新鯖を再起動します。
ここでは無事起動してくる事を願いましょう。
5.MACアドレスの変更
新鯖のネットワークの設定はそのままですが、
移行した事によりMACアドレスが変わるので、MACアドレスを修正して再起動します。
[bash]
[root@vps ~]# vi /etc/udev/rules.d/70-persistent-net.rules
[bash]
# PCI device 0x1af4:0x1000 (virtio-pci)
SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”**:**:**:**:**”, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth0″ #この行をコメントアウトする。
# PCI device 0x1af4:0x1000 (virtio-pci)
SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”**:**:**:**:**”, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth1″ #ここをeth0に変更する。
[/bash]
6.httpd、 mysql、 screen のエラー解消
自分は問題なかったですが、rsync で除外した /var/run 配下のディレクトリが不足していると
http、mysql、screenでエラーを吐いてしまう場合がある様です。
旧鯖と比較しながら足りないディレクトリを探し、パーミッションやパスは適切に変更してください。
終わったら再起動して各サービスが正しく動作するか確認しましょう。
7.サービスの停止
旧鯖のサービスを停止します。httpd、postfix、minecraft 等全てです。
サーバーのファイルが書き変わらないようにしましょう。ここからは外部からはサーバーが停止しているように見えます。
8.再度 rsync
旧鯖から新鯖へもう一度rsyncします。
最初のrsyncで旧鯖の設定が新鯖へ受け継がれているので、sshでroot でログインができなくなりました。
sshのポート番号も変わっています。ですのでコマンドを一部変更しました。
[username] は sudo をパスワードなしで使用できるユーザー、[port] は新鯖の ssh のポート番号です。
[bash]
rsync -rtlzvogpHAX –delete –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 -p 10022” / [移行先サーバ]:/
[/bash]
9.再起動
再度新鯖を再起動し、各サービスが正常に動作しているか試験します。
クライアントの hosts を設定して、ホスト名を使用し試験するのが最良でしょう。
10.旧鯖停止
ドメインはダイナミックDNSを使用しているので、DNSの変更は即時で行われます。
なので向き先を変えれば切り替え完了です。
おまけ
旧鯖側のサービスは停止していますが、念のためNFSでディレクトリ全体をマウントしています。
このまま運用に問題なければ、旧鯖は削除となります。お疲れ様でした。
[bash]
[root@hdserver ~]# mount -t nfs [旧鯖IP]:/ /home/NFS
[root@vps ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda3 18G 3.4G 14G 20% /
tmpfs 246M 0 246M 0% /dev/shm
[旧鯖IP]:/ 53G 3.5G 47G 7% /home/NFS
[/bash]
参考サイト様:https://www.zu-min.com/archives/75