support snapshots
authorDobrica Pavlinusic <dpavlin@rot13.org>
Wed, 25 Jun 2014 04:48:05 +0000 (06:48 +0200)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Wed, 25 Jun 2014 04:48:32 +0000 (06:48 +0200)
sbin/lvcreate
t/lvcreate

index bedbcd8..61f9756 100755 (executable)
@@ -1,25 +1,39 @@
-#!/bin/sh -x
+#!/bin/sh -xe
 
 . /usr/share/ganeti/extstorage/zfs/defaults.sh
 
 set -x
 
-/sbin/lvm lvcreate $*
-
 # gnt-instance move --node arh-hw bbb
 # lvcreate -L5120m -ne4bf0e9d-2c6e-4e1c-8bc4-342ee94724a5.disk0 -i1 ffzgvg tmp500g/block
 if echo $* | grep -q $EXTP_VG ; then
+       SNAP=0
        while [ ! -z "$1" ] ; do
                case $1 in 
 
                -L*) VOL_SIZE=`echo $1 | sed 's/-L//'` ;;
                -n*) VOL_NAME=`echo $1 | sed 's/-n//'` ;;
+               -s)  SNAP=1 ;;
+               /dev/$EXTP_VG/*) VOL_ORIGIN=`echo $1 | cut -d/ -f4`
 
                esac
                shift
        done
 
-test -e /dev/zvol/$EXTP_ZFS/$VOL_NAME || \
-zfs create -V ${VOL_SIZE} $EXTP_CREATE $EXTP_ZFS/$VOL_NAME
+       if [ ! $SNAP ] ; then
+
+               test -e /dev/zvol/$EXTP_ZFS/$VOL_NAME || \
+               zfs create -V ${VOL_SIZE} $EXTP_CREATE $EXTP_ZFS/$VOL_NAME
+
+       else
+
+               zfs snap $EXTP_ZFS/$VOL_ORIGIN@snap
+               sleep 1
+               zfs clone $EXTP_ZFS/$VOL_ORIGIN@snap $EXTP_ZFS/$VOL_NAME
+               sleep 1
+
+       fi
 
+else
+       /sbin/lvm lvcreate $*
 fi
index 0b9cb0e..b4dfed6 100644 (file)
@@ -1 +1,2 @@
-lvcreate -L5120m -ne4bf0e9d-2c6e-4e1c-8bc4-342ee94724a5.disk0 -i1 ffzgvg tmp500g/block
+#lvcreate -L5120m -ne4bf0e9d-2c6e-4e1c-8bc4-342ee94724a5.disk0 -i1 ffzgvg tmp500g/block
+lvcreate -L2048m -s -n3e6746a9-cb99-4584-a219-af7e4b5cb5f5.disk0_data.snap /dev/ffzgvg/3e6746a9-cb99-4584-a219-af7e4b5cb5f5.disk0_data