Re: [ClusterLabs] IPaddr2 RA and bonding

2017-08-12 Thread Tomer Azran
I created a pull request with my code:
https://github.com/ClusterLabs/pacemaker/pull/1319


-Original Message-
From: Ken Gaillot [mailto:kgail...@redhat.com] 
Sent: Thursday, August 10, 2017 5:33 PM
To: users@clusterlabs.org
Subject: Re: [ClusterLabs] IPaddr2 RA and bonding

On Thu, 2017-08-10 at 11:02 +, Tomer Azran wrote:
> That looks exactly what I needed - it works.
> I had to change the RA since I don't want to give an interface name as a 
> parameter (it might change from server to server and I want to create a 
> cloned resource).
> I changed the RA a little bit to be able to guess the interface name based on 
> a IP address parameter.
> The new RA is published on my github repo: 
> https://github.com/tomerazran/Pacemaker-Resource-Agents/blob/master/ip
> speed

Nice! Feel free to open a PR against the ClusterLabs/pacemaker repository with 
your changes. You could make it so the user has to specify one of iface or ip, 
or you could have another parameter iface_from_ip=true/false and put the IP in 
iface.

> Just to document the solution in case anyone will need it also, I run the 
> following setup:
> 
>  # pcs resource create vip ocf:heartbeat:IPaddr2 ip=192.168.1.3 op 
> monitor interval=30  # pcs resource create vip_speed 
> ocf:heartbeat:ipspeed ip=192.168.1.3 name=vip_speed op monitor 
> interval=5s --clone  # pcs constraint location vip rule 
> score=-INFINITY vip_speed lt 1 or not_defined vip_speed
> 
> Thank you for the support,
> Tomer.
> 
> 
> -Original Message-
> From: Vladislav Bogdanov [mailto:bub...@hoster-ok.com]
> Sent: Monday, August 7, 2017 9:22 PM
> To: users@clusterlabs.org
> Subject: Re: [ClusterLabs] IPaddr2 RA and bonding
> 
> 07.08.2017 20:39, Tomer Azran wrote:
> > I don't want to use this approach since I don't want to be depend on 
> > pinging to other host or couple of hosts.
> > Is there any other solution?
> > I'm thinking of writing a simple script that will take a bond down 
> > using ifdown command when there are no slaves available and put it 
> > on /sbin/ifdown-local
> 
> For the similar purpose I wrote and use this one - 
> https://github.com/ClusterLabs/pacemaker/blob/master/extra/resources/i
> fspeed
> 
> It sets a node attribute on which other resources may depend via 
> location constraint  - 
> http://clusterlabs.org/doc/en-US/Pacemaker/1.1/html/Pacemaker_Explaine
> d/ch08.html#ch-rules
> 
> It is not installed by default, and that should probably be fixed.
> 
> That RA supports bonds (and bridges), and even tries to guess actual 
> resulting bond speed based on a bond type. For load-balancing bonds like LACP 
> (mode 4) one it uses coefficient of 0.8 (iirc) to reflect actual possible 
> load via multiple links.
> 
> >
> >
> > -Original Message-
> > From: Ken Gaillot [mailto:kgail...@redhat.com]
> > Sent: Monday, August 7, 2017 7:14 PM
> > To: Cluster Labs - All topics related to open-source clustering 
> > welcomed <users@clusterlabs.org>
> > Subject: Re: [ClusterLabs] IPaddr2 RA and bonding
> >
> > On Mon, 2017-08-07 at 10:02 +, Tomer Azran wrote:
> >> Hello All,
> >>
> >>
> >>
> >> We are using CentOS 7.3 with pacemaker in order to create a cluster.
> >>
> >> Each cluster node ha a bonding interface consists of two nics.
> >>
> >> The cluster has an IPAddr2 resource configured like that:
> >>
> >>
> >>
> >> # pcs resource show cluster_vip
> >>
> >> Resource: cluster_vip (class=ocf provider=heartbeat type=IPaddr2)
> >>
> >>   Attributes: ip=192.168.1.3
> >>
> >>   Operations: start interval=0s timeout=20s (cluster_vip
> >> -start-interval-0s)
> >>
> >>   stop interval=0s timeout=20s (cluster_vip
> >> -stop-interval-0s)
> >>
> >>   monitor interval=30s (cluster_vip
> >> -monitor-interval-30s)
> >>
> >>
> >>
> >>
> >>
> >> We are running tests and want to simulate a state when the network 
> >> links are down.
> >>
> >> We are pulling both network cables from the server.
> >>
> >>
> >>
> >> The problem is that the resource is not marked as failed, and the 
> >> faulted node keep holding it and does not fail it over to the other 
> >> node.
> >>
> >> I think that the problem is within the bond interface. The bond 
> >> interface is marked as UP on the OS. It even can ping itself:
> >>
> >>
> >>
> >> # ip link show
> >>
> >> 2:

