【SYSTEM】環境そのものをまるごとバックアップ・リストア!非常に便利な「Mondo Rescue」使い方まとめ【CentOS6.4】

もしもの時の為、バックアップは必ず取っておくべきですよね。こんにちはえんぞーです。
少し前にVagrant を使った仮想環境構築の話をさせて貰いましたが、今回は実際に動いている環境をまるごとバックアップするお話し。
いつ何時おかしくなってしまうか分からないから転ばぬ先の杖ってやつですね。
**「データは」**バックアップしてるから大丈夫!と考える人もいると思います。
HP のデータとかデータベースだけならそれでも良いのですが、VPS で一から環境を構築してたりする場合、その環境がおかしくなったりすると現実逃避したくなるくらい心に穴が空きます。
そんな穴を埋めてくれるのが環境そのものをデータごとバックアップしてくれるオープンソースのソフトウェア「Mondo Rescue」です!
今回はさくら VPS(CentOS6.4_64bit)にインストールしてバックアップしてみるまでの流れをまとめておこうかと思います。
インストール方法
まずはインストール。
#まずは移動してから cd /etc/yum.repos.d/ #Centos6(64bit)用のリポジトリファイルをダウンロードします。 wget ftp://ftp.mondorescue.org/rhel/6/x86_64/mondorescue.repo #あとはインストールコマンドコマンドを叩きます。 yum install mondo
途中 ↓ このような警告が出てきますが、GPG キーをインポートするかどうかの質問なので Yes で先に進みます。
warning: rpmts_HdrFromFdno: Header V4 DSA/SHA1 Signature, key ID ~~~~~~: NOKEY Retrieving key from ftp://ftp.mondorescue.org//rhel/6/x86_64/mondorescue.pubkey Importing GPG key ~~~~~~~~~: Userid: "Bruno Cornec (primary address) <[email protected]>" From : ftp://ftp.mondorescue.org//rhel/6/x86_64/mondorescue.pubkey Is this ok [y/N]: y
ここまででインストールは完了です。
次に圧縮速度が速いと言う事で LZO 圧縮のソフトもインストールしておきます。
#CentOS6.4だとそのまま入れられるっぽい(?) yum install lzop lzo
これで必要な物は全てインストールしました。後はバックアップするだけなのでバックアップファイルを保存する場所を作っておきます。
#わかりやすい様に今回ルートにディレクトリ作ります mkdir /_backup
バックアップしてみましょう
準備が整ったのでバックアップを始めましょう。
#各オプションについては別途説明します mondoarchive -Oi -L -N -s 5000m -d /_backup -E /_backup/ -p `hostname`-`date +%Y-%m-%d`
しばらく待つと「/_backup」ディレクトリにバックアップ ISO が出来ています。
今回の場合は 2.8G 位のファイルになりました。ローカルに保存しておきましょう。
mondorescue の各オプションについて
それぞれのオプションについてはこのようになります。
#基本となるコマンド #-Oでバックアップの実行 mondoarchive -O #-Vでバックアップデータの検証 mondoarchive -V
- -i
バックアップデータを ISO で出力。 - -c speed(2 とか 4 とか)
バックアップデータを CD-R に出力。 - -w speed(2 とか 4 とか)
バックアップデータを CD-RW に出力。 - -r speed(2 とか 4 とか)
バックアップデータを DVD に出力。 - -p prefix
バックアップイメージ(ISO)のファイル名。 - -n mount
バックアップデータを NFS に出力する。 - -D
差分バックアップを行う。 - -L
lzo 圧縮を使用する。一部バージョンでは不安定らしい。 - -E “path”(”|”で区切って複数パス可能)
バックアップ対象から除外するディレクトリ。 - -I “path”
バックアップ対象のディレクトリ。 - -N
ローカルディスクのみバックアップの対象とする。NFS などは除外。
※GlusterFS を使用している場合は「-N」オプションを指定しても、ネットマウントディレクトリが除外されないとの事なので、-E オプションで明示的に除外します。 - -d dir
バックアップイメージの出力パス - -g
バックアップの進行を GUI モードで表示する。 - -s
CD/DVD、ISO の最大サイズ。
ここで指定したサイズで分割される。指定無しなら 640M 位のファイルで分割。
使ったことが無いオプションもありますが大体こんな感じのようです。
追記:ubuntu での場合(Linux mint も)
ubuntu で使用した場合の流れはこの様になります。
#ソースリストを追加するので移動 cd /etc/apt/sources.list.d/ #ftp://ftp.mondorescue.orgからバージョンの合うlistダウンロードします。 sudo wget ftp://ftp.mondorescue.org/ubuntu/14.04/mondorescue.sources.list sudo apt-get update sudo apt-get install mindi sudo apt-get install mindi-busybox sudo apt-get install mondo sudo mondoarchive -Oi -L -N -s 5000m -d /tmp/_bkup -E /tmp/_bkup/ -p hostname-date +%Y-%m-%d
ソースリストの取得が異なるくらいで後は一緒になります。
最近、自分の Linux mint 17.2 の環境で試しているので同じ環境であれば上記のコマンドでそのまま行けるはず。(Ubuntu の場合は 14.04)
ローカルの仮想環境にリストアしてみる
ちなみに、さくらの VPS の場合は ISO インストール対応しているのでこのバックアップ ISO をアップしてリストア可能です。前にやってみたけどバックアップしたデータとリストアしようとした環境のハードウェア構成が違っていて(NIC が増えてたり)リストアは出来たけどその環境に合わせて設定変えるのが面倒で結局クリーンインストールしてしまいました。
今回はローカルの VirtualBox でリストアします。

こんな感じで適当に初期設定を済ます。




これ以降、パーティションの設定画面になるので、「/dev/vda
」となっているところを「/dev/sda」に変更します。
設定を終えるとフォーマットが始まり、リストアするか聞いてきます。


これが完了すると「Initialize the boot loader?」と出てくると思うので Yes を選択。
すると「You will now be able to re-generate your ~なんちゃら」といった文面が出てきます。
かまわず OK とか押していくとコマンドが打てるようになっているはずなのでそこで
cd /boot mkinitrd -f -v initrd-2.x.y.img 2.x.y
このように打ち込みます。
すると、なにやら設定してくれているようなのでおとなしく待ちます。
終わったら「exit」を入力します。次にマウントリストを編集するかどうか聞かれるのでそこも YES します。
すると数ファイル編集することになるのですが、ここで先ほどのパーティション設定同様に「/dev/vda
」となっているところを「/dev/sda」に編集します。

それが終わればリストアは完了です。
ISO イメージをマウントから外して再起動して下さい。

ばっちりリストアされています。あまり詳しく見てないですが恐らく大丈夫でしょう。
とりとめのないまとめ
以上、mondorescueを使ったバックアップとリストアでしたが如何でしょうか。
丸ごとバックアップ出来るのは凄く安心感がありますね。しかし、いざっていう時にリストア出来ないのでは困りものです。
上記でも少し触れていますが、同じサービスの同じプランでも導入時期によってハードウェア構成が変わっていてリストアした設定では不具合が生じるっていう場合もあります。
私の場合は不具合と言うよりも「動いてるけどなんか気持ち悪い・」っていう理由でクリーンインストールにしてしまいましたけど・・・。
なので基本は丸ごとバックアップはそれが動いていた場所へのリストアが前提となりますね。今回の様にローカルの仮想環境にリストアしてテスト環境にするのも有りだと思います。
一番良いのはバックアップを使う日が来ないことなんですが・・・なかなかそうもいかない・・・(;´Д`)