Site icon UnixArena

Openstack Manual Installation – Part 1

This series of the article is going to provide the step by step method to deploy each component of Openstack cloud Computing platform. As you all know that Openstack is an open source cloud computing platform which support all type of cloud environments. This project aims for simple implementation, massive scalability, and a rich set of features. Cloud computing experts from around the world contribute to the project. Openstack consists of several key projects that you install separately but that work together depending on your cloud needs. These projects include Compute, Identity Service, Networking, Image Service, Block Storage, Object Storage, Telemetry, Orchestration, and Database. In this article series ,we will be seeing “4 node Openstack Architecture” planning and implementation.

In the previous openstack series , we have seen the one of the easiest method to deploy the openstack using the devstack method (Beginners Guide).

Please go through the below slides to know the various Openstack services functionality.

Openstack services
Openstack services

 

Openstack Implementation Plan:

 

Most of the Openstack’s production deployment will follow the four-node architecture for Openstack services . Here is the functionality of each node.

Nodes Openstack Services Description
Node 1 Openstack Controller
(Horizon,Glance,
RabbitMQ,Keystone)
Identity service, Image Service, management portions of Compute and Networking, Networking plug-in, and the dashboard. It also includes supporting services such as a database, Message Broker , and Network Time Protocol (NTP).  Optionally , it can also provide  Database Service, Orchestration, and Telemetry.  These components provides the additional features to  your environment.
Node 2 Compute (Nova) The compute node runs the hypervisor portion of Compute, which operates tenant virtual machines or instances. By default Compute uses KVM as the hypervisor. The compute node also runs the Networking plug-in and layer 2 agent which operate tenant networks and implement security groups. You can also run more than one compute node to provide the more compute resources to the openstack controller node.
Node 3 Networking (Neutron) The network node runs the Networking plug-in, layer 2 agent, and several layer 3 agents that provision and operate tenant networks. Layer 2 services include provisioning of virtual networks and tunnels. Layer 3 services include routing, NAT , and DHCP. This node also handles external (internet) connectivity for tenant virtual machines or instances.
Node 4 Storage (Swift & Cinder) This storage node is responsible to provide the Block Storage, Object Storage.

 

Openstack 4 Node Architecture

 

Let’s Build the Nodes for openstack:

 

  1. Install Ubuntu 14.04 64 bit servers on 4  systems  [either in Physical machines or within a VMware/Virtual box VMs] with “openssh-server” package installed.

 

2. Configure each node like below. (Hostname , IP etc..)

Nodes HostName IP Address Functionality
Node 1 OSCTRL-UA 192.168.203.130 Controller
Node 2 OSCMP-UA 192.168.203.131 Compute
Node 3 OSNWT-UA 192.168.203.132 Network
Node 4 OSSTG-UA 192.168.203.133 Storage

 

3.  Add the below entry on all the hosts for name resolution.

#Openstack Controller Node
192.168.203.130 OSCTRL-UA 

#Openstack Compute Nodes
192.168.203.131 OSCMP-UA

#Openstack Network (Neutron)
192.168.203.132 OSNWT-UA

#Openstack Strorage (swift & Cinder)
192.168.203.133 OSSTG-UA

Comment out or remove “127.0.0.1  localhost” entries from all the node’s host file.

Hosts entry for DNS resolution

 

4.  Configure the second interface as the instance tunnels interface (eth1) on compute node & network nodes.

Tunnel IP’s:

On Compute Node:

 root@OSCMP-UA:~# ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 00:0c:29:06:e2:a3
          inet addr:192.168.204.9  Bcast:192.168.204.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe06:e2a3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:237 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:22485 (22.4 KB)  TX bytes:964 (964.0 B)

root@OSCMP-UA:~#

On Network Node:

root@OSNWT-UA:~# ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 00:0c:29:7d:8e:a3
          inet addr:192.168.204.10  Bcast:192.168.204.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe7d:8ea3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:247 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:23425 (23.4 KB)  TX bytes:708 (708.0 B)

root@OSNWT-UA:~#

 

5. The external interface uses a special configuration without an IP address assigned to it. Configure the third interface as the external interface on network node. (eth2)

Add the below entry in /etc/network/interfaces and save it .

