errpt disk errors

SC_DISK_PCM_ERR1 Subsystem Component Failure

The storage subsystem has returned an error indicating that some component (hardware or software) of the storage subsystem has failed. The detailed sense data identifies the failing component and the recovery action that is required. Failing hardware components should also be shown in the Storage Manager software, so the placement of these errors in the error log is advisory and is an aid for your technical-support representative.

SC_DISK_PCM_ERR2 Array Active Controller Switch

The active controller for one or more hdisks associated with the storage subsystem has changed. This is in response to some direct action by the AIX host (failover or autorecovery). This message is associated with either a set of failure conditions causing a failover or, after a successful failover, with the recovery of paths to the preferred controller on hdisks with the autorecovery attribute set to yes.

SC_DISK_PCM_ERR3 Array Controller Switch Failure

An attempt to switch active controllers has failed. This leaves one or more paths with no working path to a controller. The AIX MPIO PCM will retry this error several times in an attempt to find a successful path to a controller.

SC_DISK_PCM_ERR4 Array Configuration Changed

The active controller for an hdisk has changed, usually due to an action not initiated by this host. This might be another host initiating failover or recovery, for shared LUNs, a redistribute operation from the Storage Manager software, a change to the preferred path in the Storage Manager software, a controller being taken offline, or any other action that causes the active controller ownership to change.

SC_DISK_PCM_ERR5 Array Cache Battery Drained

The storage subsystem cache battery has drained. Any data remaining in the cache is dumped and is vulnerable to data loss until it is dumped. Caching is not normally allowed with drained batteries unless the administrator takes action to enable it within the Storage Manager software.

SC_DISK_PCM_ERR6 Array Cache Battery Charge Is Low

The storage subsystem cache batteries are low and need to be charged or replaced.

SC_DISK_PCM_ERR7 Cache Mirroring Disabled

Cache mirroring is disabled on the affected hdisks. Normally, any cached write data is kept within the cache of both controllers so that if either controller fails there is still a good copy of the data. This is a warning message stating that loss of a single controller will result in data loss.

SC_DISK_PCM_ERR8 Path Has Failed

The I/O path to a controller has failed or gone offline.

SC_DISK_PCM_ERR9 Path Has Recovered

The I/O path to a controller has resumed and is back online.

SC_DISK_PCM_ERR10 Array Drive Failure

A physical drive in the storage array has failed and should be replaced.

SC_DISK_PCM_ERR11 Reservation Conflict

A PCM operation has failed due to a reservation conflict. This error is not currently issued.

SC_DISK_PCM_ERR12 Snapshot™ Volume’s Repository Is Full

The snapshot volume repository is full. Write actions to the snapshot volume will fail until the repository problems are fixed.

SC_DISK_PCM_ERR13 Snapshot Op Stopped By Administrator

The administrator has halted a snapshot operation.

SC_DISK_PCM_ERR14 Snapshot repository metadata error

The storage subsystem has reported that there is a problem with snapshot metadata.

SC_DISK_PCM_ERR15 Illegal I/O – Remote Volume Mirroring

The I/O is directed to an illegal target that is part of a remote volume mirroring pair (the target volume rather than the source volume).

SC_DISK_PCM_ERR16 Snapshot Operation Not Allowed

A snapshot operation that is not allowed has been attempted.

SC_DISK_PCM_ERR17 Snapshot Volume’s Repository Is Full

The snapshot volume repository is full. Write actions to the snapshot volume will fail until the repository problems are fixed.

SC_DISK_PCM_ERR18 Write Protected

The hdisk is write-protected. This can happen if a snapshot volume repository is full.

SC_DISK_PCM_ERR19 Single Controller Restarted

The I/O to a single-controller storage subsystem is resumed.

SC_DISK_PCM_ERR20 Single Controller Restart Failure

The I/O to a single-controller storage subsystem is not resumed. The AIX MPIO PCM will continue to attempt to restart the I/O to the storage subsystem.

MPIO on Linux

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.


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 :


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

build :

On debian based systems :

apt-get install libreadline-dev libaio-dev libdevmapper-dev

Documentation :

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 <>
    • Andrey Panin <>
    • Babu Moger <>
    • Benjamin Marzinski <>
    • Brian King <>
    • Bryn M.Reeves <>
    • Chandra Seetharaman <>
    • Charlie Brady <>
    • Chauhan, Vijay <>
    • Christophe Varoqui <>
    • Colin Watson <>
    • Dave Wysochanski <>
    • Guido Guenther <>
    • Guido Günther <>
    • Hannes Reinecke <>
    • Jim Lester <>
    • Kiyoshi Ueda <>
    • Konrad Rzeszutek <>
    • Martin Petermann <>
    • Matthew Kent <>
    • Mike Anderson <>
    • Mike Snitzer <>
    • Moger, Babu <>
    • Nikanth Karthikesan <>
    • Ritesh Raj Sarraf <>
    • Rumko <>
    • Stefan Bader <>
    • Stefan Haberland <>
    • Stefan Weinhuber <>
    • Yanqing Liu <>

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