zuntan02のはてなブログ

備忘録的なものです。時々職場の技術者ブログにも転記してますが、メインはこちらで。

さくらのVPSをローカルのKVMに移設した

さくらのVPSで動いていた開発環境(CentOS5.7)について、さくらのクラウド経由でオンプレミスの仮想マシン(CentOS6上のKVM)に移設したメモ。VPSクラウドKVMと言う流れなので、さくらのVPSでなく、さくらのクラウドアーカイブからでも同様の手順で移設は可能のはず。

【概要】
1)さくらのVPSさくらのクラウドアーカイブに変換
2)アーカイブFTPでダウンロード
3)KVMサーバに配置して起動

【詳細】
1)さくらのVPSさくらのクラウドアーカイブに変換
あらかじめ「さくらのVPSコントロールパネル」にログインしておき、その状態でさくらのクラウドの管理コンソールから[ストレージ]-[アーカイブ]-[追加]-[VPSディスク]とすると、VPSさくらのクラウドアーカイブにすることができます。
f:id:zuntan02:20150924221550p:plain
※なお、念のためアーカイブを取得する際にはVPSをシャットダウンした状態で取得することをお勧めします。

2)FTPアーカイブを取得
アーカイブ一覧から、取得したいアーカイブの[詳細]-[FTPを開始]でFTP開始。
表示される情報からimgファイルを取得します。
※以下では仮に「sakuravps.img」として保存したことにします。

3)KVMサーバに配置して起動

# /var/lib/libvirt/images/の下に配置

mv sakuravps.img /var/lib/libvirt/images

# qemuコマンドによるimgファイルのスタイル確認

qemu-img info sakuravps.img
image: sakuravps.img
file format: raw

→rawなのでkvm形式で起動できる。

# 仮想マシンマネージャを利用して、仮想マシンとして登録
→事前に元のOS バージョン、設定等を確認しておきます。

# OS確認
cat /etc/redhat-release
CentOS release 5.7 だった

uname -a
i686だった

# CPU数確認
cat /proc/cpuinfo

# メモリ確認
free -m

# ネットワーク
ifconfig


■新しい仮想マシンを作成
CentOSの[アプリケーション]-[システムツール]-[新しい仮想マシンの作成]
f:id:zuntan02:20150924221613p:plain
名前:sakuravps
●既存のディスクイメージをインポート にチェックを入れて[進む]

既存のストレージパスを指定:
  /var/lib/libvirt/images/sakuravps.img

OSの種類:Linux
バージョン:Red Hat Enterprise Linux 5.4 or later
で[進む]

モリーとCPUの設定
 メモリ:1024M
 CPU:1
で[進む]

詳細なオプションで、
 固定MACアドレスを設定 で表示されているMACアドレスを控える
 アーキテクチャー:i686
 (上記uname -aで確認したもの)
で[完了]


■ここでOSは起動しますが、ブート画面中に
Kernel panic – not syncing: Attempted to kill init!
として停止した場合、「強制的に電源OFF]したうえで以下の対応を行います。

仮想マシンの設定より[仮想ディスク]-[IDE Disk1]-[Advanced options]-[Disk bus]を確認。
[Virtio]となっていた場合は、これを[IDE]として再度起動してください。


■以下は起動した仮想マシン上での設定例。あくまで一例です。

# ネットワークの設定
vi /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=sakuravps
GATEWAY=<KVMホストマシンのゲートウェイ

vi etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
BOOTPROTO=static
HWADDR=<仮想マシンマネージャが採番したMACアドレス
IPADDR=192.168.x.x<KVMマシン上でぶつからないローカルIP>
NETMASK=255.255.255.0
ONBOOT=yes

ホストサーバ経由でsshできることを確認。
※外部からのWEBアクセスについてはpound等リバースプロキシを使って実現しています。