[Samba] CTDB + InfiniBand Public IP Addresses

Malcolm Cowe malkolm at gmail.com
Tue May 20 01:33:42 MDT 2014


I have found a workaround that is sufficient to bring the public addresses
online. It also works for moving IP addresses and the usual stuff of
rebalancing when starting and stopping nodes.

There is still an ugly warning in the logs, namely:

2014/05/20 08:28:19.983280 [16459]: common/system_linux.c:120 not an
ethernet address family (0x20)

2014/05/20 08:28:19.983332 [16459]: server/ctdb_takeover.c:240 sending of
arp failed on iface 'ib0' (Invalid argument)

but the system appears to be working, so I'm going to call it good until I
can revisit properly (somewhat under the gun at the moment). In the end,
all I did was add a case statement to the 10.interface eventscript:

[root at gp-1-0 ~]# diff -au  /etc/ctdb/orig/events.d/10.interface
/etc/ctdb/events.d/10.interface

--- /etc/ctdb/orig/events.d/10.interface 2014-05-20 08:10:11.000000000 +0100

+++ /etc/ctdb/events.d/10.interface 2014-05-20 07:52:11.344221132 +0100

@@ -78,6 +78,22 @@

      case $IFACE in

      ib*)

  # we dont know how to test ib links

+ # mjcowe: workaround to test the *ibX connection.

+ # This is made complicated by the fact that TS cards

+ # use "qib" for the kernel device but "ib" for the

+ # ipoib interface.

+ cat /sys/class/infiniband/*$IFACE/ports/1/state | grep -q '4: ACTIVE' || {

+  echo "ERROR: No link on the public network interface $IFACE"

+  fail=1

+  test -n "$OLDLINK" && {

+  ctdb setifacelink $IFACE down

+  }

+  continue

+ }

+ test -n "$OLDLINK" && {

+  ok=1 # we only set ok for interfaces known to ctdbd

+  ctdb setifacelink $IFACE up

+ }

  ;;

      *)

  [ -z "$IFACE" ] || {


Sorry for the noise (and the poor quality of the comments in the code).


Malcolm.


More information about the samba mailing list