[CI] nested virtualization support in OpenStack CI
On Wed, 2019-04-10 at 01:24 +0000, Guo, Ruijing wrote:
> Right. I am planning to add ovsdpdk in networking-ovn like networking-ovn-tempest-dsvm-ovs-master. We can leverage
> networking-ovsdpdk to build ovsdpdk packages.
> The only issue is that qemu without kvm can be crash in vhostuser interface. So I want to have nested virtualization.
well dpdk only need preallocated mapped shared file descirptor backed memoery.
as i siad i belive you can use the nova file_backed memory feature to achive that but i have not tested it.
im also tinking of filing a nova spec to enable the qemu mttcg backend which woudl allow us to do testing
with hugepages and cpu pinning.
ovs-dpdk does not need kvm and nested virt.
the only requirement on nested virt come form how nova does hugepage supprot.
> -----Original Message-----
> From: Sean Mooney [mailto:smooney at redhat.com]
> Sent: Tuesday, April 9, 2019 9:05 PM
> To: Clark Boylan <cboylan at sapwetik.org>; openstack-discuss at lists.openstack.org; Guo, Ruijing <ruijing.guo at intel.com>
> Subject: Re: [CI] nested virtualization support in OpenStack CI
> On Mon, 2019-04-08 at 19:05 -0400, Clark Boylan wrote:
> > On Mon, Apr 8, 2019, at 3:54 PM, Guo, Ruijing wrote:
> > > Hi, Clark
> > >
> > > I am trying to add ovsdpdk ci job in neutron. Ovsdpdk need nested
> > > virtualization.
> > >
> > Can you describe this requirement in a bit more detail? Looking at
> > docs it appears you need to have large pages. Maybe a "picture" will help too:
> > Workload VM
> > (cirros or similar small VM running under
> > emulation or virtualized if nested virt is enabled)
> > |
> > V
> > OpenStack Infra Test Node ("middle VM")
> > This is where ovsdpdk runs right? And this requires large pages?
> so ovs-dpdk requires hugepage memeory to be allocated to fucntion but that by its self does not require nested virt.
> nova on the other hand does require kvm to allow vms to be spawned with hugepages because not enabled partial cpu
> pinning when hugepages are enabled and qemu does not support per cpu cpu pinning without kvm or the mttcg backend.
> in the special case of ovs-dpdk i have been meaning to test an alternitive way for deploying with ovs-dpdk but to date
> i have not had time. about 2 years ago i had a memeber of my team extend libvirt to allow the creation of qemu guests
> with file backed memory. about a year ago redhat extended nova to support that.
> it should technically be possibel to run ovs-dpdk with hugepages and the cirros guests with file backed memory to do
> testing without nested virt.
> related to this i finished setting up my own personal ci to do limited ovs-dpdk and numa/nfv testing with nested virt.
> tempest-dpdk https://logs.seanmooney.info/73/650573/1/seans-nfv-ci/tempest-dpdk/fec9044/
> tempest-pinning https://logs.seanmooney.info/73/650573/1/seans-nfv-ci/tempest-pinning/1939971/
> i am planning to exprement to see if i can run some of those nested virt jobs upstream or via openlab in the furutre.
> it shoudl be possible to test with ovn too but i have not tried that pesonally yet the job definitions currently live
> in https://review.seanmooney.info/plugins/gitiles/test/+/master so perhaps that ill server as a starting point for
> people wanting to create similar jobs
> the networking-ovs-dpdk devstack plugin compiles and deploys ovs-dpdk form source which also installs but does not
> configure or start ovn since its part of the ovs repo.
> with some tweeks to the networking-ovn plugin it would probably be simple enough to use both plugins to provide the
> desired versions of ovn,ovs and dpdk.
> with all that said the intel nvf ci was created to test ovs-dpdk integration with openstack and also some other nfv
> features like cpu pinning. https://wiki.openstack.org/w/index.php?title=ThirdPartySystems/Intel_NFV_CI
> this ci was also intended to test odl and ovn with ovs dpdk at somepoint in the future
> alther that never happend. i woudl suggest reaching out to <timothy.gresham at intel.com>, <openstack-nfv-ci at intel.com>
> to see if it could be extended to do ovn testing in the absence of upstream support.
> > |
> > V
> > Hypervisor (managed by our cloud providers)
> > Are we not able to do large pages with emulated workload VMs? Also can
> > we do large pages on the Workload VM if the Infra Test Node isn't
> > configured for them? If the infra test node isn't configured for them do we also need support for large pages from
> > the Hypervisor?
> > If we can do large pages with emulated workload VMs and the hypervisor
> > isn't required to support that we should be able to configure large
> > pages on the Infra Test Node and boot emulated guests, but my guess is that at least one of these things won't work.
> > In any case specific details on what is required and where it is required will be useful.
> > Clark