summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-03-25multipath: patch checker consolidationBenjamin Marzinski4-34/+24
This patch does two things. First, it allows the tur checker to retry when it fails with DID_TRANSPORT_DISRUPTED. Second, it makes both calls to check a path use get_state, do avoid duplicated code. Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
2010-03-25multipath: add queue_without_daemon config parameterBenjamin Marzinski7-0/+70
This patch adds a new multipath.conf default paramter, queue_without_daemon. If this is set to "no", when multipathd stops, queueing will be turned off for all devices. This is useful for devices that set no_path_retry. If a machine is shut down while all paths to a device are down, it is possible to hang waiting for IO to return from the device after multipathd has been stopped. Without multipathd running, access to the paths cannot be restored, and the kernel cannot be told to stop queueing IO. Setting queue_without_daemon to "no" makes multipathd turn off queueing on all devices when it stops, avoiding the problem. Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
2010-03-25multipath: add some default configurations.Benjamin Marzinski2-2/+96
This patch adds some default configurations that have been requested. Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
2010-03-25Correct whitespace before tabs warningsChristophe Varoqui1-2/+2
2010-03-25multipath: add fast_io_fail and dev_loss_tmo config parametersBenjamin Marzinski12-2/+303
This patch adds two new configuration parameters to multipath.conf, fast_io_fail_tmo and dev_loss_tmo which set /sys/class/fc_remote_ports/rport-<host>:<channel>-<rport_id>/fast_io_fail_tmo and /sys/class/fc_remote_ports/rport-<host>:<channel>-<rport_id>/dev_loss_tmo for all the capable paths in a multipath device. Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
2010-03-17multipath: display average priority as group priorityNikanth Karthikesan1-1/+4
Display avg priority as group priority Now average priority is used as path group priority, instead of sum of priorities of the paths. But while displaying group priority, sum is being displayed. Change it to print the average priority. When there are no enabled paths, print 0 as priority. Signed-off-by: Nikanth Karthikesan <knikanth@suse.de>
2010-02-13Honour ALUA preference indicatorColin Watson2-3/+11
SPC defines the preference indicator (bit 7 of the first byte returned by REPORT TARGET PORT GROUPS) as indicating a preferred primary target port group, and says that applications may use it to influence path selection. Choose TPGs with this bit set over TPGs with it unset. This fixes failback handling with the Intel Modular Server. Signed-off-by: Yingying Zhao <yingying.zhao@intel.com> Signed-off-by: Colin Watson <cjwatson@canonical.com>
2010-02-06Mail address changeChristophe Varoqui14-19/+19
2010-02-06Latest git -master is not compilableRumko1-1/+1
--Boundary-01=_PlHbLmcCyk7NmgQ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Hi! In latest git -master on line 1443 of multipathd/main.c lock() is called on= =20 exit_mutex, but since exit_mutex is a pthread_mutex_t, pthread_mutex_lock()= =20 is needed. Attached is the one-liner patch, tested it on a gentoo machine and seems to= be=20 working. =2D-=20 Regards, Rumko From a6bf54d588c2d0c9d3a97541bcb7b605fd1f3ae0 Mon Sep 17 00:00:00 2001 From: Rumko <rumcic@gmail.com> Date: Fri, 5 Feb 2010 20:59:21 +0100 Subject: [PATCH] Use pthread_mutex_lock() instead of lock() since we are dealing with a mutex directly.
2010-02-03Update path_offline() to return device statusHannes Reinecke2-11/+17
A SCSI device can have for more states than just 'offline' and 'running'. In fact, any device _not_ in state 'running' is unaccessible to I/O, so running a path checker on these devices will cause the checker to be delayed and hence stall the entire daemon. This patch updates the path_offline() function to return the actual device state. Path checkers will only be run if the state is PATH_UP. A 'blocked' device state will be translated into PATH_PENDING, causing the checkerloop to skip this device and recheck as soon as possible. Signed-off-by: Hannes Reinecke <hare@suse.de>
2010-02-03[libmultipath] the entry for EMC Envista is brokenHannes Reinecke1-1/+1
It is referring to an unknown field 'getprio'. Fix that up and use 'prio_name = DEFAULT_PRIO' instead
2010-02-03[multipathd] Fix pthread bug in multipath-tools.Alex Zeffertt1-0/+1
You should lock the mutex before doing a pthread_cond_wait otherwise undefined results occur. In fact we get away with this with glibc, but with uclibc it causes a segfault.
2010-01-26Add hardware defaults for EMC InvistaBenjamin Marzinski2-0/+30
2010-01-22Add nexenta comstart hardware defaults.Christophe Varoqui2-0/+36
Testing was sponsored by Alyseo SARL.
2010-01-22Add checks before use conf->xxx now that they can be nullChristophe Varoqui1-9/+9
2010-01-22Add %z path wildcard to display path serialChristophe Varoqui1-0/+7
2010-01-22[lib] don't pretend config file has setup parametersChristophe Varoqui2-24/+22
we already have fallbacks coming from propsel.c functions. This change make 'multipath -v3' correctly report what set the value of a parameter (mpe, hwe, cf or internal)
2010-01-21[git] Ignore libmultipath/libmultipath.so.0Christophe Varoqui1-0/+1
2010-01-10Dots are special in groffGuido Günther1-3/+3
so don't start a line with it or the rest of the line will be dropped.
2009-12-03multipath-tools: fix sonameBenjamin Marzinski1-1/+1
I assume that the soname wasn't supposed to have a 'd' at the end. -Ben Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
2009-11-22[multipathd] give ev_add_path() separated failure messagesChristophe Varoqui1-7/+12
when the multipath already exists and 1/ new path size is 0 2/ new path size is different than the multipath known size as per Chandra Seetharaman recommendation.
2009-11-22multipath-tools: multipath should allow only path with valid size to get ↵Chauhan, Vijay1-0/+21
added in the map Hi, If READ_CAPACITY fails during device discovery, sd device gets attached with device size 0. Currently multipath discover these paths and adds into the map. RDAC patch checker sends inquiry on each path to check path status, which eventually marks this path as up. If this path is from owning controller then mode select will be issued to switch the pathgroup. But any I/O sent to this path(path with size 0) will eventually fail in sd_prep_fn due to incorrect device size and resulting to ping pong between pathgroups. We should only allow valid paths to get added in the map. Below patch checks two cases before adding paths; i.e.: 1) device size of path is not 0 2) there is no mismatch between mpp size and new path size. Thanks, Vijay ---- multipath should only add paths with valid size to the map. If there is mismatch between map and path size it should not be added. This patch also check if the device size is not 0 before adding path. During device discovery if READ_CAPACITY fails, sd device get attached with device size 0. multipath should not allow the such device to get added in the map. Signed-off-by: Vijay Chauhan <vijay.chauhan@lsi.com>
2009-11-22multipath-toosl: Use current name of the divice node ($name)Guido Günther1-2/+2
instead of the kernel's name ($kernel). Otherwise we might end up looking at a wrong or nonexistant node.
2009-11-22multipath-tools: fix udev rule for dmraidGuido Günther1-2/+2
Hi, attach patch fixes the udev rule for dmraid by not abusing the mpath prefix. It also drops the superflous path from kpartx_id. Cheers, -- Guido From: Hannes Reinecke <hare@suse.de> Date: Tue, 24 Jun 2008 16:38:37 +0200 Subject: [PATCH] Fix udev rules for dmraid The kpartx_id program is located under /lib/udev, so we don't need to call it with the full pathname. And we should also create persistent links for dmraid tables.
2009-11-22multipath-tools: add library dependenciesGuido Günther1-1/+2
Hi, attached patch adds dependent libraries when building the shared lib. This allows other tools like dpkg-shlibdeps to deduce the needed dependencies automatically. Cheers, -- Guido From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org> Date: Sun, 30 Aug 2009 14:18:21 +0200 Subject: [PATCH] add library dependencies
2009-11-22multipath-tools: add a soname to the libraryGuido Günther1-3/+6
Hi, attached patch adds a fake soname to the created lib making tools such as lintian happy. I can keep this debian specific if need be but having a soname certainly won't hurt. Cheers, -- Guido From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org> Date: Sun, 30 Aug 2009 14:30:34 +0200 Subject: [PATCH] set a soname
2009-11-22multipath-tools: check header file instead of intalled libGuido Günther1-1/+1
Hi, attached patch checks the header file instead of an installed lib for dm_task_struct. Since distros have this lib add different patchs the check should be more reliable. Cheers, -- Guido From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org> Date: Sun, 30 Aug 2009 13:38:55 +0200 Subject: [PATCH] check header file for defintion of dm_task_no_flush instead of checking the so for the symbol (which seems to be hard to find).
2009-11-22multipath-tools: fix path to FAQGuido Günther1-1/+2
Hi, attached patch fixes the URL to the FAQ. Cheers, -- Guido From: Vincent McIntyre <Vincent.McIntyre@csiro.au> Date: Fri, 9 Jan 2009 18:18:46 +0100 Subject: [PATCH] fix URL to FAQ
2009-10-20multipath-tools: Default configuration changesBenjamin Marzinski2-3/+3
Add support for some more MSA arrays. Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
2009-10-20multipath-tools: Minor doc fixBenjamin Marzinski2-2/+6
The polling_interval increases caused some confusion, so I'm adding it to the documentation. Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
2009-10-20multipath-tools: Change default configs to look for "hp_sw" not "hp-sw"Benjamin Marzinski2-4/+4
The kernel hp_sw handler now wants the hwhandler string to be "hp_sw", not "hp-sw". This fixes the default configs to match. Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com> Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
2009-10-20multipath-tools: rdac path checked leads to I/O hang when volumes are ↵Chauhan, Vijay1-1/+7
unmapped from storage. Hi, We are seeing I/O hang when volumes (configured with rdac path checker) are unmapped from the storage. Expected is I/O should fail. Please see the syslog snippet below: Oct 15 14:40:43 linux kernel: sd 6:0:0:0: queueing MODE_SELECT command. Oct 15 14:40:43 linux kernel: sd 6:0:0:0: MODE_SELECT failed with sense 0x59100. Oct 15 14:40:43 linux kernel: end_request: I/O error, dev sdh, sector 18509824 Oct 15 14:40:43 linux kernel: device-mapper: multipath: Failing path 8:112. Oct 15 14:40:43 linux kernel: end_request: I/O error, dev sdh, sector 0 Oct 15 14:40:43 linux kernel: end_request: I/O error, dev sdh, sector 18512896 Oct 15 14:40:43 linux kernel: end_request: I/O error, dev sdh, sector 18511872 Oct 15 14:40:43 linux kernel: end_request: I/O error, dev sdh, sector 18510848 Oct 15 14:40:43 linux multipathd: 8:112: mark as failed Oct 15 14:40:43 linux multipathd: 3600a0b800029ea52000097bc4acde51e: Entering recovery mode: max_retries=30 Oct 15 14:40:44 linux multipathd: 3600a0b800029eb0a0000f2af4acde4d1: queue_if_no_path enabled Oct 15 14:40:44 linux multipathd: 3600a0b800029eb0a0000f2af4acde4d1: Recovered to normal mode Oct 15 14:40:44 linux kernel: sd 5:0:0:1: queueing MODE_SELECT command. Oct 15 14:40:44 linux kernel: sd 5:0:0:1: MODE_SELECT failed with sense 0x59100. Oct 15 14:40:44 linux kernel: end_request: I/O error, dev sdc, sector 0 Oct 15 14:40:44 linux kernel: device-mapper: multipath: Failing path 8:32. Oct 15 14:40:44 linux kernel: end_request: I/O error, dev sdc, sector 16089088 Oct 15 14:40:44 linux kernel: end_request: I/O error, dev sdc, sector 16090112 Oct 15 14:40:44 linux kernel: end_request: I/O error, dev sdc, sector 16091136 Oct 15 14:40:44 linux kernel: end_request: I/O error, dev sdc, sector 16092160 Oct 15 14:40:44 linux multipathd: 8:32: mark as failed Below is the patch that fix this issue. When devices are unmapped from storage, rdac patch checker sets the path state for those devices as ghost. As a reason dm issues mode select to failover path group and fails with 0x59100, which eventually ends up with ping pong between path groups resulting in I/O hang. In rdac path checker, we need to check if devices are not connected, mark it as failed. This patch adds check for Peripheral Qualifier (PQ) & Peripheral Device type(PDT) of Inquiry data and fails the path if either 1) PQ is set to 0x1 or 2) PQ set to 0x11 and PDT set to 0x1F. Signed-off-by: Vijay Chauhan <vijay.chauhan@lsi.com> Reviewed-by: Babu Moger <babu.moger@lsi.com>
2009-10-02multipath-tools: Fix dry-run outputBenjamin Marzinski1-1/+1
When multipath checks whether or not the multipath device needs to be renamed, it only does the check if dry-run isn't selected. This means that you will instead see all your renames as creates during a dry-run. The attached patch fixes this. Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
2009-10-02[lib] remove spurious and obsolete kdev_t.h include in directio checkerChristophe Varoqui1-1/+0
2009-10-02[kpartx] make kpartx deal with more than 256 minor numbersBenjamin Marzinski3-2/+4
Fix for bz #526550. Fix kpartx MAKEDEV macro so it can deal with more than 256 minor numbers.
2009-09-20queue-length/service-time path selectors map parser fixKiyoshi Ueda1-1/+3
Actual device configuration seems to be working fine, but the getting information from the configured device seems to be failing due to table parsing problem in disassemble_map(). I guess the attached patch works around the problem. Please try it. Please note that this patch may *NOT* be a complete fix. Some more codes for new dynamic load balancers may be needed.
2009-09-02multipath-tools: Fix rtpg buffer length calculationBenjamin Marzinski1-2/+2
Since you use scsi_buflen to allocate the correct size for the SCSI RTPG request buffer, You need to have the "+4" in its calculation, not just in the check to see if the request buffer is already big enough, otherwise, you'll fail the check, but you won't allocate a new buffer that is big enough. Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
2009-08-31Update multipathd manpageRitesh Raj Sarraf1-1/+10
New commands added to the multipathd -k command mode. Document them in the manpage Signed-off-by: Ritesh Raj Sarraf <rsarraf@netapp.com>
2009-08-31[doc] comment to not set the alias config option to mpath<n>Benjamin Marzinski1-1/+5
... since it will conflict with user_friendly_names. (redhat bz #481239)
2009-08-30[FAQ] document directio error when aio-max-nr is exhaustedBryn M.Reeves1-0/+31
2009-08-30[lib] Add default config for Sun StorageTek 2500 and 2530Charlie Brady1-2/+2
2009-08-30[lib] Add Dell 32xx/i support into hardware tableYanqing Liu1-0/+32
2009-08-04multipath-tools: miscellaneous code cleanupsBenjamin Marzinski3-0/+3
io_getevents can return < 0 if it is interrupted, but it doesn't set errno. This patch sets errno to zero first to avoid printing garbage. Also the log_thread and uevq_thread functions need to return NULL to avoid compiler warnings. Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
2009-08-04multipath-tools: install libraries to /lib64 where appriopriateBenjamin Marzinski2-4/+12
Multipath currently installs all of it's libraries to /lib, even on 64-bit machines with a /lib64 directory. With this patch, multipath will install the libraries under /lib64 if it exists. This can be overridden by running # make LIB=<lib> Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
2009-08-04multipath-tools: uninstall libraries correctlyBenjamin Marzinski2-2/+2
The unistall action for checker libraries doesn't work. Also, the uninstall action for the prioritizer libraries runs the risk of uninstalling something that we didn't install. This patch changes them to correctly uninstall the files listed in LIBS. Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
2009-08-04multipath-tools: Log all messagesBenjamin Marzinski1-1/+1
When the log thread pulls the last message off the buffer, it sets la->empty. However, then it returns la->empty, which means that the log is empty, instead of 0, which means that it found a message. This means that multipathd is not logging the last message in the buffer when the log threa runs. This patch changes the return code, so that multipathd logs all the messages in the buffer. Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
2009-08-04multipath-tools: Fix uevent handling codeBenjamin Marzinski1-2/+5
Multipathd wasn't setting buflen when it read in a uevent message. This was causing buflen to be used unitialized, and would often keep multipathd from processing uevents. This patch correctly initializes buflen to the size of the buffer received. Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
2009-08-04[lib] correct tab-before-whitespace errors introduce by the prev commitChristophe Varoqui1-2/+2
2009-08-04Use Average path priority value for path switchingChandra Seetharaman2-5/+19
Hi Christophe, I submitted this patch on Jul 2 (http://marc.info/?l=dm-devel&m=124658334721911&w=2). Resending it. Only change is a field name from up_paths to enabled_paths. Hi Hannes, Need an ACK from you :-). regards, chandra ----------------------------------------------------------------------- Failback happens only when the sum of priorities of all paths (on the higher priority path group) is greater than the sum of priorities of all paths on the lower priority path group. This leads into problems when there are more than one paths in each of the path groups, and the sum of all paths in the lower priority path group is greater than that of path priority of a single high priority path. This patch fixes the problem by using average priority of the path group to decide on which path group to switch over. Signed-off-by: Chandra Seetharaman <sekharan@us.ibm.com>
2009-08-04Fix minor error in multipath.conf manpageRitesh Raj Sarraf1-2/+2
Signed-off-by: Ritesh Raj Sarraf <rsarraf@netapp.com>