Age | Commit message (Collapse) | Author | Files | Lines |
|
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>
|
|
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>
|
|
This patch adds some default configurations that have been requested.
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
|
|
|
|
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>
|
|
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>
|
|
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>
|
|
|
|
--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.
|
|
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>
|
|
It is referring to an unknown field 'getprio'.
Fix that up and use 'prio_name = DEFAULT_PRIO' instead
|
|
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.
|
|
|
|
Testing was sponsored by Alyseo SARL.
|
|
|
|
|
|
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)
|
|
|
|
so don't start a line with it or the rest of the line will be dropped.
|
|
I assume that the soname wasn't supposed to have a 'd' at the end.
-Ben
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
|
|
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.
|
|
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>
|
|
instead of the kernel's name ($kernel). Otherwise we might end up
looking at a wrong or nonexistant node.
|
|
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.
|
|
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
|
|
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
|
|
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).
|
|
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
|
|
Add support for some more MSA arrays.
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
|
|
The polling_interval increases caused some confusion, so I'm adding it
to the documentation.
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
|
|
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>
|
|
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>
|
|
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>
|
|
|
|
Fix for bz #526550. Fix kpartx MAKEDEV macro so it can deal with more
than 256 minor numbers.
|
|
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.
|
|
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>
|
|
New commands added to the multipathd -k command mode.
Document them in the manpage
Signed-off-by: Ritesh Raj Sarraf <rsarraf@netapp.com>
|
|
... since it will conflict with user_friendly_names.
(redhat bz #481239)
|
|
|
|
|
|
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
|
|
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>
|
|
Signed-off-by: Ritesh Raj Sarraf <rsarraf@netapp.com>
|