[OpenIndiana-discuss] Useful tidbit for ZFS backup via ZFS Send

Bryan N Iotti ironsides.medvet at gmail.com
Sat Sep 29 13:46:12 UTC 2012

Hi all,

thought you'd like to know the following...

I have my rpool on a 146GB SCSI 15K rpm disk.

I regularly back it up with the following sequence of commands:
- zfs snapshot -r rpool@<DATE>
- cd to backup dir and su
- zfs send -R rpool@<DATE> | gzip > rpool.COMPLETE.<DATE>.gz

... as per Oracle manual.

I was wondering why it was so slow, taking a couple of hours, then I 
payed attention to my CPU meter and understood that the normal gzip was 
running as a single thread.

I searched online for a multithreaded version and came across pigz 
(http://www.zlib.net/pigz/). I downloaded it, modified the Makefile to 
use the Solaris Studio 12.3 cc with the proper CFLAGS ("-fast", for now, 
no -m64). I then copied both pigz and unpigz to a directory in my PATH 
and modified the last command to:
- zfs send -R rpool@<DATE> | /usr/local/bin/pigz > rpool.COMPLETE.<DATE>.gz

Now backups are compressed using multiple threads and the process takes 
about a quarter of the time.

Pigz apparently splits the input into blocks of a user definable size 
(128kb being the default) and allows for parallel compression, using all 
available threads (or less, with the user -p #threads option).

Hope this helps some of you. Would be nice to have in the pkg repo.


More information about the OpenIndiana-discuss mailing list