最初のスナップショットなしでZFS増分スナップショットを送受信

最初のスナップショットなしでZFS増分スナップショットを送受信

次のZFSデータセットがあります。

pool/dataset
pool/dataset@snap1
pool/dataset@snap2
pool/dataset@snap3

すでにZFS send / recvを使用してバックアッププールにコピーしました。

backupPool/dataset
backupPool/dataset@snap1
backupPool/dataset@snap2

dataset@snap1それ以降は科を取り除いて増分を送ることができない状況dataset@snap2となりました。pooldataset@snap3backupPool

この状況を解決する方法はありますか?たとえば、とpool/dataset@snap3の間にZFSインクリメンタルスナップショットを撮って?backupPool/dataset@snap2backupPoolbackupPool/dataset@snap2pool

pool/dataset@snap3の新しいデータセットに移動できますが、スナップショットのbackupPool「記録」を維持する必要があります。

ベストアンサー1

OpenZFS管理者Matthew Ahrensによると、受信ホストの以前のスナップショットをソースとして指定することでこれを行うことができます。[1]

今日はこれが可能でなければなりません:

man zfs-receive
...
     zfs receive [-FhMnsuv] [-o origin=snapshot] [-o property=value]
         [-x property] filesystem|volume|snapshot
       -o origin=snapshot
           Forces the stream to be received as a clone of the given snapshot.
           If the stream is a full send stream, this will create the filesys‐
           tem described by the stream as a clone of the specified snapshot.

したがって、あなたの例ではこれを行うことができますzfs send apool@snapshot3 | zfs receive -o origin=bpol@snapshot0 bpool/recvd。理想的には、zfs promote bool/recvd名前を変更して元のファイルシステムを置き換えてから古いファイルシステムを削除することをお勧めします。あなたの例では、トップレベルのファイルシステムについて話しているので、少し混乱する可能性があります。実際にできることを願っていますbpool/fs@snapshot0

おすすめ記事