IT井戸端会議

IT井戸端会議

インフラ、ネットワーク、アプリケーション開発、IT界隈の話等々を東京都千代田区界隈から発信します。

Mondo Rescue でバックアップ

サーバのフルバックアップを取っておこうと思い、Mondo Rescue を導入してみましたので手順を残します。

Mondo Rescue とは

Mondo Rescue は、GPLライセンスディザスタリカバリするためのソフトウェアです。

Linux (i386, x86_64, ia64)、およびFreeBSD (i386)がサポートされています。

使用環境

CentOS 6.6 (64bit)

バックアップ手順

Mondo Rescue のインストール

OS丸ごとバックアップする為、MondoRescueを導入する。

まずは、Mondo Rescue 本体をインストールします。

$ su - root
$ mv mondorescue.repo /etc/yum.repos.d/
$ wget ftp://ftp.mondorescue.org/rhel/6/x86_64/mondorescue.repo
$ yum -y install mondo

Mondo Rescue でのバックアップで必要となるため、高速圧縮パッケージ(lzo)をインストールする。

$ vi /etc/yum.repos.d/dag.repo
[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://ftp.riken.jp/Linux/dag/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
enabled=0

$ yum -y install lzop lzo --enablerepo=dag

バックアップ

バックアップ先ディレクトリとして /backup を作成する。

$ mkdir /backup

調査のため、バックアップ前のファイルサイズを調べます。

$ du -sh /
3.8G    /

いよいよバックアップです。 以下の通り実行し、ISO形式でのバックアップとしました。

$ mondoarchive -Oi -d /backup -E /backup -p `hostname`-`date +%Y%m%d`
オプション説明
-Oバックアップの実行
-Vバックアップファイルの検証
-c speedCD-R にバックアップします。
-w speedCD-RW にバックアップします。
-rDVD にバックアップします。
-p prefixISOイメージ名を指定します。
設定しない場合、"mondorescue-n.iso"というファイル名で保存されます。
-iISO 形式でバックアップします。
-n NFSを使用してバックアップします。
-tテープストリーマにバックアップします。
-UUSBデバイスにバックアップします。
-D
-E "dir|..."バックアップ対象から除外したいディレクトリを指定します。
-I "dir|..."バックアップ対象に含めたいディレクトリを指定します。
-J fileバックアップ対象に含めたいディレクトリの一覧ファイルを指定します。
-NマウントされているNFSを除外します。
-d dev|dirバックアップ先のデバイス(CD/tape/USB)、またはディレクトリ(NFS/ISO)を指定します。
-gGUI モードで実行します。
-k pathカーネルのフルパスを指定
-s sizeバックアップする際の分割サイズを姉弟します。
-x 'dev ..'バックアップしたい non-Linux パーティション(NTFS、BeOS 等)を指定します。

今回の場合、10分弱で完了しました。

バックアップファイルを確認しました。 ISO形式の場合、約1/2程度のサイズとなるようです。

$ ls -lh /backup
合計 1.8G
-rw-r--r-- 1 root root 639M  7月  5 05:16 2015 sakura-vps-20150705-1.iso
-rw-r--r-- 1 root root 642M  7月  5 05:19 2015 sakura-vps-20150705-2.iso
-rw-r--r-- 1 root root 507M  7月  5 05:21 2015 sakura-vps-20150705-3.iso

バックアップを定期実行したいので、以下の通り、crontab に追記します。

$ vi /etc/crontab
...
0 5 * * * root mondoarchive -Oi -d /backup -E /backup -p `hostname`-`date +\%Y\%m\%d` && rm -f /backup/`hostname`-`date -d '1 day ago' +\%Y\%m\%d`*