Re: [ClusterLabs] IPaddr2 RA and bonding

2017-08-10 Thread Ken Gaillot
On Thu, 2017-08-10 at 11:02 +, Tomer Azran wrote:
> That looks exactly what I needed - it works.
> I had to change the RA since I don't want to give an interface name as a 
> parameter (it might change from server to server and I want to create a 
> cloned resource).
> I changed the RA a little bit to be able to guess the interface name based on 
> a IP address parameter.
> The new RA is published on my github repo: 
> https://github.com/tomerazran/Pacemaker-Resource-Agents/blob/master/ipspeed 

Nice! Feel free to open a PR against the ClusterLabs/pacemaker
repository with your changes. You could make it so the user has to
specify one of iface or ip, or you could have another parameter
iface_from_ip=true/false and put the IP in iface.

> Just to document the solution in case anyone will need it also, I run the 
> following setup:
> 
>  # pcs resource create vip ocf:heartbeat:IPaddr2 ip=192.168.1.3 op monitor 
> interval=30
>  # pcs resource create vip_speed ocf:heartbeat:ipspeed ip=192.168.1.3 
> name=vip_speed op monitor interval=5s --clone
>  # pcs constraint location vip rule score=-INFINITY vip_speed lt 1 or 
> not_defined vip_speed
> 
> Thank you for the support,
> Tomer.
> 
> 
> -Original Message-
> From: Vladislav Bogdanov [mailto:bub...@hoster-ok.com] 
> Sent: Monday, August 7, 2017 9:22 PM
> To: users@clusterlabs.org
> Subject: Re: [ClusterLabs] IPaddr2 RA and bonding
> 
> 07.08.2017 20:39, Tomer Azran wrote:
> > I don't want to use this approach since I don't want to be depend on 
> > pinging to other host or couple of hosts.
> > Is there any other solution?
> > I'm thinking of writing a simple script that will take a bond down 
> > using ifdown command when there are no slaves available and put it on 
> > /sbin/ifdown-local
> 
> For the similar purpose I wrote and use this one - 
> https://github.com/ClusterLabs/pacemaker/blob/master/extra/resources/ifspeed
> 
> It sets a node attribute on which other resources may depend via location 
> constraint  - 
> http://clusterlabs.org/doc/en-US/Pacemaker/1.1/html/Pacemaker_Explained/ch08.html#ch-rules
> 
> It is not installed by default, and that should probably be fixed.
> 
> That RA supports bonds (and bridges), and even tries to guess actual 
> resulting bond speed based on a bond type. For load-balancing bonds like LACP 
> (mode 4) one it uses coefficient of 0.8 (iirc) to reflect actual possible 
> load via multiple links.
> 
> >
> >
> > -Original Message-
> > From: Ken Gaillot [mailto:kgail...@redhat.com]
> > Sent: Monday, August 7, 2017 7:14 PM
> > To: Cluster Labs - All topics related to open-source clustering 
> > welcomed <users@clusterlabs.org>
> > Subject: Re: [ClusterLabs] IPaddr2 RA and bonding
> >
> > On Mon, 2017-08-07 at 10:02 +, Tomer Azran wrote:
> >> Hello All,
> >>
> >>
> >>
> >> We are using CentOS 7.3 with pacemaker in order to create a cluster.
> >>
> >> Each cluster node ha a bonding interface consists of two nics.
> >>
> >> The cluster has an IPAddr2 resource configured like that:
> >>
> >>
> >>
> >> # pcs resource show cluster_vip
> >>
> >> Resource: cluster_vip (class=ocf provider=heartbeat type=IPaddr2)
> >>
> >>   Attributes: ip=192.168.1.3
> >>
> >>   Operations: start interval=0s timeout=20s (cluster_vip
> >> -start-interval-0s)
> >>
> >>   stop interval=0s timeout=20s (cluster_vip
> >> -stop-interval-0s)
> >>
> >>   monitor interval=30s (cluster_vip 
> >> -monitor-interval-30s)
> >>
> >>
> >>
> >>
> >>
> >> We are running tests and want to simulate a state when the network 
> >> links are down.
> >>
> >> We are pulling both network cables from the server.
> >>
> >>
> >>
> >> The problem is that the resource is not marked as failed, and the 
> >> faulted node keep holding it and does not fail it over to the other 
> >> node.
> >>
> >> I think that the problem is within the bond interface. The bond 
> >> interface is marked as UP on the OS. It even can ping itself:
> >>
> >>
> >>
> >> # ip link show
> >>
> >> 2: eno3: <NO-CARRIER,BROADCAST,MULTICAST,SLAVE,UP> mtu 1500 qdisc mq 
> >> master bond1 state DOWN mode DEFAULT qlen 1000
> >>
> >> link/ether 00:1e:67:f6:5a:8a brd ff:ff:ff:ff:ff:ff
> >>
> >> 3: eno4: <NO-CARRIER,BROADCAST

