1009ea47eSEdward Tomasz Napierala#!/bin/sh 2009ea47eSEdward Tomasz Napierala# 3009ea47eSEdward Tomasz Napierala# Copyright (c) 2012 The FreeBSD Foundation 4009ea47eSEdward Tomasz Napierala# 5009ea47eSEdward Tomasz Napierala# This software was developed by Edward Tomasz Napierala under sponsorship 6009ea47eSEdward Tomasz Napierala# from the FreeBSD Foundation. 7009ea47eSEdward Tomasz Napierala# 8009ea47eSEdward Tomasz Napierala# Redistribution and use in source and binary forms, with or without 9009ea47eSEdward Tomasz Napierala# modification, are permitted provided that the following conditions 10009ea47eSEdward Tomasz Napierala# are met: 11009ea47eSEdward Tomasz Napierala# 1. Redistributions of source code must retain the above copyright 12009ea47eSEdward Tomasz Napierala# notice, this list of conditions and the following disclaimer. 13009ea47eSEdward Tomasz Napierala# 2. Redistributions in binary form must reproduce the above copyright 14009ea47eSEdward Tomasz Napierala# notice, this list of conditions and the following disclaimer in the 15009ea47eSEdward Tomasz Napierala# documentation and/or other materials provided with the distribution. 16009ea47eSEdward Tomasz Napierala# 17009ea47eSEdward Tomasz Napierala# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 18009ea47eSEdward Tomasz Napierala# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19009ea47eSEdward Tomasz Napierala# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20009ea47eSEdward Tomasz Napierala# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 21009ea47eSEdward Tomasz Napierala# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22009ea47eSEdward Tomasz Napierala# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23009ea47eSEdward Tomasz Napierala# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24009ea47eSEdward Tomasz Napierala# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25009ea47eSEdward Tomasz Napierala# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26009ea47eSEdward Tomasz Napierala# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27009ea47eSEdward Tomasz Napierala# SUCH DAMAGE. 28009ea47eSEdward Tomasz Napierala# 29009ea47eSEdward Tomasz Napierala# 30009ea47eSEdward Tomasz Napierala 31009ea47eSEdward Tomasz Napierala# 32009ea47eSEdward Tomasz Napierala# This expects that the iSCSI server being tested is at $TARGETIP and exports 33009ea47eSEdward Tomasz Napierala# two targets: $TARGET1 and $TARGET2; the former requiring no authentication, 34009ea47eSEdward Tomasz Napierala# and the latter using CHAP with user $USER and secret $SECRET. Discovery 35009ea47eSEdward Tomasz Napierala# must be permitted without authentication. Each target must contain exactly 36009ea47eSEdward Tomasz Napierala# two LUNs, 4GB each. For example, ctl.conf(5) should look like this: 37009ea47eSEdward Tomasz Napierala# 38009ea47eSEdward Tomasz Napierala# auth-group meh { 39009ea47eSEdward Tomasz Napierala# chap user secretsecret 40009ea47eSEdward Tomasz Napierala# } 41009ea47eSEdward Tomasz Napierala# 42009ea47eSEdward Tomasz Napierala# portal-group meh { 43009ea47eSEdward Tomasz Napierala# listen 0.0.0.0 44009ea47eSEdward Tomasz Napierala# discovery-auth-group no-authentication 45009ea47eSEdward Tomasz Napierala# } 46009ea47eSEdward Tomasz Napierala# 47009ea47eSEdward Tomasz Napierala# target iqn.2012-06.com.example:1 { 48009ea47eSEdward Tomasz Napierala# auth-group no-authentication 49009ea47eSEdward Tomasz Napierala# portal-group meh 50009ea47eSEdward Tomasz Napierala# lun 0 { 51009ea47eSEdward Tomasz Napierala# path /var/tmp/example_t1l0 52009ea47eSEdward Tomasz Napierala# size 4G 53009ea47eSEdward Tomasz Napierala# } 54009ea47eSEdward Tomasz Napierala# lun 1 { 55009ea47eSEdward Tomasz Napierala# path /var/tmp/example_t1l1 56009ea47eSEdward Tomasz Napierala# size 4G 57009ea47eSEdward Tomasz Napierala# } 58009ea47eSEdward Tomasz Napierala# } 59009ea47eSEdward Tomasz Napierala# 60009ea47eSEdward Tomasz Napierala# target iqn.2012-06.com.example:2 { 61009ea47eSEdward Tomasz Napierala# auth-group meh 62009ea47eSEdward Tomasz Napierala# portal-group meh 63009ea47eSEdward Tomasz Napierala# lun 0 { 64009ea47eSEdward Tomasz Napierala# path /var/tmp/example_t2l0 65009ea47eSEdward Tomasz Napierala# size 4G 66009ea47eSEdward Tomasz Napierala# } 67009ea47eSEdward Tomasz Napierala# lun 1 { 68009ea47eSEdward Tomasz Napierala# path /var/tmp/example_t2l1 69009ea47eSEdward Tomasz Napierala# size 4G 70009ea47eSEdward Tomasz Napierala# } 71009ea47eSEdward Tomasz Napierala# } 72009ea47eSEdward Tomasz Napierala# 73009ea47eSEdward Tomasz Napierala# Remember to create the backing files (/var/tmp/example_t1l0 etcc) 74009ea47eSEdward Tomasz Napierala# 75009ea47eSEdward Tomasz Napierala# On the initiator, $MNTDIR will be used for testing. 76009ea47eSEdward Tomasz Napierala# 77009ea47eSEdward Tomasz Napierala 78009ea47eSEdward Tomasz NapieralaTARGETIP=192.168.56.101 79009ea47eSEdward Tomasz NapieralaTARGET1=iqn.2012-06.com.example:1 80009ea47eSEdward Tomasz NapieralaTARGET2=iqn.2012-06.com.example:2 81009ea47eSEdward Tomasz NapieralaUSER=user 82009ea47eSEdward Tomasz NapieralaSECRET=secretsecret 83009ea47eSEdward Tomasz NapieralaMNTDIR=/mnt 84009ea47eSEdward Tomasz NapieralaTMPDIR=/tmp 85009ea47eSEdward Tomasz Napierala 86009ea47eSEdward Tomasz Napieraladie() { 87009ea47eSEdward Tomasz Napierala echo "$*" 88009ea47eSEdward Tomasz Napierala exit 1 89009ea47eSEdward Tomasz Napierala} 90009ea47eSEdward Tomasz Napierala 91009ea47eSEdward Tomasz Napieralacase `uname` in 92009ea47eSEdward Tomasz Napierala FreeBSD) 93009ea47eSEdward Tomasz Napierala LUN0=/dev/da0 94009ea47eSEdward Tomasz Napierala LUN1=/dev/da1 95009ea47eSEdward Tomasz Napierala LUN2=/dev/da2 96009ea47eSEdward Tomasz Napierala LUN3=/dev/da3 97009ea47eSEdward Tomasz Napierala ZFSPOOL=iscsipool 98009ea47eSEdward Tomasz Napierala ;; 99009ea47eSEdward Tomasz Napierala Linux) 100009ea47eSEdward Tomasz Napierala LUN0=/dev/sdb 101009ea47eSEdward Tomasz Napierala LUN1=/dev/sdc 102009ea47eSEdward Tomasz Napierala LUN2=/dev/sdd 103009ea47eSEdward Tomasz Napierala LUN3=/dev/sde 104009ea47eSEdward Tomasz Napierala ;; 105009ea47eSEdward Tomasz Napierala SunOS) 106009ea47eSEdward Tomasz Napierala # LUN names are being set later, during attach. 107009ea47eSEdward Tomasz Napierala ZFSPOOL=iscsipool 108009ea47eSEdward Tomasz Napierala ;; 109009ea47eSEdward Tomasz Napierala *) 110009ea47eSEdward Tomasz Napierala die "unsupported system" 111009ea47eSEdward Tomasz Napierala ;; 112009ea47eSEdward Tomasz Napieralaesac 113009ea47eSEdward Tomasz Napierala 114009ea47eSEdward Tomasz Napieralacheck() { 115009ea47eSEdward Tomasz Napierala echo "# $@" > /dev/stderr 116009ea47eSEdward Tomasz Napierala $@ || die "$@ failed" 117009ea47eSEdward Tomasz Napierala} 118009ea47eSEdward Tomasz Napierala 119009ea47eSEdward Tomasz Napieralabanner() { 120009ea47eSEdward Tomasz Napierala echo "Will try to attach to $TARGET1 and $TARGET2 on $TARGETIP," 121009ea47eSEdward Tomasz Napierala echo "user $USER, secret $SECRET. Will use mountpoint $MNTDIR, temporary dir $TMPDIR," 122009ea47eSEdward Tomasz Napierala if [ -n "$LUN0" ]; then 123009ea47eSEdward Tomasz Napierala echo "scratch disks $LUN0, $LUN1, $LUN2, $LUN3." 124009ea47eSEdward Tomasz Napierala else 125009ea47eSEdward Tomasz Napierala echo "scratch disks unknown at this stage." 126009ea47eSEdward Tomasz Napierala fi 127009ea47eSEdward Tomasz Napierala echo 128009ea47eSEdward Tomasz Napierala echo "This script is NOT safe to run on multiuser system." 129009ea47eSEdward Tomasz Napierala echo 130009ea47eSEdward Tomasz Napierala echo "Press ^C to interrupt; will proceed in 5 seconds." 131009ea47eSEdward Tomasz Napierala sleep 5 132009ea47eSEdward Tomasz Napierala} 133009ea47eSEdward Tomasz Napierala 134009ea47eSEdward Tomasz Napieralatest_discovery_freebsd_9() { 135009ea47eSEdward Tomasz Napierala kldload iscsi_initiator 136009ea47eSEdward Tomasz Napierala check iscontrol -dt $TARGETIP > $TMPDIR/discovered 137009ea47eSEdward Tomasz Napierala cat $TMPDIR/discovered 138009ea47eSEdward Tomasz Napierala echo "TargetName=$TARGET1" > $TMPDIR/expected 139009ea47eSEdward Tomasz Napierala echo "TargetName=$TARGET2" >> $TMPDIR/expected 140009ea47eSEdward Tomasz Napierala check cmp $TMPDIR/expected $TMPDIR/discovered 141009ea47eSEdward Tomasz Napierala rm -f $TMPDIR/expected $TMPDIR/discovered 142009ea47eSEdward Tomasz Napierala} 143009ea47eSEdward Tomasz Napierala 144009ea47eSEdward Tomasz Napieralatest_discovery_freebsd() { 145009ea47eSEdward Tomasz Napierala /etc/rc.d/iscsid onestart 146009ea47eSEdward Tomasz Napierala check iscsictl -Ad $TARGETIP 147009ea47eSEdward Tomasz Napierala sleep 1 148009ea47eSEdward Tomasz Napierala iscsictl | awk '{ print $1 }' | sort > $TMPDIR/discovered 149009ea47eSEdward Tomasz Napierala printf "Target\n$TARGET1\n$TARGET2\n" | sort > $TMPDIR/expected 150009ea47eSEdward Tomasz Napierala check cmp $TMPDIR/expected $TMPDIR/discovered 151009ea47eSEdward Tomasz Napierala rm -f $TMPDIR/expected $TMPDIR/discovered 152009ea47eSEdward Tomasz Napierala check iscsictl -Ra 153009ea47eSEdward Tomasz Napierala sleep 1 154009ea47eSEdward Tomasz Napierala} 155009ea47eSEdward Tomasz Napierala 156009ea47eSEdward Tomasz Napieralatest_discovery_linux() { 157009ea47eSEdward Tomasz Napierala cat > /etc/iscsi/iscsid.conf << END 158009ea47eSEdward Tomasz Napierala 159009ea47eSEdward Tomasz Napieraladiscovery.sendtargets.auth.authmethod = None 160009ea47eSEdward Tomasz Napieralanode.startup = manual 161009ea47eSEdward Tomasz Napierala 162009ea47eSEdward Tomasz NapieralaEND 163009ea47eSEdward Tomasz Napierala 164009ea47eSEdward Tomasz Napierala check iscsiadm -m discovery -t sendtargets -p $TARGETIP > $TMPDIR/discovered 165009ea47eSEdward Tomasz Napierala cat $TMPDIR/discovered 166009ea47eSEdward Tomasz Napierala echo "$TARGETIP:3260,-1 $TARGET1" > $TMPDIR/expected 167009ea47eSEdward Tomasz Napierala echo "$TARGETIP:3260,-1 $TARGET2" >> $TMPDIR/expected 168009ea47eSEdward Tomasz Napierala check cmp $TMPDIR/expected $TMPDIR/discovered 169009ea47eSEdward Tomasz Napierala rm -f $TMPDIR/expected $TMPDIR/discovered 170009ea47eSEdward Tomasz Napierala 171009ea47eSEdward Tomasz Napierala} 172009ea47eSEdward Tomasz Napierala 173009ea47eSEdward Tomasz Napieralatest_discovery_solaris() { 174009ea47eSEdward Tomasz Napierala check iscsiadm add discovery-address $TARGETIP 175009ea47eSEdward Tomasz Napierala check iscsiadm modify discovery --sendtargets enable 176009ea47eSEdward Tomasz Napierala check iscsiadm modify discovery --static enable 177009ea47eSEdward Tomasz Napierala check iscsiadm list target | awk '/^Target/ { print $2 }' | sort > $TMPDIR/discovered 178009ea47eSEdward Tomasz Napierala check iscsiadm remove discovery-address $TARGETIP 179009ea47eSEdward Tomasz Napierala cat $TMPDIR/discovered 180009ea47eSEdward Tomasz Napierala echo "$TARGET1" > $TMPDIR/expected 181009ea47eSEdward Tomasz Napierala echo "$TARGET2" >> $TMPDIR/expected 182009ea47eSEdward Tomasz Napierala check cmp $TMPDIR/expected $TMPDIR/discovered 183009ea47eSEdward Tomasz Napierala rm -f $TMPDIR/expected $TMPDIR/discovered 184009ea47eSEdward Tomasz Napierala} 185009ea47eSEdward Tomasz Napierala 186009ea47eSEdward Tomasz Napieralatest_discovery() { 187009ea47eSEdward Tomasz Napierala echo "*** discovery test ***" 188009ea47eSEdward Tomasz Napierala case `uname` in 189009ea47eSEdward Tomasz Napierala FreeBSD) 190009ea47eSEdward Tomasz Napierala case `uname -r` in 191009ea47eSEdward Tomasz Napierala 9*) 192009ea47eSEdward Tomasz Napierala test_discovery_freebsd_9 193009ea47eSEdward Tomasz Napierala ;; 194009ea47eSEdward Tomasz Napierala *) 195009ea47eSEdward Tomasz Napierala test_discovery_freebsd 196009ea47eSEdward Tomasz Napierala ;; 197009ea47eSEdward Tomasz Napierala esac 198009ea47eSEdward Tomasz Napierala ;; 199009ea47eSEdward Tomasz Napierala Linux) 200009ea47eSEdward Tomasz Napierala test_discovery_linux 201009ea47eSEdward Tomasz Napierala ;; 202009ea47eSEdward Tomasz Napierala SunOS) 203009ea47eSEdward Tomasz Napierala test_discovery_solaris 204009ea47eSEdward Tomasz Napierala ;; 205009ea47eSEdward Tomasz Napierala *) 206009ea47eSEdward Tomasz Napierala die "unsupported system" 207009ea47eSEdward Tomasz Napierala ;; 208009ea47eSEdward Tomasz Napierala esac 209009ea47eSEdward Tomasz Napierala} 210009ea47eSEdward Tomasz Napierala 211009ea47eSEdward Tomasz Napieralatest_attach_freebsd_9() { 212009ea47eSEdward Tomasz Napierala [ ! -e LUN0 ] || die "$LUN0 already exists" 213009ea47eSEdward Tomasz Napierala [ ! -e LUN1 ] || die "$LUN1 already exists" 214009ea47eSEdward Tomasz Napierala [ ! -e LUN2 ] || die "$LUN2 already exists" 215009ea47eSEdward Tomasz Napierala [ ! -e LUN3 ] || die "$LUN3 already exists" 216009ea47eSEdward Tomasz Napierala 217009ea47eSEdward Tomasz Napierala cat > $TMPDIR/iscsi.conf << END 218009ea47eSEdward Tomasz Napierala 219009ea47eSEdward Tomasz Napieralatarget1 { 220009ea47eSEdward Tomasz Napierala TargetName = $TARGET1 221009ea47eSEdward Tomasz Napierala TargetAddress = $TARGETIP 222009ea47eSEdward Tomasz Napierala} 223009ea47eSEdward Tomasz Napierala 224009ea47eSEdward Tomasz Napieralatarget2 { 225009ea47eSEdward Tomasz Napierala TargetName = $TARGET2 226009ea47eSEdward Tomasz Napierala TargetAddress = $TARGETIP 227009ea47eSEdward Tomasz Napierala AuthMethod = CHAP 228009ea47eSEdward Tomasz Napierala chapIName = $USER 229009ea47eSEdward Tomasz Napierala chapSecret = $SECRET 230009ea47eSEdward Tomasz Napierala} 231009ea47eSEdward Tomasz Napierala 232009ea47eSEdward Tomasz NapieralaEND 233009ea47eSEdward Tomasz Napierala check iscontrol -c $TMPDIR/iscsi.conf -n target1 234009ea47eSEdward Tomasz Napierala check iscontrol -c $TMPDIR/iscsi.conf -n target2 235009ea47eSEdward Tomasz Napierala 236009ea47eSEdward Tomasz Napierala echo "Waiting 10 seconds for attach to complete." 237009ea47eSEdward Tomasz Napierala sleep 10 238009ea47eSEdward Tomasz Napierala 239009ea47eSEdward Tomasz Napierala [ -e $LUN0 ] || die "$LUN0 doesn't exist" 240009ea47eSEdward Tomasz Napierala [ -e $LUN1 ] || die "$LUN1 doesn't exist" 241009ea47eSEdward Tomasz Napierala [ -e $LUN2 ] || die "$LUN2 doesn't exist" 242009ea47eSEdward Tomasz Napierala [ -e $LUN3 ] || die "$LUN3 doesn't exist" 243009ea47eSEdward Tomasz Napierala 244009ea47eSEdward Tomasz Napierala rm $TMPDIR/iscsi.conf 245009ea47eSEdward Tomasz Napierala} 246009ea47eSEdward Tomasz Napierala 247009ea47eSEdward Tomasz Napieralatest_attach_freebsd() { 248009ea47eSEdward Tomasz Napierala [ ! -e LUN0 ] || die "$LUN0 already exists" 249009ea47eSEdward Tomasz Napierala [ ! -e LUN1 ] || die "$LUN1 already exists" 250009ea47eSEdward Tomasz Napierala [ ! -e LUN2 ] || die "$LUN2 already exists" 251009ea47eSEdward Tomasz Napierala [ ! -e LUN3 ] || die "$LUN3 already exists" 252009ea47eSEdward Tomasz Napierala 253009ea47eSEdward Tomasz Napierala cat > $TMPDIR/iscsi.conf << END 254009ea47eSEdward Tomasz Napierala 255009ea47eSEdward Tomasz Napieralatarget1 { 256009ea47eSEdward Tomasz Napierala TargetName = $TARGET1 257009ea47eSEdward Tomasz Napierala TargetAddress = $TARGETIP 258009ea47eSEdward Tomasz Napierala} 259009ea47eSEdward Tomasz Napierala 260009ea47eSEdward Tomasz Napieralatarget2 { 261009ea47eSEdward Tomasz Napierala TargetName = $TARGET2 262009ea47eSEdward Tomasz Napierala TargetAddress = $TARGETIP 263009ea47eSEdward Tomasz Napierala AuthMethod = CHAP 264009ea47eSEdward Tomasz Napierala chapIName = $USER 265009ea47eSEdward Tomasz Napierala chapSecret = $SECRET 266009ea47eSEdward Tomasz Napierala} 267009ea47eSEdward Tomasz Napierala 268009ea47eSEdward Tomasz NapieralaEND 269009ea47eSEdward Tomasz Napierala check iscsictl -Ac $TMPDIR/iscsi.conf -n target1 270009ea47eSEdward Tomasz Napierala check iscsictl -Ac $TMPDIR/iscsi.conf -n target2 271009ea47eSEdward Tomasz Napierala 272009ea47eSEdward Tomasz Napierala echo "Waiting 10 seconds for attach to complete." 273009ea47eSEdward Tomasz Napierala sleep 10 274009ea47eSEdward Tomasz Napierala 275009ea47eSEdward Tomasz Napierala [ -e $LUN0 ] || die "$LUN0 doesn't exist" 276009ea47eSEdward Tomasz Napierala [ -e $LUN1 ] || die "$LUN1 doesn't exist" 277009ea47eSEdward Tomasz Napierala [ -e $LUN2 ] || die "$LUN2 doesn't exist" 278009ea47eSEdward Tomasz Napierala [ -e $LUN3 ] || die "$LUN3 doesn't exist" 279009ea47eSEdward Tomasz Napierala 280009ea47eSEdward Tomasz Napierala rm $TMPDIR/iscsi.conf 281009ea47eSEdward Tomasz Napierala} 282009ea47eSEdward Tomasz Napierala 283009ea47eSEdward Tomasz Napieralatest_attach_linux() { 284009ea47eSEdward Tomasz Napierala check iscsiadm --mode node --targetname "$TARGET1" -p "$TARGETIP:3260" --op=update --name node.session.auth.authmethod --value=None 285009ea47eSEdward Tomasz Napierala check iscsiadm --mode node --targetname "$TARGET1" -p "$TARGETIP:3260" --login 286009ea47eSEdward Tomasz Napierala check iscsiadm --mode node --targetname "$TARGET2" -p "$TARGETIP:3260" --op=update --name node.session.auth.authmethod --value=CHAP 287009ea47eSEdward Tomasz Napierala check iscsiadm --mode node --targetname "$TARGET2" -p "$TARGETIP:3260" --op=update --name node.session.auth.username --value="$USER" 288009ea47eSEdward Tomasz Napierala check iscsiadm --mode node --targetname "$TARGET2" -p "$TARGETIP:3260" --op=update --name node.session.auth.password --value="$SECRET" 289009ea47eSEdward Tomasz Napierala check iscsiadm --mode node --targetname "$TARGET2" -p "$TARGETIP:3260" --login 290009ea47eSEdward Tomasz Napierala} 291009ea47eSEdward Tomasz Napierala 292009ea47eSEdward Tomasz Napieralatest_attach_solaris() { 293009ea47eSEdward Tomasz Napierala # XXX: How to enter the CHAP secret from the script? For now, 294009ea47eSEdward Tomasz Napierala # just use the first target, and thus first two LUNs. 295009ea47eSEdward Tomasz Napierala #check iscsiadm modify initiator-node --authentication CHAP 296009ea47eSEdward Tomasz Napierala #check iscsiadm modify initiator-node --CHAP-name $USER 297009ea47eSEdward Tomasz Napierala #check iscsiadm modify initiator-node --CHAP-secret $SECRET 298009ea47eSEdward Tomasz Napierala iscsiadm add static-config $TARGET1,$TARGETIP 299009ea47eSEdward Tomasz Napierala LUN0=`iscsiadm list target -S | awk '/OS Device Name/ { print $4 }' | sed -n 1p` 300009ea47eSEdward Tomasz Napierala LUN1=`iscsiadm list target -S | awk '/OS Device Name/ { print $4 }' | sed -n 2p` 301009ea47eSEdward Tomasz Napierala LUN0=`echo ${LUN0}2 | sed 's/rdsk/dsk/'` 302009ea47eSEdward Tomasz Napierala LUN1=`echo ${LUN1}2 | sed 's/rdsk/dsk/'` 303009ea47eSEdward Tomasz Napierala [ -n "$LUN0" -a -n "LUN1" ] || die "attach failed" 304009ea47eSEdward Tomasz Napierala echo "Scratch disks: $LUN0, $LUN1" 305009ea47eSEdward Tomasz Napierala} 306009ea47eSEdward Tomasz Napierala 307009ea47eSEdward Tomasz Napieralatest_attach() { 308009ea47eSEdward Tomasz Napierala echo "*** attach test ***" 309009ea47eSEdward Tomasz Napierala case `uname` in 310009ea47eSEdward Tomasz Napierala FreeBSD) 311009ea47eSEdward Tomasz Napierala case `uname -r` in 312009ea47eSEdward Tomasz Napierala 9*) 313009ea47eSEdward Tomasz Napierala test_attach_freebsd_9 314009ea47eSEdward Tomasz Napierala ;; 315009ea47eSEdward Tomasz Napierala *) 316009ea47eSEdward Tomasz Napierala test_attach_freebsd 317009ea47eSEdward Tomasz Napierala ;; 318009ea47eSEdward Tomasz Napierala esac 319009ea47eSEdward Tomasz Napierala ;; 320009ea47eSEdward Tomasz Napierala Linux) 321009ea47eSEdward Tomasz Napierala test_attach_linux 322009ea47eSEdward Tomasz Napierala ;; 323009ea47eSEdward Tomasz Napierala SunOS) 324009ea47eSEdward Tomasz Napierala test_attach_solaris 325009ea47eSEdward Tomasz Napierala ;; 326009ea47eSEdward Tomasz Napierala *) 327009ea47eSEdward Tomasz Napierala die "unsupported system" 328009ea47eSEdward Tomasz Napierala ;; 329009ea47eSEdward Tomasz Napierala esac 330009ea47eSEdward Tomasz Napierala} 331009ea47eSEdward Tomasz Napierala 332009ea47eSEdward Tomasz Napieralatest_newfs_freebsd_ufs() { 333009ea47eSEdward Tomasz Napierala echo "*** UFS filesystem smoke test ***" 334009ea47eSEdward Tomasz Napierala check newfs $LUN0 335009ea47eSEdward Tomasz Napierala check newfs $LUN1 336009ea47eSEdward Tomasz Napierala check newfs $LUN2 337009ea47eSEdward Tomasz Napierala check newfs $LUN3 338009ea47eSEdward Tomasz Napierala check fsck -t ufs $LUN0 339009ea47eSEdward Tomasz Napierala check fsck -t ufs $LUN1 340009ea47eSEdward Tomasz Napierala check fsck -t ufs $LUN2 341009ea47eSEdward Tomasz Napierala check fsck -t ufs $LUN3 342009ea47eSEdward Tomasz Napierala} 343009ea47eSEdward Tomasz Napierala 344009ea47eSEdward Tomasz Napieralatest_newfs_freebsd_zfs() { 345009ea47eSEdward Tomasz Napierala echo "*** ZFS filesystem smoke test ***" 346009ea47eSEdward Tomasz Napierala check zpool create -f $ZFSPOOL $LUN0 $LUN1 $LUN2 $LUN3 347009ea47eSEdward Tomasz Napierala check zpool destroy -f $ZFSPOOL 348009ea47eSEdward Tomasz Napierala} 349009ea47eSEdward Tomasz Napierala 350009ea47eSEdward Tomasz Napieralatest_newfs_linux_ext4() { 351009ea47eSEdward Tomasz Napierala echo "*** ext4 filesystem smoke test ***" 352009ea47eSEdward Tomasz Napierala yes | check mkfs $LUN0 353009ea47eSEdward Tomasz Napierala yes | check mkfs $LUN1 354009ea47eSEdward Tomasz Napierala yes | check mkfs $LUN2 355009ea47eSEdward Tomasz Napierala yes | check mkfs $LUN3 356009ea47eSEdward Tomasz Napierala check fsck -f $LUN0 357009ea47eSEdward Tomasz Napierala check fsck -f $LUN1 358009ea47eSEdward Tomasz Napierala check fsck -f $LUN2 359009ea47eSEdward Tomasz Napierala check fsck -f $LUN3 360009ea47eSEdward Tomasz Napierala} 361009ea47eSEdward Tomasz Napierala 362009ea47eSEdward Tomasz Napieralatest_newfs_linux_btrfs() { 363009ea47eSEdward Tomasz Napierala echo "*** btrfs filesystem smoke test ***" 364009ea47eSEdward Tomasz Napierala check mkfs.btrfs $LUN0 $LUN1 $LUN2 $LUN3 365009ea47eSEdward Tomasz Napierala} 366009ea47eSEdward Tomasz Napierala 367009ea47eSEdward Tomasz Napierala 368009ea47eSEdward Tomasz Napieralatest_newfs_solaris_ufs() { 369009ea47eSEdward Tomasz Napierala echo "*** UFS filesystem smoke test ***" 370009ea47eSEdward Tomasz Napierala yes | check newfs $LUN0 371009ea47eSEdward Tomasz Napierala yes | check newfs $LUN1 372009ea47eSEdward Tomasz Napierala check fsck -F ufs $LUN0 373009ea47eSEdward Tomasz Napierala check fsck -F ufs $LUN1 374009ea47eSEdward Tomasz Napierala} 375009ea47eSEdward Tomasz Napierala 376009ea47eSEdward Tomasz Napieralatest_newfs_solaris_zfs() { 377009ea47eSEdward Tomasz Napierala echo "*** ZFS filesystem smoke test ***" 378009ea47eSEdward Tomasz Napierala check zpool create -f $ZFSPOOL $LUN0 $LUN1 379009ea47eSEdward Tomasz Napierala check zpool destroy -f $ZFSPOOL 380009ea47eSEdward Tomasz Napierala} 381009ea47eSEdward Tomasz Napierala 382009ea47eSEdward Tomasz Napieralatest_newfs() { 383009ea47eSEdward Tomasz Napierala case `uname` in 384009ea47eSEdward Tomasz Napierala FreeBSD) 385009ea47eSEdward Tomasz Napierala test_newfs_freebsd_ufs 386009ea47eSEdward Tomasz Napierala test_newfs_freebsd_zfs 387009ea47eSEdward Tomasz Napierala ;; 388009ea47eSEdward Tomasz Napierala Linux) 389009ea47eSEdward Tomasz Napierala test_newfs_linux_ext4 390009ea47eSEdward Tomasz Napierala test_newfs_linux_btrfs 391009ea47eSEdward Tomasz Napierala ;; 392009ea47eSEdward Tomasz Napierala SunOS) 393009ea47eSEdward Tomasz Napierala test_newfs_solaris_ufs 394009ea47eSEdward Tomasz Napierala test_newfs_solaris_zfs 395009ea47eSEdward Tomasz Napierala ;; 396009ea47eSEdward Tomasz Napierala *) 397009ea47eSEdward Tomasz Napierala die "unsupported system" 398009ea47eSEdward Tomasz Napierala ;; 399009ea47eSEdward Tomasz Napierala esac 400009ea47eSEdward Tomasz Napierala} 401009ea47eSEdward Tomasz Napierala 402009ea47eSEdward Tomasz Napieralatest_cp() { 403009ea47eSEdward Tomasz Napierala echo "*** basic filesystem test ***" 404009ea47eSEdward Tomasz Napierala case `uname` in 405009ea47eSEdward Tomasz Napierala FreeBSD) 406009ea47eSEdward Tomasz Napierala check newfs $LUN0 407009ea47eSEdward Tomasz Napierala check mount -t ufs $LUN0 $MNTDIR 408009ea47eSEdward Tomasz Napierala check dd if=/dev/urandom of=$MNTDIR/1 bs=1m count=500 409009ea47eSEdward Tomasz Napierala check cp $MNTDIR/1 $MNTDIR/2 410009ea47eSEdward Tomasz Napierala check umount $MNTDIR 411009ea47eSEdward Tomasz Napierala check fsck -t ufs $LUN0 412009ea47eSEdward Tomasz Napierala check mount -t ufs $LUN0 $MNTDIR 413009ea47eSEdward Tomasz Napierala check cmp $MNTDIR/1 $MNTDIR/2 414009ea47eSEdward Tomasz Napierala check umount $MNTDIR 415009ea47eSEdward Tomasz Napierala 416009ea47eSEdward Tomasz Napierala check zpool create -f $ZFSPOOL $LUN0 $LUN1 $LUN2 $LUN3 417009ea47eSEdward Tomasz Napierala check dd if=/dev/urandom of=/$ZFSPOOL/1 bs=1m count=500 418009ea47eSEdward Tomasz Napierala check zpool scrub $ZFSPOOL 419009ea47eSEdward Tomasz Napierala check cp /$ZFSPOOL/1 /$ZFSPOOL/2 420009ea47eSEdward Tomasz Napierala check cmp /$ZFSPOOL/1 /$ZFSPOOL/2 421009ea47eSEdward Tomasz Napierala check zpool destroy -f $ZFSPOOL 422009ea47eSEdward Tomasz Napierala ;; 423009ea47eSEdward Tomasz Napierala Linux) 424009ea47eSEdward Tomasz Napierala yes | check mkfs $LUN0 425009ea47eSEdward Tomasz Napierala check mount $LUN0 $MNTDIR 426009ea47eSEdward Tomasz Napierala check dd if=/dev/urandom of=$MNTDIR/1 bs=1M count=500 427009ea47eSEdward Tomasz Napierala check cp $MNTDIR/1 $MNTDIR/2 428009ea47eSEdward Tomasz Napierala check umount $MNTDIR 429009ea47eSEdward Tomasz Napierala check fsck -f $LUN0 430009ea47eSEdward Tomasz Napierala check mount $LUN0 $MNTDIR 431009ea47eSEdward Tomasz Napierala check cmp $MNTDIR/1 $MNTDIR/2 432009ea47eSEdward Tomasz Napierala check umount $MNTDIR 433009ea47eSEdward Tomasz Napierala 434009ea47eSEdward Tomasz Napierala check mkfs.btrfs $LUN0 $LUN1 $LUN2 $LUN3 435009ea47eSEdward Tomasz Napierala check mount $LUN0 $MNTDIR 436009ea47eSEdward Tomasz Napierala check dd if=/dev/urandom of=$MNTDIR/1 bs=1M count=500 437009ea47eSEdward Tomasz Napierala check cp $MNTDIR/1 $MNTDIR/2 438009ea47eSEdward Tomasz Napierala check umount $MNTDIR 439009ea47eSEdward Tomasz Napierala check mount $LUN0 $MNTDIR 440009ea47eSEdward Tomasz Napierala check cmp $MNTDIR/1 $MNTDIR/2 441009ea47eSEdward Tomasz Napierala check umount $MNTDIR 442009ea47eSEdward Tomasz Napierala ;; 443009ea47eSEdward Tomasz Napierala SunOS) 444009ea47eSEdward Tomasz Napierala yes | check newfs $LUN0 445009ea47eSEdward Tomasz Napierala check mount -F ufs $LUN0 $MNTDIR 446009ea47eSEdward Tomasz Napierala check dd if=/dev/urandom of=$MNTDIR/1 bs=1024k count=500 447009ea47eSEdward Tomasz Napierala check cp $MNTDIR/1 $MNTDIR/2 448009ea47eSEdward Tomasz Napierala check umount $MNTDIR 449009ea47eSEdward Tomasz Napierala check fsck -yF ufs $LUN0 450009ea47eSEdward Tomasz Napierala check mount -F ufs $LUN0 $MNTDIR 451009ea47eSEdward Tomasz Napierala check cmp $MNTDIR/1 $MNTDIR/2 452009ea47eSEdward Tomasz Napierala check umount $MNTDIR 453009ea47eSEdward Tomasz Napierala 454009ea47eSEdward Tomasz Napierala check zpool create -f $ZFSPOOL $LUN0 $LUN1 455009ea47eSEdward Tomasz Napierala check dd if=/dev/urandom of=/$ZFSPOOL/1 bs=1024k count=500 456009ea47eSEdward Tomasz Napierala check zpool scrub $ZFSPOOL 457009ea47eSEdward Tomasz Napierala check cp /$ZFSPOOL/1 /$ZFSPOOL/2 458009ea47eSEdward Tomasz Napierala check cmp /$ZFSPOOL/1 /$ZFSPOOL/2 459009ea47eSEdward Tomasz Napierala check zpool destroy -f $ZFSPOOL 460009ea47eSEdward Tomasz Napierala ;; 461009ea47eSEdward Tomasz Napierala *) 462009ea47eSEdward Tomasz Napierala die "unsupported system" 463009ea47eSEdward Tomasz Napierala ;; 464009ea47eSEdward Tomasz Napierala esac 465009ea47eSEdward Tomasz Napierala} 466009ea47eSEdward Tomasz Napierala 467009ea47eSEdward Tomasz Napieralatest_bonnie() { 468009ea47eSEdward Tomasz Napierala echo "*** bonnie++ ***" 469009ea47eSEdward Tomasz Napierala case `uname` in 470009ea47eSEdward Tomasz Napierala FreeBSD) 471009ea47eSEdward Tomasz Napierala check newfs $LUN0 472009ea47eSEdward Tomasz Napierala check mount -t ufs $LUN0 $MNTDIR 473009ea47eSEdward Tomasz Napierala check cd $MNTDIR 474009ea47eSEdward Tomasz Napierala check bonnie++ -u root -s 2g -r 1g -n0 475009ea47eSEdward Tomasz Napierala check bonnie++ -u root -s 0 476009ea47eSEdward Tomasz Napierala check cd - 477009ea47eSEdward Tomasz Napierala check umount $MNTDIR 478009ea47eSEdward Tomasz Napierala check fsck -t ufs $LUN0 479009ea47eSEdward Tomasz Napierala 480009ea47eSEdward Tomasz Napierala check zpool create -f $ZFSPOOL $LUN0 $LUN1 $LUN2 $LUN3 481009ea47eSEdward Tomasz Napierala check cd /$ZFSPOOL 482009ea47eSEdward Tomasz Napierala check bonnie++ -u root -s 2g -r 1g -n0 483009ea47eSEdward Tomasz Napierala check bonnie++ -u root -s 0 484009ea47eSEdward Tomasz Napierala check cd - 485009ea47eSEdward Tomasz Napierala check zpool destroy -f $ZFSPOOL 486009ea47eSEdward Tomasz Napierala ;; 487009ea47eSEdward Tomasz Napierala Linux) 488009ea47eSEdward Tomasz Napierala yes | check mkfs $LUN0 489009ea47eSEdward Tomasz Napierala check mount $LUN0 $MNTDIR 490009ea47eSEdward Tomasz Napierala check cd $MNTDIR 491009ea47eSEdward Tomasz Napierala check bonnie++ -u root -s 2g -r 1g -n0 492009ea47eSEdward Tomasz Napierala check bonnie++ -u root -s 0 493009ea47eSEdward Tomasz Napierala check cd - 494009ea47eSEdward Tomasz Napierala check umount $MNTDIR 495009ea47eSEdward Tomasz Napierala check fsck -f $LUN0 496009ea47eSEdward Tomasz Napierala 497009ea47eSEdward Tomasz Napierala check mkfs.btrfs $LUN0 $LUN1 $LUN2 $LUN3 498009ea47eSEdward Tomasz Napierala check mount $LUN0 $MNTDIR 499009ea47eSEdward Tomasz Napierala check cd $MNTDIR 500009ea47eSEdward Tomasz Napierala check bonnie++ -u root -s 2g -r 1g -n0 501009ea47eSEdward Tomasz Napierala check bonnie++ -u root -s 0 502009ea47eSEdward Tomasz Napierala check cd - 503009ea47eSEdward Tomasz Napierala check umount $MNTDIR 504009ea47eSEdward Tomasz Napierala ;; 505009ea47eSEdward Tomasz Napierala SunOS) 506009ea47eSEdward Tomasz Napierala yes | check newfs $LUN0 507009ea47eSEdward Tomasz Napierala check mount -F ufs $LUN0 $MNTDIR 508009ea47eSEdward Tomasz Napierala check cd $MNTDIR 509009ea47eSEdward Tomasz Napierala check bonnie++ -u root -s 2g -r 1g -n0 510009ea47eSEdward Tomasz Napierala check bonnie++ -u root -s 0 511009ea47eSEdward Tomasz Napierala check cd - 512009ea47eSEdward Tomasz Napierala check umount $MNTDIR 513009ea47eSEdward Tomasz Napierala check fsck -yF ufs $LUN0 514009ea47eSEdward Tomasz Napierala 515009ea47eSEdward Tomasz Napierala check zpool create -f $ZFSPOOL $LUN0 $LUN1 516009ea47eSEdward Tomasz Napierala check cd /$ZFSPOOL 517009ea47eSEdward Tomasz Napierala check bonnie++ -u root -s 2g -r 1g -n0 518009ea47eSEdward Tomasz Napierala check bonnie++ -u root -s 0 519009ea47eSEdward Tomasz Napierala check cd - 520009ea47eSEdward Tomasz Napierala check zpool destroy -f $ZFSPOOL 521009ea47eSEdward Tomasz Napierala ;; 522009ea47eSEdward Tomasz Napierala *) 523009ea47eSEdward Tomasz Napierala die "unsupported system" 524009ea47eSEdward Tomasz Napierala ;; 525009ea47eSEdward Tomasz Napierala esac 526009ea47eSEdward Tomasz Napierala} 527009ea47eSEdward Tomasz Napierala 528009ea47eSEdward Tomasz Napieralatest_iozone() { 529009ea47eSEdward Tomasz Napierala echo "*** iozone ***" 530009ea47eSEdward Tomasz Napierala case `uname` in 531009ea47eSEdward Tomasz Napierala FreeBSD) 532009ea47eSEdward Tomasz Napierala check newfs $LUN0 533009ea47eSEdward Tomasz Napierala check mount -t ufs $LUN0 $MNTDIR 534009ea47eSEdward Tomasz Napierala check cd $MNTDIR 535009ea47eSEdward Tomasz Napierala check iozone -a 536009ea47eSEdward Tomasz Napierala check cd - 537009ea47eSEdward Tomasz Napierala check umount $MNTDIR 538009ea47eSEdward Tomasz Napierala check fsck -t ufs $LUN0 539009ea47eSEdward Tomasz Napierala 540009ea47eSEdward Tomasz Napierala check zpool create -f $ZFSPOOL $LUN0 $LUN1 $LUN2 $LUN3 541009ea47eSEdward Tomasz Napierala check cd /$ZFSPOOL 542009ea47eSEdward Tomasz Napierala check iozone -a 543009ea47eSEdward Tomasz Napierala check cd - 544009ea47eSEdward Tomasz Napierala check zpool destroy -f $ZFSPOOL 545009ea47eSEdward Tomasz Napierala ;; 546009ea47eSEdward Tomasz Napierala Linux) 547009ea47eSEdward Tomasz Napierala yes | check mkfs $LUN0 548009ea47eSEdward Tomasz Napierala check mount $LUN0 $MNTDIR 549009ea47eSEdward Tomasz Napierala check cd $MNTDIR 550009ea47eSEdward Tomasz Napierala check iozone -a 551009ea47eSEdward Tomasz Napierala check cd - 552009ea47eSEdward Tomasz Napierala check umount $MNTDIR 553009ea47eSEdward Tomasz Napierala check fsck -f $LUN0 554009ea47eSEdward Tomasz Napierala 555009ea47eSEdward Tomasz Napierala check mkfs.btrfs $LUN0 $LUN1 $LUN2 $LUN3 556009ea47eSEdward Tomasz Napierala check mount $LUN0 $MNTDIR 557009ea47eSEdward Tomasz Napierala check cd $MNTDIR 558009ea47eSEdward Tomasz Napierala check iozone -a 559009ea47eSEdward Tomasz Napierala check cd - 560009ea47eSEdward Tomasz Napierala check umount $MNTDIR 561009ea47eSEdward Tomasz Napierala ;; 562009ea47eSEdward Tomasz Napierala SunOS) 563009ea47eSEdward Tomasz Napierala yes | check newfs $LUN0 564009ea47eSEdward Tomasz Napierala check mount -F ufs $LUN0 $MNTDIR 565009ea47eSEdward Tomasz Napierala check cd $MNTDIR 566009ea47eSEdward Tomasz Napierala check iozone -a 567009ea47eSEdward Tomasz Napierala check cd - 568009ea47eSEdward Tomasz Napierala check umount $MNTDIR 569009ea47eSEdward Tomasz Napierala check fsck -yF ufs $LUN0 570009ea47eSEdward Tomasz Napierala 571009ea47eSEdward Tomasz Napierala check zpool create -f $ZFSPOOL $LUN0 $LUN1 572009ea47eSEdward Tomasz Napierala check cd /$ZFSPOOL 573009ea47eSEdward Tomasz Napierala check iozone -a 574009ea47eSEdward Tomasz Napierala check cd - 575009ea47eSEdward Tomasz Napierala check zpool destroy -f $ZFSPOOL 576009ea47eSEdward Tomasz Napierala ;; 577009ea47eSEdward Tomasz Napierala *) 578009ea47eSEdward Tomasz Napierala die "unsupported system" 579009ea47eSEdward Tomasz Napierala ;; 580009ea47eSEdward Tomasz Napierala esac 581009ea47eSEdward Tomasz Napierala 582009ea47eSEdward Tomasz Napierala} 583009ea47eSEdward Tomasz Napierala 584009ea47eSEdward Tomasz Napieralatest_postmark() { 585009ea47eSEdward Tomasz Napierala echo "*** postmark ***" 586009ea47eSEdward Tomasz Napierala case `uname` in 587009ea47eSEdward Tomasz Napierala FreeBSD) 588009ea47eSEdward Tomasz Napierala check newfs $LUN0 589009ea47eSEdward Tomasz Napierala check mount -t ufs $LUN0 $MNTDIR 590009ea47eSEdward Tomasz Napierala check cd $MNTDIR 591009ea47eSEdward Tomasz Napierala printf "set number 10000\nrun\n" | check postmark 592009ea47eSEdward Tomasz Napierala check cd - 593009ea47eSEdward Tomasz Napierala check umount $MNTDIR 594009ea47eSEdward Tomasz Napierala check fsck -t ufs $LUN0 595009ea47eSEdward Tomasz Napierala 596009ea47eSEdward Tomasz Napierala check zpool create -f $ZFSPOOL $LUN0 $LUN1 $LUN2 $LUN3 597009ea47eSEdward Tomasz Napierala check cd /$ZFSPOOL 598009ea47eSEdward Tomasz Napierala printf "set number 10000\nrun\n" | check postmark 599009ea47eSEdward Tomasz Napierala check cd - 600009ea47eSEdward Tomasz Napierala check zpool destroy -f $ZFSPOOL 601009ea47eSEdward Tomasz Napierala ;; 602009ea47eSEdward Tomasz Napierala Linux) 603009ea47eSEdward Tomasz Napierala yes | check mkfs $LUN0 604009ea47eSEdward Tomasz Napierala check mount $LUN0 $MNTDIR 605009ea47eSEdward Tomasz Napierala check cd $MNTDIR 606009ea47eSEdward Tomasz Napierala printf "set number 10000\nrun\n" | check postmark 607009ea47eSEdward Tomasz Napierala check cd - 608009ea47eSEdward Tomasz Napierala check umount $MNTDIR 609009ea47eSEdward Tomasz Napierala check fsck -f $LUN0 610009ea47eSEdward Tomasz Napierala 611009ea47eSEdward Tomasz Napierala check mkfs.btrfs $LUN0 $LUN1 $LUN2 $LUN3 612009ea47eSEdward Tomasz Napierala check mount $LUN0 $MNTDIR 613009ea47eSEdward Tomasz Napierala check cd $MNTDIR 614009ea47eSEdward Tomasz Napierala printf "set number 10000\nrun\n" | check postmark 615009ea47eSEdward Tomasz Napierala check cd - 616009ea47eSEdward Tomasz Napierala check umount $MNTDIR 617009ea47eSEdward Tomasz Napierala ;; 618009ea47eSEdward Tomasz Napierala SunOS) 619009ea47eSEdward Tomasz Napierala yes | check newfs $LUN0 620009ea47eSEdward Tomasz Napierala check mount -F ufs $LUN0 $MNTDIR 621009ea47eSEdward Tomasz Napierala check cd $MNTDIR 622009ea47eSEdward Tomasz Napierala printf "set number 10000\nrun\n" | check postmark 623009ea47eSEdward Tomasz Napierala check cd - 624009ea47eSEdward Tomasz Napierala check umount $MNTDIR 625009ea47eSEdward Tomasz Napierala check fsck -yF ufs $LUN0 626009ea47eSEdward Tomasz Napierala 627009ea47eSEdward Tomasz Napierala check zpool create -f $ZFSPOOL $LUN0 $LUN1 628009ea47eSEdward Tomasz Napierala check cd /$ZFSPOOL 629009ea47eSEdward Tomasz Napierala printf "set number 10000\nrun\n" | check postmark 630009ea47eSEdward Tomasz Napierala check cd - 631009ea47eSEdward Tomasz Napierala check zpool destroy -f $ZFSPOOL 632009ea47eSEdward Tomasz Napierala ;; 633009ea47eSEdward Tomasz Napierala *) 634009ea47eSEdward Tomasz Napierala die "unsupported system" 635009ea47eSEdward Tomasz Napierala ;; 636009ea47eSEdward Tomasz Napierala esac 637009ea47eSEdward Tomasz Napierala} 638009ea47eSEdward Tomasz Napierala 639009ea47eSEdward Tomasz Napieralatest_postgresql_freebsd() { 640009ea47eSEdward Tomasz Napierala check newfs $LUN0 641009ea47eSEdward Tomasz Napierala check mount -t ufs $LUN0 $MNTDIR 642009ea47eSEdward Tomasz Napierala check chown pgsql $MNTDIR 643009ea47eSEdward Tomasz Napierala check chmod 755 $MNTDIR 644009ea47eSEdward Tomasz Napierala check cd / 645009ea47eSEdward Tomasz Napierala # XXX: How to make 'check' work here? 646009ea47eSEdward Tomasz Napierala su -m pgsql -c "initdb -D $MNTDIR/db" 647009ea47eSEdward Tomasz Napierala su -m pgsql -c "pg_ctl -D $MNTDIR/db -l /tmp/log start" 648009ea47eSEdward Tomasz Napierala check sleep 10 649009ea47eSEdward Tomasz Napierala su -m pgsql -c "pgbench -i postgres" 650009ea47eSEdward Tomasz Napierala su -m pgsql -c "pgbench -t 10000 postgres" 651009ea47eSEdward Tomasz Napierala su -m pgsql -c "pg_ctl -D $MNTDIR/db stop" 652009ea47eSEdward Tomasz Napierala check cd - 653009ea47eSEdward Tomasz Napierala check umount $MNTDIR 654009ea47eSEdward Tomasz Napierala check fsck -t ufs $LUN0 655009ea47eSEdward Tomasz Napierala 656009ea47eSEdward Tomasz Napierala check zpool create -f $ZFSPOOL $LUN0 $LUN1 $LUN2 $LUN3 657009ea47eSEdward Tomasz Napierala check chown pgsql /$ZFSPOOL 658009ea47eSEdward Tomasz Napierala check chmod 755 /$ZFSPOOL 659009ea47eSEdward Tomasz Napierala check cd / 660009ea47eSEdward Tomasz Napierala # XXX: How to make 'check' work here? 661009ea47eSEdward Tomasz Napierala su -m pgsql -c "initdb -D /$ZFSPOOL/db" 662009ea47eSEdward Tomasz Napierala su -m pgsql -c "pg_ctl -D /$ZFSPOOL/db -l /tmp/log start" 663009ea47eSEdward Tomasz Napierala check sleep 10 664009ea47eSEdward Tomasz Napierala su -m pgsql -c "pgbench -i postgres" 665009ea47eSEdward Tomasz Napierala su -m pgsql -c "pgbench -t 10000 postgres" 666009ea47eSEdward Tomasz Napierala su -m pgsql -c "pg_ctl -D /$ZFSPOOL/db stop" 667009ea47eSEdward Tomasz Napierala check cd - 668009ea47eSEdward Tomasz Napierala check zpool destroy -f $ZFSPOOL 669009ea47eSEdward Tomasz Napierala} 670009ea47eSEdward Tomasz Napierala 671009ea47eSEdward Tomasz Napieralatest_postgresql_linux() { 672009ea47eSEdward Tomasz Napierala yes | check mkfs $LUN0 673009ea47eSEdward Tomasz Napierala check mount $LUN0 $MNTDIR 674009ea47eSEdward Tomasz Napierala check chown postgres $MNTDIR 675009ea47eSEdward Tomasz Napierala check chmod 755 $MNTDIR 676009ea47eSEdward Tomasz Napierala check cd / 677009ea47eSEdward Tomasz Napierala # XXX: How to make 'check' work here? 678009ea47eSEdward Tomasz Napierala su -m postgres -c "initdb -D $MNTDIR/db" 679009ea47eSEdward Tomasz Napierala su -m postgres -c "pg_ctl -D $MNTDIR/db -l /tmp/log start" 680009ea47eSEdward Tomasz Napierala check sleep 5 681009ea47eSEdward Tomasz Napierala su -m postgres -c "pgbench -i" 682009ea47eSEdward Tomasz Napierala su -m postgres -c "pgbench -t 10000" 683009ea47eSEdward Tomasz Napierala su -m postgres -c "pg_ctl -D $MNTDIR/db stop" 684009ea47eSEdward Tomasz Napierala check cd - 685009ea47eSEdward Tomasz Napierala check umount $MNTDIR 686009ea47eSEdward Tomasz Napierala check fsck -f $LUN0 687009ea47eSEdward Tomasz Napierala 688009ea47eSEdward Tomasz Napierala check mkfs.btrfs $LUN0 $LUN1 $LUN2 $LUN3 689009ea47eSEdward Tomasz Napierala check mount $LUN0 $MNTDIR 690009ea47eSEdward Tomasz Napierala check chown postgres $MNTDIR 691009ea47eSEdward Tomasz Napierala check chmod 755 $MNTDIR 692009ea47eSEdward Tomasz Napierala check cd / 693009ea47eSEdward Tomasz Napierala su -m postgres -c "initdb -D $MNTDIR/db" 694009ea47eSEdward Tomasz Napierala su -m postgres -c "pg_ctl -D $MNTDIR/db -l /tmp/log start" 695009ea47eSEdward Tomasz Napierala check sleep 5 696009ea47eSEdward Tomasz Napierala su -m postgres -c "pgbench -i" 697009ea47eSEdward Tomasz Napierala su -m postgres -c "pgbench -t 10000" 698009ea47eSEdward Tomasz Napierala su -m postgres -c "pg_ctl -D $MNTDIR/db stop" 699009ea47eSEdward Tomasz Napierala check cd - 700009ea47eSEdward Tomasz Napierala check umount $MNTDIR 701009ea47eSEdward Tomasz Napierala} 702009ea47eSEdward Tomasz Napierala 703009ea47eSEdward Tomasz Napieralatest_postgresql_solaris() { 704009ea47eSEdward Tomasz Napierala PATH="$PATH:/usr/postgres/9.2-pgdg/bin" export PATH 705009ea47eSEdward Tomasz Napierala yes | check newfs $LUN0 706009ea47eSEdward Tomasz Napierala check mount -F ufs $LUN0 $MNTDIR 707009ea47eSEdward Tomasz Napierala check chown postgres $MNTDIR 708009ea47eSEdward Tomasz Napierala check chmod 755 $MNTDIR 709009ea47eSEdward Tomasz Napierala check cd / 710009ea47eSEdward Tomasz Napierala # XXX: How to make 'check' work here? 711009ea47eSEdward Tomasz Napierala su postgres -c "initdb -D $MNTDIR/db" 712009ea47eSEdward Tomasz Napierala su postgres -c "pg_ctl -D $MNTDIR/db -l /tmp/log start" 713009ea47eSEdward Tomasz Napierala check sleep 10 714009ea47eSEdward Tomasz Napierala su postgres -c "pgbench -i postgres" 715009ea47eSEdward Tomasz Napierala su postgres -c "pgbench -t 10000 postgres" 716009ea47eSEdward Tomasz Napierala su postgres -c "pg_ctl -D $MNTDIR/db stop" 717009ea47eSEdward Tomasz Napierala check cd - 718009ea47eSEdward Tomasz Napierala check umount $MNTDIR 719009ea47eSEdward Tomasz Napierala check fsck -yF ufs $LUN0 720009ea47eSEdward Tomasz Napierala 721009ea47eSEdward Tomasz Napierala check zpool create -f $ZFSPOOL $LUN0 $LUN1 $LUN2 $LUN3 722009ea47eSEdward Tomasz Napierala check chown postgres /$ZFSPOOL 723009ea47eSEdward Tomasz Napierala check chmod 755 /$ZFSPOOL 724009ea47eSEdward Tomasz Napierala check cd / 725009ea47eSEdward Tomasz Napierala # XXX: How to make 'check' work here? 726009ea47eSEdward Tomasz Napierala su postgres -c "initdb -D /$ZFSPOOL/db" 727009ea47eSEdward Tomasz Napierala su postgres -c "pg_ctl -D /$ZFSPOOL/db -l /tmp/log start" 728009ea47eSEdward Tomasz Napierala check sleep 10 729009ea47eSEdward Tomasz Napierala su postgres -c "pgbench -i postgres" 730009ea47eSEdward Tomasz Napierala su postgres -c "pgbench -t 10000 postgres" 731009ea47eSEdward Tomasz Napierala su postgres -c "pg_ctl -D /$ZFSPOOL/db stop" 732009ea47eSEdward Tomasz Napierala check cd - 733009ea47eSEdward Tomasz Napierala check zpool destroy -f $ZFSPOOL 734009ea47eSEdward Tomasz Napierala} 735009ea47eSEdward Tomasz Napierala 736009ea47eSEdward Tomasz Napieralatest_postgresql() { 737009ea47eSEdward Tomasz Napierala echo "*** postgresql ***" 738009ea47eSEdward Tomasz Napierala case `uname` in 739009ea47eSEdward Tomasz Napierala FreeBSD) 740009ea47eSEdward Tomasz Napierala test_postgresql_freebsd 741009ea47eSEdward Tomasz Napierala ;; 742009ea47eSEdward Tomasz Napierala Linux) 743009ea47eSEdward Tomasz Napierala test_postgresql_linux 744009ea47eSEdward Tomasz Napierala ;; 745009ea47eSEdward Tomasz Napierala SunOS) 746009ea47eSEdward Tomasz Napierala test_postgresql_solaris 747009ea47eSEdward Tomasz Napierala ;; 748009ea47eSEdward Tomasz Napierala *) 749009ea47eSEdward Tomasz Napierala die "unsupported system" 750009ea47eSEdward Tomasz Napierala ;; 751009ea47eSEdward Tomasz Napierala esac 752009ea47eSEdward Tomasz Napierala} 753009ea47eSEdward Tomasz Napierala 754009ea47eSEdward Tomasz Napieralatest_detach() { 755009ea47eSEdward Tomasz Napierala echo "*** detach ***" 756009ea47eSEdward Tomasz Napierala case `uname` in 757009ea47eSEdward Tomasz Napierala FreeBSD) 758009ea47eSEdward Tomasz Napierala case `uname -r` in 759009ea47eSEdward Tomasz Napierala 9*) 760009ea47eSEdward Tomasz Napierala echo "*** detaching not supported on FreeBSD 9 ***" 761009ea47eSEdward Tomasz Napierala echo "*** please reboot the initiator VM before trying to run this script again ***" 762009ea47eSEdward Tomasz Napierala ;; 763009ea47eSEdward Tomasz Napierala *) 764009ea47eSEdward Tomasz Napierala check iscsictl -Ra 765009ea47eSEdward Tomasz Napierala ;; 766009ea47eSEdward Tomasz Napierala esac 767009ea47eSEdward Tomasz Napierala ;; 768009ea47eSEdward Tomasz Napierala Linux) 769009ea47eSEdward Tomasz Napierala check iscsiadm -m node --logout 770009ea47eSEdward Tomasz Napierala ;; 771009ea47eSEdward Tomasz Napierala SunOS) 772009ea47eSEdward Tomasz Napierala check iscsiadm remove static-config $TARGET1,$TARGETIP 773009ea47eSEdward Tomasz Napierala ;; 774009ea47eSEdward Tomasz Napierala *) 775009ea47eSEdward Tomasz Napierala die "unsupported system" 776009ea47eSEdward Tomasz Napierala ;; 777009ea47eSEdward Tomasz Napierala esac 778009ea47eSEdward Tomasz Napierala} 779009ea47eSEdward Tomasz Napierala 780009ea47eSEdward Tomasz Napieralabanner 781009ea47eSEdward Tomasz Napieralatest_discovery 782009ea47eSEdward Tomasz Napieralatest_attach 783009ea47eSEdward Tomasz Napieralatest_newfs 784009ea47eSEdward Tomasz Napieralatest_cp 785009ea47eSEdward Tomasz Napieralatest_bonnie 786009ea47eSEdward Tomasz Napieralatest_iozone 787009ea47eSEdward Tomasz Napieralatest_postmark 788009ea47eSEdward Tomasz Napieralatest_postgresql 789009ea47eSEdward Tomasz Napieralatest_detach 790009ea47eSEdward Tomasz Napierala 791009ea47eSEdward Tomasz Napieralaecho "*** done ***" 792009ea47eSEdward Tomasz Napierala 793