ご利用ガイドMondo Rescueを使ったVPSのマイグレーション
目次
「これは2015年5月17日以前にアカウント登録されたお客様向けの記事です。」
今回はVPSをまるまる移行するのがテーマです。ConoHa以外のVPSサービス、クラウドサービスで運用している仮想マシンを、そのままConoHa VPSに移行することを目標にします。また、既にConoHa VPSをお使いの場合でも、上位プランへの移行をより簡単に行うことができるでしょう。
Mondo Rescue
今回はMondo Rescueというソフトウェアを使います。これは各種LinuxディストリビューションやFreeBSDに対応したディザスタリカバリツールで、バックアップとリカバリを非常に簡単に行えます。
Mondo Rescueを使うと、稼働しているVPS上からそのVPSのディスクイメージを作成することができます。ディスクイメージにはアプリケーションだけでなく、ミドルウェア、OS、パーティション情報など、リストアに必要なすべての情報が含まれています。また、ディスクイメージをISO形式で作成する機能があり、そのISOイメージからブートすることでリストアが手軽にできるという強力な特徴があります。
移行する前に
今回はMondo Rescueというソフトウェアを使います。これは各種LinuxディストリビューションやFreeBSDに対応したディザスタリカバリツールで、バックアップとリカバリを非常に簡単に行えます。
Mondo Rescueを使うと、稼働しているVPS上からそのVPSのディスクイメージを作成することができます。ディスクイメージにはアプリケーションだけでなく、ミドルウェア、OS、パーティション情報など、リストアに必要なすべての情報が含まれています。また、ディスクイメージをISO形式で作成する機能があり、そのISOイメージからブートすることでリストアが手軽にできるという強力な特徴があります。
移行する前に
今回はMondo Rescueを使って、ConoHaで作成したVPSを、同じくConoHaの別のVPSに移行してみます。移行元VPSでの「バックアップ」と移行先VPSでの「リストア」という二つのステップになります。
今回はConoHa VPS同士で移行をしますが、もちろん移行元はConoHa VPSでなくてもかまいません。Mondo Rescueがインストールできて、root権限があるマシンであればまず大丈夫でしょう。
注意点として、移行元のディスクにバックアップを作る空き容量がない場合と、移行先のディスクが移行元より小さい場合は移行できません。
手順は、大まかには以下のようになります。
・移行元VPSでMondoRescueをインストールする
・ディスクイメージを作成する(ISO形式)
・作成したディスクイメージをConoHaのsftpサーバにアップロードする
・ConoHaのコントロールパネルにログインする
・移行先のVPSを作成する
・OS再インストール機能を使ってISOイメージからVPSを起動する
・リストアを実行する
バックアップの事前準備
まず移行元のサーバの環境の確認です。root権限があることが必須条件で、OSはLinuxもしくはFreeBSDである必要があります。
Linuxはかなり多くのディストリビューションに対応していて、パッケージマネージャで簡単にインストールできるケースが多いでしょう。ここではConoHaの標準OSであるCentOS 6.5で解説します。
まずはMondo Rescueをインストールします。yumリポジトリを追加してyum installでインストールします。この際、できればミラーからダウンロードするようにしてください。今回はUSのミラーを使います。
# repoファイルをダウンロード
wget ftp://mondo.mirror.pclark.com/pub/mondorescue/rhel/6/x86_64/mondorescue.repo
mv mondorescue.repo /etc/yum.repos.d/
# Mondo Rescueをインストールする
yum --enablerepo=mondorescue install mondo
ここまでで事前準備は完了です。
バックアップする
バックアップを実行するにはmondoarchiveコマンドを使います。
mondoarchive
コマンドを実行すると、以下のようにGUIのような画面が表示されます。ここからは矢印キーで選択、Enterキーで決定という方法で進めていきます。
この画面では、バックアップアーカイブの保存先を指定します。今回は同じVPSのディスク上の/tmpにアーカイブを作成してみましょう。「HardDisk」を選択してください。
保存先のディレクトリを指定します。/tmpと入力してください。
バックアップアーカイブの圧縮方法を指定します。bzip2がデフォルトでこのままでも問題ないでしょう。
圧縮レベルを指定します。Maximumでよいでしょう。
作成するISOイメージのサイズを指定します。そもそもMondoRescueは、CD-RやDVDなどのディスクメディアに書き込むことを前提にしており、ここで指定したサイズで複数のファイルに分割してくれます。今回はディスクメディアの作成は行いませんが、ConoHa VPSのISOアップロード領域は10GBの上限があるため、10,000(MB)を指定しておきましょう。
アーカイブファイルのプレフィクスを設定します。これは自由につけてかまいません。
バックアップするディレクトリを指定します。これも特になければこのままで大丈夫です。
バックアップ対象から除外するディレクトリを指定します。移行不要なラージファイルなどがある場合は、指定するとよいと思います。なお、/tmp, /dev, /proc などはデフォルトで除外されるので指定は不要です。
mondoarchiveが使用するテンポラリディレクトリの指定です。変更の必要はないでしょう。
こちらもmondoarchiveが使用するテンポラリディレクトリの指定です。変更の必要はないでしょう。
アーカイブ作成後に、ファイルが正しく作成されたか検証を行うかを指定します。通常はYesですが、かなり時間がかかるのでテストが目的ならNoでもよいでしょう。
バックアップ対象のOSが、Gentooの1.4以下とDebianの3.0以下の場合はNoを指定します。
Yesを選択するとバックアップが開始されます。あとは完了まで待ちます。
バックアップが正常に完了しました。そのままEnterでシェルに抜けます。/tmpディレクトリを確認してみましょう。ISOイメージが作成されているはずです。
[[email protected] tmp]# ll
合計 851652
-rw-r--r-- 1 root root 872087552 11月 10 11:26 2014 mondorescue-1.iso
ディスクイメージをアップロードする
次に、作成したディスクイメージをConoHaのsftpサーバにアップロードします。いくつか方法がありますが、一番わかりやすいのは、一度手元の環境にアーカイブをダウンロードしてから、それをConoHaのsftpサーバにアップロードする方法です。ISOイメージのアップロードについては、以下のガイドをご覧ください。
ただ、この方法はアーカイブファイルのサイズが大きいと時間がかかってしまいます。なので、バックアップ元のVPSから直接sftpサーバにアップロードする方法もご紹介します。
あらかじめ、ConoHaのコントロールパネルから秘密鍵をダウンロードしてconoha.keyというファイル名で保存しておいてください(パーミッションは0600である必要があります)。そして、以下のようにsftpコマンドでConoHaのsftpサーバに接続し、lcdコマンドでローカルのディレクトリを変更、putコマンドでアップロードを実行します。
[[email protected] /]# sftp -o "IdentityFile=conoha.key" [ユーザ名]@sftp1001.cnode.jp:images
Connecting to sftp1001.cnode.jp...
Changing to: /images
sftp> lcd /tmp
sftp> lls -l
sftp> put mondorescue-1.iso
Uploading mondorescue-1.iso to /images/mondorescue-1.iso
アップロードが完了すると、ConoHaコントロールパネルのOS再インストール画面でISOイメージが選択できるようになります。
リストア
それではお待ちかねのリストアです。リストアはConoHaのコントロールパネルにログインし、コンソールを使って行います。
リストア先VPSのディスクはすべて消去されます。特に複数のVPSを起動しているお客様は、リストア先のVPSを間違えないようにご注意ください。
作成したISOイメージからVPSを起動するのですが、これは以下のガイドをご覧ください。これはConoHa側で用意したイメージを用いてVPSを起動するものですが、作成したISOイメージを使う場合も同じです。このエントリの解説は、VPSが起動した後からになります。
VPSが起動すると、以下のようなMondoRescueのリカバリOSを起動する画面になります。
ここではEnterを押してください。OSが起動します。
リストアの方法を選択します。「Automatically」を選択してください。その後は自動的にリストアが進行します。
リストアの最後にinitrdを再生成するかを聞かれます。これはNoを選択してください。でないとVPSが起動しなくなります。(起動しなくなった場合は、もう一度リストアを行ってください)
リストアが完了しました。OKを選ぶとシェルに抜けるので、rebootコマンドを実行してVPSを再起動してください。
リストア後の処理
リストアは完了しました。忘れずにディスクイメージを排出して、VPSを起動してみてください。OSが起動してくれば成功です。
しかし、移行元次第ですが不運なことにOSが起動しないかもしれません。こうなってしまうと、エラーメッセージなどを頼りに、原因を一つずつ潰していくしかないです。(ConoHa VPS同士の移行であれば、まず大丈夫だとは思いますが・・・)
また、無事OSが起動しても、移行元との環境の違いにより、設定を変更する必要かもしれません。典型的なのはネットワークの設定です。
以下に、ConoHa VPS同士を移行した際に発生する、UUID違いによるネットワークインターフェイスが認識しない問題と、IPアドレスが取得できない問題への対処を解説します。
eth0がない?
移行したVPSでip aコマンドを実行してみてください。
eth1しか見当たらず、しかもIPアドレスが割り当てられていません。
Linuxではネットワークインターフェイスはudevで管理されており、これは移行元VPSと移行先VPSのネットワークインターフェイスのUUIDが違うために起きます。設定ファイル上は移行元のUUIDになっているからです。
この設定は、/etc/udev/rules.dの70-persistent-net.rulesファイルに書いてあります。ファイルを修正してudevadmを使ってもよいのですが、もっと簡単なのはファイルを削除してマシンを再起動することです。設定ファイルはOS起動時に自動的に作成されます。
cd /etc/udev/rules.d
rm -f 70-persistent-net.rules
reboot
これでネットワークインターフェイスが正しく認識されます。
IPアドレスが取得できない
これはConoHa以外の環境から移行したときに、問題になる場合があります。移行元が静的にIPアドレスを割り当てていた場合、ネットワークが違うConoHaではIP通信ができなくなります。
ConoHa VPSはIPアドレスの割り当てをDHCPで行っています。setupコマンドなどを使用して、DHCPを用いてIPアドレスを取得するよう変更をしてください。
終わりに
サーバ移行というと何かと面倒なことになりがちですが、Mondo Rescueを使うと仮想サーバをまるごと移行できるため、とても手軽に移行が行えます。また、ConoHaはISOイメージからVPSを起動できるという特徴があるため、リストアも非常に簡単にできます。
現在のサーバ環境に満足されてない方は、このエントリを参考にConoHa VPSへ移行を検討してみてください!