Difference between revisions of "Cloud Platform for Networking: OpenStack"

From OnnoWiki
Jump to navigation Jump to search
(Created page with "OpenStack 5 is a cloud operating system for managing data center computing, storage, networking, etc., which can be used to create public and private cloud [8]. It is expected...")
 
Line 1: Line 1:
OpenStack 5 is a cloud operating system for managing data center computing,
+
OpenStack is a cloud operating system for managing data center computing, storage, networking, etc., which can be used to create public and private cloud [8]. It is expected to establish an open standard for cloud computing platform to provide the companies with the solution of infrastructure as a service (IAAS). Currently, hundreds of organizations contribute to its source code, and the open source community is completely transparent management, design, and development, and the underlying provide the upper application with computing, storage, and network resources through open API. OpenStack is mainly programmed by Python, 6 and its architecture is designed with a completely decoupled modularized ideas. Therefore, OpenStack has a very good openness and compatibility.
storage, networking, etc., which can be used to create public and private cloud [8].
+
 
It is expected to establish an open standard for cloud computing platform to provide
 
the companies with the solution of infrastructure as a service (IAAS). Currently,
 
4
 
5
 
http://ebtables.netfilter.org/.
 
https://www.openstack.org/.24
 
3 Cloud Platform for Networking
 
Fig. 3.3 OpenNebula hybrid cloud (Source: OpenNebula project)
 
Scheduler
 
SQL Pool
 
Command Line
 
Interface
 
Request Manager
 
(XML-RPC)
 
VM
 
Manager
 
Transfer
 
Driver
 
Other Tools
 
Host
 
Manager
 
Virtual Machine
 
Driver
 
VN
 
Manager
 
Information
 
Driver
 
Fig. 3.4 OpenNebula tri-layer architecture (Source: CloudUser, 2010)
 
hundreds of organizations contribute to its source code, and the open source
 
community is completely transparent management, design, and development, and
 
the underlying provide the upper application with computing, storage, and network3.2 OpenStack
 
25
 
resources through open API. OpenStack is mainly programmed by Python, 6 and its
 
architecture is designed with a completely decoupled modularized ideas. Therefore,
 
OpenStack has a very good openness and compatibility.
 
 
OpenStack consists of the following five components:
 
OpenStack consists of the following five components:
1.
+
* Keystone provides authentication service.
2.
+
* Nova provides computing service.
3.
+
* Swift provides storage service.
4.
+
* Glance provides image service.
5.
+
* Horizon provides dashboard service.
Keystone provides authentication service.
+
 
Nova provides computing service.
+
Especially, Horizon is a Python-based Web framework developed by Django for visually managing OpenStack platform. Nova is the computing controller of OpenStack that it allocates on-demand VM according to the user’s requests and manages the virtual computing resource allocation and scheduling, which is the component for manage the allocation and scheduling of VM. In OpenStack, Nova processes the scheduling from VM creation to termination of the life cycle. Actually, the VM isn’t operated by Nova directly, but processed by the underlying operating system Hypervisors through libvirt 8 API [3].
Swift provides storage service.
+
 
Glance provides image service.
+
As shown in Fig. 3.5, Nova consisting of the following modules, provides the user with APIs to operate and manage VMs, while the cloud infrastructure must be managed through Nova-API.
Horizon provides dashboard service.
+
 
Especially, Horizon is a Python-based Web framework developed by Django 7
+
* Message Queue is the communication module between each node in OpenStack, which is mainly based on Advanced Message Queue Protocol (AMQP). Since major operations of Nova are very time-consuming, in order to reduce the user response time, Nova responses the use’s request asynchronously through callbacks.
for visually managing OpenStack platform. Nova is the computing controller of
+
* Nova-Compute is used to manage the life cycle of the instance, which is often a VM. After receiving the request to create or terminate a VM, Nova-Compute process it through libvirt API and then return the results by the message queue.
OpenStack that it allocates on-demand VM according to the user’s requests and
+
* Nova-Network provides the VM with network connection services that the intra and inter network communications of the VMs are processed by this module. Specifically, Nova-Network is mainly in charge of assigning IP address to the VM, Virtual Local Area Network (VLAN) and security groups configuration, etc.
manages the virtual computing resource allocation and scheduling, which is the
+
* Nova-Volume provides the VM with persistent storage, which is a very important for the computing devices and can greatly reduce the losses caused by power outages, downtime, and system-level failure.
component for manage the allocation and scheduling of VM. In OpenStack, Nova
+
* Nova-Scheduler is a daemon starting at the initiation of the cloud platform. When Nova receives the request to create a VM, Nova-Scheduler needs to decide which computing node should be used to create the VM. When the VM needs to be migrated, Nova-Scheduler manages the VM migration and resource redistribution. The VM migration is a very complex process that Nova-Scheduler needs to avoid wasting computing resources and ensure the cloud platform overall performance is not decreased during the VM migration, i.e., sleeping the idle hosts to save energy consumption.
processes the scheduling from VM creation to termination of the life cycle. Actually,
+
 
