Re: INADDR_ANY mode for udpu

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

 



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?


> 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


[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