4
# Replace any '-' by '_' to avoid that device manager modifies the name of
5
# the device (it replaces '-' by '--' in /dev/mapper)
6
ZFS_PREFIX="patchy_snap_${GFREG_ID//-/_}"
11
if [ "$1" == "" ]; then
12
echo "Error: Invalid argument supplied"
17
if [ "$2" != "" ]; then
24
if [ "$B1" = "" ]; then
28
for i in `seq 1 $ZFS_COUNT`; do
30
if [ "${!b}" = "" ]; then
31
echo "Error: $b not defined."
32
echo "Please run launch_cluster with atleast $ZFS_COUNT nodes"
35
eval "L$i=/${ZFS_PREFIX}_pool_${i}/bricks/brick"
36
eval "LM$i=/${ZFS_PREFIX}_pool_${i}/bricks"
43
function verify_zfs_version() {
44
if command -v zfs &> /dev/null; then
52
init_zfs $@ || return 1
57
function cleanup_zfs() {
61
if [ "$ZFS_DEFINED" = "1" ]; then
62
_cleanup_zfs >/dev/null 2>&1
65
_cleanup_zfs_again >/dev/null 2>&1
66
\rm -rf /var/run/gluster/snaps/*
67
zfs list | grep "${ZFS_PREFIX}" | awk '{print $1}'| xargs -L 1 -r zpool destroy -f 2>/dev/null
71
# Find out how this file was sourced, source traps.rc the same way, and use
72
# push_trapfunc to make sure cleanup_lvm gets called before we exit.
73
. $(dirname ${BASH_SOURCE[0]})/traps.rc
74
push_trapfunc cleanup_zfs
76
########################################################
78
########################################################
79
function _setup_zfs() {
80
local count=$ZFS_COUNT
84
for i in `seq 1 $count`; do
87
_create_zfs_vhd ${!b} $i
88
_create_zpool ${!b} $i
89
_create_zfs_dataset ${!b} $i
93
function _cleanup_zfs() {
94
local count=$ZFS_COUNT
98
for i in `seq 1 $count`; do
100
_remove_zfs_dataset $i
102
_remove_zfs_vhd ${!b}
106
function _cleanup_zfs_again() {
109
/sbin/zfs list | grep $ZFS_PREFIX | awk '{print $1}' | xargs -r -L 1 zpool destroy -f
111
for dev in $(ls ${DEVDIR}/loop* 2>/dev/null); do
116
find $B0 -name "*${ZFS_PREFIX}*" | xargs -r rm -rf
118
find /run/gluster/snaps -name "*${ZFS_PREFIX}*" | xargs -r rm -rf
120
for file in `ls /run/gluster/snaps`; do
121
find /run/gluster/snaps/$file -mmin -2 | xargs -r rm -rf
125
########################################################
126
########################################################
127
function _create_zfs_vhd() {
131
fallocate -l${VHD_SIZE} $dir/${ZFS_PREFIX}_vhd
132
dev="$(losetup -f --show "${dir}/${ZFS_PREFIX}_vhd")"
133
ln -sf "${dev}" "${DEVDIR}/$(basename "${dev}")"
134
ln -sf "${DEVDIR}/$(basename "${dev}")" "${dir}/${ZFS_PREFIX}_loop"
137
function _create_zpool() {
140
local zpool="${ZFS_PREFIX}_pool_${num}"
142
/sbin/zpool create ${zpool} $dir/${ZFS_PREFIX}_loop
145
function _create_zfs_dataset() {
148
local dataset="${ZFS_PREFIX}_pool_${num}/bricks"
150
/sbin/zfs create ${dataset}
153
function _remove_zpool() {
155
local zpool="${ZFS_PREFIX}_pool_${num}"
157
/sbin/zpool destroy -f ${!zpool}
160
function _remove_zfs_dataset() {
162
local dataset="${ZFS_PREFIX}_pool_${num}/bricks"
164
/sbin/zfs destroy -f ${!dataset}
167
function _remove_zfs_vhd() {
170
losetup -d $dir/${ZFS_PREFIX}_loop
171
rm -f "$(readlink "${dir}/${ZFS_PREFIX}_loop")"
172
rm -f $dir/${ZFS_PREFIX}_loop
173
rm -f $dir/${ZFS_PREFIX}_vhd