NAS 用マシンを自作してみる (10) —ZFS FreeBSD フルシステムバックアップ—

先日のエントリー ではディスクが故障した場合の対処法を備忘録として残しましたが、今回は ZFS FreeBSD のフルシステムバックアップとそこからのシステムリストアの方法をメモしておきます。

といっても、次のサイトの手順をそのまま追っただけです ^^;

まず、バックアップ用のドライブを用意します。以下では /dev/da0 のデータを消去して ZFS のファイルシステムを作成し /backup にマウントしています。

# gpart destroy -F da0
# dd if=/dev/zero of=/dev/da0 bs=1m count=128
# zpool create zbackup /dev/da0
# zfs set mountpoint=/backup zbackup

次に zroot のファイルシステムすべてのスナップショットを取り、先ほど作成した /backup に圧縮して (gzip) 送ります。処理後、スナップショットを破棄しています。

# zfs snapshot -r zroot@backup
# zfs send -Rv zroot@backup | gzip > /backup/full-system-backup.zfs.gz
# zfs destroy -r zroot@backup

以上でバックアップは完了です。

# ls -l /backup/
total 20076141
-rw-r--r--   1 root  wheel  20543942367  1月 11 23:53 full-system-backup.zfs.gz

問題が生じて、新しいシステムをリストアしなければならない場合、まずは、

の手順の “zfs set checksum=fletcher4 zroot” まで進みます (cf. Dan さんの Blog)。

次に、ZFS バックアップドライブをインポートし、それをマウントしておきます。その上で、ファイルシステムとすべての依存関係をリストアするため ZFS の receive コマンドを利用します。

# zpool import -f zbackup
# zfs set mountpoint=/boot/zfs/backup zbackup
# zfs mount zbackup
# gunzip -c /boot/zfs/backup/full-system-backup.zfs.gz | zfs receive -vdF zroot

ここで、バックアップドライブをアンマウントしておきます。そして、キャッシュファイルを作成できるように オリジナルの root ZFS をマウントします (システムは正しいキャッシュファイルがないとブートしません)。

# zpool export zbackup
# zfs set mountpoint=/boot/zfs/zroot zroot
# cd /boot/zfs
# zpool export zroot && zpool import zroot
# cp /boot/zfs/zpool.cache /boot/zfs/zroot/boot/zfs/zpool.cache
# zfs unmount -a
# zfs set mountpoint=legacy zroot
# reboot

これでオリジナルの状態でシステムは再起動します。

バックアップメディアをもう一度マウントしたい場合、以下のように再びインポートしてマウントする必要があります。

# zpool import -f zbackup
# zfs set mountpoint=/backup zbackup

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください