summaryrefslogtreecommitdiffstats
path: root/scripts/zpool-config/lo-raidz.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/zpool-config/lo-raidz.sh')
-rw-r--r--scripts/zpool-config/lo-raidz.sh39
1 files changed, 39 insertions, 0 deletions
diff --git a/scripts/zpool-config/lo-raidz.sh b/scripts/zpool-config/lo-raidz.sh
new file mode 100644
index 000000000..509f6ee1d
--- /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=`unused_loop_device`
+ msg "Creating ${FILE} using loopback device ${DEVICE}"
+ rm -f ${FILE} || exit 1
+ dd if=/dev/zero of=${FILE} bs=1024k count=0 seek=256 \
+ &>/dev/null || die "Error $? creating ${FILE}"
+ ${LOSETUP} ${DEVICE} ${FILE} ||
+ die "Error $? creating ${FILE} -> ${DEVICE} loopback"
+ DEVICES="${DEVICES} ${DEVICE}"
+ done
+
+ msg ${ZPOOL} create ${FORCE_FLAG} ${ZPOOL_NAME} raidz ${DEVICES}
+ ${ZPOOL} create ${FORCE_FLAG} ${ZPOOL_NAME} raidz ${DEVICES} || exit 1
+}
+
+zpool_destroy() {
+ msg ${ZPOOL} destroy ${ZPOOL_NAME}
+ ${ZPOOL} destroy ${ZPOOL_NAME}
+
+ for FILE in ${FILES}; do
+ DEVICE=`${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
+}