
gkotton at redhat
Apr 30, 2012, 9:46 PM
Post #6 of 6
(196 views)
Permalink
|
Thanks. On 05/01/2012 03:52 AM, Dan Wendlandt wrote: > Hi Gary, > > On Sat, Apr 28, 2012 at 10:39 PM, Gary Kotton <gkotton [at] redhat > <mailto:gkotton [at] redhat>> wrote: > >>> In general, there is also a thought that the VIF driver should >>> be really thin, and to the extent possible Quantum >>> plugin-specific details should be pulled out it. >>> > > I definitely agree with Sumit's comment. > > I understand what you have explained above. After giving it > additional thought I am still not 100% convinced that the > attachment needs to be done in a separate process, that is, the > quantum agent. I think that this is still at the VM management > level. At the moment I am only familiar with the openvswitch and > linuxbridge implementations - I need to understand the other > agents. I think that there are a number of use cases here: > 1. Adding or removing a vNic from the VM > 2. Moving a vNic from one network to another > 3. Updating the vNic status (down or disabled) > I think that the above are still at the VM management side, and in > most cases may have to be dealt with by the hypervisor to update > the VM attributes (all except #2). I think that if there was a > well defined API for the above operations then each plugin could > provide a class to implement this on the VIF driver side. > > > While the basic operations might be achieved by Nova as part of > vif-plugging, I think the likely list of things that plugin agents > will do in the future is much longer than this. It would include > implementing packet filtering, QoS, potentially creating tunnels to > other servers, setting monitoring policies, collecting packet > statistics, etc., all of which could need to be updated on demand > based on events other than a VM spinning up or adding a NIC. One of > the main goals of Quantum was to remove this networking complexity > from the Nova code base. I think you'd quickly converge on having all > of the functionality that we have in a quantum agent in the > nova-compute agent process, with the same overhead in terms of data > sharing, etc. > > The downside of the above is that the VM management will need to > know details about the network - for example the network tag - > this information could be passed as meta data for the vNic. In the > current implementation this is accessed by the quantum agent when > retrieving the details from the database. > The above may save a lot of cycles on the compute node, have less > traffic on the network and provide a solution for the scalability > problems discussed. > > > In my view, doing network function X within the nova-compute "agent" > instead of in a separate quantum "agent" doesn't really change > anything in terms of scale or efficiency. nova-compute grabs all of > its data from a centralized database, just the same way the a quantum > plugin agent does. The thing I've been pushing for in terms of agent > performance to to have agents gets notifications via a queue service, > so they can avoid DB polling. That would mean that ovs agents acts > just like the nova-compute agent, which also gets notifications via a > queue service, then looks up data in the DB. > > To me, having a separate nova-compute "agent" and quantum "agent" > provides a clean separation of concerns, as nova doesn't need to be > change whenever someone wants to introduce new networking > functionality. This is a clear win for both the nova + quantum teams, > so I think there would have to be a really strong technical cost to > having separate agents to justify merging. Happy to hear arguments on > that front though :) > > Thanks, > > Dan > > Thanks > Gary > >>> Thanks, >>> >>> ~Sumit. >>> >>> *From:*netstack-bounces+snaiksat=cisco.com [at] lists >>> <mailto:netstack-bounces+snaiksat=cisco.com [at] lists> >>> [mailto:netstack-bounces+snaiksat=cisco.com [at] lists] >>> *On Behalf Of *Gary Kotton >>> *Sent:* Wednesday, April 25, 2012 12:55 AM >>> *To:* netstack [at] lists >>> <mailto:netstack [at] lists> >>> *Subject:* [Netstack] Quantum agents >>> >>> Hi, >>> Sorry for not being able to attend the IRC meeting - it was in >>> the middle of the night :) >>> >>> Whilst I was working on the integration of Quantum into oVirt I >>> encountered a number of issues and challenges regarding the >>> agents. Some of the issues were discussed in yesterdays meeting >>> namely: >>> 1. High availability >>> 2. Scalability >>> >>> *High Availability* >>> I discovered that when the agent was unable to access the >>> database it would terminate on a exception. This has been >>> addressed partially by https://review.openstack.org/#/c/6744/ >>> (thanks to Maru Newby for the comments - updated, tested >>> manullay for linuxbridge and ovs). I saw that Maru opened a bug >>> regarding agent unit tests (kudos). I have tested the ovs agent >>> and the linux bridge agent manually. >>> I have yet to update the RYU agent (Isaku Yamahata suggested >>> that we speak about this at the meeting). I think that we need >>> to address this across the board and not only in the agents, but >>> also in the plugins. The database access should be done via a >>> common class that takes the connectivity into account. I do not >>> feel that this is part of the bug fix above it is more of a >>> system wide fix. >>> >>> *Scalability* >>> This is a recurring topic. I understand that from the summit the >>> idea of using AMQP came up. This still requires a "PUSH" from >>> the plugin to the specific agent. After dealing with the agents >>> above I wonder if we actually need the agents? Let me try and >>> elaborate: when a VM is deployed the VIF plugin (I think that >>> that is the terminology) creates the tap device, sets it to up >>> and in the case of OVS notifies the integration bridge of the >>> tap device. In the background the agent is running. When the >>> agent discovers that the tap device exists and it matches a >>> attachment from the database it "plugs" the device in and >>> updates the database with the port status. >>> Why not have the VIF plugin also do the interface plugin? This >>> can and may solve a large number of scalability issues >>> mentioned. This will be moving part of the logic from the agent >>> to the VIF plugin. >>> It would be intersting to know the rationale of the current >>> implementation. >>> >>> Thanks >>> Gary >>> >> > > > -- > Mailing list: https://launchpad.net/~netstack > <https://launchpad.net/%7Enetstack> > Post to : netstack [at] lists > <mailto:netstack [at] lists> > Unsubscribe : https://launchpad.net/~netstack > <https://launchpad.net/%7Enetstack> > More help : https://help.launchpad.net/ListHelp > > > > > -- > ~~~~~~~~~~~~~~~~~~~~~~~~~~~ > Dan Wendlandt > Nicira, Inc: www.nicira.com <http://www.nicira.com> > twitter: danwendlandt > ~~~~~~~~~~~~~~~~~~~~~~~~~~~ >
|