multipath-tools
Homepage of the upstream project used to drive the Device Mapper multipathing driver.
My multipath-tools project maintenance work is sponsored by
opensvc.
Build :
On debian based systems :
apt-get install libreadline-dev libaio-dev libdevmapper-dev liburcu-dev
make
Change logs :
0.4.5+ changes are tracked through the git repository :
here
2013-12-17 multipath-tools-0.5.0 shortlog :
- Changes :
- scsi3 persistent reservations on multipaths
- systemd integration
- better udev integration (get device events and ids from udev)
- kpartx support for non-512b blocksize disks
- multipathd maintenance of important kernel tunable like oom_score_adj, dev_loss_tmo and fast_io_fail
- followover failback mode
- handle offline paths and quiesced rports
- more synthetic and informative logs
- better threading and performance
- tons of bugfixes and stability improvements
- Contributors :
- 1 Anton Blanchard
- 1 Arkadiusz Miskiewicz
- 1 Bart Van Assche
- 1 Cedric Buissart
- 1 Chaskiel Grundman
- 1 Craig
- 1 Eli Qiao
- 1 Gerhard Wichert
- 1 glevand
- 1 Guangyu Sun
- 1 Guido Günther
- 1 Heath Kehoe
- 1 Jerome Levy
- 1 Kacper Kowalik
- 1 Konrad Rzeszutek
- 1 Leonardo Chiquitto
- 1 Martin George
- 1 Mateusz Półrola
- 1 Mike Snitzer
- 1 Olivier Lambert
- 1 Peter Gervai
- 1 Phileas Fogg
- 1 Sven Joachim
- 1 Tim Harder
- 1 Vijay Chauhan
- 1 Wang Sheng-Hui
- 1 Xinghai Yu
- 1 Xose Vazquez Perez
- 1 Zheng Huai Cheng
- 2 Ankit Jain
- 2 Aruna Balakrishnaiah
- 2 Christof Schmitt
- 2 hegdevasant
- 2 Mike Christie
- 2 Oren Held
- 2 Stewart, Sean
- 3 Malahal Naineni
- 3 Phillip Susi
- 3 Sean Stewart
- 4 bmarzins@sourceware.org
- 4 Chauhan, Vijay
- 4 Petr Uzel
- 4 Ritesh Raj Sarraf
- 5 Jun'ichi Nomura
- 5 Michael Witten
- 11 Moger, Babu
- 33 Christophe Varoqui
- 111 Benjamin Marzinski
- 282 Hannes Reinecke
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>
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
2005-03-19 multipath-tools-0.4.3 shortlog :
- dropped klibc from the package : now an external dependency. Those interested in building the tools with klcc will want to download klibc from http://www.kernel.org/pub/linux/libs/klibc/ or the nearest mirror.
- optimization work in the multipath tool : shorter code paths and less memory utilisation
- new "multipath -v2 -l $devmap" synthax to limit the scope of the list
- new rr_min_io keyword in the config file
- allow longer devmaps (256 to 1024 chars)
- "multipath -F" will no longer flush maps with partitions attached