[PATCH] device-mapper: multipath
The core device-mapper multipath and path-selector code. Paths are grouped into an ordered list of Priority Groups. Each Priority Group has a Path Selector which chooses which of the Priority Group's paths is to be used for each bio e.g. according to some load-balancing algorithm. If a bio generates an error, the path that it used gets disabled and an alternative path is tried. If all the paths in a Priority Group fail, another Priority Group is selected. There are management commands fail_path and reinstate_path. A path tester (currently implemented in userspace) is responsible for monitoring paths that have failed and reinstating them should they come back. Other management commands can be use to switch immediately to a specified Priority Group or to disable a particular Priority Group so it will only be tried after there are no more left. As a last resort there is an option to 'queue_if_no_path' which queues I/O if all paths have failed e.g. temporarily during a firmware update or if the userspace daemon is slow reinstating paths. The userspace multipath tools are available at: http://christophe.varoqui.free.fr/ macroflux.png is a diagram of the current architecture. From: Alasdair G Kergon <agk@redhat.com> Don't requeue I/O repeatedly if there are no paths left and the device is in the process of being suspended, or else the suspend can never complete. Reported-By:"goggin, edward" <egoggin@emc.com> Signed-Off-By:
Alasdair G Kergon <agk@redhat.com> Signed-off-by:
Andrew Morton <akpm@osdl.org> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
Showing
drivers/md/dm-mpath.c
0 → 100644
drivers/md/dm-mpath.h
0 → 100644
Please register or sign in to comment