]>
git.proxmox.com Git - mirror_zfs-debian.git/blob - scripts/zpool-config/scsi_debug-raidz3.sh
3 # 1 scsi_debug device for fault injection and 3 loopback devices
4 # on top of which is layered raidz3.
12 FILES
="/tmp/zpool-vdev0 \
21 test `${LSMOD} | grep -c scsi_debug` -gt 0 && \
22 (echo 0 >/sys
/module
/scsi_debug
/parameters
/every_nth
&& \
23 ${RMMOD} scsi_debug ||
exit 1)
26 msg
"${LDMOD} scsi_debug dev_size_mb=${SDSIZE} " \
27 "add_host=${SDHOSTS} num_tgts=${SDTGTS} " \
30 dev_size_mb
=${SDSIZE} \
33 max_luns
=${SDLUNS} || \
34 die
"Error $? creating scsi_debug devices"
37 SDDEVICE
=`${LSSCSI} | ${AWK} '/scsi_debug/ { print $6; exit }'`
38 msg
"${PARTED} -s ${SDDEVICE} mklabel gpt"
39 ${PARTED} -s ${SDDEVICE} mklabel gpt || \
40 (${RMMOD} scsi_debug
&& die
"Error $? creating gpt label")
42 for FILE
in ${FILES}; do
43 LODEVICE
=`unused_loop_device`
45 rm -f ${FILE} ||
exit 1
46 dd if=/dev
/zero of
=${FILE} bs
=1024k count
=0 seek
=256 \
47 &>/dev
/null ||
(${RMMOD} scsi_debug
&& \
48 die
"Error $? creating ${FILE}")
50 # Setup the loopback device on the file.
51 msg
"Creating ${LODEVICE} using ${FILE}"
52 ${LOSETUP} ${LODEVICE} ${FILE} || (${RMMOD} scsi_debug \
53 die
"Error $? creating ${LODEVICE} using ${FILE}")
55 DEVICES
="${DEVICES} ${LODEVICE}"
58 DEVICES
="${DEVICES} ${SDDEVICE}"
60 msg
"${ZPOOL} create ${ZPOOL_FLAGS} ${ZPOOL_NAME} raidz3 ${DEVICES}"
61 ${ZPOOL} create ${ZPOOL_FLAGS} ${ZPOOL_NAME} raidz3 ${DEVICES} || \
62 (${RMMOD} scsi_debug
&& exit 1)
66 msg
${ZPOOL} destroy
${ZPOOL_NAME}
67 ${ZPOOL} destroy
${ZPOOL_NAME}
69 for FILE
in ${FILES}; do
70 LODEVICE
=`${LOSETUP} -a | grep ${FILE} | head -n1|cut -f1 -d:`
71 msg
"Removing ${LODEVICE} using ${FILE}"
72 ${LOSETUP} -d ${LODEVICE} ||
73 die
"Error $? destroying ${LODEVICE} using ${FILE}"
74 rm -f ${FILE} ||
exit 1
77 msg
"${RMMOD} scsi_debug"
78 ${RMMOD} scsi_debug || die
"Error $? removing scsi_debug devices"