FreeBSD - メンテナンス・トラブルシュート - zfs - バックアップ
1. 概要 「zfs」で作成しているファイルしてステムを他のマシンへバックアップをとる方法です。 これは、本来、「FreeBSD - メンテナンス・トラブルシュート - システムバックアップ」で書くべきことかと思いつつも。 上記ページの要領で進んでいたら。 $ dump -0ua -f /mnt/root.dmp / dump: /: unknown file system てなことになっちゃいまして。 「あぁそうよね、『zfs』は『dump』コマンドは効かないんだわ」ってことになり、本章を書くことになったのでした。 本ページは、下記のサイトを参考にさせていただきました。 「Ubuntu で ZFS を使ってみよう 第15回 スナップショットでバックアップしてみよう」 「Ubuntu で ZFS を使ってみよう 第16回 遠隔地へバックアップしてみよう」 2. 準備 「FreeBSD - メンテナンス・トラブルシュート - システムバックアップ」と重複しますが、バックアップ先のマシンとして「FreeBSD」のシステムを用意します。 もちろん、バックアップをとるのに、十分な容量のストレージが必要です。 バックアップ先のマシンで行うこと。 vi /etc/rc.conf 以下の記述を追加します。 portmap_enable="YES" nfs_server_enable="YES" nfs_server_flags="-u -t -n 4" mountd_flags="-r" rpcbind_ebable="YES" amd_enable="YES" vi /etc/hosts.allow 以下を記述します。 portmap : ALL : allow バックアップ先のディレクトリを。 /usr/backup として作成します。 mkdir -pv /usr/backup を作成して vi /etc/exports 以下を記述します。 /usr/backup -maproot=0 -alldirs バックアップ元のIPアドレス バックアップ元のIPアドレスを複数を記述する場合、「Linux」系では、ネットワークアドレスを記述する方法が紹介されていますが、「FreeBSD」でやってみたら、うまくいかない。 複数のアドレスを記述する際は、末尾のアドレスの後に、スペースを空けて、アドレスを列挙することでうまくいきました。 ここまでできたら、バックアップ先のマシンを再起動します。 バックアップ先のマシンで行うこと。 vi /etc/rc.conf 以下の記述を追加します。 nfs_client_enable="YES" nfs_client_flags="-n 4" 記述後、以下を実行します。 nfsiod -n 4 3. バックアップ ここで、寄り道しますが、マウントポイント(プール?)を直接バックアップしようとすると。 warning: cannot send 'マウントポイント(プール?)': target is busy; if a filesystem, it must not be mounted とバックアップできないのだ。 今まさに、「mount」しているので「busy」なんだよとのことです。 バックアップできるのは、前ページで紹介した、スナップショットなのです。 とここまでが、前置き。 作業は、バックアップ元で行います。 バックアップ先をマウント。 mount バックアップ先IPアドレス:/usr/backup /mnt バックアップ。 zfs send zroot/ROOT/default@snapshot | bzip2 --compress --stdout > /mnt/backupYYYYMMDD 「zfs send」は、標準出力に出力するのだそうで、それを「bzip2」をかけつつ、バックアップしているわけです。 「zroot/ROOT/default@snapshot」ちゅうのは、前ページで作成した、スナップショットです。 実態が、「5.7GB」かな、10分足らずで、バックアップが完了しました。 バックアップ先は、「3.3GB」で、そこそこ圧縮できたようです。 バックアップをとったら、忘れず、アンマウント。 umount /mnt アンマウントを忘れると、システムが動作しなくなることがありますので、必ず、アンマウントします。
$ dump -0ua -f /mnt/root.dmp / dump: /: unknown file system
「Ubuntu で ZFS を使ってみよう 第15回 スナップショットでバックアップしてみよう」 「Ubuntu で ZFS を使ってみよう 第16回 遠隔地へバックアップしてみよう」
vi /etc/rc.conf
portmap_enable="YES" nfs_server_enable="YES" nfs_server_flags="-u -t -n 4" mountd_flags="-r" rpcbind_ebable="YES" amd_enable="YES"
vi /etc/hosts.allow
portmap : ALL : allow
/usr/backup
mkdir -pv /usr/backup
vi /etc/exports
/usr/backup -maproot=0 -alldirs バックアップ元のIPアドレス
nfs_client_enable="YES" nfs_client_flags="-n 4"
nfsiod -n 4
warning: cannot send 'マウントポイント(プール?)': target is busy; if a filesystem, it must not be mounted
mount バックアップ先IPアドレス:/usr/backup /mnt
zfs send zroot/ROOT/default@snapshot | bzip2 --compress --stdout > /mnt/backupYYYYMMDD
umount /mnt