Ganeti extstorage provider for local zfs volumes http://docs.ganeti.org/ganeti/master/html/man-ganeti-extstorage-interface.html It also encludes LVM emulation which enable zfs to work as plain disk type. This allows usage of drbd where one (or both) sides are on zfs, and supports gnt-backup export and import. INSTALLATION On node which will host zfs storage pool cd /usr/share/ganeti/extstorage/ git clone https://github.com/ffzg/ganeti-extstorage-zfs zfs cd zfs vi defaults.sh Alternative to editing defaults.sh is to create etc/`hostname -s` file with minimal configuration which just specify pool name (in this case again hostname -s) and filesystem where new volumes will be created: echo EXTP_ZFS=`hostname -s`/ffzgvg > etc/`hostname -s`.sh Run install scripts: # ls install/ 1-enable-ext-template.sh 2-create-log-directory.sh 3-lvm-wrappers.sh Cron helper can be install under /etc/cron.daily # ls cron/ daily-block-snapshot purge-log Overview commands are available (try running them to see output): # ls bin/ adopt backup ill instance list node backup and instance are wrappers for running gnt-* commands with same name on master node adopt will create new zvol using send/receive to break dependency on origin (otherwise, removal of origin zvol will also remove new adopted disk Create test instances: # ls t/*.sh t/drbd.sh t/plain.sh t/zfs.sh Review that instaces have been created: # ./bin/ill t- Test ganeti commands after reading them: # ls t/gnt-* t/gnt-backup-export.sh t/gnt-instance-modify.sh DRBD disk replication Ganeti's extstorage provider doesn't support drbd target. But, lvm emulation scripts are sufficiant enough to create -t drbd instance or convert plain (created on zfs thanks to wrappers ;-) to drbd. KNOWN BUGS for extstorage - gnt-backup export doesn't work because snapshoot hooks are not available - gnt-instance move works from somewhere to zfs, but not from zfs to somewhere