root@OSNWT-UA:~# tail -6  /etc/network/interfaces
#External Network
auto  eth2
iface eth2 inet manual
up ip link set dev $IFACE up
down ip link set dev $IFACE down
root@OSNWT-UA:~#

Bring up the interface eth2.

root@OSNWT-UA:~# ifup eth2
root@OSNWT-UA:~# ifconfig eth2
eth2      Link encap:Ethernet  HWaddr 00:0c:29:7d:8e:ad
          inet6 addr: fe80::20c:29ff:fe7d:8ead/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:244 (244.0 B)  TX bytes:508 (508.0 B)

root@OSNWT-UA:~#

 

6. Configure the controller node as NTP reference server and any additional nodes to set their time from the controller node.

# apt-get install ntp
root@OSSTG-UA:~# cat /etc/ntp.conf |grep server |grep -v "#"
server OSCTRL-UA
root@OSSTG-UA:~#

root@OSCMP-UA:~# cat /etc/ntp.conf |grep server |grep -v "#"
server OSCTRL-UA
root@OSCMP-UA:~#


root@OSNWT-UA:~# cat /etc/ntp.conf |grep server |grep -v "#"
server OSCTRL-UA
root@OSNWT-UA:~#

In the above output, we can see that all the openstack nodes are using controller node(OSCTRL-UA) as NTP server. The “ntpq -p” command confirms that all the nodes are in sync with Openstack controller node.

root@OSSTG-UA:~# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*OSCTRL-UA       91.189.94.4      3 u   99  128  377    0.282  -15.576   4.977
root@OSSTG-UA:~#


root@OSCMP-UA:~# cat /etc/ntp.conf |grep server |grep -v "#"
server OSCTRL-UA
root@OSCMP-UA:~# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*OSCTRL-UA       91.189.94.4      3 u   32  128  377    0.237   -5.282   2.664
root@OSCMP-UA:~#


root@OSNWT-UA:~# cat /etc/ntp.conf |grep server |grep -v "#"
server OSCTRL-UA
root@OSNWT-UA:~# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*OSCTRL-UA       91.189.94.4      3 u  113  128  377    0.471  -22.105   4.027
root@OSNWT-UA:~#

 

Openstack Controller node is syncing time with internet sources. (By default). No additional configuration required.

root@OSCTRL-UA:~# cat /etc/ntp.conf |grep server |grep -v "#"
server 0.ubuntu.pool.ntp.org
server 1.ubuntu.pool.ntp.org
server 2.ubuntu.pool.ntp.org
server 3.ubuntu.pool.ntp.org
server ntp.ubuntu.com
root@OSCTRL-UA:~# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
-ns02.hns.net.in 142.66.101.13    2 u   78  128  377   76.966   35.500  31.104
+dnspun.net4indi 120.88.46.10     3 u  119  128  377   83.678    7.101   3.390
-123.108.200.124 123.108.225.6    3 u  127  128  377   75.094   21.590   7.696
+113.30.137.34   212.26.18.41     2 u    8  128  377   77.814   -2.678   6.067
*juniperberry.ca 193.79.237.14    2 u   25  128  377  197.141    5.911   5.170
root@OSCTRL-UA:~#

 

Choose the Openstack Version:

 

Ubuntu’s 14.04 TLS version default Openstack release is icehouse but this is EOL support. So we will deploy Openstack Juno release on 14.04 later  ,we will upgrade to the latest version kilo.

To make the Ubuntu 14.04 to support the Openstack Juno packages, you need to perform the below steps on all the nodes. (Controller, Compute, network & storage)

root@OSNWT-UA:~# apt-get install ubuntu-cloud-keyring
root@OSNWT-UA:~# echo "deb http://ubuntu-cloud.archive.canonical.com/ubuntu" "trusty-updates/juno main" > /etc/apt/sources.list.d/cloudarchive-juno.list
root@OSNWT-UA:~# apt-get update
root@OSNWT-UA:~# apt-get dist-upgrade

 

 

Summary:

 

Openstack Manual Installation will be quite lengthy process. If you are new to Openstack , Please check out Beginners Guide. (devstack Method to simply the installation)

 

Share it ! Be Sociable !!!

Exit mobile version