Upload
others
View
6
Download
0
Embed Size (px)
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 [email protected]:
. /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
18
© 2014 Wind River
Community
https://lists.yoctoproject.org/listinfo/meta-virtualization
IRC: Freenode
#yocto
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