NFV in the Embedded World: Yocto Project and OpenStack ...€¦ · 1 © 2014 Wind River NFV in the...

Preview:

Citation preview

1

© 2014 Wind River

NFV in the Embedded World:

Yocto Project

and

OpenStack

Jason Wessel - Product Architect for Wind River Linux

- Kernel.org KDB/KGDB Maintainer

August 22nd, 2014

2

© 2014 Wind River

Google, Microsoft and Apple…

Rackspace, Amazon…

Private Cloud for IT guys

The embedded Cloud?

Cloud this, Cloud that

3

© 2014 Wind River

Why the embedded cloud?

4

© 2014 Wind River

The Cloud of Clouds Orchestration

Redundancy

5

© 2014 Wind River

Embedded NFV

Telco

Radio Access networks

Real Time VMs

Consolidation and management of embedded equipment -> VMs

6

© 2014 Wind River

Obvious Choice

+

=

7

© 2014 Wind River

meta-cloud-services

Choose branch wisely…

havana -> “Not dead yet!”

icehouse -> “latest“

juno/master -> “unstable”

8

© 2014 Wind River

How can you build it? mkdir –p /space/jw/yocto ; cd /space/jw/yocto

# Clone away

git clone git://git.yoctoproject.org/meta-cloud-services

git clone git://git.openembedded.org/meta-openembedded

git clone --branch icehouse git://git.yoctoproject.org/meta-virtualization

git clone git://git.openembedded.org/openembedded-core oe-core

cd oe-core

git clone git://git.openembedded.org/bitbake

At this point ~ 5 min

9

© 2014 Wind River

Build controller (1 of 2) mkdir –p /space/jw/yocto/oe-core/controller

cd /space/jw/yocto/oe-core/controller

. ../oe-init-build-env

# Edit conf/local.conf to use: echo ‘MACHINE = “qemux86-64” >> conf/local.conf # Edit conf/bblayers.conf to include other layers

BBLAYERS ?= " \

/space/jw/yocto/oe-core/meta \

/space/jw/yocto/meta-virtualization \

/space/jw/yocto/meta-cloud-services \

/space/jw/yocto/meta-cloud-services/meta-openstack-controller-deploy \

/space/jw/yocto/meta-cloud-services/meta-openstack \

/space/jw/yocto/meta-cloud-services/meta-openstack-qemu \

/space/jw/yocto/meta-cloud-services/meta-openstack \

/space/jw/yocto/meta-openembedded/meta-oe \

/space/jw/yocto/meta-openembedded/meta-networking \

/space/jw/yocto/meta-openembedded/meta-filesystems \

/space/jw/yocto/meta-openembedded/meta-python \

/space/jw/yocto/meta-openembedded/meta-webserver \

/space/jw/yocto/meta-openembedded/meta-ruby"

10

© 2014 Wind River

Build controller (2 of 2) # Build it

bitbake openstack-image-controller

~ 1-4 hours depending on internet speed and processor power

11

© 2014 Wind River

Boot Controller with QEMU

runqemu qemux86-64 \

openstack-image-controller \

kvm nographic \

qemuparams="-m 4096"

12

© 2014 Wind River

Build Compute(1 of 2) mkdir –p /space/jw/yocto/oe-core/compute

cd /space/jw/yocto/oe-core/compute

. ../oe-init-build-env

ln -s ../../controller/build/downloads .

ln -s ../../controller/build/sstate-cache .

# Edit conf/local.conf to use: echo ‘MACHINE = “qemux86-64” >> conf/local.conf # Edit conf/bblayers.conf to include other layers BBLAYERS ?= " \

/space/jw/yocto/oe-core/meta \

/space/jw/yocto/meta-virtualization \

/space/jw/yocto/meta-cloud-services \

/space/jw/yocto/meta-cloud-services/meta-openstack-compute-deploy \

/space/jw/yocto/meta-cloud-services/meta-openstack \

/space/jw/yocto/meta-cloud-services/meta-openstack-qemu \

/space/jw/yocto/meta-cloud-services/meta-openstack \

/space/jw/yocto/meta-openembedded/meta-oe \

/space/jw/yocto/meta-openembedded/meta-networking \

/space/jw/yocto/meta-openembedded/meta-filesystems \

/space/jw/yocto/meta-openembedded/meta-python \

/space/jw/yocto/meta-openembedded/meta-webserver \

/space/jw/yocto/meta-openembedded/meta-ruby"

13

© 2014 Wind River

Build compute (2 of 2) # Build it

bitbake openstack-image-compute

< 15 min (because of caching)

14

© 2014 Wind River

Boot Compute node with QEMU

runqemu qemux86-64 \

openstack-image-compute \

kvm nographic \

qemuparams="-m 4096 -smp 4"

“Free as in beer”

15

© 2014 Wind River

What does it look like? Yocto Project + icehouse OpenStack

https://www.youtube.com/watch?v=tpf0XtP3HDE

Play

Video

16

© 2014 Wind River

Load an image wget http://download.cirros-cloud.net/0.3.2/cirros-0.3.2-x86_64-disk.img

scp cirros-0.3.2-x86_64-disk.img root@192.168.7.2:

ssh root@192.168.7.2

. /etc/nova/openrc

glance image-create --name myFirstImage --is-public true \

--container-format bare --disk-format qcow2 \

--file /home/root/cirros-0.3.2-x86_64-disk.img

17

© 2014 Wind River

Create instance in horizon Web browser: http://192.168.7.2:8080/

Login: admin

Password: password

Click Project tab -> Network tab -> Networks

Click: Create Network (upper right)

Name a network: testnet (next)

Create a subnet name: 192-168 Network address: 192.168.0.0/24 (next, next)

Click Project tab -> Compute -> Instances

Click: Launch Instance (upper right)

Instance Name: test1

Instance Boot Source: Boot from image

Image Name: myFirstImage

Click: Launch

19

© 2014 Wind River

Guest to your liking

20

© 2014 Wind River

What would you build?

Five 9’s

Cloud

21

© 2014 Wind River

Availability Downtime

per year

Downtime

per month

Downtime

Per week

99% (2 9’s) 3.65 days 7.20 hours 1.68 hours

99.9% (3 9’s) 17.52 hours 43.8 minutes 10.1 minutes

99.99% (4 9’s) 52.56 minutes 4.32 minutes 1.1 minutes

99.999 (5 9’s) 5.26 minutes 25.9 seconds 6.05 seconds

99.9999 (6 9’s) 31.5 seconds 2.59 seconds 0.605 seconds

Carrier Grade

Typical

Open Stack

Carrier Grade

22

© 2014 Wind River

Internet

L2 Switch

Controller

Node A Storage

Node

Compute

Node Controller

Node B Storage

Node Storage

Node

Compute

Node Compute

Node HA

Compute Node

HA Platform, Vswitch,

and Services

APP

VM

APP

VM

RT

VM

Wire rate 40GB

L3 forwarding in a VM

23

© 2014 Wind River

Recommended