Skip to main content
s/receive/send/
Source Link
Tom Hale
  • 33.4k
  • 42
  • 164
  • 257

Here it says that with -p btrfs-receivesend first creates snapshot of parent subvolume and then modifies that snapshot accordingly to data stream from btrfs-send. With -c option btrfs-receive creates blank subvolume and modifies it, creating reflinks for unchanged files. The difference is the size of metadata btrfs-send needs to transfer. In case of -c option all metadata is transfered, in case of -p option -- some metadata.

I tested this with snapshots of subvolume (250G, 310k files) with these results:

# time btrfs send -p server-20181031-1746 server-20181225-1144 -f /mnt/parent.diff At subvol server-20181225-1144 real 3m12,618s 

Size of parent.diff is 6418364996 bytes

# time btrfs send -c server-20181031-1746 server-20181225-1144 -f /mnt/clone.diff At subvol server-20181225-1144 real 3m17,435s 

Size of parent.diff is 6418364996 bytes

So, in my case there is almost no difference.

I don't think btrfs-send can generate streams for multiple subvolumes in one command.

Here it says that with -p btrfs-receive first creates snapshot of parent subvolume and then modifies that snapshot accordingly to data stream from btrfs-send. With -c option btrfs-receive creates blank subvolume and modifies it, creating reflinks for unchanged files. The difference is the size of metadata btrfs-send needs to transfer. In case of -c option all metadata is transfered, in case of -p option -- some metadata.

I tested this with snapshots of subvolume (250G, 310k files) with these results:

# time btrfs send -p server-20181031-1746 server-20181225-1144 -f /mnt/parent.diff At subvol server-20181225-1144 real 3m12,618s 

Size of parent.diff is 6418364996 bytes

# time btrfs send -c server-20181031-1746 server-20181225-1144 -f /mnt/clone.diff At subvol server-20181225-1144 real 3m17,435s 

Size of parent.diff is 6418364996 bytes

So, in my case there is almost no difference.

I don't think btrfs-send can generate streams for multiple subvolumes in one command.

Here it says that with -p btrfs-send first creates snapshot of parent subvolume and then modifies that snapshot accordingly to data stream from btrfs-send. With -c option btrfs-receive creates blank subvolume and modifies it, creating reflinks for unchanged files. The difference is the size of metadata btrfs-send needs to transfer. In case of -c option all metadata is transfered, in case of -p option -- some metadata.

I tested this with snapshots of subvolume (250G, 310k files) with these results:

# time btrfs send -p server-20181031-1746 server-20181225-1144 -f /mnt/parent.diff At subvol server-20181225-1144 real 3m12,618s 

Size of parent.diff is 6418364996 bytes

# time btrfs send -c server-20181031-1746 server-20181225-1144 -f /mnt/clone.diff At subvol server-20181225-1144 real 3m17,435s 

Size of parent.diff is 6418364996 bytes

So, in my case there is almost no difference.

I don't think btrfs-send can generate streams for multiple subvolumes in one command.

added 89 characters in body
Source Link

Here it says that with -p btrfs-receive first creates snapshot of parent subvolume and then modifies that snapshot accordingly to data stream from btrfs-send. With -c option btrfs-receive creates blank subvolume and modifies it, creating reflinks for unchanged files. The difference is the size of metadata btrfs-send needs to transfer. In case of -c option all metadata is transfered, in case of -p option -- some metadata.

I tested this with snapshots of subvolume (250G, 310k files) with these results:

# time btrfs send -p server-20181031-1746 server-20181225-1144 -f /mnt/parent.diff At subvol server-20181225-1144 real 3m12,618s 

Size of parent.diff is 6418364996 bytes

# time btrfs send -c server-20181031-1746 server-20181225-1144 -f /mnt/clone.diff At subvol server-20181225-1144 real 3m17,435s 

Size of parent.diff is 6418364996 bytes

So, in my case there is almost no difference.

I don't think btrfs-send can generate streams for multiple subvolumes in one command.

Here it says that with -p btrfs-receive first creates snapshot of parent subvolume and then modifies that snapshot accordingly to data stream from btrfs-send. With -c option btrfs-receive creates blank subvolume and modifies it, creating reflinks for unchanged files. The difference is the size of metadata btrfs-send needs to transfer. In case of -c option all metadata is transfered, in case of -p option -- some metadata.

I tested this with snapshots of subvolume (250G, 310k files) with these results:

# time btrfs send -p server-20181031-1746 server-20181225-1144 -f /mnt/parent.diff At subvol server-20181225-1144 real 3m12,618s 

Size of parent.diff is 6418364996 bytes

# time btrfs send -c server-20181031-1746 server-20181225-1144 -f /mnt/clone.diff At subvol server-20181225-1144 real 3m17,435s 

Size of parent.diff is 6418364996 bytes

So, in my case there is almost no difference.

Here it says that with -p btrfs-receive first creates snapshot of parent subvolume and then modifies that snapshot accordingly to data stream from btrfs-send. With -c option btrfs-receive creates blank subvolume and modifies it, creating reflinks for unchanged files. The difference is the size of metadata btrfs-send needs to transfer. In case of -c option all metadata is transfered, in case of -p option -- some metadata.

I tested this with snapshots of subvolume (250G, 310k files) with these results:

# time btrfs send -p server-20181031-1746 server-20181225-1144 -f /mnt/parent.diff At subvol server-20181225-1144 real 3m12,618s 

Size of parent.diff is 6418364996 bytes

# time btrfs send -c server-20181031-1746 server-20181225-1144 -f /mnt/clone.diff At subvol server-20181225-1144 real 3m17,435s 

Size of parent.diff is 6418364996 bytes

So, in my case there is almost no difference.

I don't think btrfs-send can generate streams for multiple subvolumes in one command.

Source Link

Here it says that with -p btrfs-receive first creates snapshot of parent subvolume and then modifies that snapshot accordingly to data stream from btrfs-send. With -c option btrfs-receive creates blank subvolume and modifies it, creating reflinks for unchanged files. The difference is the size of metadata btrfs-send needs to transfer. In case of -c option all metadata is transfered, in case of -p option -- some metadata.

I tested this with snapshots of subvolume (250G, 310k files) with these results:

# time btrfs send -p server-20181031-1746 server-20181225-1144 -f /mnt/parent.diff At subvol server-20181225-1144 real 3m12,618s 

Size of parent.diff is 6418364996 bytes

# time btrfs send -c server-20181031-1746 server-20181225-1144 -f /mnt/clone.diff At subvol server-20181225-1144 real 3m17,435s 

Size of parent.diff is 6418364996 bytes

So, in my case there is almost no difference.