OpenStack Architecture & Design Consideration
In this Module we will learn the OpenStack Architecture and Design Consideration so that we can see what OpenStack services are and how it is designed to create owe own cloud environment.
Open Stack is the Orchestration solution and mostly used in Private Cloud deployment from medium to large enterprise infrastructure. Today in cloud computing environment which provide infrastructure services like Software as Service (SaaS), Platform as Service (Paas) and Infrastructure as Service (IaaS) and with the help of OpenStack we can move from traditional datacenter Model to next generation Cloud Computing model where administrators and Operators can deliver fully automated infrastructure with in a minute.
With This Model we can provide programmable, Scalable and multi-Tenant next generation Datacenter and will be able to provide all SaaS, PaaS, and Iaas feature to clients.
The Course Pedagogy will help you to learn the following concepts on OpenStack Section
- Learn OpenStack clustering and it’s Services
- Learn OpenStack compute and its Services
- What are OpenStack Storage Services
- Learn about OpenStack networking services
- How to use OpenStack virtual network with routers
- Learn about OpenStack Monitoring
- Create Subnets and Instance via GUI & CLI on OpenStack
- Configure VLAN based network for OpenVSwitch
- Configure Flat & External Network via OpenStack
- Configure VXALN overlay network via OpenStack
- Configure instance with specific IP address
- Configure Routing on OpenStack
- Configure Security policy & Firewall Services on OpenStack
- Configure Multiple IP address on Instance.
OpenStack is combination of Various Services which work closely and together to provide cloud computing infrastructure to end user. Open Stack has been released in various versions over time like Juna, Folson, Grizzly, Mitka, Kilo etc.
We will learn what services Openstack provides which makes it ideal for private cloud computing environment one by one.
Keystone (Identity Management):
This Service is used to provide the authentication and authorization to tenants in Openstack. When different Openstack wants to communicates to each other they must be authorized by keystone which ensure the right user or services are going to use the particular service.
Keystone uses various method for authentication like username/ password or token/authentication based method.
Keystone also helps to integrate third party authentication and authorization system like LDAP or PAM (Pluggable Authentication Module).
Swift –Object Storage:
OpenStack users can use Swift service for storage purpose. It provides Object based storage service and data can be accessible through REST API from Object Store.
Object Stores splits the data in to smaller chunks and stores it in separate containers and these containers or copies are spread across cluster of storage nodes which further provides HA, auto-recovery and scalability.
Cinder – Block Storage:
Cinder Service provide persistence block storage and which is very much used in providing storage to Virtual machine. These storage to VM can be used as Hard disks. The Cinder provides following features to open stack users.
- Create or delete the Storage Volume
- Attaching or detaching Volume to VM
- Creating or Deleting Snapshot of Volume.
- Cloning of Volumes
- Creating Volumes from snapshots.
Manila –File Share:
OpenStack also provides the File share features to Openstack users. It provides the storage as remote file systems just like NFS or SAMBA (used in Linux Machines). It provides the Multi-access feature in which multi-VM can access the same File System to store data.
Glance – Image Registry:
Whenever a Virtual Machine to be launched it requires image (Windows, Linux, Ubuntu, etc.). The Glance Service in OpenStack provides registry of images and Metadata that is used to launch the VM.
Based on your hypervisor various images formats is supported, as example image for KVM/Qemu, VMWARE, and XEN etc.
We can say metadata is information of any virtual machine like Kernel, Disk image, disk format. These information is available to users from REST API.
Nova –Compute Service:
Open stack provide compute service via Nova and with the help of Nova it manages the Virtual machine. End users in open stack communicates with nova-api to create instances via OPENSTACK API or EC2 API.
Nova-compute is the worker daemon which creates and terminates VM instance via different hypervisor like XenServer, VMware etc.
Nova-Network accepts networking task from queue and perform or implements the networking components ( Neutron has replaces the nova-networking services) .
Nova-Scheduler : It takes VM instance request from queue and then perform the task or schedules the task based on work.
Neutron – Networking & Architecture:
Neutron provides network connectivity between Openstack service. It allows users to create their own networks and connect the server interface to that network.
Neutron has three main components:
- Neutron server: Accepts the API request and route it to appropriate Neutron plugins for work.
- Neutron Plugins: They are called workers and perform actual works for the orchestration of backend devices like creating/deleting network, sub netting, IP addressing etc.
- Neutron agents: These are agents which runs on compute or network nodes. They receives the commands from neutrons plugins on neutrons server, based on command they perform network changes on individual compute or network nodes. There are different type of agents like layer 2 agents from layer2 connectivity to nodes and Layer 3 agents provides routing and NAT service only on network Nodes.
Neutron provides the following core resources for network connectivity:
- Ports: It is refers as the virtual ports on virtual switch where host/instances or network services are connected to network.
- Networks: It is just like L2 segments and is looked as virtual switch which are implemented by Open vSwitch, other virtual switch software or Linus Bridging tool.
- Subnet: It is just like a certain block of IP address associated to network.
Neutron service also provide services like Designing Private IP Subnet , External Network , Floating IPs for NAT , Load Balancing as Service(LBaaS) , Firewall as Service(FWaaS), or Virtual Private Network as a Service(VPNaaS).