Download - 4. open mano set up and usage
OPENMANO set up and
usage_
Network Innovation & Virtualisation
Global CTO Unit
9 Jun 2015
ALFONSO TIERNONetwork Virtualisation Initiative @ GCTO Unit
DISCOVER, DISRUPT, DELIVER
openMANO Requirements
• Requirements• Lightweight python program
• Can run on a VM w/ 1 core & 1 GB RAM
• External components • Compute nodes
(required in ‘NORMAL’ and ‘HOST-ONLY’ modes)
• Common storage folder. (NAS)
• Control plane interconnection
• No agents are needed, only ssh/libvirt access
• Openflow controler + switch(required in ‘NORMAL’ mode)
DISCOVER, DISRUPT, DELIVER
openMANO Installation
• Open source (apache2 license)• https://github.com/nfvlabs/openmano
• Script for automatic installation• wget
https://github.com/nfvlabs/openmano/raw/master/scri
pts/install-openmano.sh
• chmod +x install-openmano.sh
• sudo ./install-openmano.sh
DISCOVER, DISRUPT, DELIVER
openMANO Manual installation
• Required packages:• LAMP: Database (vim/mano), PHP and apache (gui)
• python and python packages (vim/mano)
• Source download• git clone https://github.com/nfvlabs/openmano.git openmano
• Database installation
• create database and openmano users
• load schema.sql
• Download & install FloodLight
• Put CLI clients at path (/home/user/bin)
• openmano, openvim
• Configure openmano-gui
• link /var/www/html
• Permissions for apache user, SElinux, firewalld
DISCOVER, DISRUPT, DELIVER
OpenFlow
Controller
(FloodLight)
WEB SERVER
(GUI)
openvim
openmano
openmano-
gui
OpenFlow switch
VM
Compute nodes
NETWORK
SCENARIOS
VNF
SDN
OpenMANO details
Network scenario
DISCOVER, DISRUPT, DELIVER
openVIM Configuration
• openvimd.cfg (yaml format):
• Northbound rest API parameters (http)• _host, _port, _admin_port: iface/port
• Openflow connection (of_controller)
• Database connection (db)• db_host /db_name: localhost /vim_db
• db_user / db_passwd: vim /vimpw
• Local image path at compute node. • image_path: /opt/VNF/images
• Control plane interfaces. Pre-
provisioned at compute host
are used for control plane connection• Compute node iface name, VLAN, speed
• Mode: normal, test, host only,
development
open
vim
API
DATA
BASE
open
manoDATA
BASE
open
mano-gui
OFC
DISCOVER, DISRUPT, DELIVER
openVIM Modes
4 modes to run openvim
MODE Purpose Hardware needed
normal regular operation compute nodes
openflow switch
host only deploy without openflow
controller/switch
compute nodes
development develop VNFs. It deploys
simulating “enhanced”
compute nodes
“low performance”
compute node
test test openMANO installation
and API
-
DISCOVER, DISRUPT, DELIVER
OpenFlow
Controller
(FloodLight)
Image
storage
openvim
OpenFlow switch
API
OFC
API
Compute nodes
OpenVIM modes: NORMAL
Data plane(e.g. 10Gbps)
sshDATA
BASE
Requires• Compute nodes (shared storage)
• OpenFlow controller & witch
Features• Real VM deployment
• Data plane connection
Purpose: Regular operation
DISCOVER, DISRUPT, DELIVER
OpenFlow
Controller
(FloodLight)
Image
storage
openvim
OpenFlow switch
API
OFC
API
Compute nodes
OpenVIM modes: HOST ONLY
Data plane(e.g. 10Gbps)
sshDATA
BASE
Requires• Compute nodes (shared storage)
Features• Real VM deployment
• NO data plane connection
Purpose: Testing without
openflow switch/controller
DISCOVER, DISRUPT, DELIVER
OpenFlow
Controller
(FloodLight)
Image
storage
openvim
OpenFlow switch
API
OFC
API
Compute nodes
OpenVIM modes: DEVELOPMENT
Data plane(e.g. 10Gbps)
sshDATA
BASE
Requires• Compute nodes (with fake
memory, cores, and
dataplane NICs)
Features• Real VM deployment:
• no huge pages > normal memory
• no Data plane > bridge connection
Purpose: Functional testing
in user workstation
DISCOVER, DISRUPT, DELIVER
OpenFlow
Controller
(FloodLight)
Image
storage
openvim
OpenFlow switch
API
OFC
API
Compute nodes
OpenVIM modes: TEST
Data plane(e.g. 10Gbps)
sshDATA
BASE
Requires• FAKE Compute nodes at DB
Features• NO Real VM deployment
Purpose: OpenMANO install
check
DISCOVER, DISRUPT, DELIVER
openMANO Configuration
• openmanod.cfg (yaml format):
• Northbound rest API parameters (http)• http_host: iface (by default, 0.0.0.0)
• http_port/ http_admin_port : 9090/9095
• Database connection (db)• db_host: localhost
• db_name: mano_db
• db_user: mano
• db_passwd: manopw
• Path to store VNF descriptions. For
debugging purposes• vnf_repository : ./vnfrepo
open
vim
API
DATA
BASE
open
manoDATA
BASE
open
mano-gui
OFC
DISCOVER, DISRUPT, DELIVER
openmano-GUI Configuration
• config.php (php format):
• Openmano API parameters (mano):• mano_domain, mano_port, mano_path
• Openmano tenant• mano_tenant: localhost
• Openmano database access (db)• db_server, db_name
• db_user, db_passwd
• Openvim database access (db_vim)• db_vim_server, db_vim_name
• db_vim_user, db_vim_passwd
open
vim
API
DATA
BASE
open
manoDATA
BASE
open
mano-gui
OFC
DISCOVER, DISRUPT, DELIVER
openvim Usage
hostcompute nodes
-up/-down
tenantproject
netnetworks
(data/control plane, external)
portVM interfaces
-create/-delete/-edit/-list
vmvirtual machines
-shutdown/-rebuild/-start/-reboot
image
hard disk image
flavorVM requirements
DISCOVER, DISRUPT, DELIVER
openmano Usage
vnfvirtual network function
tenantproject
-create/-delete/-edit/-list
datacenteropenvim/openstack
-attach/-detach/-net
scenarionetwork scenario
-deploy
instance-scenariodeployed scenario
DISCOVER, DISRUPT, DELIVER
openmano-gui Usage
vnfvnf catalogue list
physicalhost and vm list
scenarioscenario
instance-scenarios
scenario newscenario creation
DISCOVER, DISRUPT, DELIVER
DISCOVER, DISRUPT, DELIVER
Backup
DISCOVER, DISRUPT, DELIVER
OpenMANO architecture
DISCOVER, DISRUPT, DELIVER
DATA
BASE
host
thread
openflow
thread
openvimd
host
threadhost
thread
OpenFlow
Controller
FloodLight
Data PlaneControl Plane
North API
http
server
North API Admin
vim_dbvim
schema utilsvim_db
vim_db
thread
module
http
server
Images
storage
OPEN
VIM
External
components
OpenVIM architecture details
OpenFlow switch
DISCOVER, DISRUPT, DELIVER
DATA
BASE
MANO
openmano
d
North API
http
server
North API
Admin
nfvo_db
openmano
schemas
utilsnfvo
vim
connector
thread
module
http
server
openvim
OPEN
MANO
OpenMano architecture details
DISCOVER, DISRUPT, DELIVER
DATA
BASE
VIM
scenariovnfs
common
contex
menu
scenario_
utils
php
javascriptphysical
openmano
API
scenario_
new
config
get_hostsget_
scenariosget_vnfs
scenario_
id
DATA
BASE
MANO
OPEN
MANO
GUI
Openmano-gui architecture details
DISCOVER, DISRUPT, DELIVER
openmano
openvim
openmano
-gui
openMANO
Openmano vs ETSI
DISCOVER, DISRUPT, DELIVER
Avoiding unintended contention…
CPU
QPI
I/O
device
I/O
device
Core Core Core CoreCore
Core Core Core CoreCore
ME
MO
RY
I/O
device
I/O
device
CPU
I/O
device
I/O
device
Core Core Core CoreCore
Core Core Core CoreCore
I/O
device
I/O
device
ME
MO
RY
• Dedicated resource allocation:
• Memory: huge pages
• CPUs: not oversubscribed, isolated from host OS
• I/O devices: passthrough, SR-IOV
• Modern chipset families can even avoid cache memory contention
Host OS + Hypervisor VM 1 VM 2 VM 3Not used
DISCOVER, DISRUPT, DELIVER
host OS
VM guess OS
host OS
VM guess OS
Memory pagination: second-level address translation
Logical
Memory
(process)
“Physical”
Memory
(VM)
Physical
Memory
(host)
“Physical”
Memory
(VM)
Physical
Memory
(host)
Logical
Memory
(process)
Hardware virtualization accelerators:
• Extended/Nested page table (Intel VT-x EPT, AMD-V NPT)
Huge pagesNormal pages
DISCOVER, DISRUPT, DELIVER
Hypervisor & OS need to be bypassed for data plane apps
CLOUD COMPUTING NETWORK VIRTUALISATION
Hardware
OS + Hypervisor
Virtual HW
SW libsOS
Virtual machine 1
Virtual HW
SW libsOS
Virtual machine N…
Virtual
Apps
Virtual
Network
Functions
Virtual
Apps
Virtual
Network
Functions
Hardware
OS + Hypervisor
Virtual HW
OS
Virtual machine 1 Virtual machine N…
Virtual
Apps
Virtual
Apps
Virtual HW
OS
UPSTREAM
TRAFFIC
DOWNSTREAM
TRAFFIC
TRAFFICBYPASSED
DATA
PLANE IS
MANAGED
DIRECTLY
Hardware virtualization accelerators:
• DMA remap mechanism, direct hardware assigned to VM, IOTLB