From 42b147d63be531acfea32b9b5114b273297a84d0 Mon Sep 17 00:00:00 2001 From: cliffw Date: Thu, 23 Mar 2006 22:21:33 +0000 Subject: [PATCH] Added support for raw devices --- lustre-iokit/sgpdd-survey/README | 12 ++++++++- lustre-iokit/sgpdd-survey/sgpdd-survey | 46 +++++++++++++++++++++++++++------- 2 files changed, 48 insertions(+), 10 deletions(-) diff --git a/lustre-iokit/sgpdd-survey/README b/lustre-iokit/sgpdd-survey/README index 3666baf..67dd23b 100644 --- a/lustre-iokit/sgpdd-survey/README +++ b/lustre-iokit/sgpdd-survey/README @@ -6,7 +6,10 @@ Requirements ------------ . sg3_utils (for sgp_dd) -. SCSI device + SCSI device + Or, if using non-scsi disk + raw device support + sg3_utils Overview @@ -25,6 +28,13 @@ The script spawns variable numbers of sgp_dd instances, each reading or writing a separate area of the disk to show how performance varies with the number of concurrent stripe files. +The device(s) used must meet one of two tests: +SCSI device: + Must appear in the output of 'sg_map' +Raw device: + Must appear in the output of 'raw -qa' +You may not mix raw and SCSI devices in the test specification. + Running ------- diff --git a/lustre-iokit/sgpdd-survey/sgpdd-survey b/lustre-iokit/sgpdd-survey/sgpdd-survey index b7612d2..100d456 100755 --- a/lustre-iokit/sgpdd-survey/sgpdd-survey +++ b/lustre-iokit/sgpdd-survey/sgpdd-survey @@ -3,9 +3,12 @@ ###################################################################### # customize per survey +# CHOOSE EITHER scsidevs or rawdevs # the SCSI devices to measure - WARNING: will be erased. +#scsidevs="/dev/sde /dev/sdh" +# The raw devices to use +#rawdevs="/dev/raw/raw1" #scsidevs=`ls /dev/sd[a-z] /dev/sd[a-z][a-z]` # all devices, if you use udev -scsidevs=${scsidevs:-"/dev/sde /dev/sdh"} # result file prefix. date/time+hostname makes unique # NB ensure the path exists if it includes subdirs @@ -42,14 +45,39 @@ SG_MAX_QUEUE=16 # map given device names into SG device names i=0 devs=() -for d in $scsidevs; do - devs[$i]=`sg_map | awk "{if ($ 2 == \"$d\") print $ 1}"` - if [ -z "$devs[$i]" ]; then - echo "Can't find SG device for $d" - exit 1 - fi - i=$((i+1)) -done +if [ $scsidevs ]; then + # we will test for a LUN, the test for a partition + # if the partition number is > 9 this will fail + for d in $scsidevs; do + devs[$i]=`sg_map | awk "{if ($ 2 == \"$d\") print $ 1}"` + if [ -z "${devs[i]}" ]; then + echo "Can't find SG device for $d, testing for partition" + pt=`echo $d | sed 's/[0-9]$//'` + # Try again + devs[$i]=`sg_map | awk "{if ($ 2 == \"$pt\") print $ 1}"` + if [ -z "${devs[i]}" ]; then + echo "Can't find SG device $pt" + exit 1 + fi + fi + i=$((i+1)) + done +elif [ $rawdevs ]; then + for r in $rawdevs; do + RES=`raw -q $r` + if [ $? -eq 0 ];then + devs[$i]=$r + i=$((i+1)) + else + echo "Raw device $r not set up" + exit 1 + fi + done +else + echo "Must specify scsidevs or rawdevs" + exit 1 +fi + ndevs=${#devs[@]} rsltf=${rslt}.summary -- 1.8.3.1