I am trying to do a 'zfs send -i' and failing. This is my simple proof of concept test: Create the data # zfs create storage/a # touch /storage/a/1 # touch /storage/a/2 # touch /storage/a/3 Snapshot # zfs snapshot storage/a@2010.10.19 send # zfs send storage/a@2010.10.19 | zfs receive -v storage/compressed/a receiving full stream of storage/a@2010.10.19 into storage/compressed/a@2010.10.19 received 252KB stream in 2 seconds (126KB/sec) # Create one more file and snapshot that # touch /storage/a/4 # zfs snapshot storage/a@2010.10.20 send it # zfs send -i storage/a@2010.10.19 storage/a@2010.10.20 | zfs receive -v storage/compressed/a receiving incremental stream of storage/a@2010.10.20 into storage/compressed/a@2010.10.20 received 250KB stream in 3 seconds (83.4KB/sec) What do we have? # find /storage/compressed/a /storage/compressed/a /storage/compressed/a/1 /storage/compressed/a/2 /storage/compressed/a/3 /storage/compressed/a/4 Of note: * FreeBSD 8.1-STABLE * ZFS filesystem version 4. * ZFS pool version 15. * zfs send is on compression off * zfs receive has compression on What I actually want to do and what fails: # zfs snapshot storage/bacula@2010.10.19 # zfs send storage/bacula@2010.10.19 | zfs receive -v storage/compressed/bacula receiving full stream of storage/bacula@2010.10.19 into storage/compressed/bacula@2010.10.19 received 4.38TB stream in 42490 seconds (108MB/sec) # zfs snapshot storage/bacula@2010.10.20 # zfs send -i storage/bacula@2010.10.19 storage/bacula@2010.10.20 | zfs receive -v storage/compressed/bacula receiving incremental stream of storage/bacula@2010.10.20 into storage/compressed/bacula@2010.10.20 cannot receive incremental stream: destination storage/compressed/bacula has been modified since most recent snapshot warning: cannot send 'storage/bacula@2010.10.20': Broken pipe I have no idea why this fails. Clues please? To my knowledge, the destination has not been written to. -- Dan Langille -- http://langille.org/
On Wed, Oct 20, 2010 at 08:32:33AM -0400, Dan Langille typed:> I am trying to do a 'zfs send -i' and failing. > > This is my simple proof of concept test: > > Create the data > # zfs create storage/a > # touch /storage/a/1 > # touch /storage/a/2 > # touch /storage/a/3 > > Snapshot > # zfs snapshot storage/a@2010.10.19 > > send > # zfs send storage/a@2010.10.19 | zfs receive -v storage/compressed/a > receiving full stream of storage/a@2010.10.19 into > storage/compressed/a@2010.10.19 > received 252KB stream in 2 seconds (126KB/sec) > # > > > > Create one more file and snapshot that > > # touch /storage/a/4 > # zfs snapshot storage/a@2010.10.20 > > > send it > > # zfs send -i storage/a@2010.10.19 storage/a@2010.10.20 | zfs receive -v > storage/compressed/a > receiving incremental stream of storage/a@2010.10.20 into > storage/compressed/a@2010.10.20 > received 250KB stream in 3 seconds (83.4KB/sec) > > What do we have? > > # find /storage/compressed/a > /storage/compressed/a > /storage/compressed/a/1 > /storage/compressed/a/2 > /storage/compressed/a/3 > /storage/compressed/a/4 > > > Of note: > > * FreeBSD 8.1-STABLE > * ZFS filesystem version 4. > * ZFS pool version 15. > * zfs send is on compression off > * zfs receive has compression on > > What I actually want to do and what fails: > > > # zfs snapshot storage/bacula@2010.10.19 > > # zfs send storage/bacula@2010.10.19 | zfs receive -v > storage/compressed/bacula > receiving full stream of storage/bacula@2010.10.19 into > storage/compressed/bacula@2010.10.19 > received 4.38TB stream in 42490 seconds (108MB/sec) > > # zfs snapshot storage/bacula@2010.10.20 > > # zfs send -i storage/bacula@2010.10.19 storage/bacula@2010.10.20 | zfs > receive -v storage/compressed/bacula > receiving incremental stream of storage/bacula@2010.10.20 into > storage/compressed/bacula@2010.10.20 > cannot receive incremental stream: destination storage/compressed/bacula > has been modified > since most recent snapshot > warning: cannot send 'storage/bacula@2010.10.20': Broken pipe > > I have no idea why this fails. Clues please? > > To my knowledge, the destination has not been written to.Has any read operation been done on the destination (ie: updated atime) ? Ruben
Seeing similar here Dan, my destination filesystems are becoming modified sometime after the previous snapshot has been sent so the incremental fails to be received. However, the server I'm sending to is not in use so I can't explain why it's changing. When I run a zdiff on the receiving system's filesystem, it can't find any changes in the file, but the byte difference between the snapshot and current can range from anywhere from 32KB to 101MB so far in my testing. If I rollback the filesystem to the last received snapshot it works, but I have no explanation for it changing. I disabled everything that was running on the receiving system yesterday afternoon and there's been no change since, so now I need to step through and see if I can figure out what process was causing the byte difference on the filesystems. Derek On 2010-10-20, at 8:32 AM, Dan Langille wrote:> I am trying to do a 'zfs send -i' and failing. > > This is my simple proof of concept test: > > Create the data > # zfs create storage/a > # touch /storage/a/1 > # touch /storage/a/2 > # touch /storage/a/3 > > Snapshot > # zfs snapshot storage/a@2010.10.19 > > send > # zfs send storage/a@2010.10.19 | zfs receive -v storage/compressed/a > receiving full stream of storage/a@2010.10.19 into > storage/compressed/a@2010.10.19 > received 252KB stream in 2 seconds (126KB/sec) > # > > > > Create one more file and snapshot that > > # touch /storage/a/4 > # zfs snapshot storage/a@2010.10.20 > > > send it > > # zfs send -i storage/a@2010.10.19 storage/a@2010.10.20 | zfs receive -v > storage/compressed/a > receiving incremental stream of storage/a@2010.10.20 into > storage/compressed/a@2010.10.20 > received 250KB stream in 3 seconds (83.4KB/sec) > > What do we have? > > # find /storage/compressed/a > /storage/compressed/a > /storage/compressed/a/1 > /storage/compressed/a/2 > /storage/compressed/a/3 > /storage/compressed/a/4 > > > Of note: > > * FreeBSD 8.1-STABLE > * ZFS filesystem version 4. > * ZFS pool version 15. > * zfs send is on compression off > * zfs receive has compression on > > What I actually want to do and what fails: > > > # zfs snapshot storage/bacula@2010.10.19 > > # zfs send storage/bacula@2010.10.19 | zfs receive -v > storage/compressed/bacula > receiving full stream of storage/bacula@2010.10.19 into > storage/compressed/bacula@2010.10.19 > received 4.38TB stream in 42490 seconds (108MB/sec) > > # zfs snapshot storage/bacula@2010.10.20 > > # zfs send -i storage/bacula@2010.10.19 storage/bacula@2010.10.20 | zfs > receive -v storage/compressed/bacula > receiving incremental stream of storage/bacula@2010.10.20 into > storage/compressed/bacula@2010.10.20 > cannot receive incremental stream: destination storage/compressed/bacula > has been modified > since most recent snapshot > warning: cannot send 'storage/bacula@2010.10.20': Broken pipe > > I have no idea why this fails. Clues please? > > To my knowledge, the destination has not been written to. > > > -- > Dan Langille -- http://langille.org/ > > _______________________________________________ > freebsd-stable@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-stable > To unsubscribe, send any mail to "freebsd-stable-unsubscribe@freebsd.org"