Re: INADDR_ANY mode for udpu

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 04/05/2013, at 1:16 AM, Christine Caulfield <ccaulfie@xxxxxxxxxx> wrote:

> Here's a patch you might like to try

Doesn't seem to be sufficient I'm afraid...

May 07 00:56:04 debug   [MAIN  ] No configured qb.ipc_type. Using native ipc
May 07 00:56:04 info    [QB    ] server name: quorum
May 07 00:56:04 notice  [TOTEM ] adding new UDPU member {10.16.16.61}
CC: binding 2 to INADDR_ANY
May 07 00:56:04 notice  [TOTEM ] adding new UDPU member {10.16.16.62}
CC: binding 2 to INADDR_ANY
May 07 00:56:04 notice  [TOTEM ] adding new UDPU member {10.16.16.63}
CC: binding 2 to INADDR_ANY
May 07 00:56:04 notice  [TOTEM ] adding new UDPU member {10.16.16.64}
CC: binding 2 to INADDR_ANY
May 07 00:56:04 debug   [TOTEM ] entering GATHER state from 15.
May 07 00:56:06 debug   [TOTEM ] The consensus timeout expired.
May 07 00:56:06 debug   [TOTEM ] entering GATHER state from 3.
May 07 00:56:08 debug   [TOTEM ] The consensus timeout expired.
May 07 00:56:08 debug   [TOTEM ] entering GATHER state from 3.
May 07 00:56:10 debug   [TOTEM ] The consensus timeout expired.
May 07 00:56:10 debug   [TOTEM ] entering GATHER state from 3.
May 07 00:56:12 debug   [TOTEM ] The consensus timeout expired.
May 07 00:56:12 debug   [TOTEM ] entering GATHER state from 3.
May 07 00:56:13 warning [MAIN  ] Totem is unable to form a cluster because of an operating system or network fault. The most common cause of this message is that the local firewall is configured improperly.
May 07 00:56:14 warning [MAIN  ] Totem is unable to form a cluster because of an operating system or network fault. The most common cause of this message is that the local firewall is configured improperly.
May 07 00:56:15 debug   [TOTEM ] The consensus timeout expired.
May 07 00:56:15 debug   [TOTEM ] entering GATHER state from 3.
May 07 00:56:16 warning [MAIN  ] Totem is unable to form a cluster because of an operating system or network fault. The most common cause of this message is that the local firewall is configured improperly.

I confirmed iptables was NOT running or started at boot.
If you send me an ssh key I can give you access to these machines for testing.

> 
> Xx
> Chrissie
> 
> 
> On 01/03/13 15:26, Steven Dake wrote:
>> On 03/01/2013 05:26 AM, Jan Friesse wrote:
>>> Steven Dake napsal(a):
>>>> Hi,
>>>> 
>>>> Speaking with Angus who spoke with Andrew about the problem of getting
>>>> Corosync to run inside cloud guests, specially OpenStack, spawned this
>>>> conversation...
>>>> 
>>>> Currently the problem is that with UDPU mode and a bindnetaddr set, the
>>>> interface binding code first searches for the ip address, then once
>>>> found, determines the interface which that ip address is connected to.
>>>> 
>>>> This would work great if cloud guests had static ip addresses which they
>>>> are assigned, but in most cases this is not the case.  IP addresses are
>>>> assigned dynamically from an address pool.  This means on restart,
>>>> without detailed knowledge of the cloud deployment, it is not possible
>>>> to set a bindnetaddr up that works consistently. Further complicating
>>>> matters is that the target node list IP addresses change in the
>>>> non-floating-ip model.
>>>> 
>>>> One simple solution is to use the following config model:
>>>> 1. obtain a floating ip address from OpenStack
>>>> 2. configure the guest vms with the floating IPs
>>>> 3. hold floating IP for lifetime of application
>>>> 
>>>> The way floating IPs work (atleast in OpenStack) is that they create
>>>> iptables on the host to represent the ip address.  As a result, using
>>>> floating IPs with the current totemip behavior doesn't solve the problem
>>>> because totemip will still desire to bind to a specific address.
>>>> Unfortunately the floating IPs don't present a physical interface inside
>>>> the guest VM, but are handled externally by iptables.  This makes
>>>> binding impossible.
>>>> 
>>>> One solution to this problem is to add a new mode "inaddr_any" for
>>>> bindnetaddr.  Then when corosync starts, it will bind to INADDR_ANY
>>>> interface and the udpu traffic will be routed properly by iptables.
>>>> 
>>> I've found following problems with your solution:
>>> - Corosync is inserting bind IP address (system_from filed) of all rings
>>> to every packet. So it's needed to know WHAT IP address is in use. How
>>> we will find it with inaddr_any? (Ignoring fact that this field may be
>>> ignored because it should be used in multiring which is not implemented)
>>> - Because we don't know IP addresses, how we will fill udpu members
>>> list? How will corosync know what are other nodes to contact them?
>>> 
>> 
>> Totem trusts all "system_from" fields in each message header, meaning it
>> doesn't actually look at the receipt address from the kernel IP system.
>> One solution to this problem is to put the host's floating IP address in t
>> 
>> This all starts out at instance->my_id which is set in:
>> https://github.com/corosync/corosync/blob/needle-2.2/exec/totemsrp.c#L4549
>> 
>> Which comes from totemip.
>> 
>> Regards
>> -steve
>> 
>>>> Any thoughts on a simpler solution or on this solution?
>>>> 
>>> Actually I believe only way to achieve correct functionality will be
>>> much harder solution of proper OpenStack integration... Hopefully I'm
>>> wrong in there.
>>> 
>>>> Regards
>>>> -steve
>>> Regards,
>>>   Honza
>> 
>> _______________________________________________
>> discuss mailing list
>> discuss@xxxxxxxxxxxx
>> http://lists.corosync.org/mailman/listinfo/discuss
> 
> <corosync_inaddr_any.patch>_______________________________________________
> discuss mailing list
> discuss@xxxxxxxxxxxx
> http://lists.corosync.org/mailman/listinfo/discuss


_______________________________________________
discuss mailing list
discuss@xxxxxxxxxxxx
http://lists.corosync.org/mailman/listinfo/discuss




[Index of Archives]     [Linux Clusters]     [Corosync Project]     [Linux USB Devel]     [Linux Audio Users]     [Photo]     [Yosemite News]    [Yosemite Photos]    [Linux Kernel]     [Linux SCSI]     [X.Org]

  Powered by Linux