Re: [ClusterLabs] IPaddr2 RA and bonding

2017-08-10 Thread Tomer Azran
That looks exactly what I needed - it works.
I had to change the RA since I don't want to give an interface name as a 
parameter (it might change from server to server and I want to create a cloned 
resource).
I changed the RA a little bit to be able to guess the interface name based on a 
IP address parameter.
The new RA is published on my github repo: 
https://github.com/tomerazran/Pacemaker-Resource-Agents/blob/master/ipspeed 

Just to document the solution in case anyone will need it also, I run the 
following setup:

 # pcs resource create vip ocf:heartbeat:IPaddr2 ip=192.168.1.3 op monitor 
interval=30
 # pcs resource create vip_speed ocf:heartbeat:ipspeed ip=192.168.1.3 
name=vip_speed op monitor interval=5s --clone
 # pcs constraint location vip rule score=-INFINITY vip_speed lt 1 or 
not_defined vip_speed

Thank you for the support,
Tomer.


-Original Message-
From: Vladislav Bogdanov [mailto:bub...@hoster-ok.com] 
Sent: Monday, August 7, 2017 9:22 PM
To: users@clusterlabs.org
Subject: Re: [ClusterLabs] IPaddr2 RA and bonding

07.08.2017 20:39, Tomer Azran wrote:
> I don't want to use this approach since I don't want to be depend on pinging 
> to other host or couple of hosts.
> Is there any other solution?
> I'm thinking of writing a simple script that will take a bond down 
> using ifdown command when there are no slaves available and put it on 
> /sbin/ifdown-local

For the similar purpose I wrote and use this one - 
https://github.com/ClusterLabs/pacemaker/blob/master/extra/resources/ifspeed

It sets a node attribute on which other resources may depend via location 
constraint  - 
http://clusterlabs.org/doc/en-US/Pacemaker/1.1/html/Pacemaker_Explained/ch08.html#ch-rules

It is not installed by default, and that should probably be fixed.

That RA supports bonds (and bridges), and even tries to guess actual resulting 
bond speed based on a bond type. For load-balancing bonds like LACP (mode 4) 
one it uses coefficient of 0.8 (iirc) to reflect actual possible load via 
multiple links.

