. /usr/share/ganeti/extstorage/zfs/defaults.sh
+
+dev=`readlink --canonicalize /dev/zvol/$EXTP_ZFS/$VOL_NAME`
+ln -svf $dev /dev/$EXTP_VG/$VOL_NAME
+
+zfs set lv:a='o' $EXTP_ZFS/$VOL_NAME
+
# Return path to new blockdevice
echo -n /dev/zvol/$EXTP_ZFS/$VOL_NAME
. /usr/share/ganeti/extstorage/zfs/defaults.sh
-zfs list -r $EXTP_ZFS -o name,volsize,logicalused,used,available,refer,ganeti:originstname
+zfs list -r $EXTP_ZFS -o name,volsize,logicalused,used,available,refer,lv:a,ganeti:originstname
. /usr/share/ganeti/extstorage/zfs/defaults.sh
-#eject /dev/zvol/$EXTP_ZFS/$VOL_NAME
+rm /dev//$EXTP_VG/$VOL_NAME
+zfs set lv:a='-' $EXTP_ZFS/$VOL_NAME
+
#set -x
#set >&2
+dir=/usr/share/ganeti/extstorage/zfs/
+
# zfs pool and file system (existing) where to create block devices
test -z "$EXTP_ZFS" && EXTP_ZFS=tmp500g/block
-#!/bin/sh -x
+#!/bin/sh
. /usr/share/ganeti/extstorage/zfs/defaults.sh
case $1 in
-ay)
VOL_NAME=`echo $2 | cut -d/ -f4`
- dev=`readlink --canonicalize /dev/zvol/$EXTP_ZFS/$VOL_NAME`
- if [ -e "$dev" ] ; then
- ln -svf $dev $2
- ls -al $2
- fi
+ export VOL_NAME
+ $dir/attach
;;
--addtag)
VOL_NAME=`echo $3 | cut -d/ -f4`
- zfs set lv:tag=$2 $EXTP_ZFS/$VOL_NAME # FIXME duplicate?
+ zfs set lv:tag=$2 $EXTP_ZFS/$VOL_NAME
+
export EXTP_ZFS
export VOL_NAME
- VOL_METADATA=$2 /usr/share/ganeti/extstorage/zfs/setinfo
+ export VOL_METADATA=$2
+ $dir/setinfo
;;
esac
else
-#!/bin/sh -xe
+#!/bin/sh -e
. /usr/share/ganeti/extstorage/zfs/defaults.sh
-set -x
-
# 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
-#!/bin/sh -x
+#!/bin/sh -e
. /usr/share/ganeti/extstorage/zfs/defaults.sh
-#!/bin/sh -x
+#!/bin/sh -e
. /usr/share/ganeti/extstorage/zfs/defaults.sh
-#!/bin/sh -ex
+#!/bin/sh -e
. /usr/share/ganeti/extstorage/zfs/defaults.sh
done
echo "# $VOL" >&2
export VOL_NAME=$VOL
+
}
+
# lvs --noheadings --units=m --nosuffix '--separator=|' -ovg_name,lv_name,lv_size,lv_attr
if echo $* | grep -q vg_name,lv_name,lv_size,lv_attr ; then
-
- zfs get volsize -t volume -r $EXTP_ZFS -H -p -o name,value | sed "s:$EXTP_ZFS/*::" | awk '{ print " '$EXTP_VG'|"$1"|" $2 / 1024 / 1024 "|-wi-a---" }' # FIXME handle -wi-ao-- for used volumes, via ganeti:originstname ?
+ zfs list -o name,volsize,lv:a -t volume -r $EXTP_ZFS -H -p | sed "s:$EXTP_ZFS/*::" | \
+ awk '{ print " '$EXTP_VG'|"$1"|" $2 / 1024 / 1024 "|-wi-a"$3"--" }'
/sbin/lvm lvs $* 2>/dev/null || exit 0 # local, might fail
# gnt-instance modify -t drbd -n box02 zfs
VOL_NAME=VOL $*
volblocksize=`zfs get volblocksize -o value -p -H $EXTP_ZFS/$VOL_NAME`
- perm="-wi-ao--" # no snapshot
+ perm=`zfs get lv:attr -o value -p -H $EXTP_ZFS/$VOL_NAME`
if [ -e /dev/zvol/$EXTP_ZFS/$VOL_NAME.snap ] ; then
perm="owi-aos-" # snapshot origin
elif echo $VOL_NAME | grep -q '.snap$' ; then
tag=`zfs get lv:tag -o value -p -H $EXTP_ZFS/$VOL_NAME`
echo $tag
else
-echo "## $1 ## $2";
+
/sbin/lvm lvs $*
fi
-#!/bin/sh
+#!/bin/sh -e
. /usr/share/ganeti/extstorage/zfs/defaults.sh
-#!/bin/sh
+#!/bin/sh -e
. /usr/share/ganeti/extstorage/zfs/defaults.sh
-#set -x
-
# gnt-node list-storage
# vgs --noheadings --units=m --nosuffix --separator '|' --options vg_name,vg_size,vg_free
if echo $* | grep -q vg_name,vg_size,vg_free ; then
# lvchange -ay /dev/ffzgvg/e4bf0e9d-2c6e-4e1c-8bc4-342ee94724a5.disk0
lvchange --addtag originstname+t-drbd /dev/ffzgvg/5e8966e5-3aa4-4ba4-9c9a-cb2a0ee5b98b.disk0_meta
+lvchange --addtag originstname+bbb.rot13.org /dev/ffzgvg/1785c7cb-fe2a-419e-9e87-6b5058385408.disk0_data