First attempt was made few months ago. I installed DevStack and immediately run into multiple problems. Basically, it did not work. It was also annoying that it used to take about 5+ minutes to start and never persisted its own state, so I did want to spend time playing with it. I wanted to see the real OpenStack in action.
I began reading official documentation and quickly realized that it is not written for beginners. Then I found the brilliant article “Installing OpenStack Icehouse on Ubuntu in 10 minutes”. This was the first glimpse on what is really OpenStack. I managed to install it, add new images and even start a new instance via console. It was so easy except network did not work. I played a day or two and then switched to something else until the last week.
The last week was a good time try it again, so I followed the same steps and it did not work. I experienced at least three known issues and realized that the installation script was designed for Icehouse release. It was a nice chance to understand the whole process step by step process and try to install Juno from the scratch manually.
After reading multiple blog and articles, watching youtube videos, the BEST blog “OpenStack Juno on Ubuntu 14.04 LTS and 14.10 - Single Machine Setup” came to my sight.
Basically, OpenStack consists of the few main components: Keystone - authentication, Glance - image store, Nova - compute, or I would call it a heart, Cinder - volume manager, Horizon - dashboard, and the most complicated component Neutron - networking service. 95% of all difficulties will be related to it because it is not very trivial and very flexible in network modelling. You can do simple networking just using Nova, but it is limited and outdated way.
The main problem when installing OpenStack on a single machine is that Neutron requires three networks. Internal network where interprocess communication happens, Data network where instances talk to each other and External network - to expose services to consumers. Internal and Data networks have to be isolated and secured, so I will explain few basic things which I done to run Juno on my computer with a single network card. (You can skip these steps and go straight to conclusion).
I think Ubuntu is not ready for IPv6. I tried to run it with two internet providers - Time Warner and ATT. As well on two different computers with different Ubuntu released and network card drivers. Network is not reliable when IPv6 is enabled. Hope it is just my problem and you will not experience it, but I have to mention it.
To disable add the following line to /etc/sysctl.conf and run “sudo sysctl -p” to apply the changes.
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Install Open vSwitch
Required to create network bridges.
Design the network
This picture show what we are going to do.
eth0 is your primary network interface, br-ex and br-eth1 are virtual bridges for Internal and Data networks.
ovs-vsctl add-br br-eth0
NEXT STEP WILL DROP YOUR SSH CONNECTION, DO NOT DO IT IF YOU DO NOT HAVE DIRECT KEYBOARD CONNECTION TO THE COMPUTER
ovs-vsctl add-port br-eth0 eth0
ip link set br-eth0 promisc on
ip link add proxy-br-eth1 type veth peer name eth1-br-proxy
ip link add proxy-br-ex type veth peer name ex-br-proxy
ovs-vsctl add-br br-eth1
ovs-vsctl add-br br-ex
ovs-vsctl add-port br-eth1 eth1-br-proxy
ovs-vsctl add-port br-ex ex-br-proxy
ovs-vsctl add-port br-eth0 proxy-br-eth1
ovs-vsctl add-port br-eth0 proxy-br-ex
ip link set eth1-br-proxy up promisc on
ip link set ex-br-proxy up promisc on
ip link set proxy-br-eth1 up promisc on
ip link set proxy-br-ex up promisc on
As a result you should get something like this: sudo ovs-vsctl show
Update network interfaces
Edit /etc/network/interfaces file to set the static IP. It simply does not work with floating IP. Here is example of my config file:
iface lo inet loopback
# The primary network interface
iface eth0 inet manual
iface br-eth0 inet static
Now you are ready to follow regular OpenStack installation steps.
Skip this step for now until you install Neutron. Then update /etc/neutron/plugins/ml2/ml2_conf.ini file and set
I recommend to read the book “OpenStack beginner’s guide for Ubuntu” http://blog.pinlabs.in/wp-content/uploa
In general, I like OpenStack. It is logical, reliable product. It survived my many attempts to kill it even by sudden computer shutdown (tried at least 10 times). It always restores state successfully and quickly - less than 30 seconds. I have to mention also that Neutron is very advance and powerful tool for network modelling as soon as you are become familiar with it.
What I do not like is error messages. They are not always clear. I spent numerous hours to figure out the root cause of instance startup failure. Horizon was showing error but the logs even in debug mode were completely fine. Not a single footprint of error.
Also it requires advance networking knowledge. It is not the product “click and go”. You have to understand what you are doing.
IMHO I afraid that if you set up OpenStack and that decide to upgrade it year later, it will be painful. Hope is not a true because I am saying it just on my limited personal experience.
PS: Not sure whether it is bug or feature but if you add virtual partition and then map Cinder volume on it, then if the partition is removed, you cannot delete the volume from console. Juno throws an error.