[openstack-dev] [Quantum] continuing todays discussion about the l3 agents
gong yong sheng
gongysh at linux.vnet.ibm.com
Sat Dec 1 01:31:31 UTC 2012
On 12/01/2012 07:49 AM, Vinay Bannai wrote:
> Gary and Mark,
>
> You brought up the issue of scaling horizontally and vertically in
> your earlier email. In the case of horizontal scaling, I would agree
> that it would have to be based on the "scheduler" approach proposed by
> Gong and Nachi.
>
> On the issue of vertical scaling (I am using the DHCP redundancy as an
> example), I think it would be good to base our discussions on the
> various methods that have been discussed and do pro/con analysis in
> terms of scale, performance and other such metrics.
>
> - Split scope DHCP (two or more servers split the IP address and there
> is no overlap)
> pros: simple
> cons: wastes IP addresses,
>
> - Active/Standby model (might have run VRRP or hearbeats to dictate
> who is active)
> pros: load evenly shared
> cons: needs shared knowledge of address assignments,
> need hearbeats or VRRP to keep track of failovers
another one is the IP address waste. we need one VIP, and 2+ more
address for VRRP servers. ( we can use dhcp server's ip if we don't want
to do load balancing behind the VRRP servers)
another one is it will make system complicated.
>
> - LB method (use load balancer to fan out to multiple dhcp servers)
> pros: scales very well
> cons: the lb becomes the single point of failure,
> the lease assignments needs to be shared between the dhcp
> servers
>
LB method will also wast ip address. First we at lease need a VIP
address. then we will need more dhcp servers running for one network.
If we need to VRRP the VIP, we will need 2+ more addresses.
another one is it will make system complicated.
> I see that the DHCP agent and the quantum server communicate using
> RPC. Is the plan to leave it alone or migrate it towards something
> like AMQP based server in the future when the "scheduler" stuff is
> implemented.
I am not very clear your point. But current RPC is on AMQP.
>
> Vinay
>
>
> On Wed, Nov 28, 2012 at 8:03 AM, Mark McClain
> <mark.mcclain at dreamhost.com <mailto:mark.mcclain at dreamhost.com>> wrote:
>
>
> On Nov 28, 2012, at 8:03 AM, gong yong sheng
> <gongysh at linux.vnet.ibm.com <mailto:gongysh at linux.vnet.ibm.com>>
> wrote:
>
> > On 11/28/2012 08:11 AM, Mark McClain wrote:
> >> On Nov 27, 2012, at 6:33 PM, gong yong sheng
> <gongysh at linux.vnet.ibm.com <mailto:gongysh at linux.vnet.ibm.com>>
> wrote:
> >>
> >> Just wanted to clarify two items:
> >>
> >>>> At the moment all of the dhcp agents receive all of the
> updates. I do not see why we need the quantum service to indicate
> which agent runs where. This will change the manner in which the
> dhcp agents work.
> >>> No. currently, we can run only one dhcp agent since we are
> using a topic queue for notification.
> >> You are correct. There is a bug in the underlying Oslo RPC
> implementation that sets the topic and queue names to be same
> value. I didn't get a clear explanation of this problem until
> today and will have to figure out a fix to oslo.
> >>
> >>> And one problem with multiple agents serving the same ip is:
> >>> we will have more than one agents want to update the ip's
> leasetime now and than.
> >> This is not a problem. The DHCP protocol was designed for
> multiple servers on a network. When a client accepts a lease, the
> server that offered the accepted lease will be the only process
> attempting to update the lease for that port. The other DHCP
> instances will not do anything, so there won't be any chance for a
> conflict. Also, when a client renews it sends a unicast message
> to that previous DHCP server and so there will only be one writer
> in this scenario too. Additionally, we don't have to worry about
> conflicting assignments because the dhcp agents use the same
> static allocations from the Quantum database.
> > I mean dhcp agent is trying to update leasetime to quantum
> server. If we have more than one dhcp agents, this will cause
> confusion.
> > def update_lease(self, network_id, ip_address, time_remaining):
> > try:
> > self.plugin_rpc.update_lease_expiration(network_id, ip_address,
> > time_remaining)
> > except:
> > self.needs_resync = True
> > LOG.exception(_('Unable to update lease'))
> > I think it is our dhcp agent's defect. Why does our dhcp agent
> need the lease time? all the IPs are managed in our quantum
> server, there is not need for dynamic ip management in dhcp server
> managed by dhcp agent.
>
> There cannot be confusion. The dhcp client selects only one
> server to accept a lease, so only one agent will update this field
> at a time. (See RFC2131 section 4.3.2 for protocol specifics).
> The dnsmasq allocation database is static in Quantum's setup, so
> the lease renewal needs to propagate to the Quantum Server. The
> Quantum server then uses the lease time to avoid allocating IP
> addresses before the lease has expired. In Quantum, we add an
> additional restriction that expired allocations are not reclaimed
> until the associated port has been deleted as well.
>
> mark
>
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> <mailto:OpenStack-dev at lists.openstack.org>
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
>
>
> --
> Vinay Bannai
> Email: vbannai at gmail.com <mailto:vbannai at gmail.com>
> Google Voice: 415 938 7576
>
>
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20121201/e297b959/attachment.html>
More information about the OpenStack-dev
mailing list