Commit Graph

15348 Commits

Author SHA1 Message Date
Brian Behlendorf cbe8cd5465 Merge commit 'refs/top-bases/linux-legacy' into linux-legacy 2009-10-21 12:04:11 -07:00
Brian Behlendorf f1f05eacf1 Merge branch 'linux-legacy' into refs/top-bases/linux-zfs-branch 2009-10-21 12:04:11 -07:00
Brian Behlendorf 99a081f0f7 Merge branch 'linux-kernel-mem' into refs/top-bases/linux-zfs-branch 2009-10-21 12:04:08 -07:00
Brian Behlendorf 3e32c771b0 Merge commit 'refs/top-bases/linux-kernel-mem' into linux-kernel-mem 2009-10-21 12:04:07 -07:00
Brian Behlendorf deaca125bd Merge branch 'linux-kernel-disk' into refs/top-bases/linux-zfs-branch 2009-10-21 12:04:04 -07:00
Brian Behlendorf 7dc8d8e947 Merge commit 'refs/top-bases/linux-kernel-disk' into linux-kernel-disk 2009-10-21 12:04:03 -07:00
Brian Behlendorf f0aac45aa5 Merge branch 'linux-have-zvol' into refs/top-bases/linux-zfs-branch 2009-10-21 12:04:01 -07:00
Brian Behlendorf cdc0778635 Merge commit 'refs/top-bases/linux-have-zvol' into linux-have-zvol 2009-10-21 12:04:00 -07:00
Brian Behlendorf 334a724a7e Merge branch 'linux-have-uio-rw' into refs/top-bases/linux-zfs-branch 2009-10-21 12:03:57 -07:00
Brian Behlendorf 48de801585 Merge commit 'refs/top-bases/linux-have-uio-rw' into linux-have-uio-rw 2009-10-21 12:03:56 -07:00
Brian Behlendorf ef5bfc4d4a Merge commit 'refs/top-bases/linux-debug-zerocopy' into linux-debug-zerocopy 2009-10-21 12:03:56 -07:00
Brian Behlendorf 29134090dd Merge commit 'refs/top-bases/linux-have-sysevent' into linux-have-sysevent 2009-10-21 12:03:50 -07:00
Brian Behlendorf 9bf7fa8c84 Merge branch 'linux-have-sysevent' into refs/top-bases/linux-zfs-branch 2009-10-21 12:03:50 -07:00
Brian Behlendorf fffe302a32 Merge commit 'refs/top-bases/linux-kernel-module' into linux-kernel-module 2009-10-21 12:03:49 -07:00
Brian Behlendorf 845e4b1e91 Merge branch 'linux-have-spl-debug' into refs/top-bases/linux-zfs-branch 2009-10-21 12:03:44 -07:00
Brian Behlendorf c6127f0065 Merge commit 'refs/top-bases/linux-have-spl-debug' into linux-have-spl-debug 2009-10-21 12:03:43 -07:00
Brian Behlendorf 7a065a41fc Merge branch 'linux-have-mntent' into refs/top-bases/linux-zfs-branch 2009-10-21 12:03:40 -07:00
Brian Behlendorf a8542a9376 Merge commit 'refs/top-bases/linux-have-mntent' into linux-have-mntent 2009-10-21 12:03:39 -07:00
Brian Behlendorf 6f5139fab9 Merge branch 'linux-have-fm' into refs/top-bases/linux-zfs-branch 2009-10-21 12:03:37 -07:00
Brian Behlendorf 299e7c585e Merge commit 'refs/top-bases/linux-have-fm' into linux-have-fm 2009-10-21 12:03:36 -07:00
Brian Behlendorf b2f7632187 Merge branch 'linux-docs' into refs/top-bases/linux-zfs-branch 2009-10-21 12:03:33 -07:00
Brian Behlendorf b5d2e2fc71 Merge commit 'refs/top-bases/linux-docs' into linux-docs 2009-10-21 12:03:32 -07:00
Brian Behlendorf aec988734b Command 'zpool create' needs to wait on correct partition names.
When creating partition tables we always need to wait until not
only the /dev/<disk><part> device appears.  But just as importantly
if we were originally given a udev path we need to wait for the
/dev/disk/*/<name>-part<part> symlink to be created.  However,
since the partition naming convention differs between /dev/ and
/dev/disk we determine based on the path which convention to
expect and then wait (for a few seconds) for the device to be
created.  Based on my experience with udev on my test nodes it
takes about 300ms for the devices to be created after being
prompted by the kernel.  This time will vary somehwat based
on how complicated your udev rules are, so for safety I threw
in a factor of 10.  We wait 3 seconds for the devices to appears
before erroring out with a failure.

An additional minor fix includes checking the force flag in the
EFI_GPT_PRIMARY_CORRUPT case.  This allows you to force the
update even in the corrupt partition case.

Finally, since these are Linux only changes I've dropped the
devid code entirely here because I still can't think of why we
would need or want it on a Linux system.
2009-10-21 11:50:42 -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 3129860fb1 Merge branch 'linux-user-disk' into refs/top-bases/linux-zfs-branch 2009-10-19 14:06:11 -07:00
Brian Behlendorf 5be28776fb Always preserve the passed path at creation time so udev may be used
After spending considerable time thinking about this I've come to the
conclusion that on Linux systems we don't need Solaris style devid
support.  Instead was can simply use udev if we are careful, there
are even some advantages.

The Solaris style devid's are designed to provide a mechanism by which
a device can be opened reliably regardless of it's location in the system.
This is exactly what udev provides us on Linux, a flexible mechanism for
consistently identifing the same devices regardless of probing order.
We just need to be careful to always open the device by the path provided
at creation time, this path must be stored in ZPOOL_CONFIG_PATH.  This
in fact has certain advantages.

For example, if in your system you always want the zpool to be able to
locate the disk regardless of physical location you can create the pool
using /dev/disk/by-id/.  This is perhaps what you'ld want on a desktop
system where the exact location is not that important.  It's more
critical that all the disks can be found.

However, in an enterprise setup there's a good chace that the physical
location of each drive is important.  You have like set things up such
that your raid groups span multiple hosts adapters, such that you can
lose an adapter without downtime.  In this case you would want to use
the /dev/disk/by-path/ path to ensure the path information is preserved
and you always open the disks at the right physical locations.  This
would ensure your system never gets accidently misconfigured and still
just works because the zpool was still able to locate the disk.

Finally, if you want to get really fancy you can always create your
own udev rules.  This way you could implement whatever lookup sceme
you wanted in user space for your drives.  This would include nice
cosmetic things like being able to control the device names in tools
like zpool status, since the name as just based of the device names.

I've yet to come up with a good reason to implement devid support on
Linux since we have udev.  But I've still just commented it out for now
because somebody might come up with a really good I forgot.
2009-10-19 13:46:48 -07:00
Brian Behlendorf d7a3b8f11a Merge branch 'linux-user-disk' into refs/top-bases/linux-zfs-branch 2009-10-16 10:46:09 -07:00
Brian Behlendorf 58d6f53677 Minor bug wholedisk is only valid for VDEV_DISK types. 2009-10-16 10:41:40 -07:00
Brian Behlendorf dd88bfe351 Merge branch 'linux-have-idmap' into refs/top-bases/linux-zfs-branch 2009-10-15 16:45:58 -07:00
Brian Behlendorf 9423abeee4 Merge commit 'refs/top-bases/linux-have-idmap' into linux-have-idmap 2009-10-15 16:45:56 -07:00
Brian Behlendorf 88e0496770 Merge branch 'linux-ztest' into refs/top-bases/linux-zfs-branch 2009-10-15 16:45:50 -07:00
Brian Behlendorf 40369b1821 Merge commit 'refs/top-bases/linux-ztest' into linux-ztest 2009-10-15 16:45:49 -07:00
Brian Behlendorf 851876e252 Merge branch 'linux-have-zpl' into refs/top-bases/linux-zfs-branch 2009-10-15 16:45:43 -07:00
Brian Behlendorf 7190c77120 Merge commit 'refs/top-bases/linux-have-zpl' into linux-have-zpl 2009-10-15 16:45:41 -07:00
Brian Behlendorf bac03509b5 Merge branch 'linux-unused' into refs/top-bases/linux-zfs-branch 2009-10-15 16:45:36 -07:00
Brian Behlendorf 20e39fc8ba Merge commit 'refs/top-bases/linux-unused' into linux-unused 2009-10-15 16:45:34 -07:00
Brian Behlendorf f238ec127f Merge branch 'linux-libspl' into refs/top-bases/linux-zfs-branch 2009-10-15 16:45:28 -07:00
Brian Behlendorf b1f0167254 Merge commit 'refs/top-bases/linux-libspl' into linux-libspl 2009-10-15 16:45:27 -07:00
Brian Behlendorf 77d3c1757d Merge branch 'linux-zpios' into refs/top-bases/linux-zfs-branch 2009-10-15 16:45:21 -07:00
Brian Behlendorf af214824d3 Merge commit 'refs/top-bases/linux-zpios' into linux-zpios 2009-10-15 16:45:19 -07:00
Brian Behlendorf 295d45555e Merge branch 'linux-user-disk' into refs/top-bases/linux-zfs-branch 2009-10-15 16:45:13 -07:00
Brian Behlendorf 3d24809465 Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2009-10-15 16:45:11 -07:00
Brian Behlendorf 9b95020082 Merge branch 'linux-symbol-collisions' into refs/top-bases/linux-zfs-branch 2009-10-15 16:45:05 -07:00
Brian Behlendorf 56b92b7161 Merge commit 'refs/top-bases/linux-symbol-collisions' into linux-symbol-collisions 2009-10-15 16:45:04 -07:00
Brian Behlendorf 0a8e64a0bf Merge branch 'linux-legacy' into refs/top-bases/linux-zfs-branch 2009-10-15 16:44:58 -07:00
Brian Behlendorf 2bf493292b Merge commit 'refs/top-bases/linux-legacy' into linux-legacy 2009-10-15 16:44:56 -07:00
Brian Behlendorf 9d8f113878 Merge branch 'linux-kernel-mem' into refs/top-bases/linux-zfs-branch 2009-10-15 16:44:51 -07:00
Brian Behlendorf 75b14a7c2e Merge commit 'refs/top-bases/linux-kernel-mem' into linux-kernel-mem 2009-10-15 16:44:49 -07:00
Brian Behlendorf a99e6d7cef Merge branch 'linux-kernel-disk' into refs/top-bases/linux-zfs-branch 2009-10-15 16:44:43 -07:00
Brian Behlendorf aa3069aea1 Merge commit 'refs/top-bases/linux-kernel-disk' into linux-kernel-disk 2009-10-15 16:44:41 -07:00