Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 2 Feb 2007 16:28:59 -0500
From:      Peter <pmatulis@sympatico.ca>
To:        freebsd-questions@freebsd.org
Subject:   trouble using raidtest on gstripe array
Message-ID:  <200702021628.59553.pmatulis@sympatico.ca>

Next in thread | Raw E-Mail | Index | Archive | Help
On 6.2 STABLE GENERIC, I have set up RAID0 using gstripe on two SATA=20
drives and installed benchmarks/raidtest for testing.

The array is known as /dev/stripe/data.

These were my steps:

# export mediasize=3D`diskinfo /dev/stripe/data | awk '{print $3}'`
# export sectorsize=3D`diskinfo /dev/stripe/data | awk '{print $2}'`
# raidtest genfile -s $mediasize -S $sectorsize -n 50000
# ls
=2Drw-r--r-- =A01 root =A0super =A0 781K Jan 27 08:42 raidtest.data
# raidtest test -d /dev/stripe/data -n 10 raidtest.data

raidtest: Cannot open 'raidtest.data' device: Operation not permitted

# ktrace raidtest test -d /dev/stripe/data -n 10 raidtest.data
# kdump

=A0 1222 raidtest CALL =A0open(0xbfbfed3f,0,0x8049e6c)
=A0 1222 raidtest NAMI =A0"raidtest.data"
=A0 1222 raidtest RET =A0 open 3
=A0 1222 raidtest CALL =A0fstat(0x3,0xbfbfeb30)
=A0 1222 raidtest RET =A0 fstat 0
=A0 1222 raidtest CALL =A0open(0xbfbfed28,0x10002,0x8049e6c)
=A0 1222 raidtest NAMI =A0"/dev/stripe/data"
=A0 1222 raidtest RET =A0 open -1 errno 1 Operation not permitted
=A0 1222 raidtest CALL =A0write(0x2,0xbfbde3d0,0xa)
=A0 1222 raidtest GIO =A0 fd 2 wrote 10 bytes
=A0 =A0 =A0 =A0"raidtest: "
=A0 1222 raidtest RET =A0 write 10/0xa
=A0 1222 raidtest CALL =A0write(0x2,0xbfbde3f0,0x22)
=A0 1222 raidtest GIO =A0 fd 2 wrote 34 bytes
=A0 =A0 =A0 =A0"Cannot open 'raidtest.data' device"
=A0 1222 raidtest RET =A0 write 34/0x22
=A0 1222 raidtest CALL =A0write(0x2,0x2813ed98,0x2)
=A0 1222 raidtest GIO =A0 fd 2 wrote 2 bytes
=A0 =A0 =A0 =A0": "
=A0 1222 raidtest RET =A0 write 2
=A0 1222 raidtest CALL =A0write(0x2,0xbfbde3d0,0x18)
=A0 1222 raidtest GIO =A0 fd 2 wrote 24 bytes
=A0 =A0 =A0 =A0"Operation not permitted
=A0 =A0 =A0 =A0"
=A0 1222 raidtest RET =A0 write 24/0x18
=A0 1222 raidtest CALL =A0exit(0x1)

=2D--------------------------------------

Looks like the gstripe label (/dev/stripe/data) is not available=20
somehow. =A0Is there any known workaround?

=2D--------------------------------------

Port info:

This utility can be used to test performance of storage devices.
=46irst, one need to generate file with I/O operations:

=A0 =A0 =A0 =A0 # set mediasize=3D`diskinfo /dev/<device> | awk '{print $3}=
'`
=A0 =A0 =A0 =A0 # set sectorsize=3D`diskinfo /dev/<device> | awk '{print $2=
}'`
=A0 =A0 =A0 =A0 # raidtest genfile -s $mediasize -S $sectorsize -n 50000

It will generate test which contains 50000 I/O requests with random
size and random offset. Size is a multiple of sectorsize, but less than=20
or
equal to 128kB (maxium size of I/O request). I/O request type (READ or=20
WRITE)
is random as well.
All test data are stored in 'raidtest.data' file in current working=20
directory.

To run test, one should type:

=A0 =A0 =A0 =A0 # raidtest test -d /dev/<device> -n 10

This command will read test data from 'raidtest.data' file, run 10=20
processes
which will be used to send requests to the given device in parallel.
When test is finished you will see statistics:

=A0 =A0 =A0 =A0 Bytes per second: <x>
=A0 =A0 =A0 =A0 Requests per second: <y>

If you compare performance of two storage devices, use the same data=20
file!

usage: raidtest genfile [-frw] <-s mediasize> [-S sectorsize] <-n=20
nrequests> [file]
=A0 =A0 =A0 =A0raidtest test [-Rrw] <-d device> [-n processes] [file]

where:
=A0 =A0 =A0 =A0 -d device =A0 =A0 =A0 path to tested device
=A0 =A0 =A0 =A0 -f =A0 =A0 =A0 =A0 =A0 =A0 =A0if raidtest.data file or spec=
ified file already=20
exists,
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 remove it and create new one
=A0 =A0 =A0 =A0 -n nrequests =A0 =A0number of requests to generate
=A0 =A0 =A0 =A0 -n processes =A0 =A0number of processes to run
=A0 =A0 =A0 =A0 -r =A0 =A0 =A0 =A0 =A0 =A0 =A0generate/run only READ reques=
ts
=A0 =A0 =A0 =A0 -R =A0 =A0 =A0 =A0 =A0 =A0 =A0generate random data for writ=
e requests
=A0 =A0 =A0 =A0 -s =A0 =A0 =A0 =A0 =A0 =A0 =A0size of destination device
=A0 =A0 =A0 =A0 -S =A0 =A0 =A0 =A0 =A0 =A0 =A0sector size of destination de=
vice
=A0 =A0 =A0 =A0 -w =A0 =A0 =A0 =A0 =A0 =A0 =A0generate/run only WRITE reque=
sts
=A0 =A0 =A0 =A0 file =A0 =A0 =A0 =A0 =A0 =A0path to the data file instead o=
f=20
default 'raidtest.data'



Want to link to this message? Use this URL: <http://docs.FreeBSD.org/cgi/mid.cgi?200702021628.59553.pmatulis>