summaryrefslogtreecommitdiff
path: root/extras/multipath/README
diff options
context:
space:
mode:
Diffstat (limited to 'extras/multipath/README')
-rw-r--r--extras/multipath/README90
1 files changed, 0 insertions, 90 deletions
diff --git a/extras/multipath/README b/extras/multipath/README
deleted file mode 100644
index 80945db438..0000000000
--- a/extras/multipath/README
+++ /dev/null
@@ -1,90 +0,0 @@
-Dependancies :
-==============
-
-o libdevmapper : comes with device-mapper-XXXX.tar.gz
- See www.sistina.com
- This lib has been dropped in the multipath tree
-o libsysfs : comes with sysutils or udev
- See ftp.kernel.org/pub/linux/utils/kernel/hotplug/
-o Linux kernel 2.6.0 with udm5 patchset
- http://people.sistina.com/~thornber/dm/
-o udev
- See ftp.kernel.org/pub/linux/utils/kernel/hotplug/
-
-How it works :
-==============
-
-Fill the all_paths array. Each path store this info :
-
-struct path {
- char dev[FILE_NAME_SIZE];
- char sg_dev[FILE_NAME_SIZE];
- struct scsi_idlun scsi_id;
- struct sg_id sg_id;
- int state;
- char wwid[WWID_SIZE];
-};
-
-scsi_id, sg_dev and sg_id are only really useful for 2.4
-kernels, for which SG cmnds must go through sg devs.
-In 2.5+ we have the nice opportunity to send SG cmnds
-through SCSI bdevs.
-
-For 2.4 compat, we pivot on idlun tupple to map sg devs
-to SCSI bdevs.
-
-2.4 does not do device enumeration, so we must scan a
-defined number of sg devs and scsi bdevs. Good enough.
-In 2.5+, we rely on libsysfs (sysutils) to access to
-sysfs device enums.
-
-the wwid is retrieved by a switch fonction. Only White
-Listed HW can filled this field. For now every FC array
-HW listed in kernel's devinfo.c is White Listed, assuming
-the WWID is stored is the SCSI-3 standard 0x83 EVPD page.
-
-When all_paths is filled, we coalesce the paths and store
-the result in mp array. Each mp is a struct like this :
-
-struct multipath {
- char wwid[WWID_SIZE];
- int npaths;
- int pindex[MAX_MP_PATHS];
-};
-
-When mp is filled, the device maps are fed to the kernel
-through libdevmapper.
-
-The naming of the corresponding block device is handeld
-by udev with the help of the devmap_name proggy. It is
-called by the following rule in /etc/udev/udev.rules :
-KERNEL="dm-[0-9]*", PROGRAM="/sbin/devmap_name %M %m", \
-NAME="%k", SYMLINK="%c"
-
-Notes :
-=======
-
-o On 2.4, make sure you have enough /dev/sg* nodes
- (/dev/MAKEDEV if necesary). Same goes for /dev/sd*
-
-o path coalescing relies on a path unique id being found.
- This unique id, lacking a standard method, is vendor
- specific. A switch function (get_unique_id) is present
- and an example function is provided for storageworks
- arrays (get_evpd_wwid). Feel free to enrich
- with hardware you have at hand :)
-
-o The kernel does NOT manage properly ghosts paths
- with StorageWorks HW. Seems nobody cares after a load
- of posts to linux-scsi.
-
-o 2.4.21 version of DM does not like even segment size.
- if you enconter pbs with this, upgrade DM.
-
-Credits :
-=========
-
-o Heavy cut'n paste from sg_utils. Thanks goes to D.
- Gilbert.
-o Light cut'n paste from dmsetup. Thanks Joe Thornber.
-o Greg KH for the nice sysfs API.