btrfs-send/btrfs-receiveを使用した圧縮

btrfs-send/btrfs-receiveを使用した圧縮

compress圧縮サブボリューム(つまり、マウントオプションを使用してマウントされたファイルシステムの一部)を送信すると、圧縮されて転送されますか、それとも最初に解凍されますかbtrfs-sendbtrfs-send

同様に、サブボリュームをとして受信すると再圧縮されbtrfs-receiveますかbtrfs-receive

答え1

btrfs-sendシステムコールが実行されますread。これは実際にデータを解凍したという意味です。その後、データは圧縮されていない状態で送信され、ターゲットシステムのインストールオプションに従ってデータを圧縮するシステムコールがbtrfs-receive実行されます。writebtrfscompress

たとえば、さまざまなファイルにさまざまな圧縮を使用する既存のシステムがあり、btrfsすべてのデータが圧縮される新しいシステムを作成できますzstd

答え2

--compressed-data解凍せずにファイルシステムから直接圧縮データを送信します。

受信機がBTRFS_IOC_ENCODED_WRITE ioctl(Linux 6.0に追加)をサポートしている場合は、解凍せずに直接作成することもできます。それ以外の場合、受信機は解凍され、正常に記録されます。

これにはプロトコルバージョン2以降が必要です。 --proto を使用しない場合、 --compressed-data は --proto 2 を意味します。

https://btrfs.readthedocs.io/en/latest/btrfs-send.html

関連情報