Re: INADDR_ANY mode for udpu

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

 



On 02/14/2013 11:26 PM, Fabio M. Di Nitto wrote:
On 02/15/2013 02:15 AM, Steven Dake wrote:
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.

Any thoughts on a simpler solution or on this solution?

Sounds ok to me. Let's wait Honza to come back and comment. Do you
already have a patch for this to happen?

No patch and it looks pretty painful because the binding code is a mess. Seems ok to rework this part of the code though, because the binding code IMO needs a rewrite to deal with the localhost ifdown case.

Regards
-steve

Fabio

_______________________________________________
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