The audience will build and deploy an OPNFV Yardstick in a Docker container and run it against a live OpenStack installation. They will then run it again, against an EPA-enabled version to see the differences. Aspects of Yardstick, NFV usage, EPA and upcoming developments will be discussed.
About the speaker: Jim Chamings is a Sr. Software Engineer at Intel, working in the Datacenter Scale Engineering team. His focus is on enabling Cloud and SDN/NFV developers to get the maximum value out of their data centers.
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Use EPA for NFV & Test with OPNVF* Yardstick*
1. Intel® Confidential — INTERNAL USE ONLY
Use EPA for NFV & Test
with
OPNVF* Yardstick*
Jim Chamings, Intel DRD/Datacenter Scale Engineering
Out of the Box Network Developers Meetup, 9/20/2017
7. 7
OpenStack* Enhanced Platform Awareness (EPA)
• What is it? It’s a whole raft of code that’s been contributed (primarily to Nova*)
to enable cloud operators to direct workloads to specific compute node
capabilities.
• Some of the capabilities exposed through EPA:
• CPU features
• PCI passthrough
• Non-uniform Memory Access (NUMA) awareness
• Open vSwitch* (OVS*)-DPDK
• Many others
8. 8
Open Platform for Network Function Virtualization*
• What Is It? A Linux Foundation* project aimed at creating reference platforms
for NFV by providing common integration, deployment, and testing
frameworks.
• (What it’s not...)
• Currently the runnable portion is a set of four possible OpenStack* (or
Kubernetes*) distributions, called ‘Installers’.
• We’ll be using one called ‘Apex*’ today.
• It’s also a set of test frameworks, of which Yardstick* is one.
• Release code names: Brahamaputra, Colorado, Danube, Euphrates
9. 9
OPNFV* Yardstick*
• What Is It? A test framework, sample test cases, and test stimuli aimed at allowing
operators to verify infrastructure compliance when running VNF applications.
• Most test cases are ‘decomposed’ into the basics that VNFs depend on: network
throughput/latency tests, storage performance tests, CPUs, and so on.
• You’ll see familiar tools like ping, iperf, and netstat, as well as more complicated
test suites (and VNFs as well).
• Yardstick can work against any heat-enabled OpenStack* Cloud (not just OPNFV).
• Yardstick tests can also be written to work against preconfigured nodes—no cloud
required (current Network Services Benchmark is like this).
10. 10
Network Services Benchmarking
• NSB is a plugin for Yardstick*.
• "GOAL: Extend Yardstick to perform real-world VNFs and NFVi
characterization and benchmarking with repeatable and deterministic
methods.”
– http://docs.opnfv.org/en/stable-danube/submodules/yardstick/docs/testing/user/userguide/13-nsb-overview.html#abstract
• As of this writing, the test cases that have been added to NSB work with
predefined bare metal nodes.
• OpenStack* / Heat support is planned for the near-ish future.
• NSB development offers the promise that this demo’s title conveys.
14. 14
Building OPNFV-Apex
• There are four possible OPNFV* installers: Compass*, Apex*, Fuel*, and
Juju OPNFV Infrastructure Deployer(JOID)*.
• Apex offers a functional all-in-one virtual deployment that utilizes nested
KVM, which is why I chose it for this session.
• Currently deploys OpenStack* Newton release (10/2016).
• Instructions link:
• http://docs.opnfv.org/en/stable-danube/submodules/apex/docs/release/
installation/index.html#apex-installation
15. 15
Building OPNFV-Apex (cont’d.)
• All installers of OPNFV* offer ‘scenarios’. The scenarios are named in a
specific format:
• {virtual infrastructure manager}-{SDN}-{NFV technology}-{HA/No HA}
• Examples:
• os-odl_l2-fdio-ha = Openstack, OpenDayLight w/Layer-2 support,
include FD.io support, use High Availability deployment.
• os-nosdn-kvm-noha = Openstack, no SDN support, use KVM, no High
Availability (single controller).
• This is the scenario used in the demo environment.
16. 16
Building Yardstick*
• Running a Docker* container is the easiest way, by far!
• Configure it with --privileged so that report tools (InfluxDB*, Grafana*) can be
generated automatically.
• Configure to pass through OpenStack* credentials.
• Environment setup will build Cirros*, Ubuntu*, and Yardstick test images, and
upload them into the test cloud.
17. 17
Yardstick* Simple Ping
• Located in /home/opnfv/repos/yardstick/samples/ping.yaml
• Simple test scenario, generates heat template with two VMs, sets up a ping
between them.
• The ‘runner’ is the part of the framework that actually executes the test.
• Generates data which can be transformed into an HTML report (or fed to
dashboard application).
18. 18
Reconfigure for EPA
• The demo was configured with two identical compute node VMs. I altered one
of them to use OVS* with DPDK instead of the base deployment of OVS.
• In doing so, and by connecting the ‘server’ up to OpenStack* in the proper
fashion, I enabled the capability to schedule to it using EPA code.
• Specifically, the use of the ‘hw:mem_page_size=2MB’ extra key, applied to
a new flavor for launching VMs, ensures that VMs are launched with the
huge pages they need to access vhostuser interfaces on the DPDK-enabled
host.
• The actual details of doing this reconfiguration work are a bit beyond the
scope of this presentation and demo.
20. 20
Repeat Yardstick* Ping Test
• Reconfigure the .yaml file that defines the test to use the new flavor instead of
the old.
• Redirects test VMs to the new compute host.
• In my test environment, this resulted in a drop from 1-2ms to sub-1ms latency.
• Note that interfaces are being created as ‘dpdkvhostuser’ on the enabled
host, and how traffic is being directed via the EPA code.
22. 22
Summary: OpenStack* EPA testing with Yardstick*
• Testing out OPNFV* and Yardstick is relatively simple in a virtualized
environment, and worth a spin to see if it’s useful for NFV operators and
developers.
• Yardstick can also be deployed against existing orchestrators and nodes, to
test live environments.
• Test cases are growing rapidly, and soon basic VNFs will be easy to use as
well.
• Network Services Benchmarking will offer a comprehensive VNF
benchmarking framework in time. It’s worth getting familiar with it now.