• Alasdair G. Kergon's avatar
    [PATCH] device-mapper: multipath · 8f494a80
    Alasdair G. Kergon authored
    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: default avatar"goggin, edward" <egoggin@emc.com>
    Signed-Off-By: default avatarAlasdair G Kergon <agk@redhat.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    8f494a80
dm-path-selector.c 2.59 KB