For the record, I was doing a copy within a system recently:
# time zfs send storage/bacula@transfer | mbuffer | zfs receive storage/compressed/bacula-buffer in @ 0.0 kB/s, out @ 0.0 kB/s, 4394 GB total, buffer 100% fullll summary: 4394 GByte in 35 h 11 min 35.5 MB/s real 2111m18.302s user 11m44.831s sys 258m59.151s
I was copying my Bacula Volumes from non-compressed ZFS to compressed ZFS.
# zfs list NAME USED AVAIL REFER MOUNTPOINT storage 7.12T 1.76T 1.75G /storage storage/bacula 4.87T 1.76T 4.29T /storage/bacula storage/compressed 2.25T 1.76T 46.9K /storage/compressed storage/compressed/bacula-mbuffer 2.25T 1.76T 2.25T /storage/compressed/bacula-mbuffer storage/pgsql 5.50G 1.76T 5.50G /storage/pgsql
The size taken went from 4.87T to 2.25T, for more than 50% compression. I’m happy with that.
However the throughput wasn’t great. However:
- The same HDD were reading and writing
- compression is a factor
- I only do this once
However, if it’s going go take me 35 hours to copy my backups, that’s a long time without backups. But I do think I’ll be able to take advantage of ZFS snapshot somehow. The initial copy was based upon a snapshot.
How much difference does mbuffer make?