ZFS Send/Receive(ぜーえふえす せんどりしーぶ)
最終更新:2026/4/28
ZFS Send/Receiveは、ZFSファイルシステムのスナップショットを効率的に複製・転送するための機能である。
別名・同義語 ZFSレプリケーションZFS増分バックアップ
ポイント
差分のみを転送するため、ネットワーク帯域幅を節約し、高速なバックアップやレプリケーションを実現する。
ZFS Send/Receiveとは
ZFS Send/Receiveは、ZFSファイルシステムにおける増分バックアップおよびレプリケーションのための強力な機能です。スナップショットの差分データのみを転送することで、ネットワーク帯域幅の使用量を最小限に抑え、バックアップやレプリケーションの時間を短縮します。
仕組み
ZFS Send/Receiveは、以下の2つの主要なコマンドで構成されます。
- zfs send: スナップショットからデータをストリームとして出力します。
- zfs receive: ストリームとして受け取ったデータをZFSファイルシステムに書き込みます。
zfs sendコマンドは、指定されたスナップショットから変更されたブロックのみを読み出し、それをストリームとして出力します。zfs receiveコマンドは、このストリームを受け取り、宛先のZFSファイルシステムにデータを書き込みます。このプロセスは、完全なファイルシステムイメージをコピーするよりもはるかに効率的です。
用途
ZFS Send/Receiveは、以下のような用途で利用されます。
- バックアップ: ローカルまたはリモートのストレージにスナップショットをバックアップします。
- レプリケーション: 複数のストレージシステム間でデータを同期します。
- 災害対策: 別の場所にデータをレプリケーションすることで、災害発生時のデータ損失を防ぎます。
- テスト環境の構築: 本番環境のスナップショットをテスト環境に複製し、安全にテストを実施します。
コマンド例
ローカルのtank/dataデータセットのスナップショットsnap1をリモートホストのremotehostのtank/backupデータセットに転送する例:
zfs send tank/data@snap1 | ssh remotehost zfs receive tank/backup
注意点
zfs sendとzfs receiveは、同じZFSバージョンで実行することを推奨します。- 宛先のZFSファイルシステムには、十分な空き容量が必要です。
- ネットワーク環境によっては、転送速度が低下する場合があります。