>
>
> -Original Message-
> From: Ken Gaillot [mailto:kgail...@redhat.com]
> Sent: Monday, August 7, 2017 7:14 PM
> To: Cluster Labs - All topics related to open-source clustering 
> welcomed <users@clusterlabs.org>
> Subject: Re: [ClusterLabs] IPaddr2 RA and bonding
>
> On Mon, 2017-08-07 at 10:02 +, Tomer Azran wrote:
>> Hello All,
>>
>>
>>
>> We are using CentOS 7.3 with pacemaker in order to create a cluster.
>>
>> Each cluster node ha a bonding interface consists of two nics.
>>
>> The cluster has an IPAddr2 resource configured like that:
>>
>>
>>
>> # pcs resource show cluster_vip
>>
>> Resource: cluster_vip (class=ocf provider=heartbeat type=IPaddr2)
>>
>>   Attributes: ip=192.168.1.3
>>
>>   Operations: start interval=0s timeout=20s (cluster_vip
>> -start-interval-0s)
>>
>>   stop interval=0s timeout=20s (cluster_vip
>> -stop-interval-0s)
>>
>>   monitor interval=30s (cluster_vip 
>> -monitor-interval-30s)
>>
>>
>>
>>
>>
>> We are running tests and want to simulate a state when the network 
>> links are down.
>>
>> We are pulling both network cables from the server.
>>
>>
>>
>> The problem is that the resource is not marked as failed, and the 
>> faulted node keep holding it and does not fail it over to the other 
>> node.
>>
>> I think that the problem is within the bond interface. The bond 
>> interface is marked as UP on the OS. It even can ping itself:
>>
>>
>>
>> # ip link show
>>
>> 2: eno3: <NO-CARRIER,BROADCAST,MULTICAST,SLAVE,UP> mtu 1500 qdisc mq 
>> master bond1 state DOWN mode DEFAULT qlen 1000
>>
>> link/ether 00:1e:67:f6:5a:8a brd ff:ff:ff:ff:ff:ff
>>
>> 3: eno4: <NO-CARRIER,BROADCAST,MULTICAST,SLAVE,UP> mtu 1500 qdisc mq 
>> master bond1 state DOWN mode DEFAULT qlen 1000
>>
>> link/ether 00:1e:67:f6:5a:8a brd ff:ff:ff:ff:ff:ff
>>
>> 9: bond1: <NO-CARRIER,BROADCAST,MULTICAST,MASTER,UP> mtu 1500 qdisc 
>> noqueue state DOWN mode DEFAULT qlen 1000
>>
>> link/ether 00:1e:67:f6:5a:8a brd ff:ff:ff:ff:ff:ff
>>
>>
>>
>> As far as I understand the IPaddr2 RA does not check the link state 
>> of the interface – What can be done?
>
> You are correct. The IP address itself *is* up, even if the link is down, and 
> it can be used locally on that host.
>
> If you want to monitor connectivity to other hosts, you have to do that 
> separately. The most common approach is to use the ocf:pacemaker:ping 
> resource. See:
>
> http://clusterlabs.or

Re: [ClusterLabs] IPaddr2 RA and bonding

2017-08-07 Thread Vladislav Bogdanov

07.08.2017 20:39, Tomer Azran wrote:

I don't want to use this approach since I don't want to be depend on pinging to 
other host or couple of hosts.
Is there any other solution?
I'm thinking of writing a simple script that will take a bond down using ifdown 
command when there are no slaves available and put it on /sbin/ifdown-local


For the similar purpose I wrote and use this one - 
https://github.com/ClusterLabs/pacemaker/blob/master/extra/resources/ifspeed


It sets a node attribute on which other resources may depend via 
location constraint  - 
http://clusterlabs.org/doc/en-US/Pacemaker/1.1/html/Pacemaker_Explained/ch08.html#ch-rules


It is not installed by default, and that should probably be fixed.

That RA supports bonds (and bridges), and even tries to guess actual 
resulting bond speed based on a bond type. For load-balancing bonds like 
LACP (mode 4) one it uses coefficient of 0.8 (iirc) to reflect actual 
possible load via multiple links.





-Original Message-
From: Ken Gaillot [mailto:kgail...@redhat.com]
Sent: Monday, August 7, 2017 7:14 PM
To: Cluster Labs - All topics related to open-source clustering welcomed 
<users@clusterlabs.org>
Subject: Re: [ClusterLabs] IPaddr2 RA and bonding

On Mon, 2017-08-07 at 10:02 +, Tomer Azran wrote:

Hello All,



