First, thanks for trying to help!

Le 09/07/2014 07:08, Remi Locherer a écrit :
> On Mon, Jul 07, 2014 at 08:44:43PM +0200, Mxher wrote:
>> Hello again,
>>
>> I'm doing few more tests and now I'm wondering if this is possible to
>> disallow CARP to have some resources on serverA and others on serverB?
> 
> Have you set the sysctl net.inet.carp.preempt=1?
> 
Yes it is.

>>
>> Here is my tests (advbase=1 and advskew=0 for every interfaces on both
>> servers):
> 
> advskew should be different on master from backkup. Try advskew=200 on
> obsd2.
> 
> Please read man carp. The first example is exactly what you need.
> 

It's not; I will describe my tests more precisely (sorry for the long
post again):

1) Initial state
root@obsd1:~# sysctl -a|grep net.inet.carp.preempt
net.inet.carp.preempt=1
root@obsd2:~# sysctl -a|grep net.inet.carp.preempt
net.inet.carp.preempt=1

root@obsd1:~# ifconfig HA|grep carp:
        carp: MASTER carpdev em0 vhid 1 advbase 1 advskew 0
        carp: MASTER carpdev em1 vhid 2 advbase 1 advskew 0
        carp: MASTER carpdev em2 vhid 3 advbase 1 advskew 0
        carp: MASTER carpdev em3 vhid 4 advbase 1 advskew 0
root@obsd2:~# ifconfig HA|grep carp:
        carp: BACKUP carpdev em0 vhid 1 advbase 1 advskew 200
        carp: BACKUP carpdev em1 vhid 2 advbase 1 advskew 200
        carp: BACKUP carpdev em2 vhid 3 advbase 1 advskew 200
        carp: BACKUP carpdev em3 vhid 4 advbase 1 advskew 200


2) Unplug of em3 on obsd1: the failover is done as expected
root@obsd1:~# ifconfig HA|grep carp:
        carp: BACKUP carpdev em0 vhid 1 advbase 1 advskew 0
        carp: BACKUP carpdev em1 vhid 2 advbase 1 advskew 0
        carp: BACKUP carpdev em2 vhid 3 advbase 1 advskew 0
        carp: INIT carpdev em3 vhid 4 advbase 1 advskew 0
root@obsd2:~# ifconfig HA|grep carp:
        carp: MASTER carpdev em0 vhid 1 advbase 1 advskew 200
        carp: MASTER carpdev em1 vhid 2 advbase 1 advskew 200
        carp: MASTER carpdev em2 vhid 3 advbase 1 advskew 200
        carp: MASTER carpdev em3 vhid 4 advbase 1 advskew 200


3) (re)Plug of em3 on obsd1: resources gets back on obsd1 because of the
advskew greater on obsd2 (this is the exact purpose of advskew, and I
want to avoid it, but I did it to show you).
root@obsd1:~# ifconfig HA|grep carp:
        carp: MASTER carpdev em0 vhid 1 advbase 1 advskew 0
        carp: MASTER carpdev em1 vhid 2 advbase 1 advskew 0
        carp: MASTER carpdev em2 vhid 3 advbase 1 advskew 0
        carp: MASTER carpdev em3 vhid 4 advbase 1 advskew 0
root@obsd2:~# ifconfig HA|grep carp:
        carp: BACKUP carpdev em0 vhid 1 advbase 1 advskew 200
        carp: BACKUP carpdev em1 vhid 2 advbase 1 advskew 200
        carp: BACKUP carpdev em2 vhid 3 advbase 1 advskew 200
        carp: BACKUP carpdev em3 vhid 4 advbase 1 advskew 200


4) Unplug of em2 on obsd2 AND unplug of em3 on obsd1: resources get
"mixed" between the two nodes.
I don't think this is a bug, it seems to be design to act like this and
I can understand why. But, in my case, I must avoid that.
root@obsd1:~# ifconfig HA|grep carp:
        carp: MASTER carpdev em0 vhid 1 advbase 1 advskew 0
        carp: MASTER carpdev em1 vhid 2 advbase 1 advskew 0
        carp: MASTER carpdev em2 vhid 3 advbase 1 advskew 0
        carp: INIT carpdev em3 vhid 4 advbase 1 advskew 0
root@obsd2:~# ifconfig HA|grep carp:
        carp: BACKUP carpdev em0 vhid 1 advbase 1 advskew 200
        carp: BACKUP carpdev em1 vhid 2 advbase 1 advskew 200
        carp: INIT carpdev em2 vhid 3 advbase 1 advskew 200
        carp: MASTER carpdev em3 vhid 4 advbase 1 advskew 200

Reply via email to