さくらのVPS上のLinuxをMondo Rescueでバックアップする #1

masakiが2015/02/13 18:37:31に投稿

さくらのVPS上のLinuxをMondo Rescueでバックアップする #1

はじめに

さくらのVPS上のLinux全体のバックアップを取る。

設定情報、データのみのバックアップも考えたが、復旧時にOSのインストールをし直す必要があるのでOS丸ごとバックアップする。
さくらのVPSサービスには VPS上のOSのバックアップをする仕組みがない ようなので自力でバックアップする必要がある。

Linuxのバックアップツールはいくつかある ようだが、さくらのVPSを
「Mondo Rescue」
でディスクイメージを作成している事例を多く見かけたのでそれを使ってみる。

Mondo Rescueの特徴

  • Mondo Rescueを使うと、稼働しているVPS上からそのVPSのディスクイメージを作成することができる。
  • ディスクイメージにはアプリケーションだけでなく、ミドルウェア、OS、パーティション情報など、リストアに必要なすべての情報が含まれる。
  • ディスクイメージをISO形式で作成する機能があり、そのISOイメージからブートすることでリストアが手軽にできる。

インストール

さくらのVPS上のdebian7にMondo Rescueをインストールする。

Mondo Rescueのサイトかパッケージのソース情報をもらって

masaki@vps:~/work$ wgetftp://ftp.mondorescue.org/debian/7/mondorescue.sources.list
--2015-02-13 11:02:53-- ftp://ftp.mondorescue.org/debian/7/mondorescue.sources.list
           => `mondorescue.sources.list'
Resolving ftp.mondorescue.org (ftp.mondorescue.org)... 213.30.161.23
Connecting to ftp.mondorescue.org (ftp.mondorescue.org)|213.30.161.23|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /debian/7 ... done.
==> SIZE mondorescue.sources.list ... 100
==> PASV ... done.    ==> RETR mondorescue.sources.list ... done.
Length: 100 (unauthoritative)

100%[==========================================================================================================================================>] 100         --.-K/s   in 0.004s

2015-02-13 11:02:57 (24.6 KB/s) - `mondorescue.sources.list' saved [100]

/etc/apt/sources.listに追加する。

masaki@vps:~/work$ sudo sh -c "cat mondorescue.sources.list >> /etc/apt/sources.list"
masaki@vps:~/work$ tail /etc/apt/sources.list
deb-srchttp://ftp.jp.debian.org/debian wheezy main

debhttp://security.debian.org/ wheezy/updates main
deb-srchttp://security.debian.org/ wheezy/updates main

# wheezy-updates, previously known as 'volatile'
debhttp://ftp.jp.debian.org/debian wheezy-updates main
deb-srchttp://ftp.jp.debian.org/debian wheezy-updates main
debftp://ftp.mondorescue.org//debian 7 contrib
deb-srcftp://ftp.mondorescue.org//debian 7 contrib

インストール

masaki@vps:~/work$ sudo apt-get update
Get:1http://ftp.jp.debian.org wheezy Release.gpg [1655 B]
Get:2http://ftp.jp.debian.org wheezy-updates Release.gpg [836 B]
(略)
Get:39ftp://ftp.mondorescue.org 7/contrib Translation-en
Get:40ftp://ftp.mondorescue.org 7/contrib Translation-en
Ignftp://ftp.mondorescue.org 7/contrib Translation-en
Fetched 16.6 MB in 15s (1060 kB/s)
Reading package lists... Done
masaki@vps:~/work$ sudo apt-get install mondo

インストールの途中でmdadm(ソフトウェアRAIDを構築・管理)の設定について聞かれる。
「all」
とする。

[configuration madam]
Please enter 'all', 'none', or a space-separated list of devices such as 'md0 md1' or 'md/1 md/d0' (the leading '/dev/' can be omitted). 
 MD arrays needed for the root file system:   

all

対話型のバックアップ

実際にバックアップしてみる。

と思ったが、バックアップする際は出来る限りOSで動作しているプログラムを止めたほうが良いらしい。(できればsingle userモードでするべきらしい。ふつーに考えるとあたりまえだが)
さくらの上で動いているLinuxは実サービスが動いているのですぐには止めることができない。
よって、まずは自分用のLinuxのバックアップを取ってみる。

自分用のLinux(ubuntu14.4)にもMondo Rescueをインストールし、対話型バックアップを実行する。
single userモードではなくsshでログインして行う。(mysqlなどの止めても良いサービスは止めておく。)

$ sudo mondoarchive

バックアップイメージの作成場所。
ちょっと気持ちが悪いが、このLinuxのHDD上を指定。

そのパス。
デフォルトを指定。

圧縮の方法。
デフォルトを指定。

圧縮率。
デフォルトを指定。

ISOイメージのサイズ。
ということはバックアップイメージはISOファイルになるらしい。
デフォルトを指定。

ISOファイル名のプリフィックス。
デフォルトを指定。

バックアップするパス。
デフォルトを指定。

バックアップしないパス。
デフォルトを指定。

作業用一時ディレクトリ。
ディレクトリを指定。

スクラッチディレクトリ(って何?作業用一時ディレクトリとなぜ区別する?)。
デフォルトを指定。

拡張属性をつけてバックアップ(?)するかどうか。
デフォルトを指定。

バックアップ作成以後に検査するかどうか。
デフォルトを指定。

バックアップ実行。

バックアップ完了。

確認する。
現在のOSのディスク上のサイズは5Gくらい。
ただし、いまとったバックアップファイルを含む。(バックアップする前のサイズを取るのを忘れた。)

バックアップイメージファイル(isoファイル)は1.3Gくらいになった。

masaki@massachusetts:~/work$ df -h
Filesystem                          Size  Used Avail Use% Mounted on
/dev/mapper/massachusetts--vg-root   18G  5.0G   12G  31% /
none                                4.0K     0  4.0K   0% /sys/fs/cgroup
udev                                991M   12K  991M   1% /dev
tmpfs                               201M  344K  200M   1% /run
none                                5.0M     0  5.0M   0% /run/lock
none                               1002M     0 1002M   0% /run/shm
none                                100M     0  100M   0% /run/user
/dev/sda1                           236M   69M  155M  31% /boot
masaki@massachusetts:~/work$ ls -al /var/cache/mondo/mondorescue-1.iso
-rw-r--r-- 1 root root 1371060224  2月 13 12:11 /var/cache/mondo/mondorescue-1.iso

次回持越し

  • バックアップからの復旧。
  • 対話ではなく引数を指定して一発実行。
  • 差分バックアップができるかの確認。
  • cronでの実行。
  • VPSでバックアップ実行。