How Tos, OpenStack

Three-Node OpenStack Juno Deployed on Public Cloud – Part 1

Inspired by this blog post and the one to follow, both written by IBMer Michael J Fork, I have deployed a 3 node OpenStack environment on IBM’s SoftLayer public cloud.

Is this blog post for me?

This blog post is part 1 in a series describing in detail how to establish this deployment successfully. If you are using a different cloud provider, other Linux distribution than Ubuntu or a later/earlier OpenStack release than Juno you’ll still find this blog post helpful. This post is a complementary step-by-step instructions to the official OpenStack Juno installation guide for Ubuntu 14.04. and doesn’t meant to replace it. The exact files I have used to establish a running environment can be found on my GitHub account. My deployment is:

  • Three-node architecture with OpenStack Networking (Neutron)
  • Ubuntu Server 14.04
  • External network is defined as Flat network and Tunnel network is GRE based.
  • No Cinder is installed. Using boot images to start instances.

Now let’s get down to business!

Choosing Your Hardware

The guide describes a very minimal hardware requirements for a proof-of-concept environment using several CirrOS (a lightweight Linux distribution designed for testing clouds like OpenStack):

  • Controller Node: 1 processor, 2 GB memory, and 5 GB storage
  • Network Node: 1 processor, 512 MB memory, and 5 GB storage
  • Compute Node: 1 processor, 2 GB memory, and 10 GB storage

I have chosen to have hardware that is stronger than the above, having both the controller and network nodes as virtual servers and compute node, having hardware acceleration, as a bare metal server. In this way I enabled KVM virtualization rather than, the weaker, QEMU virtualization for compute. See “To finalize installation” on this page if you are not familiar with the difference.

Controller and Network Nodes virtual servers came with the following hardware profile:

  • Computing Instance: 2 x 2.0 GHz Cores
  • RAM: 4 GB
  • First Disk: 100 GB (LOCAL)
  • Operating System: Ubuntu Linux 14.04 LTS Trusty Tahr – Minimal Install (64 bit)

Network Options

  • Uplink Port Speeds: 1 Gbps Public & Private Network Uplinks
  • Private Network Port: 1 Gbps Private Uplink
  • Public Network Port: 1 Gbps Public Uplink
  • Public Bandwidth: 5000 GB Bandwidth
  • Primary IPv6 Addresses: 1 IPv6 Address

Compute Node bare metal server came with the following hardware profile:

  • Server: Single Processor Quad Core Xeon 1270 – 3.40GHz (Sandy Bridge) – 1 x 8MB cache w/HT
  • Operating System: Ubuntu Linux 14.04 LTS Trusty Tahr – Minimal Install (64 bit)
  • RAM: 8 GB DDR3 1333
  • Disk Controller: Non-RAID
  • First Hard Drive: 500 GB SATA II

Network Options

  • Public Bandwidth: 20000 GB Bandwidth
  • Uplink Port Speeds: 1 Gbps Public & Private Network Uplinks
  • Private Network Port: 1 Gbps Private Uplink
  • Public Network Port: 1 Gbps Public Uplink
  • Primary IPv6 Addresses: 1 IPv6 Address

Overall the hardware felt very responsive to what I did so choose your hardware base on your needs and budget.

Dealing with Networking

As mentioned above my deployment is Three-node architecture with OpenStack Networking (Neutron). This deployment requires three networks:

  • Management – a network segment used for administration, not accessible to the public Internet. Basically, this is how all the OpenStack components are talking with each other.
  • Tunnel – a network segment used for instance traffic tunnels between compute nodes and the network node. The tunnel enables instances (VMs or containers) to communicate with one another.
  • External  – a network segment typically used for instance Internet access.

My cloud provider, SoftLayer, provides two main networks private and public. I have used the private network (isolated and unmetered VLAN network) to run both the management and tunnel network. Basically, both the management and tunnel networks were using the same IP and interface and not separated as described in the official guide. For the external network, I have chosen to deploy a 16 addresses of Portable Private Subnet (using the SoftLayer portal and Networks -> IP Management -> Subnets and “Order IP Addresses”). These addresses will be used for the future instance’s access to the outside of OpenStack cloud network. Note that if you need an internet access for your instance you must deploy a Portable Public Subnet. The former would still run on the cloud provider private network and therefore be unmetered while the latter would run on the public network (metered access to public internet).

Network Chart 1

If you are using a public cloud you’ll need to provide domain and host names to your nodes. I have used simply:

  • controller.openstack.local
  • network.openstack.local
  • compute.openstack.local

Screen Shot 2015-03-15 at 9.28.09 AM

Now that we have all the logistics sorted out we can start to configure our nodes. In the next post of this series I will guide you how to configure your Controller, Compute and Network nodes.

Advertisements

3 thoughts on “Three-Node OpenStack Juno Deployed on Public Cloud – Part 1

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s