the VM isn’t operated by Nova directly, but processed by the underlying operating
+
Keystone provides the authentication service including authentication and service token management. User can’t access to the computing resources in the cloud or operates services without the identification and permission of OpenStack. When the users provide their authentication information to the OpenStack, which is generally the user name and password, Keystone verifies them according to their identity information in the database. If valid, Keystone will return to the user with a Token, which can be used as the authentication to send the request to OpenStack.
system Hypervisors through libvirt 8 API [3].
+
 
As shown in Fig. 3.5, Nova consisting of the following modules, provides the
+
Swift provides OpenStack with distributed storage for virtual object, which can be used to create scalable and redundant object store. The architecture of Swift is symmetrical that each storage node has a very high data persistence and is exactly the same as others. Due to the symmetrical architecture, it is easy to expand the capacity just by adding nodes, and there is no master–slave configuration dependence or single node failure. Swift is completely different from Nova-Volume, which provides the VM with persistent storage. In short, the storage provided by Nova-Volume is similar to the hard disk, while Swift based on a distributed approach mainly supports massive object storage and provides the VM and cloud applications with data containers, secure storage, data backup, etc.
user with APIs to operate and manage VMs, while the cloud infrastructure must be
+
 
managed through Nova-API.
+
Glance is used to store and retrieve the VM image. When OpenStack creates a VM, it is available to retrieve the VM image by Glance and regenerate the original VM via the copy or snapshot of its image. Furthermore, Glance provides the standard REST interface to query the image information stored on the different devices.
Fig. 3.5 NOVA
 
6
 
https://www.python.org/.
 
https://www.djangoproject.com/.
 
8
 
http://libvirt.org/.
 
726
 
3 Cloud Platform for Networking
 
Message Queue is the communication module between each node in OpenStack,
 
which is mainly based on Advanced Message Queue Protocol (AMQP). Since
 
major operations of Nova are very time-consuming, in order to reduce the
 
user response time, Nova responses the use’s request asynchronously through
 
callbacks.
 
Nova-Compute is used to manage the life cycle of the instance, which is often
 
a VM. After receiving the request to create or terminate a VM, Nova-Compute
 
process it through libvirt API and then return the results by the message queue.
 
Nova-Network provides the VM with network connection services that the intra
 
and inter network communications of the VMs are processed by this module.
 
Specifically, Nova-Network is mainly in charge of assigning IP address to the
 
VM, Virtual Local Area Network (VLAN) and security groups configuration, etc.
 
Nova-Volume provides the VM with persistent storage, which is a very important
 
for the computing devices and can greatly reduce the losses caused by power
 
outages, downtime, and system-level failure.
 
Nova-Scheduler is a daemon starting at the initiation of the cloud platform.
 
When Nova receives the request to create a VM, Nova-Scheduler needs to
 
decide which computing node should be used to create the VM. When the VM
 
needs to be migrated, Nova-Scheduler manages the VM migration and resource
 
redistribution. The VM migration is a very complex process that Nova-Scheduler
 
needs to avoid wasting computing resources and ensure the cloud platform
 
overall performance is not decreased during the VM migration, i.e., sleeping the
 
idle hosts to save energy consumption.
 
Keystone provides the authentication service including authentication and ser-
 
vice token management. User can’t access to the computing resources in the cloud or
 
operates services without the identification and permission of OpenStack. When the
 
users provide their authentication information to the OpenStack, which is generally
 
the user name and password, Keystone verifies them according to their identity
 
information in the database. If valid, Keystone will return to the user with a Token,
 
which can be used as the authentication to send the request to OpenStack.
 
Swift provides OpenStack with distributed storage for virtual object, which
 
can be used to create scalable and redundant object store. The architecture of
 
Swift is symmetrical that each storage node has a very high data persistence and
 
is exactly the same as others. Due to the symmetrical architecture, it is easy to
 
expand the capacity just by adding nodes, and there is no master–slave configuration
 
dependence or single node failure. Swift is completely different from Nova-Volume,
 