We are using CentOS 7.3 with pacemaker in order to create a cluster.

Each cluster node ha a bonding interface consists of two nics.

The cluster has an IPAddr2 resource configured like that:



# pcs resource show cluster_vip

Resource: cluster_vip (class=ocf provider=heartbeat type=IPaddr2)

  Attributes: ip=192.168.1.3

  Operations: start interval=0s timeout=20s (cluster_vip
-start-interval-0s)

  stop interval=0s timeout=20s (cluster_vip
-stop-interval-0s)

  monitor interval=30s (cluster_vip -monitor-interval-30s)





We are running tests and want to simulate a state when the network
links are down.

We are pulling both network cables from the server.



The problem is that the resource is not marked as failed, and the
faulted node keep holding it and does not fail it over to the other
node.

I think that the problem is within the bond interface. The bond
interface is marked as UP on the OS. It even can ping itself:



# ip link show

2: eno3: <NO-CARRIER,BROADCAST,MULTICAST,SLAVE,UP> mtu 1500 qdisc mq
master bond1 state DOWN mode DEFAULT qlen 1000

link/ether 00:1e:67:f6:5a:8a brd ff:ff:ff:ff:ff:ff

3: eno4: <NO-CARRIER,BROADCAST,MULTICAST,SLAVE,UP> mtu 1500 qdisc mq
master bond1 state DOWN mode DEFAULT qlen 1000

link/ether 00:1e:67:f6:5a:8a brd ff:ff:ff:ff:ff:ff

9: bond1: <NO-CARRIER,BROADCAST,MULTICAST,MASTER,UP> mtu 1500 qdisc
noqueue state DOWN mode DEFAULT qlen 1000

link/ether 00:1e:67:f6:5a:8a brd ff:ff:ff:ff:ff:ff



As far as I understand the IPaddr2 RA does not check the link state of
the interface – What can be done?


You are correct. The IP address itself *is* up, even if the link is down, and 
it can be used locally on that host.

If you want to monitor connectivity to other hosts, you have to do that 
separately. The most common approach is to use the ocf:pacemaker:ping resource. 
See:

http://clusterlabs.org/doc/en-US/Pacemaker/1.1-pcs/html-single/Pacemaker_Explained/index.html#_moving_resources_due_to_connectivity_changes


BTW, I tried to find a solution on the bonding configuration which
disables the bond when no link is up, but I didn't find any.



Tomer.


___
Users mailing list: Users@clusterlabs.org
http://lists.clusterlabs.org/mailman/listinfo/users

Project Home: http://www.clusterlabs.org Getting started:
http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
Bugs: http://bugs.clusterlabs.org


--
Ken Gaillot <kgail...@redhat.com>





___
Users mailing list: Users@clusterlabs.org
http://lists.clusterlabs.org/mailman/listinfo/users

Project Home: http://www.clusterlabs.org
Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
Bugs: http://bugs.clusterlabs.org
___
Users mailing list: Users@clusterlabs.org
http://lists.clusterlabs.org/mailman/listinfo/users

Project Home: http://www.clusterlabs.org
Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
Bugs: http://bugs.clusterlabs.org




___
Users mailing list: Users@clusterlabs.org
http://lists.clusterlabs.org/mailman/listinfo/users

Project Home: http://www.clusterlabs.org
Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
Bugs: http://bugs.clusterlabs.org


Re: [ClusterLabs] IPaddr2 RA and bonding

2017-08-07 Thread Dimitri Maziuk
On 08/07/2017 12:39 PM, Tomer Azran wrote:

> I'm thinking of writing a simple script that will take a bond down using 
> ifdown command when there are no slaves available and put it on 
> /sbin/ifdown-local  

FWIW rolling monitoring functions into start/stop instead of using
separate mon daemon has always been on of my big gripes with the current
incarnation of linux ha stack.

I've a nic.monitor script here that's simply

> open( IN, "ethtool $nic 2>&1 |" ) or die "Cannot run ethtool $nic: 
> $OS_ERROR\n"; 
> 
> while( $line =  ) {   
>   
>  
> if( $line =~ /Link\s+detected:\s+yes$/ ) {
>   
>  
> $rc = 0;  
>   
>  
> last; 
>   
>  
> } 
>   
>  
> } 
>   
>  
> close( IN );  
>   
>  
> exit( $rc );

