/ganeti-extstorage-zfs

Experimental Ganeti extstorage provider for ZFS volumes

Primary LanguageShell

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