Hi Dejan,

Thank you for your reply!

Dejan Muhamedagic wrote:
> Hi Kazunori-san,
> 
> On Tue, Aug 04, 2009 at 09:55:04AM +0900, Kazunori INOUE wrote:
>> Hi lists,
>>
>> I'm posting another patch for IPv6addr (changeset:cf020d609b57).
>> Its role is the following.
>>
>> Check whether the VIP is available _before_ assigning it in start
>> operation, and if the address is already available, exit with error.
> 
> How does this fare with starting an already started resource?

What do you mean by "an already started resource" here?
Is it started IPv6addr?
In that case, before IPv6addr assigns the address, it sends a ICMP
ECHO_REQUEST to the address which it is going to assign, and only
checks a result.
I think that there is no influence in the resource that has already 
started. (resource means the address which has been assigned with
IPv6addr.)

I'd like to explain the summary behavior of attached patch.

1) before SplitBrain occurs.
  NodeA                          NodeB
  =============================  ==================================
  IPv6addr: Started              IPv6addr: -
  * 2001:ffff::1:1 is assigned

2) when SplitBrain occurs.
  NodeA                          NodeB
  =============================  ==================================
  IPv6addr: Started              IPv6addr: starts 'start operation'
  * 2001:ffff::1:1 is assigned   * in start operation,
                                   before assigning address, send
                                   ECHO_REQUEST to 2001:ffff::1:1.
                                   in this case, since it receives
                                   ECHO_RESPONSE,
                                   address is NOT assigned.
3) after SplitBrain occurs.
  NodeA                          NodeB
  =============================  ==================================
  IPv6addr: Started              IPv6addr: 'start operation' failed
  * 2001:ffff::1:1 is assigned

The same address is never assigned on two nodes at the same time.
Did I misunderstand your question?

> 
>> This behavior is to take precautions against SplitBrain.
>> With the former behavior, when SplitBrain occurs,
>> though it's a fraction of a second,
>> same VIPs are assigned on two or more nodes at the same time.
> 
> That shouldn't be happening in configurations with proper
> fencing setup. Or am I missing something specific to IPv6addr?
> 
> Split brain problems should be taken care of on a different
> level, not by resource agents.
We think so, too.
but... behavior of the _present_ IPv6addr and Heartbeat is
   i) In start operation of IPv6addr, address is _assigned_
      with assign_addr6().
  ii) And then, the result is checked with is_addr6_available().
      When the same address has already been assigned in other
      nodes, the result becomes failure.
      -> IPv6addr returns OCF_ERR_GENERIC.
iii) Thereby, Heartbeat performs stop operation of IPv6addr,
      and address is _unassigned_.

When it turns out beforehand to assign same address,
I think that it is a needless assignment.

Regards,
Kazunori INOUE

> 
> Thanks,
> 
> Dejan
> 
>> Any comments and suggestions are really appreciated.
>>
>>
>> Best Regards,
>> Kazunori INOUE
> _______________________________________________________
> Linux-HA-Dev: [email protected]
> http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
> Home Page: http://linux-ha.org/
_______________________________________________________
Linux-HA-Dev: [email protected]
http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
Home Page: http://linux-ha.org/

Reply via email to