http://christophe.varoqui.free.fr/
UPDATE 2012-09-30:
URL changed to top level. This is the home to multipath-tools. No longer in the wiki.
Copying page here for reference.
multipath-tools
Homepage of the upstream project used to drive the Device Mapper multipathing driver.
As multipathing rhymes with clustering, you might be interested in opensvc GPL clustering stack.
Contacts :
- christophe.varoqui@opensvc.com
- dm-devel@redhat.com
Contribute :
You can contribute code, editorial work and testing.
If you are in such position, you can also contribute hardware or hardware access.
git repository :
mkdir -p ~/scm/multipath-tools.upstream
cd ~/scm/multipath-tools.upstream
git-clone http://kernel.org/pub/scm/linux/storage/multipath-tools/.git
gitweb project reporting :
http://www.kernel.org/git/gitweb.cgi?p=linux/storage/multipath-tools/.git
build :
On debian based systems :
apt-get install libreadline-dev libaio-dev libdevmapper-dev make
Latest release :
incremental bugfixes :
None for now.
Announce :
2010-05-22 multipath-tools-0.4.9 shortlog :
- Changes that may require your altering your config file :
- rename hp_sw hwhandler
- directio is now the default checker (async)
- deprecated prio_callout keyword: now use prio/prio_args
- move bindings file location to /etc
- add ‘max_fds’ keyword
- add ‘verbosity’ keyword
- add ‘queue_without_daemon’ keyword
- add ‘mode’, ‘uid’ and ‘gid’ keywords
- add ‘fast_io_fail’ and ‘dev_loss_tmo’ keywords
- add ‘checker’ keyword as alias to ‘path_checker’
- Features
- make kpartx deal with more than 256 minor numbers
- fail/reinstate CLI commands disable/enable path checker
- support multipath-capable cciss hardware, add cciss_tur checker
- ‘show config’ output usable as a config file replacement
- create read-only multipath if rw try failed
- care about offlined paths
- support resizing of multipath maps
- kpartx removes its loop devices
- support other load-balancing policies
- add datacore prioritizer
- add ‘-r’ multipath arg to force maps reload
- add ‘show paths format’ cli command
- add ‘show maps format’ cli command
- add ‘show status’ cli command
- add ‘show wildcards’ cli command
- add ‘quit’ cli command
- add ‘enablequeueing’ and ‘disablequeueing’ cli commands
- Fixes
- leaks plugged (virtualiron, suse, redhat work)
- honour ALUA preference indicator
- Developers changes :
- no more prioritizer callouts. replaced by mem-pinned .so to avoid having to cache the callouts.
- move checkers to mem-pinned .so too
- allow arguments passing to prioritizers
- Contributors :
- Alex Zeffertt < ...@eu.citrix.com>
- Andrey Panin < ...@pazke.donpac.ru>
- Babu Moger < ...@lsi.com>
- Benjamin Marzinski < ...@redhat.com>
- Brian King < ...@linux.vnet.ibm.com>
- Bryn M.Reeves < ...@redhat.com>
- Chandra Seetharaman < ...@us.ibm.com>
- Charlie Brady < ...@budge.apana.org.au>
- Chauhan, Vijay < ...@lsi.com>
- Christophe Varoqui < ...@opensvc.com>
- Colin Watson < ...@canonical.com>
- Dave Wysochanski < ...@redhat.com>
- Guido Guenther < ...@sigxcpu.org>
- Guido Günther < ...@sigxcpu.org>
- Hannes Reinecke < ...@suse.de>
- Jim Lester < ...@compellent.com>
- Kiyoshi Ueda < ...@ct.jp.nec.com>
- Konrad Rzeszutek < ...@virtualiron.com>
- Martin Petermann < ...@linux.vnet.ibm.com>
- Matthew Kent < ...@bravenet.com>
- Mike Anderson < ...@linux.vnet.ibm.com>
- Mike Snitzer < ...@redhat.com>
- Moger, Babu < ...@lsi.com>
- Nikanth Karthikesan < ...@suse.de>
- Ritesh Raj Sarraf < ...@researchut.com>
- Rumko < ...@gmail.com>
- Stefan Bader < ...@de.ibm.com>
- Stefan Haberland < ...@de.ibm.com>
- Stefan Weinhuber < ...@de.ibm.com>
- Yanqing Liu < ...@dell.com>
Dependencies :
Linux kernel
- 2.6.10-rc*-udm2 or later
- 2.6.11-mm* or later
- 2.6.12-rc1 or later
udev 050+
libdevmapper 1.2.38+
Known issues :
- Update your config file : selector = ’round-robin 0′ (since 0.3.9)
- If you relied on the ‘-D’ multipath command flag, please adapt (since 0.4.0).
- The kernel feature ‘queue_if_no_path’ is known to have bugs (up to 2.6.10rc?-udm2).
- The EMC checker has a known bug, fixed in the next release (up to 0.4.1).
- The tools exits if /sys/fc_transport/target$h:$b:$t does not exists : not fair, fixed in next release (0.4.1 only).
- failback doesn’t work (up to 0.4.5 included)
- make rpm doesn’t work (0.4.5 only)
Previous releases :
Change logs :
full pre-0.4.5 ChangeLog
0.4.5+ changes are tracked through the git repository : here
2007-08-02 multipath-tools-0.4.8 shortlog :
- Changes that may require your altering your config file :
- seed cciss multipathing support for recent MSA hardware : warning, the cciss blacklist is not hardcoded anymore. Proliant owners should add it to your config file if you don’t want surprises.
- pp_sgi renamed to pp_rdac : no behaviour change otherwise
- Add ‘^dcssblk[0-9]*’ to default blacklist
- Directio is now the default checker
- Move id callouts to standardized /lib/udev
- Adopt Suse udev rules
- Add path group timeout handling (pg_timeout keyword)
- Add blacklist exceptions
- Almost every vendor updated the internal defaults for their hardware (‘show config’ cli command is your friend)
- We support matching by SCSI revision now, in addition to Vendor and Product. No rev specified means all rev matches.
- Blacklist entries and other strings in the config file are true regular expressions, not shell expansion syntax
- Features
- prio: add a prioritizer for HP storageworks arrays
- prio: add a prioritizer for HDS modular arrays
- checkers: asynchronous checker framework. Directio is the first and only user. Means no more checking loop blocking (while holding lock the cli tries to acquire for example).
- checkers: EMC checker support for ALUA EMC arrays
- checkers: add RDAC path checker
- lib: pick up existing alias (if any) from current dm config
- cli: add syntax auto-completion
- cli: new command, show blacklist
- doc: More man pages
- kpartx: handling for SUN partition tables
- kpartx: c-slice handling for BSD partition tables
- kpartx: handling for extended partitions
- kpartx: accept /dev/dm-* as arg
- Fixes
- checkers: add a timeout to SG_IO ioctls
- checkers: read buffer size bumped to 4096 bytes (Infiniband)
- checkers: handling CLARiiON I/O to inactive snapshot logical units
- lib: support newer kernels sysfs layout (remove libsysfs dependency)
- lib: we keep stale paths in multipaths in case they get back online, but multipathd had trouble dealing with device name change in this situation : fixed
- lib: listen events from udev socket instead of netlink : proper serialization allows to remove wait_for_devnode_appearance() hacks
- lib: fix user_friendly_names race leading to a mpathX being served multiple times
- lib: fix bug limiting to <8 paths luns
- lib: don’t discard paths with large uuid
- lib: don’t segfault when no config file
- kpartx: large file support
- kpartx: fix partition calculations of DASD partitions
- prio: fix ALUA for minor >256
- Developers changes :
- checkers: Checkers attached to different paths of a same multipath can share information through a context pointer in ‘struct multipath’
- lib: use DM uuid ‘mpath-‘ prefix
- kpartx: use DM uuid ‘part%d-‘ prefix
2006-03-13 multipath-tools-0.4.7 shortlog :
- multipathd empowering
- DM driving directly from the daemon, without resorting to multipath(8)
- udev rules deprecation, as events are acted upon directly through uevent in the daemon. The kpartx rule remains though
- multipathd CLI commands
- enh : the CLI parser now accept unambiguous shortcuts, like ‘sho topo’ for ‘show topology’
- new : ‘show config’ drops a config file as seen by the live daemon
- new : ‘show maps stats’ drops some statistics about multipaths events
- new : ‘show topology’, mimics the ‘multipath -ll’ output
- new : ‘show map $map topology’, mimics the ‘multipath -ll $map’ output
- enh : ‘reconfigure’ correctness issues fixed, scope extended
- enh : ‘add/del map’ now apply to the DM live configuration too (!!caution, maps are really removed!!)
- rem : ‘dump pathvec’, deprecated
- prioritizers
- new : netapp prioritizer
- new : tpc prioritizer (SGI, …)
- netlink uevent robustness
- bigger receive buffer
- uevent queueing and async dequeueing
- configuration
- rr_min_io can be put in ‘device’ and ‘multipath’ config blocks
- internal defaults are now exhaustive
- tweak defaults for HP, SGI, IBM, EMC, …
- multipaths renaming through DM renames rather than remove/add cycles
- logging
- ‘multipathd -d’ now prints the date
- overall output beautifying
- drop the ‘path cache’ framework
- kpartx
- fixes to dos partition handler
- new mac partition handler
- make the tools work with DASD
- blacklist
- add per-device product-string blacklist
- add a device blacklist
- add a wwid blacklist
- deprecate the ‘devnode_blacklist’ keyword ub favor of ‘blacklist’
- adapt to libsysfs2 api, without breaking compat with libsysfs1
- checkers
- API rewrite
- reduce allocation on the directio checking code path
2005-11-11 multipath-tools-0.4.6 shortlog :
- fixes
- add/del cli commands accept map names as param
- new add ‘reinstate/fail’ cli commands
- new add ‘suspend/resume’ cli commands
- extended information display in ‘show map/paths’ cli commands
- fix thread reaping logic
- user friendly map names (mpath[0..n]) without alias defines
- option to disable io queueing if no valid path after a delay
- vendor/product as regexp in config file
- set devmap uuid as multipath wwid
- move hotplug logic to udev’s rules.d/
- configlets now adds up or replace the hardcoded ones
- ALUA prioritizer update
- option to use priorities as weights in the round-robin scheduler
- add the directio checker
2005-09-02 multipath-tools-0.4.5 shortlog :
- multipathd keeps Device Mapper path status in sync with path checker status : proactive fail_path and reinstate_path
- proactive path group re-enable, as soon as one path goes up
- multipathd is now fully event driven :
- NetLink uevents for kernels/distro that enables the feature
- Hotplug
- Unix socket messages
- a Command Line Interface to drive and inspect the daemon
- remove the multipath(8) cache file logic in favour of a multipathd<->multipath unix socket request/reply design
- split multipath(8) listing option into
- short-list (-l) : don’t fetch wwid, path checker status, priorities … fast
- detailed-list (-ll) : refetch all info
- the daemon asynchronous logger is now solid and avoid sending critical messages
- daemon CLI command to reload the config file
- path checking interval gets longer when the path is reliably up, resets to short as soon as a problem occur
- daemon implements 3 path group failback methods :
- manual
- immediate : failback as soon as an (enabled && !active) PG gets the highest priority
- defered : failback to the highest priority (enabled && !active) PG n seconds after the last PG priority order change
- remove over-complicated and thread-confusing daemon initial clone() w/ private namespace
- prioritizers official prefix is now mpath_prio_
- multipath(8) displays PG priorities when available
- new hp_sw checker. It’s a tri-state UP/DOWN/GHOST
- new directio checker. Useful with DASD devices. May suplant readsector0 in the long run ?
- stricter default blacklist regexps
- new ‘-f’ multipath(8) flag to selectively suppress a multipath map, and its device-mapped partitions
- alua prioritizer update, should work on x86
- support for >2TB multipaths
- claimed device detection : no more warning/error messages with paths pinned by mounted FS
- option to use priorities as weights in the round-robin scheduler : for people who can’t wait for a qlen-based scheduler
2005-04-24 multipath-tools-0.4.4 shortlog :
- 2 new path prioritizers : pp_alua and pp_emc
- devmap_name can now filter by target_type (-t flag).
- For example, no output if not ‘multipath’ type.
- the daemon sets /proc/self/oom_adj to -17, hence is
- protected from the oom killer. Watch out for leaks.
- libdevmapper 1.01.01 or newer is now recquired
- blacklist synthax is now regex based. Update your config files. The packaged templates are up to date.
- you can now set wwid in the blacklist
- multipathd gained a ‘-v’ flag to tune verbosity
- daemon logging is now staged and asynchronous to avoid syslogd possible hangs
- droped local klibc, libsysfs and libdevmapper
- multipath caches path info. Cache expire in 5sec.
- ‘multipath -l’ accepts a devname or dev_t filter