hey all, so i''m trying to mirror the contents of one zpool to another using zfs send / recieve while maintaining all snapshots and clones. essentially i''m taking a recursive snapshot. them i''m mirroring the oldest snapshots first and working my way forward. to deal with clones i have a hack that uses zfs promote. i''ve scripted it and things seem to work... except of course for one thing. ;) there''s one snapshot on my system that i can''t seem to transfer. here''s the problem: ---8<--- root at squee$ zfs send export/ws/xen-1 at 070221 | zfs receive -v -d export2 receiving full stream of export/ws/xen-1 at 070221 into export2/ws/xen-1 at 070221 received 134MB stream in 28 seconds (4.77MB/sec) root at squee$ root at squee$ zfs send -i 070221 export/ws/xen-1 at sync | zfs receive -v -d export2 receiving incremental stream of export/ws/xen-1 at sync into export2/ws/xen-1 at sync cannot receive: destination has been modified since most recent snapshot ---8<--- as far as i know, there''s nothing special about these two snapshots. ---8<--- root at squee$ zfs list | grep export/ws/xen-1 export/ws/xen-1 105M 3.09G 104M /export/ws/xen-1 export/ws/xen-1 at 070221 570K - 103M - export/ws/xen-1 at sync 0 - 104M - root at squee$ zfs get -Hp -o value creation export/ws/xen-1 at 070221 1172088367 root at squee$ zfs get -Hp -o value creation export/ws/xen-1 at sync 1192301172 ---8<--- any idea what might be wrong here? it seems that the problem is on the recieve side. i''ve even tried doing: zfs rollback export2/ws/xen-1 at 070221 before doing the second send but that didn''t make any difference. i''m currently running snv_74. both pool are currently at zfs v8, but the source pool has seen lots of zfs and live upgrades. ed
Edward Pilatowicz wrote:> hey all, > so i''m trying to mirror the contents of one zpool to another > using zfs send / recieve while maintaining all snapshots and clones.You will enjoy the upcoming "zfs send -R" feature, which will make your script unnecessary.> root at squee$ zfs send -i 070221 export/ws/xen-1 at sync | zfs receive -v -d export2 > receiving incremental stream of export/ws/xen-1 at sync into export2/ws/xen-1 at sync > cannot receive: destination has been modified since most recent snapshotYou may be hitting 6343779 "ZPL''s delete queue causes ''zfs restore'' to fail". To work around it, use "zfs recv -F". --matt
On Sun, Oct 14, 2007 at 09:37:42PM -0700, Matthew Ahrens wrote:> Edward Pilatowicz wrote: > >hey all, > >so i''m trying to mirror the contents of one zpool to another > >using zfs send / recieve while maintaining all snapshots and clones. > > You will enjoy the upcoming "zfs send -R" feature, which will make your > script unnecessary. >sweet. while working on it i realized that this just really needed to be built in functionality. :) i assume that this wil allow for backups by doing "zfs snap -r" and "zfs send -R" one day, then sometime later doing the same thing and just sending the deltas for every filesystem? will this also include any other random snapshots that were created in between when the two "zfs send -R" commands are run? (not just snapshots that were used for clones.) is there an bugid/psarc case number?> >root at squee$ zfs send -i 070221 export/ws/xen-1 at sync | zfs receive -v -d > >export2 > >receiving incremental stream of export/ws/xen-1 at sync into > >export2/ws/xen-1 at sync > >cannot receive: destination has been modified since most recent snapshot > > You may be hitting 6343779 "ZPL''s delete queue causes ''zfs restore'' to > fail". To work around it, use "zfs recv -F". > > --matt