diff --git a/scripts/Makefile.am b/scripts/Makefile.am index 5a191e99b0..5ded64075a 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -7,4 +7,8 @@ check: ./zpios.sh -c file-raid10 -t tiny ./zpios.sh -c file-raidz -t tiny ./zpios.sh -c file-raidz2 -t tiny + ./zpios.sh -c lo-raid0 -t tiny + ./zpios.sh -c lo-raid10 -t tiny + ./zpios.sh -c lo-raidz -t tiny + ./zpios.sh -c lo-raidz2 -t tiny ./zfs.sh -vu diff --git a/scripts/zpool-config/lo-raid10.sh b/scripts/zpool-config/lo-raid10.sh new file mode 100644 index 0000000000..78004cc545 --- /dev/null +++ b/scripts/zpool-config/lo-raid10.sh @@ -0,0 +1,54 @@ +#!/bin/bash +# +# 4 Device Loopback Raid-0 Configuration +# + +FILES_M1="/tmp/zpool-vdev0 \ + /tmp/zpool-vdev1" +FILES_M2="/tmp/zpool-vdev2 \ + /tmp/zpool-vdev3" +FILES="${FILES_M1} ${FILES_M2}" +DEVICES_M1="" +DEVICES_M2="" + +zpool_create() { + for FILE in ${FILES_M1}; do + DEVICE=`/sbin/losetup -f` + msg "Creating ${FILE} using loopback device ${DEVICE}" + rm -f ${FILE} || exit 1 + dd if=/dev/zero of=${FILE} bs=1024k count=256 &>/dev/null || + die "Error $? creating ${FILE}" + losetup ${DEVICE} ${FILE} || + die "Error $? creating ${FILE} -> ${DEVICE} loopback" + DEVICES_M1="${DEVICES_M1} ${DEVICE}" + done + + for FILE in ${FILES_M2}; do + DEVICE=`/sbin/losetup -f` + msg "Creating ${FILE} using loopback device ${DEVICE}" + rm -f ${FILE} || exit 1 + dd if=/dev/zero of=${FILE} bs=1024k count=256 &>/dev/null || + die "Error $? creating ${FILE}" + losetup ${DEVICE} ${FILE} || + die "Error $? creating ${FILE} -> ${DEVICE} loopback" + DEVICES_M2="${DEVICES_M2} ${DEVICE}" + done + + msg ${CMDDIR}/zpool/zpool create ${ZPOOL_NAME} \ + mirror ${DEVICES_M1} mirror ${DEVICES_M2} + ${CMDDIR}/zpool/zpool create ${ZPOOL_NAME} \ + mirror ${DEVICES_M1} mirror ${DEVICES_M2} +} + +zpool_destroy() { + msg ${CMDDIR}/zpool/zpool destroy ${ZPOOL_NAME} + ${CMDDIR}/zpool/zpool destroy ${ZPOOL_NAME} + + for FILE in ${FILES}; do + DEVICE=`/sbin/losetup -a | grep ${FILE} | head -n1|cut -f1 -d:` + msg "Removing ${FILE} using loopback device ${DEVICE}" + losetup -d ${DEVICE} || + die "Error $? destroying ${FILE} -> ${DEVICE} loopback" + rm -f ${FILE} || exit 1 + done +} diff --git a/scripts/zpool-config/lo-raidz.sh b/scripts/zpool-config/lo-raidz.sh new file mode 100644 index 0000000000..cac9036464 --- /dev/null +++ b/scripts/zpool-config/lo-raidz.sh @@ -0,0 +1,39 @@ +#!/bin/bash +# +# 4 Device Loopback Raid-0 Configuration +# + +FILES="/tmp/zpool-vdev0 \ + /tmp/zpool-vdev1 \ + /tmp/zpool-vdev2 \ + /tmp/zpool-vdev3" +DEVICES="" + +zpool_create() { + for FILE in ${FILES}; do + DEVICE=`/sbin/losetup -f` + msg "Creating ${FILE} using loopback device ${DEVICE}" + rm -f ${FILE} || exit 1 + dd if=/dev/zero of=${FILE} bs=1024k count=256 &>/dev/null || + die "Error $? creating ${FILE}" + losetup ${DEVICE} ${FILE} || + die "Error $? creating ${FILE} -> ${DEVICE} loopback" + DEVICES="${DEVICES} ${DEVICE}" + done + + msg ${CMDDIR}/zpool/zpool create ${ZPOOL_NAME} raidz ${DEVICES} + ${CMDDIR}/zpool/zpool create ${ZPOOL_NAME} raidz ${DEVICES} || exit 1 +} + +zpool_destroy() { + msg ${CMDDIR}/zpool/zpool destroy ${ZPOOL_NAME} + ${CMDDIR}/zpool/zpool destroy ${ZPOOL_NAME} + + for FILE in ${FILES}; do + DEVICE=`/sbin/losetup -a | grep ${FILE} | head -n1|cut -f1 -d:` + msg "Removing ${FILE} using loopback device ${DEVICE}" + losetup -d ${DEVICE} || + die "Error $? destroying ${FILE} -> ${DEVICE} loopback" + rm -f ${FILE} || exit 1 + done +} diff --git a/scripts/zpool-config/lo-raidz2.sh b/scripts/zpool-config/lo-raidz2.sh new file mode 100644 index 0000000000..bd9a40ce58 --- /dev/null +++ b/scripts/zpool-config/lo-raidz2.sh @@ -0,0 +1,39 @@ +#!/bin/bash +# +# 4 Device Loopback Raid-0 Configuration +# + +FILES="/tmp/zpool-vdev0 \ + /tmp/zpool-vdev1 \ + /tmp/zpool-vdev2 \ + /tmp/zpool-vdev3" +DEVICES="" + +zpool_create() { + for FILE in ${FILES}; do + DEVICE=`/sbin/losetup -f` + msg "Creating ${FILE} using loopback device ${DEVICE}" + rm -f ${FILE} || exit 1 + dd if=/dev/zero of=${FILE} bs=1024k count=256 &>/dev/null || + die "Error $? creating ${FILE}" + losetup ${DEVICE} ${FILE} || + die "Error $? creating ${FILE} -> ${DEVICE} loopback" + DEVICES="${DEVICES} ${DEVICE}" + done + + msg ${CMDDIR}/zpool/zpool create ${ZPOOL_NAME} raidz2 ${DEVICES} + ${CMDDIR}/zpool/zpool create ${ZPOOL_NAME} raidz2 ${DEVICES} || exit 1 +} + +zpool_destroy() { + msg ${CMDDIR}/zpool/zpool destroy ${ZPOOL_NAME} + ${CMDDIR}/zpool/zpool destroy ${ZPOOL_NAME} + + for FILE in ${FILES}; do + DEVICE=`/sbin/losetup -a | grep ${FILE} | head -n1|cut -f1 -d:` + msg "Removing ${FILE} using loopback device ${DEVICE}" + losetup -d ${DEVICE} || + die "Error $? destroying ${FILE} -> ${DEVICE} loopback" + rm -f ${FILE} || exit 1 + done +}