From 30c709cf804c99125988941d2bef869599c49d43 Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Thu, 26 Jun 2014 14:41:45 +0200 Subject: [PATCH] fixed adopt tests - still need hand-holding --- README | 2 ++ bin/adopt | 4 +++- sbin/lvrename | 11 ++++++++--- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/README b/README index 06e1006..fbd7e81 100644 --- a/README +++ b/README @@ -57,4 +57,6 @@ KNOWN BUGS for extstorage KNOWN BUGS for using -t plain on top of zfs - cron/daily-block-snapshot snapshots are not correctly renamed +- bin/adopt will create new zvol using send/receive to break dependency on origin + but vm disks should be promoted, and adopt zvol deleted manually diff --git a/bin/adopt b/bin/adopt index 7de0f50..030a56c 100755 --- a/bin/adopt +++ b/bin/adopt @@ -2,4 +2,6 @@ . /usr/share/ganeti/extstorage/zfs/defaults.sh -./bin/snap | iselect -p 2 -a -n 'adopt snapshot' | awk '{ print $1 }' | xargs -i sh -cx 'zfs clone {} '$EXTP_ZFS'/adopt && zfs set ganeti:originstname=`zfs get ganeti:originstname -o value -p -H {}`+adopt '$EXTP_ZFS'/adopt' +zfs list -t snapshot -r -r $EXTP_ZFS -o name -H \ +| iselect -p 1 -a -n 'adopt snapshot' \ +| xargs -i sh -cx 'zfs send -R {} | zfs receive '$EXTP_ZFS'/adopt && zfs set ganeti:originstname="`zfs get ganeti:originstname -o value -p -H {}`+adopt" '$EXTP_ZFS'/adopt && zfs set lv:a="-" '$EXTP_ZFS'/adopt' diff --git a/sbin/lvrename b/sbin/lvrename index ae39a4e..8a10502 100755 --- a/sbin/lvrename +++ b/sbin/lvrename @@ -1,12 +1,17 @@ -#!/bin/sh -e +#!/bin/sh -ex . /usr/share/ganeti/extstorage/zfs/defaults.sh # lvrename ffzgvg cc9b16d9-7d14-452a-9150-74521bd8e721.disk0 d275c91f-70a7-4270-972c-b020fde9580b.disk0_data if [ "$EXTP_VG" = "$1" ] ; then - zfs rename $EXTP_ZFS/$2 $EXTP_ZFS/$3 - # FIXME handle renaming of desceding snapshots + # delete snapshots which can't be renamed + + zfs rename $EXTP_ZFS/$2 $EXTP_ZFS/$3 || ( + # rename filesystems with snapshots using clone/promote + zfs snap $EXTP_ZFS/$2@$3 + zfs clone $EXTP_ZFS/$2@$3 $EXTP_ZFS/$3 + ) else /sbin/lvm lvrename $* fi -- 2.20.1