and it doesn't have to be a "resource agent" or a custom implementation
of ifdown, or anything.


-- 
Dimitri Maziuk
Programmer/sysadmin
BioMagResBank, UW-Madison -- http://www.bmrb.wisc.edu



signature.asc
Description: OpenPGP digital signature
___
Users mailing list: Users@clusterlabs.org
http://lists.clusterlabs.org/mailman/listinfo/users

Project Home: http://www.clusterlabs.org
Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
Bugs: http://bugs.clusterlabs.org


Re: [ClusterLabs] IPaddr2 RA and bonding

2017-08-07 Thread Tomer Azran
I don't want to use this approach since I don't want to be depend on pinging to 
other host or couple of hosts.
Is there any other solution?
I'm thinking of writing a simple script that will take a bond down using ifdown 
command when there are no slaves available and put it on /sbin/ifdown-local  


-Original Message-
From: Ken Gaillot [mailto:kgail...@redhat.com] 
Sent: Monday, August 7, 2017 7:14 PM
To: Cluster Labs - All topics related to open-source clustering welcomed 
<users@clusterlabs.org>
Subject: Re: [ClusterLabs] IPaddr2 RA and bonding

On Mon, 2017-08-07 at 10:02 +, Tomer Azran wrote:
> Hello All,
> 
>  
> 
> We are using CentOS 7.3 with pacemaker in order to create a cluster.
> 
> Each cluster node ha a bonding interface consists of two nics.
> 
> The cluster has an IPAddr2 resource configured like that:
> 
>  
> 
> # pcs resource show cluster_vip
> 
> Resource: cluster_vip (class=ocf provider=heartbeat type=IPaddr2)
> 
>   Attributes: ip=192.168.1.3
> 
>   Operations: start interval=0s timeout=20s (cluster_vip
> -start-interval-0s)
> 
>   stop interval=0s timeout=20s (cluster_vip
> -stop-interval-0s)
> 
>   monitor interval=30s (cluster_vip -monitor-interval-30s)
> 
>  
> 
>  
> 
> We are running tests and want to simulate a state when the network 
> links are down.
> 
> We are pulling both network cables from the server.
> 
>  
> 
> The problem is that the resource is not marked as failed, and the 
> faulted node keep holding it and does not fail it over to the other 
> node.
> 
> I think that the problem is within the bond interface. The bond 
> interface is marked as UP on the OS. It even can ping itself:
> 
>  
> 
> # ip link show
> 
> 2: eno3: <NO-CARRIER,BROADCAST,MULTICAST,SLAVE,UP> mtu 1500 qdisc mq 
> master bond1 state DOWN mode DEFAULT qlen 1000
> 
> link/ether 00:1e:67:f6:5a:8a brd ff:ff:ff:ff:ff:ff
> 
> 3: eno4: <NO-CARRIER,BROADCAST,MULTICAST,SLAVE,UP> mtu 1500 qdisc mq 
> master bond1 state DOWN mode DEFAULT qlen 1000
> 
> link/ether 00:1e:67:f6:5a:8a brd ff:ff:ff:ff:ff:ff
> 
> 9: bond1: <NO-CARRIER,BROADCAST,MULTICAST,MASTER,UP> mtu 1500 qdisc 
> noqueue state DOWN mode DEFAULT qlen 1000
> 
> link/ether 00:1e:67:f6:5a:8a brd ff:ff:ff:ff:ff:ff
> 
>  
> 
> As far as I understand the IPaddr2 RA does not check the link state of 
> the interface – What can be done?

You are correct. The IP address itself *is* up, even if the link is down, and 
it can be used locally on that host.

If you want to monitor connectivity to other hosts, you have to do that 
separately. The most common approach is to use the ocf:pacemaker:ping resource. 
See:

http://clusterlabs.org/doc/en-US/Pacemaker/1.1-pcs/html-single/Pacemaker_Explained/index.html#_moving_resources_due_to_connectivity_changes
 
