Commit Graph

25 Commits

Author SHA1 Message Date
Brian Behlendorf 5545adeadf Use sparse files for loopback+file configurations
Using sparse files for the test configurations had atleast three
significant advantages.

1) Actually test sparse files to ensure they work.
2) Drastically reduce required disk space for the regression test
   suite.  This turns out to be fairly important when running the
   test suite in a virtualized environment.
3) Significantly speed of the test suite.  Run time of zconfig.sh
   dropped from 2m:56s to 1m:00s on my test system, zpios-sanity.sh
   nows runs in only 0m:26s.
2010-08-02 13:16:41 -07:00
Brian Behlendorf feee765f99 Remove promise example config replace with a supermicro config
The promise config never worked quite right.  I'm replacing it with
a Supermicro config which does and which I've tested on a real test
system.
2010-03-11 14:04:12 -08:00
Brian Behlendorf e7b3766a69 Remove udev dependency when running in-tree
After much contemplation I can't see a clean way to use udev entirely
in-tree for testing.  This patch removed a horrible horrible hack which
would copy the needed udev bits in to place on your system to make it
work.  That however is simply not acceptable, nothing you in in-tree
should ever ever ever install something on your system.

Since I could not come up with a clean way to use udev in-tree.  The
fix is to simply parse the zdev config file and create the needed
symlinks in a sub-diretory or your working tree.  This is not as clean
as using udev but it does work perfectly well for in-tree testing.
2010-03-11 13:56:20 -08:00
Brian Behlendorf 7df02c0f57 Split the udev rule from a specific configuration
While I completely agree the udev is the lesser of many possibles
evils when solving the device issue... it is still evil.  After
attempting to craft a single rule which will work for various
versions of udev in various distros.  I've come to the conclusion
the only maintainable way to solve this issue is to split the rule
from any particular configuration.

This commit provides a generic 60-zpool.rules file which use a
small helper util 'zpool_id' to parse a configuration file by
default located in /etc/zfs/zdev.conf.  The helper script maps
a by-path udev name to a more friendly name of <channel><rank>
for large configurations.

As part of this change all of the support scripts why rely on
this udev naming convention have been updated as needed.  Example
zdev.conf files have also been added for 3 different systems by
you will always need to add one for your exact hardware.

Finally, included in these changes are the proper tweaks to the
build system to ensure everything still get's packaged properly
in the rpms and can run in or out of tree.
2010-03-01 16:51:21 -08:00
Brian Behlendorf 23304dc828 Add 16 drive promise JBOD zpool configs for small test setup. 2009-11-20 10:12:41 -08:00
Brian Behlendorf 2d70e6fd91 Update scripts to cleanup better when setup failures occur 2009-10-27 14:31:31 -07:00
Brian Behlendorf 5fbb2c1c4e Test configs for md, dm, and ramdisk style block devices
For the sake of completeness we need to validate everything works
well not just on IDE or SCSI drives.  But we need to verify a
zpool configured on top of the Linux virtual block devices.
These scripts simply that testing process, and have shown that
while everything is good on top of a ram disk.  Right now the
code base panics the kernel when layered on top of either an
md or dm style device.  For the moment don't do that.
2009-10-26 10:41:06 -07:00
Brian Behlendorf 5bf14d3400 Update zpool-configs to be udev aware.
To simplify creation and management of test configurations the
dragon and x4550 configureis have been integrated with udev.  Our
current best guess as to how we'll actually manage the disks in
these systems is with a udev mapping scheme.  The current leading
scheme is to map each drive to a simpe <CHANNEL><RANK> id.  In
this mapping each CHANNEL is represented by the letters a-z, and
the RANK is represented by the numbers 1-n.  A CHANNEL should
identify a group of RANKS which are all attached to a single
controller, each RANK represents a disk.  This provides a nice
mechanism to locate a specific drive given a known hardware
configuration.  Various hardware vendors use a similar scheme.

A nice side effect of these changes is it allowed me to make
the raid0/raid10/raidz/raidz2 setup functions generic.  This
makes adding new test configs easy, you just need to create
a udev rules file for your test config which conforms to the
naming scheme.
2009-10-21 11:38:51 -07:00
Brian Behlendorf adc7bb76f2 Add 3 dragon drawer test configurations (raid0, raidz, raidz2).
The current test rig consists of two 60 disk dragon drawers in configured
in 4-x15 mode.  Each drawer has 4 SAS connections to my node for a total
of 8 SAS connections spread over 4 dual-port LSI SAS adapters.  The
configures are as follows:
- raid0:  All 120 drives in a single pool.
- raidz:  15 RAIDZ groups of 7+1.
- raidz2: 15 RAIDZ2 groups of 6+2.
2009-08-18 10:40:30 -07:00
Brian Behlendorf 4f555da51d Add zfs-test package which includes test infrastructure.
This change extends the existing in-tree test infrastructure such
that it can also be run as part of a the installed package.  This
simplifies testing on multiple systems and is generally all around
useful.  The scripts may still be run in-tree and will use the
in-tree build products as long as .script-config exists.
2009-08-17 21:35:06 -07:00
Brian Behlendorf 710c21f2e9 Use LOSETUP variable for all calls to /sbin/losetup 2009-07-24 10:25:01 -07:00
Brian Behlendorf bc8c87d2f3 Missed one instance of losetup -f to unused_loop_device change 2009-07-21 17:05:13 -07:00
Brian Behlendorf b9c3c7a2f4 The losetup -f option is unavailable for SLES10 use unused_loop_device()
SLES10 ships util-linux-2.12r-35.30 which does not support the -f option
to losetup.  To avoid this problem the unused_loop_device() function was
added which attempts to find an unused loop device by checking each
/dev/loop* device with losetup to see if it is configured.
2009-07-21 16:17:54 -07:00
Brian Behlendorf 97e40aae09 Add 8 basic x4550 configurations which are of interest. 2009-02-06 11:47:09 -08:00
Brian Behlendorf 9e6f35e5cf Add loopback based test configs 2009-01-26 16:59:02 -08:00
Brian Behlendorf 39fe5b1cf9 Minor script fixes 2009-01-20 21:34:29 -08:00
Brian Behlendorf 15c9eb903f Add 4 basic file based testr configs 2009-01-20 21:03:02 -08:00
Brian Behlendorf 40c5baafa2 Add file based config, and update the lo config to use real loopback devices, interestingly this currently fails 2009-01-20 16:57:45 -08:00
Brian Behlendorf 26d0de9a92 Update Makefiles for recent script updates 2009-01-20 15:43:21 -08:00
Brian Behlendorf af43246767 Minor script cleanup 2009-01-20 15:34:38 -08:00
Brian Behlendorf db210bf236 Add destroy functionality to zpool create, needed for generic use by zpios.sh 2009-01-20 14:10:30 -08:00
Brian Behlendorf 6a6da5a14d Minor verbage cleanup 2009-01-16 14:29:31 -08:00
Brian Behlendorf 7b5ceef9df Minor fixes 2009-01-16 13:57:12 -08:00
Brian Behlendorf 7c761d45a8 Further work towards getting zpool-create working 2009-01-16 12:53:12 -08:00
Brian Behlendorf b38eb997f4 Update helper scripts to me more helpful 2009-01-16 12:06:25 -08:00