~nabeken/diary/

Gentoo Linux(6年くらい)とFreeBSD(1年くらい)とOpenBSD(新参者)を使う日々。


IHANet BGP peering overview

Bacula を使ってみる (1) 下調べ編

Posted on Sat Aug 30 20:52:56 +0900 2008 by nabeken

今世紀風のバックアップ(参考: http://trombik.mine.nu/~cherry/w/index.php/2008/08/03/1333/use-bacula) をめざして、baculaをセットアップしてみる。一番惹かれたのは Windows 上で File Daemon が動くこと。これだとクライアントマシンのバックアップもサーバのバックアップも一元化できそうだと感じた。(最終的には Debian x1, Gentoo x4, Windows x3 の8台のバックアップをまとめる予定)

dir, fd, sd を Gentoo Linuxで、そして、テストとして、 Debian (lenny)上で fd を動かすことにした。(etchのbaculaは1.x系なので使えない)

インストールは

 # emerge bacula
 # aptitude install bacula-fd

などなど。GentooはUSEフラグでdir, fd, sd が選べる。Debianで aptitude install bacula-client とかするとあほらしくなるのでやめましょう。

FileSet

http://www.bacula.org/en/dev-manual/Configuring_Director.html#FileSetResource を読みながら、どうやろうかと思案する。最終的には Puppet と連携するので、それも絡めて考える。ファイルリストを Puppet で配布して、それをバックアップさせるのがいいのか。

If you precede the less-than sign (<) with a backslash as in \<, the file-list will be read on the Client machine instead of on the Director's machine. Please note that if the filename is given within quotes, you will need to use two slashes.

Include {
   Options { signature = SHA1 }
     File = "\</home/xxx/filelist-on-client"
   }
}

これを使えば、 Puppet で各マシンでバックアップすべきファイルを個別に定義した上で、Jobの定義は1つで済みそうである。

また、ブロックデバイスも扱えるようである。LVM snapshotを取って、それごと持っていかせるのもよさそうである。

If you explicitly specify a block device such as /dev/hda1, then Bacula (starting with version 1.28) will assume that this is a raw partition to be backed up. In this case, you are strongly urged to specify a sparse=yes include option, otherwise, you will save the whole partition rather than just the actual data that the partition contains. For example:

Include {
   Options { signature=MD5; sparse=yes }
   File = /dev/hd6
}

will backup the data in device /dev/hd6.

Windows もこの方法でできるようなので、ディスク全体をもっていかせれば復旧も楽になると思われる。(実はこれは以前、手動でやっていた。dd | ssh | bzip2 > moge.img.bz だけど; bzip2があとなのはローカルなのと、CPUの問題)

増分と差分

増分は前回のバックアップから、差分は前回のフルバックアップから、の違い?

write bootstrap

バックアップ中のシステムの状態を書いたもの。これがあれば、Catalogなしでも、その時のシステムを復元できる。書いてあるのはフルバックアップの間のみ。(差分や増分の時は追記していき、フルバックアップ前にまたクリアされる。そして、またフルバックアップ時の状態を書く。)

デフォルトの設定にはこの write bootstrap のバックアップJobがある。

pool, volume

bacula は pool から volume を作る。

いくぶんか、テーブデバイス向けのように見えるが、ディスクへのバックアップでも適用できる。

Most of the concepts apply equally well to both tape and disk Volumes. However, the chapter was originally written to explain backing up to disk,

tapeとは違い、ディスクでは LVM や zfs で論理的にプールが作れるが、それとは別に bacula では直接 Job に物理デバイス(パスなども含む)を指定しなくていいようになっている。(Jobにはpoolを指定しておき、管理者は pool を適切に設定すれば物理デバイスによって、Jobを書き換える必要がない)ただ、poolが使うのがディスクの場合、LVMでまとめたのを使うほうが手っ取りばやい。

pool 内の volume は自動的にリサイクルすることができる。(これはrsnapshotにもある)

実際に使ってみるのはまた次回。

更新履歴

  • 初稿 (Sat, 30 Aug 2008 20:52:56 +0900)