ext4
ファイルシステムを備えたUbuntu14.04.3 LTSを実行しているホームサーバーがあり、さまざまなデバイスから定期的にデータをバックアップしています。
これで、ZFS
ファイルシステムを備えた外付けUSBHDDをセットアップし、ホームサーバーからそのUSBドライブにすべてのデータをバックアップしたいと思います。また、外付けドライブでZFS
を使用しているので、ZFS
のスナップショット機能も使用したいと思います。
ext4
からZFS
にファイルをコピーするため、zfs send
コマンドを使用できません。したがって、私はrsync
で立ち往生しています。
私はしばらくの間rsync
を使用しているので、かなりよく知っています。 しかし、ターゲットファイルシステムでスナップショットを実行するので、できるだけスペースを無駄にしたくありません。
私は このブログ投稿 に出くわしました。これは次のコマンドを使用します:
/usr/bin/rsync -axH --no-whole-file --inplace --delete / /$backup_target/root/
-a
、-x
、および--delete
のような通常のフラグの他に、以下も使用します。
-H
(ハードリンク)、--no-whole-file
(delta-xferアルゴリズムを強制的に有効にする)、および--inplace
(新しいバックアップを作成する代わりにフォルダを更新します)。私の質問:これらのフラグは十分ですか、それともいくつか追加または削除する必要がありますか?
バックアップフローは次のようになります。
zfs snapshot backup@'date +%Y%m%d'
を使用してそのディレクトリのスナップショットを作成します--inplace
は必須だと思います(毎回同じディレクトリにバックアップするため)。変更されたデータブロックのみをコピーするため、おそらく--no-whole-file
についても同じことが言えます。しかし、-H
はどうですか?追加する必要のある他のフラグはありますか?
あなたが見つけたコマンドラインは、合理的な出発点を提供します。このセットを使用して、バックアップ用にrsyncを実行します(rsnapshotを使用します。これは、履歴にZFSスナップショットを使用するため、あまり関係ありません。ZFSの使用を開始する前に使用を開始しましたが、うまく機能するため、引き続き使用しています)。パラメータの:
_-aAHX --delete --numeric-ids --relative --delete-excluded
_
さらに、バックアップしたくないもののためのいくつかの_--exclude
_パラメータ。私の設定とあなたが見つけた設定の主な違いは、おそらく_-A
_(_--acls
_)と_--delete-excluded
_(dest dirsから除外されたファイルも削除する)の使用です。 。
コメントで説明したように、_--inplace
_と_--no-whole-file
_は、ユースケースではおそらく実際に害を及ぼすことのないオプションです。
_-x
_(_--one-file-system
_)は、バックアップするファイルシステムが1つまたは少数しかない場合に主に役立ちます。 (私はソース側でZFSファイルシステムを広範囲に使用しているので、代わりにバックアップターゲットの場所を_--exclude
_します。)_-x
_は、コマンドラインにソースとしてリストされているファイルシステム以外のファイルシステムに再帰しないようにrsyncに指示します。いずれにせよ、ターゲットの場所をrsyncのソースの場所の考えから遠ざける必要があります。それ以外の場合は、最初のバックアップで(たとえば)/ *が/ backup /にコピーされ、次に/ * およびが/ backupにコピーされた/ backupの一部として取得されます。 。これは、コメントでバックアップターゲットディレクトリをそれ自体に再帰的にコピーすることについて述べたときに意味したことです。
_
zfs snapshot backup@'date +%Y%m%d'
_を使用してそのディレクトリのスナップショットを作成します
明らかに、あなたはそれをzfs snapshot backup@$(date +'%Y%m%d')
にしたいのです。 ($()
を使用するか、アポストロフィではなくバッククォートを使用します。私は$()構文を好みます。1つには、ネスト可能です。)
また、ディスク容量が不足し始めたときのために、スナップショットプルーニング戦略を用意してください。