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

medium_8688630669 photo credit: [hjl][1] via [photopin][2] [cc][3]

もしもの時の為、バックアップは必ず取っておくべきですよね。こんにちはえんぞーです。

少し前に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 でリストアします。

screenshot_22

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

screenshot_23 ここで起動すると起動ディスクは?と聞かれるのでここで先ほどバックアップしたISOを選んであげます。 screenshot_24 おや?こんな画面でたんだっけかな・・・と思いつつも「interactive」を入力。 screenshot_25 これいつも目にしてた画面だな・・・「Interactively」を選択。 screenshot_26 ここでは「CD-R disks」を選択。

これ以降、パーティションの設定画面になるので、「/dev/vda」となっているところを「/dev/sda」に変更します。

設定を終えるとフォーマットが始まり、リストアするか聞いてきます。

screenshot_28 もちろん「Yes」を押してください。 screenshot_29 リストア中~。

これが完了すると「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」に編集します。

screenshot_30 こんな感じで何回かファイルを編集する事になります。

それが終わればリストアは完了です。

ISO イメージをマウントから外して再起動して下さい。

screenshot_31

ばっちりリストアされています。あまり詳しく見てないですが恐らく大丈夫でしょう。

とりとめのないまとめ

以上、mondorescueを使ったバックアップとリストアでしたが如何でしょうか。

丸ごとバックアップ出来るのは凄く安心感がありますね。しかし、いざっていう時にリストア出来ないのでは困りものです。

上記でも少し触れていますが、同じサービスの同じプランでも導入時期によってハードウェア構成が変わっていてリストアした設定では不具合が生じるっていう場合もあります。

私の場合は不具合と言うよりも「動いてるけどなんか気持ち悪い・」っていう理由でクリーンインストールにしてしまいましたけど・・・。

なので基本は丸ごとバックアップはそれが動いていた場所へのリストアが前提となりますね。今回の様にローカルの仮想環境にリストアしてテスト環境にするのも有りだと思います。

一番良いのはバックアップを使う日が来ないことなんですが・・・なかなかそうもいかない・・・(;´Д`)