[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)
> 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
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.
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.
> 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.