complete clone/restore from a ZFS-based system replication stream

Victor Sudakov vas at mpeks.tomsk.su
Wed Sep 28 02:35:24 UTC 2016


Victor Sudakov wrote:
> > > 
> > > 1. When you boot from this pool later on a restored system, don't the
> > > "-o altroot=/mnt2 -O canmount=off" options prevent it from
> > > working normally? I gather that "altroot" is not persistent across
> > > reboots, but "canmount" probably is.
> > 
> > Its been a while, but when you do the zfs recv, I am guessing the
> > properties are restored with it ?
> > 
> > > 
> > > 2. If you wanted to check "zfs recv" without actually restoring it,
> > > what what you do? I keep getting the "cannot receive incremental stream" error:
> > 
> > Not sure. When you did this, perhaps you are restoring from an
> > incremental send as opposed to a full send ?
> > 
> > eg
> > 
> > zfs snapshot -r zroot at backup
> > zfs send -R zroot at backup > /nfs-mount-on-backup-server/zroot-full-snap.zfs
> 
> Below is exactly how I create and test the replication stream:
> 
> root at zfs1:~ # zfs send -R zroot at test1 > /mnt/zroot1.zfs
> root at zfs1:~ # zpool create -f -o altroot=/mnt2 -O canmount=off -m none foobar1 vtbd2
> root at zfs1:~ # zfs receive -vFn foobar1 < /mnt/zroot1.zfs 
> would receive full stream of zroot at test1 into foobar1 at test1
> would receive full stream of zroot/var at test1 into foobar1/var at test1
> would receive full stream of zroot/var/mail at test1 into foobar1/var/mail at test1
> would receive full stream of zroot/var/crash at test1 into foobar1/var/crash at test1
> would receive full stream of zroot/var/tmp at test1 into foobar1/var/tmp at test1
> would receive full stream of zroot/var/audit at test1 into foobar1/var/audit at test1
> would receive full stream of zroot/var/log at test1 into foobar1/var/log at test1
> would receive full stream of zroot/tmp at test1 into foobar1/tmp at test1
> would receive full stream of zroot/ROOT at test1 into foobar1/ROOT at test1
> would receive full stream of zroot/ROOT/test1 at 2016-08-22-21:58:22 into foobar1/ROOT/test1 at 2016-08-22-21:58:22
> cannot receive incremental stream: destination 'foobar1/ROOT/test1' does not exist
> root at zfs1:~ # 
> 
> 
> I don't see anything incremental about it.
> 

And without the -n flag it comes out OK:

root at zfs1:~ # zfs receive -vF foobar1 < /mnt/zroot1.zfs
receiving full stream of zroot at test1 into foobar1 at test1
received 41.7KB stream in 1 seconds (41.7KB/sec)
receiving full stream of zroot/var at test1 into foobar1/var at test1
received 41.7KB stream in 1 seconds (41.7KB/sec)
receiving full stream of zroot/var/mail at test1 into foobar1/var/mail at test1
received 44.0KB stream in 1 seconds (44.0KB/sec)
receiving full stream of zroot/var/crash at test1 into foobar1/var/crash at test1
received 43.0KB stream in 1 seconds (43.0KB/sec)
receiving full stream of zroot/var/tmp at test1 into foobar1/var/tmp at test1
received 43.0KB stream in 1 seconds (43.0KB/sec)
receiving full stream of zroot/var/audit at test1 into foobar1/var/audit at test1
received 44.2KB stream in 1 seconds (44.2KB/sec)
receiving full stream of zroot/var/log at test1 into foobar1/var/log at test1
received 200KB stream in 1 seconds (200KB/sec)
receiving full stream of zroot/tmp at test1 into foobar1/tmp at test1
received 48.1KB stream in 1 seconds (48.1KB/sec)
receiving full stream of zroot/ROOT at test1 into foobar1/ROOT at test1
received 41.7KB stream in 1 seconds (41.7KB/sec)
receiving full stream of zroot/ROOT/test1 at 2016-08-22-21:58:22 into foobar1/ROOT/test1 at 2016-08-22-21:58:22
received 904MB stream in 67 seconds (13.5MB/sec)
receiving incremental stream of zroot/ROOT/test1 at test1 into foobar1/ROOT/test1 at test1
received 206KB stream in 1 seconds (206KB/sec)
found clone origin foobar1/ROOT/test1 at 2016-08-22-21:58:22
receiving incremental stream of zroot/ROOT/default at test1 into foobar1/ROOT/default at test1
received 187KB stream in 1 seconds (187KB/sec)
receiving full stream of zroot/usr at test1 into foobar1/usr at test1
received 41.7KB stream in 1 seconds (41.7KB/sec)
receiving full stream of zroot/usr/ports at test1 into foobar1/usr/ports at test1
received 41.7KB stream in 1 seconds (41.7KB/sec)
receiving full stream of zroot/usr/home at test1 into foobar1/usr/home at test1
received 41.7KB stream in 1 seconds (41.7KB/sec)
receiving full stream of zroot/usr/src at test1 into foobar1/usr/src at test1
received 41.7KB stream in 1 seconds (41.7KB/sec)
root at zfs1:~ # 

but what if I just wanted to test the stream without actually receiving it?

-- 
Victor Sudakov,  VAS4-RIPE, VAS47-RIPN
sip:sudakov at sibptus.tomsk.ru


More information about the freebsd-questions mailing list