- 1. 概要
- 2. 準備
- 3. バックアップ
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
アンマウントを忘れると、システムが動作しなくなることがありますので、必ず、アンマウントします。
|
|