rsync+btrfsでsnapshot
サーバーの全体バックアップをとるのにbtrfsのsnapshotを使いたかったが、メインのファイルシステムをbtrfsにしたくはない。
というわけで、rsyncでbtrfsのsubvolumeにコピー→snapshotを作る、という流れにしてみた。
1. btrfsで新ディスクをフォーマット
fdiskをいじるのが面倒だったのでここだけGUIでやった。
btrfs関係のツールがなかったのでyumでインストール。
# yum install btrfs-progs
2. btrfsのsubvolumeを作る
# mount -t btrfs -o compress /dev/sdb1 /mnt/backup
# btrfs subvolume create /mnt/backup/latest
3. snapshot用ディレクトリを作る
# mkdir /mnt/backup/snapshot
4. 試しにsnapshotを作ってみる そして邪魔なので消す
# btrfs subvolume snapshot /mnt/backup/latest /mnt/backup/snapshot/test
# btrfs subvolume delete /mnt/backup/snapshot/test
5.自動化する
#!/bin/bash
rsync -avz –delete –exclude-from ‘/root/backup_exclude.dat’ / /mnt/backup/latest > /root/snapshot.log
btrfs sub snap /mnt/backup/latest /mnt/backup/snapshot/`date “+%Y%m%d”` >> /root/snapshot.log
excludeのリストはこんなかんじ
– dev/
– proc/
– sys/
– tmp/
– mnt/
– run/
– var/run
– var/lock