chiark / gitweb /
[PATCH] allow to specify node permissions in the rule
[elogind.git] / extras / multipath / README
index 6a5637de4bbf78501e7da06cfa4cb7cea3aea5a6..80945db4380f9b660cff79a461fbd5bc819fd52f 100644 (file)
@@ -3,7 +3,12 @@ Dependancies :
 
 o libdevmapper : comes with device-mapper-XXXX.tar.gz
   See www.sistina.com
-o libsysfs : comes with sysutils
+  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 :
@@ -34,8 +39,9 @@ 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 only 
-StorageWorks HW is White Listed. (See notes)
+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 :
@@ -47,25 +53,27 @@ struct multipath {
 };
 
 When mp is filled, the device maps are fed to the kernel
-through libdevmapper. Stale paths (failed TUR) are 
-discarded.
+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 make sure you have enough /dev/sg* nodes
-  (/dev/MAKEDEV if necesary)
+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_storageworks_wwid). Feel free to enrich
+  arrays (get_evpd_wwid). Feel free to enrich
   with hardware you have at hand :)
 
-o Something goes wrong with sd.o, qla2200 & dm-mod
-  refcounting : I can't unload these modules after exec.
-
 o The kernel does NOT manage properly ghosts paths
   with StorageWorks HW. Seems nobody cares after a load
   of posts to linux-scsi.