「親」と「複製ソース」、「btrfsを送信」の違いは何ですか?

「親」と「複製ソース」、「btrfsを送信」の違いは何ですか?

私はライブシステムからバックアップドライブに読み取り専用のスナップショットを頻繁に使用してbtrfs sendコピーします。btrfs receiveバックアップドライブにはすでに複数のスナップショットがあります。今日疑問に思ったこと:いくつかの以前のスナップショットから今日の複数のスナップショットを増分アップデートにコピーできますか?すぐに

最近私はそうだった

btrfs send -p  home_old  home_today | btrfs receive /mnt/backup/
btrfs send -p share_old share_today | btrfs receive /mnt/backup/

これは1つの命令で統一できますか?

だから私は調査しましたman btrfs-sendそして読んでください:

増分モード(オプション-pと-c)では、送信者と受信者の両方が使用できる以前に送信されたスナップショットを使用して、送信されたスナップショットを他のファイルシステムで再構成するために送信する必要がある情報の量を減らすことができます。 。

これが私が望むものです。

-p <親>

親ボリュームから子ボリュームにデルタストリームを送信する

-c <クローンソース>

このスナップショットをデルタ転送のレプリケーションソースとして使用する(複数の許可)

そのうちの1つだけが既存の複数のスナップショットを-pサポートしているようですが-c、2つの違いを理解していません。違いは何ですか?

ベストアンサー1

ここそれは言う-血btrfs-sendは最初に親ボリュームと子ボリュームのスナップショットを作成し、次にbtrfs-sendのデータフローに従ってスナップショットを変更します。そして-氏btrfs-receive オプションは空のサブボリュームを作成および変更し、変更されていないファイルへの参照リンクを生成します。違いは、btrfs-sendが送信する必要があるメタデータのサイズです。の場合-氏オプションみんな次の場合、メタデータが送信されます。-血オプション -一部メタデータ。

サブボリューム(250G、310kファイル)のスナップショットを使用してテストし、結果は次のとおりです。

# time btrfs send -p server-20181031-1746 server-20181225-1144 -f /mnt/parent.diff
At subvol server-20181225-1144

real    3m12,618s

Parent.diffのサイズは6418364996バイトです。

# time btrfs send -c server-20181031-1746 server-20181225-1144 -f /mnt/clone.diff
At subvol server-20181225-1144

real    3m17,435s

Parent.diffのサイズは6418364996バイトです。

だから私が知っている限り、ほとんど違いはありません。

btrfs-sendが1つのコマンドで複数のサブボリュームのストリームを作成できるとは思いません。

おすすめ記事