diff mbox

PATCH 0/4] multipath-tools: Ceph rbd support v2

Message ID 57AA2060.20708@redhat.com (mailing list archive)
State Not Applicable, archived
Delegated to: christophe varoqui
Headers show

Commit Message

Mike Christie Aug. 9, 2016, 6:26 p.m. UTC
On 08/09/2016 10:36 AM, Christophe Varoqui wrote:
> Merged.
> 

Thanks.

> I think it is worth advertizing here that the build now requires rados.h.
> 

Sorry about adding the silly dependency. How about the attached patch to
make the rbd checker only be built if the user requests it. In the
documentation for my use, I will describe how to build it. This way
majority of users will not be bothered.


> Thanks.
> 
> On Mon, Aug 8, 2016 at 2:01 PM, Mike Christie <mchristi@redhat.com> wrote:
> 
>> The following patches made over Christophe's tree today,
>> add Ceph rbd support for handling blacklisted devices.
>>
>>
>> This is not general support for rbd and multipath. There is
>> no boot/root support and it does not support features like
>> multibus. My use is for HA configurations, specifically for exporting
>> rbd images through multiple LIO instances. In this case, we have one
>> rbd instance that has the ceph rbd exclusive lock and it can send
>> WRITE requests. If that host becomes unreachable, then another host
>> will grab the lock, and blacklist the original host to prevent it from
>> sending stale IO (when blacklisted IO will be failed by the OSD).
>>
>> To recover from that type of scenario, this patchset adds a repair()
>> callout to the checker. If the path is in the PATH_DOWN state this
>> callout can be used to fix it up. For my case, I am remapping
>> the device to flush stale IO and cleanup the old lock,
>> and then unblacklisting the path, so it can be used again.
>>
>> Changes since v1:
>> - Drop ID_UID use and implemented sysfs getuid support.
>> - Drop settings that were defaults and follow template.
>> - Fix ceph auth/user.
>>
>>
> 
> 
> 
> --
> dm-devel mailing list
> dm-devel@redhat.com
> https://www.redhat.com/mailman/listinfo/dm-devel
>
--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel

Comments

Christophe Varoqui Aug. 10, 2016, 7:55 a.m. UTC | #1
Distributors will surely want to build all checkers to have the docs and
hwtable in sync with the shipped checkers, and cover the widest range of
setups.

I'd rather drop this patch or, if it proves to be a problem, merge a
variant with the rbd checker build by default and not-buildable by explicit
define.

But thanks,
Christophe


On Tue, Aug 9, 2016 at 8:26 PM, Mike Christie <mchristi@redhat.com> wrote:

> On 08/09/2016 10:36 AM, Christophe Varoqui wrote:
> > Merged.
> >
>
> Thanks.
>
> > I think it is worth advertizing here that the build now requires rados.h.
> >
>
> Sorry about adding the silly dependency. How about the attached patch to
> make the rbd checker only be built if the user requests it. In the
> documentation for my use, I will describe how to build it. This way
> majority of users will not be bothered.
>
>
> > Thanks.
> >
> > On Mon, Aug 8, 2016 at 2:01 PM, Mike Christie <mchristi@redhat.com>
> wrote:
> >
> >> The following patches made over Christophe's tree today,
> >> add Ceph rbd support for handling blacklisted devices.
> >>
> >>
> >> This is not general support for rbd and multipath. There is
> >> no boot/root support and it does not support features like
> >> multibus. My use is for HA configurations, specifically for exporting
> >> rbd images through multiple LIO instances. In this case, we have one
> >> rbd instance that has the ceph rbd exclusive lock and it can send
> >> WRITE requests. If that host becomes unreachable, then another host
> >> will grab the lock, and blacklist the original host to prevent it from
> >> sending stale IO (when blacklisted IO will be failed by the OSD).
> >>
> >> To recover from that type of scenario, this patchset adds a repair()
> >> callout to the checker. If the path is in the PATH_DOWN state this
> >> callout can be used to fix it up. For my case, I am remapping
> >> the device to flush stale IO and cleanup the old lock,
> >> and then unblacklisting the path, so it can be used again.
> >>
> >> Changes since v1:
> >> - Drop ID_UID use and implemented sysfs getuid support.
> >> - Drop settings that were defaults and follow template.
> >> - Fix ceph auth/user.
> >>
> >>
> >
> >
> >
> > --
> > dm-devel mailing list
> > dm-devel@redhat.com
> > https://www.redhat.com/mailman/listinfo/dm-devel
> >
>
>
--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
Bart Van Assche Aug. 10, 2016, 3:42 p.m. UTC | #2
On 08/10/2016 12:55 AM, Christophe Varoqui wrote:
> Distributors will surely want to build all checkers to have the docs and
> hwtable in sync with the shipped checkers, and cover the widest range of
> setups.
>
> I'd rather drop this patch or, if it proves to be a problem, merge a
> variant with the rbd checker build by default and not-buildable by
> explicit define.

Hello Mike and Christophe,

How about detecting at compile time whether the rbd header files are 
available? That approach avoids that we have to introduce a configure 
script and also avoids that the user has to enable rbd support 
explicitly. In e.g. the fio makefile there are several tests to check 
which libraries are available and can be used during the fio build.

Bart.

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
diff mbox

Patch

>From 4d0bfdfc032d4fabf0ac08ba105125ded168bd95 Mon Sep 17 00:00:00 2001
From: Mike Christie <mchristi@redhat.com>
Date: Tue, 9 Aug 2016 13:19:41 -0500
Subject: [PATCH 1/1] checker: do not build rbd by default

rbd is not a common driver and users will probably not have the
tools/libs
to use it. Make the rbd checker not built by default.

Signed-off-by: Mike Christie <mchristi@redhat.com>
---
 libmultipath/checkers/Makefile | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/libmultipath/checkers/Makefile b/libmultipath/checkers/Makefile
index 5fd2099..aeb425f 100644
--- a/libmultipath/checkers/Makefile
+++ b/libmultipath/checkers/Makefile
@@ -11,8 +11,11 @@  LIBS= \
 	libcheckdirectio.so \
 	libcheckemc_clariion.so \
 	libcheckhp_sw.so \
-	libcheckrdac.so \
-	libcheckrbd.so
+	libcheckrdac.so
+
+ifneq ($(CHECKER_RBD),)
+LIBS += libcheckrbd.so
+endif
 
 CFLAGS += -I..
 
-- 
2.7.2