Upload
david-lapsley
View
13.805
Download
0
Embed Size (px)
DESCRIPTION
Presented at March 8 Essex Installfest Boston.
Citation preview
Quantum + DevstackTutorial
Dave [email protected]
Outline
• Overall Architecture• Instance Launching Internals• Devstack in 30s• Single Node Development Deployment (OVS)• Multi-Node Development Deployment (OVS)• Tips and Tricks
Nova/Quantum Architecture
Adapted from http://ken.pepple.info/openstack/2011/04/22/openstack-nova-architecture/
Instance Launching InternalsAPI server receives run_instance command from user.
1. api server relays message to cloud controller (authentication).
2. controller sends message to scheduler3. scheduler casts message to a
“random” host and requests instance start
4. compute worker on host grabs the message
5. compute worker needs IP to launch new instance so it sends a message to the network controller (5,6,7,8).
Compute worker continues with spawning a new instance.
Adapted from http://www.laurentluce.com/posts/openstack-nova-internals-of-instance-launching/
Devstack in 30s
• Quickstart– http://devstack.org– git clone https://github.com/openstack-dev/devstack.git
cd devstack && ./stack.sh• Important files:– localrc: node settings– stackrc: git repo and branch information, image download
location– tools/info.sh: capture system information, git
project/branch/commit, package version information, local node settings
Single Node Devstack + Quantum Development Deployment (OVS plugin)
Quantum Images, Patches, and Scripts
• Default devstack vm images currently don’t support multiple interfaces (patch available at: https://bugs.launchpad.net/devstack/+bug/940693)
• quantum.sh script is useful for automating your quantum setups and testing. Currently under review at: https://review.openstack.org/#change,4665
• OVS Plugin provides some really nice features but requires VLAN support for multi-node in basic non-tunneled mode. If developing in virtualized environment, make sure your ethernet drivers/hypervisor don’t strip tagging:– Virtual Box works fine (with virtio-net driver – haven’t tested others
yet)
Demo logical layout
localrc and versions# HostsHOST_IP=192.168.56.3
# ServicesENABLED_SERVICES=g-api,g-reg,key,n-api,n-crt,n-obj,n-cpu,n-net,n-vol,n-sch,n-novnc,n-xvnc,n-cauth,horizon,mysql,rabbit,quantum,q-svc,q-agt
# NetworksFIXED_NETWORK_SIZE=4096FIXED_RANGE=10.4.128.0/20 FLAT_INTERFACE=eth1 FLOATING_RANGE=172.16.142.128/25 # MiscLOGFILE=/home/dlapsley/logs/stack.log MULTI_HOST=0OFFLINE=1SERVICE_TOKEN=xyzpdqlazydogSYSLOG=True UPLOAD_LEGACY_TTY=1
MYSQL_PASSWORD=nova RABBIT_PASSWORD=nova ADMIN_PASSWORD=novaRECLONE=noSERVICE_PASSWORD=nova DEFAULT_IMAGE_NAME=tty-quantum
git|glance|master[c6a626e]git|horizon|master[eb72487]git|keystone|master[48dc5be]git|nova|master[67eb98d]git|noVNC|master[22b9a75]git|python-keystoneclient|master[ca76785]git|python-novaclient|master[01873d0]git|python-quantumclient|master[f6d5087]git|quantum|master[a59c832]os|vendor=Ubuntuos|release=11.10
Single Node Demo
Multi-Node Devstack + Quantum(OVS plugin)
Quantum Images, Patches, and Scripts
• As for single node development deployment• Devstack patches under submission or to be
submitted• Patches will also be available on Quantum
Wiki next week:– http://wiki.openstack.org/Quantum
localrcs (same version info as before)# CONTROLLER NODE
# HostsHOST_IP=192.168.56.3
# ServicesENABLED_SERVICES=g-api,g-reg,key,n-api,n-crt,n-obj,n-cpu,n-net,n-vol,n-sch,n-novnc,n-xvnc,n-cauth,horizon,mysql,rabbit,quantum,q-svc,q-agt
# NetworksFIXED_NETWORK_SIZE=4096FIXED_RANGE=10.4.128.0/20 FLAT_INTERFACE=eth1 FLOATING_RANGE=172.16.142.128/25 # MiscLOGFILE=/home/dlapsley/logs/stack.log MULTI_HOST=0OFFLINE=1SERVICE_TOKEN=xyzpdqlazydogSYSLOG=True UPLOAD_LEGACY_TTY=1
MYSQL_PASSWORD=nova RABBIT_PASSWORD=nova ADMIN_PASSWORD=novaRECLONE=noSERVICE_PASSWORD=nova DEFAULT_IMAGE_NAME=tty-quantum
# COMPUTE NODE
# HostsHOST_IP=192.168.56.2Q_HOST=192.168.56.3GLANCE_HOSTPORT=192.168.56.3:9292KEYSTONE_HOST=192.168.56.3MYSQL_HOST=192.168.56.3RABBIT_HOST=192.168.56.3SYSLOG_HOST=192.168.56.3
# ServicesENABLED_SERVICES=n-cpu,n-sch,quantum,q-agt
# NetworksFIXED_NETWORK_SIZE=4096FIXED_RANGE=10.4.128.0/20FLAT_INTERFACE=eth1FLOATING_RANGE=172.16.142.128/25
# MiscLOGFILE=/home/dlapsley/logs/stack.logMULTI_HOST=0OFFLINE=1SERVICE_TOKEN=xyzpdqlazydogSYSLOG=TrueUPLOAD_LEGACY_TTY=1
MYSQL_PASSWORD=novaRABBIT_PASSWORD=novaADMIN_PASSWORD=novaRECLONE=noSERVICE_PASSWORD=novaDEFAULT_IMAGE_NAME=tty-quantum
Multi-node Demo
Tips and Tricks Summary• devstack is your friend• Default images currently don’t support multiple interfaces (patch available at:
https://bugs.launchpad.net/devstack/+bug/940693)• devstack/tools/info.sh is also your friend
– Version information is critical for reproducible environment (particularly during periods of high code churn)
• devstack needs some minor patching to work with multi-node quantum (to be submitted for review next week)
• quantum.sh script is useful for automating your quantum setups and testing. Currently under review at: https://review.openstack.org/#change,4665
• OVS Plugin provides some really nice features but requires VLAN support for multi-node in basic non-tunneled mode. If developing in virtualized environment, make sure your ethernet drivers/hypervisor don’t strip tagging:– Virtual Box works fine (with virtio-net driver – haven’t tested others yet)