which provides the VM with persistent storage. In short, the storage provided by
 
Nova-Volume is similar to the hard disk, while Swift based on a distributed approach
 
mainly supports massive object storage and provides the VM and cloud applications
 
with data containers, secure storage, data backup, etc.
 
Glance is used to store and retrieve the VM image. When OpenStack creates
 
a VM, it is available to retrieve the VM image by Glance and regenerate the
 
original VM via the copy or snapshot of its image. Furthermore, Glance provides
 
the standard REST interface to query the image information stored on the different
 
devices.
 

Revision as of 08:13, 29 December 2021

OpenStack is a cloud operating system for managing data center computing, storage, networking, etc., which can be used to create public and private cloud [8]. It is expected to establish an open standard for cloud computing platform to provide the companies with the solution of infrastructure as a service (IAAS). Currently, hundreds of organizations contribute to its source code, and the open source community is completely transparent management, design, and development, and the underlying provide the upper application with computing, storage, and network resources through open API. OpenStack is mainly programmed by Python, 6 and its architecture is designed with a completely decoupled modularized ideas. Therefore, OpenStack has a very good openness and compatibility.

OpenStack consists of the following five components:

  • Keystone provides authentication service.
  • Nova provides computing service.
  • Swift provides storage service.
  • Glance provides image service.
  • Horizon provides dashboard service.

Especially, Horizon is a Python-based Web framework developed by Django for visually managing OpenStack platform. Nova is the computing controller of OpenStack that it allocates on-demand VM according to the user’s requests and manages the virtual computing resource allocation and scheduling, which is the component for manage the allocation and scheduling of VM. In OpenStack, Nova processes the scheduling from VM creation to termination of the life cycle. Actually, the VM isn’t operated by Nova directly, but processed by the underlying operating system Hypervisors through libvirt 8 API [3].

As shown in Fig. 3.5, Nova consisting of the following modules, provides the user with APIs to operate and manage VMs, while the cloud infrastructure must be managed through Nova-API.

  • Message Queue is the communication module between each node in OpenStack, which is mainly based on Advanced Message Queue Protocol (AMQP). Since major operations of Nova are very time-consuming, in order to reduce the user response time, Nova responses the use’s request asynchronously through callbacks.
  • Nova-Compute is used to manage the life cycle of the instance, which is often a VM. After receiving the request to create or terminate a VM, Nova-Compute process it through libvirt API and then return the results by the message queue.
  • Nova-Network provides the VM with network connection services that the intra and inter network communications of the VMs are processed by this module. Specifically, Nova-Network is mainly in charge of assigning IP address to the VM, Virtual Local Area Network (VLAN) and security groups configuration, etc.
  • Nova-Volume provides the VM with persistent storage, which is a very important for the computing devices and can greatly reduce the losses caused by power outages, downtime, and system-level failure.
  • Nova-Scheduler is a daemon starting at the initiation of the cloud platform. When Nova receives the request to create a VM, Nova-Scheduler needs to decide which computing node should be used to create the VM. When the VM needs to be migrated, Nova-Scheduler manages the VM migration and resource redistribution. The VM migration is a very complex process that Nova-Scheduler needs to avoid wasting computing resources and ensure the cloud platform overall performance is not decreased during the VM migration, i.e., sleeping the idle hosts to save energy consumption.

Keystone provides the authentication service including authentication and service token management. User can’t access to the computing resources in the cloud or operates services without the identification and permission of OpenStack. When the users provide their authentication information to the OpenStack, which is generally the user name and password, Keystone verifies them according to their identity information in the database. If valid, Keystone will return to the user with a Token, which can be used as the authentication to send the request to OpenStack.

Swift provides OpenStack with distributed storage for virtual object, which can be used to create scalable and redundant object store. The architecture of Swift is symmetrical that each storage node has a very high data persistence and is exactly the same as others. Due to the symmetrical architecture, it is easy to expand the capacity just by adding nodes, and there is no master–slave configuration dependence or single node failure. Swift is completely different from Nova-Volume, which provides the VM with persistent storage. In short, the storage provided by Nova-Volume is similar to the hard disk, while Swift based on a distributed approach mainly supports massive object storage and provides the VM and cloud applications with data containers, secure storage, data backup, etc.

Glance is used to store and retrieve the VM image. When OpenStack creates a VM, it is available to retrieve the VM image by Glance and regenerate the original VM via the copy or snapshot of its image. Furthermore, Glance provides the standard REST interface to query the image information stored on the different devices.