[CI] nested virtualization support in OpenStack CI

Guo, Ruijing ruijing.guo at intel.com
Wed Apr 10 01:24:16 UTC 2019

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.

-----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

More information about the openstack-discuss mailing list