> BTW, I tried to find a solution on the bonding configuration which 
> disables the bond when no link is up, but I didn't find any.
> 
>  
> 
> Tomer.
> 
> 
> ___
> Users mailing list: Users@clusterlabs.org 
> http://lists.clusterlabs.org/mailman/listinfo/users
> 
> Project Home: http://www.clusterlabs.org Getting started: 
> http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
> Bugs: http://bugs.clusterlabs.org

--
Ken Gaillot <kgail...@redhat.com>





___
Users mailing list: Users@clusterlabs.org
http://lists.clusterlabs.org/mailman/listinfo/users

Project Home: http://www.clusterlabs.org
Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
Bugs: http://bugs.clusterlabs.org
___
Users mailing list: Users@clusterlabs.org
http://lists.clusterlabs.org/mailman/listinfo/users

Project Home: http://www.clusterlabs.org
Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
Bugs: http://bugs.clusterlabs.org


Re: [ClusterLabs] IPaddr2 RA and bonding

2017-08-07 Thread Ken Gaillot
On Mon, 2017-08-07 at 10:02 +, Tomer Azran wrote:
> Hello All,
> 
>  
> 
> We are using CentOS 7.3 with pacemaker in order to create a cluster.
> 
> Each cluster node ha a bonding interface consists of two nics.
> 
> The cluster has an IPAddr2 resource configured like that:
> 
>  
> 
> # pcs resource show cluster_vip
> 
> Resource: cluster_vip (class=ocf provider=heartbeat type=IPaddr2)
> 
>   Attributes: ip=192.168.1.3
> 
>   Operations: start interval=0s timeout=20s (cluster_vip
> -start-interval-0s)
> 
>   stop interval=0s timeout=20s (cluster_vip
> -stop-interval-0s)
> 
>   monitor interval=30s (cluster_vip -monitor-interval-30s)
> 
>  
> 
>  
> 
> We are running tests and want to simulate a state when the network
> links are down.
> 
> We are pulling both network cables from the server.
> 
>  
> 
> The problem is that the resource is not marked as failed, and the
> faulted node keep holding it and does not fail it over to the other
> node.
> 
> I think that the problem is within the bond interface. The bond
> interface is marked as UP on the OS. It even can ping itself:
> 
>  
> 
> # ip link show
> 
> 2: eno3:  mtu 1500 qdisc mq
> master bond1 state DOWN mode DEFAULT qlen 1000
> 
> link/ether 00:1e:67:f6:5a:8a brd ff:ff:ff:ff:ff:ff
> 
> 3: eno4:  mtu 1500 qdisc mq
> master bond1 state DOWN mode DEFAULT qlen 1000
> 
> link/ether 00:1e:67:f6:5a:8a brd ff:ff:ff:ff:ff:ff
> 
> 9: bond1:  mtu 1500 qdisc
> noqueue state DOWN mode DEFAULT qlen 1000
> 
> link/ether 00:1e:67:f6:5a:8a brd ff:ff:ff:ff:ff:ff
> 
>  
> 
> As far as I understand the IPaddr2 RA does not check the link state of
> the interface – What can be done?

You are correct. The IP address itself *is* up, even if the link is
down, and it can be used locally on that host.

If you want to monitor connectivity to other hosts, you have to do that
separately. The most common approach is to use the ocf:pacemaker:ping
resource. See:

http://clusterlabs.org/doc/en-US/Pacemaker/1.1-pcs/html-single/Pacemaker_Explained/index.html#_moving_resources_due_to_connectivity_changes
 
> BTW, I tried to find a solution on the bonding configuration which
> disables the bond when no link is up, but I didn't find any.
> 
>  
> 
> Tomer.
> 
> 
> ___
> Users mailing list: Users@clusterlabs.org
> http://lists.clusterlabs.org/mailman/listinfo/users
> 
> Project Home: http://www.clusterlabs.org
> Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
> Bugs: http://bugs.clusterlabs.org

-- 
Ken Gaillot 





___
Users mailing list: Users@clusterlabs.org
http://lists.clusterlabs.org/mailman/listinfo/users

Project Home: http://www.clusterlabs.org
Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
Bugs: http://bugs.clusterlabs.org