Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Topics
6/3/2013
Jeffery Padgett (Gap Inc Infrastructure)
@jbpadgett
Cool Geeks DevOps Meetup
OpenStack Install
There is lots of information on the web over the past few
years about the OpenStack Project.
There are also many folks and organizations that have made
the OpenStack install easy by rolling up web served shell
scripts, cookbooks, manifests, and even distros for getting
your own OpenStack.
Assumptions
Most of the instructions, scripts, and distros for Openstack installs on the
web have to make some assumptions about you:
Assumption #1:
You are a typical impatient DEV that wants it up NOW. Figure out details later.
Assumption #2:
You are an OpenStack N00b and cant comprehend what the heck you are getting into yet.
Assumption #3:
You are playing around in a lab or local dev environment using VMs on vagrant or similar.
Assumption #4:
You have smart engineers and network folks to help you out when you intend to use OpenStack on
real hardware with real users. In other words, you know enough to dig DEEP on complex topics.
What is Missing?
With all these nice people and organizations on the web making
OpenStack easy to install, there is something critical missing:
Lets break down all the areas networking will affect your install:
Hypervisor Networking
L2 & L3
OpenStack
network
Network
switch
Models
configs
Hypervisor
Networking
Hypervisor Networking
There are several types of servers in OpenStack. Typically they are all
deployed as hypervisors (though not required for all). They all should be
configured with as robust a network design as possible.
Controller Nodes
Compute Nodes
Network Nodes
Hypervisor Networking
OpenStack Networks and Physical Hardware
Here is the reference architecture taken straight from the OpenStack documentation.
Hypervisor Networking
Controller Nodes
Controller nodes are the brains of an OpenStack deployment. They
communicate with all OpenStack nodes.
Networking issues that are important here are:
No floating IPs (NAT) here since all IPs dished out are public.
OpenStack Networking
Architecture Models
No floating IPs (NAT) here since all IPs dished out are public.
OpenStack Networking
Architecture Models
A VM can performs NAT & Routing for private nets to public nets.
The provider still provides a physical router for all public IPs.
Single & Multiple Flat Networking
Architecture
Mixed Flat & Private Network
Provider-Router+Private-Networks
Per-Tenant-Routers+Private-Networks
OpenStack Networking
Architecture Model Example
Multiple Flat Network Architecture Model EXAMPLE
A simple reference OpenStack network architecture for a typical
private company with their own servers and network equipment.
NOTES:
For a channel bonding interface to be valid, the kernel module must be loaded.
To ensure that the module is loaded when the channel bonding interface is brought up, create a new file as root
named bonding.conf in the /etc/modprobe.d/ directory.
Note that you can name this file anything you like as long as it ends with a .conf extension.
Parameters for the bonding kernel module must be specified as a space-separated list in the
BONDING_OPTS="bonding parameters" directive in the ifcfg-bondN interface file.
Do not specify options for the bonding device in /etc/modprobe.d/bonding.conf, or in the deprecated
/etc/modprobe.conf file.
Physical NICs
ifcfg-em1
ifcfg-em2
Bond Interfaces
ifcfg-bond0
ifcfg-bond0.100
ifcfg-bond0.101
Bridge Interfaces
ifcfg-br100
ifcfg-br101
Physical Interfaces Examples
ifcfg-em1
DEVICE="em1"
MASTER="bond0"
SLAVE="yes"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE="Ethernet"
BOOTPROTO="none"
IPV6INIT="no"
HWADDR=00:00:00:00:00:00"
ifcfg-em2
DEVICE="em2"
MASTER="bond0"
SLAVE="yes"
NM_CONTROLLED="no"
ONBOOT="yes"
TYPE="Ethernet"
BOOTPROTO="none"
IPV6INIT="no"
HWADDR=00:00:00:00:00:00"
Bond Interfaces Examples
ifcfg-bond0
DEVICE="bond0"
BOOTPROTO="none"
ONBOOT="yes"
TYPE="Ethernet"
BONDING_OPTS="mode=4 miimon=100"
IPV6INIT="no"
MTU="9000
ifcfg-bond0.100
DEVICE="bond0.100"
ONBOOT="yes"
VLAN="yes"
TYPE="Ethernet"
BOOTPROTO="static"
BRIDGE="br100
ifcfg-bond0.101
DEVICE="bond0.101"
ONBOOT="yes"
VLAN="yes"
TYPE="Ethernet"
BOOTPROTO="static"
BRIDGE="br101
Bridge Interfaces Examples
ifcfg-br100
DEVICE="br100"
ONBOOT="yes"
VLAN="yes"
TYPE="Bridge"
SLAVE="bond0.100"
HOSTNAME=yoda1.dagobah.com"
IPADDR="10.10.100.99"
NETMASK="255.255.255.0"
DNS1=8.8.8.8"
GATEWAY="10.10.100.1"
IPV6INIT="no"
MTU="1500
ifcfg-br101
DEVICE="br101"
ONBOOT="yes"
VLAN="yes"
TYPE="Bridge"
SLAVE="bond0.101"
IPADDR="10.10.101.99"
NETMASK="255.255.255.0"
DNS1=8.8.8.8"
GATEWAY="10.10.101.1"
IPV6INIT="no"
MTU="1500"
Thanks!
@jbpadgett
http://Padgeblog.com