In the remainder of this book, we will be installing and configuring various OpenStack components. Therefore, let's look at the architecture that we will follow in the remainder of the book and what we need to have handy.
While we can set up all the components of the OpenStack on a single server, it will not be close to any real-life scenario, so taking this into consideration, we will do a minimal distributed installation. Since this book is intended to be a beginner's guide, we shall not bore ourselves with cloud architecture questions.
As we are aware by now that OpenStack is made up of individual components, we need to be careful in selecting the appropriate services. As we have already seen in the dependency maps table, some services are sort of mandatory and the others are optional depending on the scenario. Too many services and you complicate the design, too little and you constrain it; so it is imperative that we strike a good balance. In our case, we will stick to the basic services:
In the optional section, we will choose Neutron. This should help us in getting a pretty robust cloud with the essential features rolled out in no time.
We will be installing these components on virtual machines for our learning purposes; we will use four different virtual machines to run our cloud:
The following diagram shows the kind of services that will be hosted in each of the different nodes in the rest of the book. We will identify the servers with the previously mentioned names:
The controller node will house the manager services for all the different OpenStack components such as message queue, Keystone, image service, Nova management, and Neutron management.
The network node server will house Neutron components such as the DHCP Agent, the L3 Agent, and Open vSwitch. This node will provide networking to all the guest VMs that spin up in the OpenStack environment.
We will use Linux Ubuntu 14.04 as the operating system of choice to install and configure the different components. All the previously mentioned nodes should be running Ubuntu.
Since we are going to use Neutron, the following network architecture needs to be followed:
The following diagram shows the different connections in our network. The compute node is connected to all the networks except the external network. It is to be noted that the storage and the tunnel network can be completely internal networks. The management network is primarily the one that needs to be accessible from the LAN of the company, as this will be the network that the users will need to reach in order to access the self-service portal:
For the purpose of learning, let's set up the network ranges that we will use in our installation. The following is the table of the network range:
Network Name |
IP Range |
---|---|
Management Network |
172.22.6.0/24 |
Tunnel Network |
10.0.0.0/24 |
Storage Network |
192.168.10.0/24 |
External Network |
192.168.2.0/24 |
Network ranges
Since we are using this in the lab network, the external network is assumed and will need to be changed depending on the routing rules.