<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">Hi,<br>
<br>
2017. 03. 30. 2:10 keltezéssel, Sterdnot Shaken írta:<br>
</div>
<blockquote
cite="mid:CALkHJzFSpKeF_Z-FGGKUiRJwG3LMNavP+ZLAZ4=sWPezr+fbfA@mail.gmail.com"
type="cite">b) why are they different times?<br>
</blockquote>
Just an idea, but it used to happen because of the underlaying
switches CAM table expiration (it can be set on indrustrial devices,
in our brocade, it's 300 sec by default).<br>
<br>
For this problem to solve, vrrp routers has to broadcast gratuitous
ARPs with _only_ the virtual MAC and the IP (kind of force to the
switch, to learn the new state).<br>
Check out this: <a class="moz-txt-link-freetext" href="https://tools.ietf.org/html/rfc3768#section-8.2">https://tools.ietf.org/html/rfc3768#section-8.2</a><br>
<br>
In neutron side, there is a config option in neutron.conf [DEFAULT]
section, which is "send_arp_for_ha". This is an integer, which used
to send as many ARPs, that you have configured.<br>
<br>
BTW, we have this corrected, but sometimes it takes a while for
neutron to came up, and make things works (we use Mitaka) because if
i understand right, the l3 agent, which handle the state changes on
a single thread now, and they introduced a <code class="docutils
literal" style="color: rgb(62, 67, 73); font-style: normal;
font-variant-ligatures: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans: 2;
text-align: left; text-indent: 0px; text-transform: none;
white-space: normal; widows: 2; word-spacing: 0px;
-webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
255);"><span class="pre">ha_keepalived_state_change_server_threads</span></code><span
style="color: rgb(62, 67, 73); font-family: Arial, sans-serif;
font-size: 14.4px; font-style: normal; font-variant-ligatures:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; orphans: 2; text-align: left; text-indent:
0px; text-transform: none; white-space: normal; widows: 2;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
background-color: rgb(255, 255, 255); display: inline !important;
float: none;"><span class="Apple-converted-space"> </span></span>
option in Newton, which is: <br>
<br>
"A new option ha_keepalived_state_change_server_threads has been
added to configure the number of concurrent threads spawned for
keepalived server connection requests. Higher values increase the
CPU load on the agent nodes. The default value is half of the number
of CPUs present on the node. This allows operators to tune the
number of threads to suit their environment. With more threads,
simultaneous requests for multiple HA routers state change can be
handled faster."<br>
<br>
Source:
<a class="moz-txt-link-freetext" href="https://docs.openstack.org/releasenotes/neutron/newton.html#upgrade-notes">https://docs.openstack.org/releasenotes/neutron/newton.html#upgrade-notes</a><br>
<br>
My another (and last) guess is the reboot/boot process of your
network node... how did you do it? (I mean, gracefull, or a pure
reset?) It may can add a few seconds too, since gracefull shutdown
service stopping dependecies could create a few secs, where some of
the required services not running... (just an example from our boot
process, as i saw after a bit debugging: <br>
- Start OVS (without any dynamic data)<br>
- Start L3 agent (and it's start keepalived)<br>
- New keepalived instance connect to OVS HA network (and L3 agent
start to push the dynamic config to OVS)<br>
- Until they HA network are up and running on both network side
(keepalived daemons can talk to each other) the 2 neutron has
master-master state on the same subnet<br>
- When they can talk, one of them goes to backup (and the
gratuitous ARP came in again, but maybe just mix things up, since
the few secs of master-master state mix things up on the CAM table
of your switch(es))<br>
<br>
Hope that gives you some clue, where to start debugging :)<br>
<br>
Regards: <br>
Peter<br>
</body>
</html>