What Is OpenStack?
OpenStack is an open source cloud platform management project. It is not simply software, but is a combination of several major components that together provide open source software for the construction and management of public clouds, private clouds, and hybrid clouds. Now, tens of thousands of individuals and more than 200 enterprises from more than 100 countries have participated in OpenStack development, including NASA, Huawei, Google, HP, Intel, IBM, and Microsoft. These organizations and individuals use OpenStack as a common front-end of infrastructure as a service (IaaS) resources. The OpenStack project is primarily to simplify cloud deployment and provide good scalability for the cloud. OpenStack or its evolved versions are widely used in various scenarios, including self-built private clouds, public clouds, leased private clouds, and hybrid clouds. Users include Cisco, Intel, IBM, Huawei, and Seagate. OpenStack supports virtual machine (VM) software or containers such as KVM, Xen, Lvc, and Docker.
Evolution of OpenStack
OpenStack began in 2010 as a joint open source project of NASA and Rackspace, licensed by Apache. As of 2010, the first official release Austin was released, which was the first open source cloud computing platform project at that time. Since then, OpenStack has been released around 6-month cycles. The latest release is Xena, the 24th release (as X ranks 24th out of 26 letters). Different from other software that use version numbers, OpenStack uses one word to describe a release, and the first letter of the word indicates whether a release is an earlier or later one. For example, the current release Xena is later than Wallaby, as X comes after W. For details about the release date of each release, visit https://releases.openstack.org/.
Functions of OpenStack
OpenStack manages data center resources and simplifies resource allocation. It manages three types of resources:
- Computing resources: OpenStack can plan and manage a large number of VMs, allowing enterprises or service providers to provide computing resources as required. Developers can access computing resources through APIs to create cloud applications, while administrators and users can access these resources through web pages.
- Storage resources: OpenStack can provide object and block storage resources for cloud services or applications. Traditional enterprise-class storage technologies can no longer fulfill the requirements of many organizations due to performance and price factors. To address this, OpenStack provides configurable object or block storage functions based on user requirements.
- Network resources: Currently, a large number of configurations, including those for servers, network devices, storage devices, and security devices, need to be performed in data centers. Such physical devices are divided into more virtual devices or networks, leading to an explosive increase in the numbers of IP addresses, routes, and security rules. Traditional network management technologies cannot manage next-generation networks with high scalability and automation. To address these issues, OpenStack provides plug-in, scalable, and API-driven network and IP address management functions.
The following figure shows the typical architecture and functions of OpenStack.
Typical architecture and function mapping of OpenStack
Presentation layer: interacts with users and mainly provides GUI-based web portals for non-developers to perform operations. It also provides APIs for developers to perform secondary development, and some more advanced features such as load balancing, console agent security, and naming services.
Logic layer: provides intelligent control functions for cloud services, such as orchestration (task workflow management), scheduling (task-to-resource scheduling management), policy (quota management), image registry (image instance metadata management), and logging (event-based charging management).
Resource layer: includes physical resources such as computing, network, and storage resources.
Core Projects of OpenStack
OpenStack covers networks, virtualization, operating systems, and servers. OpenStack projects are broken down into core, incubated, supporting, and related projects based on maturity and importance. Each project has its own committee and technical director, and the role of each project can be dynamically changed. For example, an incubated project can be changed into a core project as it becomes maturer and more important.
The following figure shows the logical relationship between OpenStack projects.
Logical relationship between OpenStack projects
The following describes the six most important core projects of OpenStack:
Keystone: the authentication service of OpenStack. It provides authentication and access policy services for all OpenStack components. It works based on its REST system, authenticates and authorizes Swift, Glance, and Nova, and verifies the validity of the sources in action messages. Keystone uses two authorization modes: user name/password-based authorization and token-based authorization. In addition, Keystone provides the following three services:
- Token service: A token contains the authorization information of authorized users or groups and is used to authorizing users or groups.
- Directory service: A directory contains a list of available services for authorized users or groups.
- Policy service: uses Keystone to specify access permissions for users or user groups.
Nova: a controller that manages the entire lifecycle of VM instances for a user or user group and provides virtual services based on user requirements. Nova manages computing resources, network resources, authorization, and measurement of the entire cloud. Although Nova does not provide any virtualization capability, it uses libvirt APIs to interact with VM hosts. Nova provides external processing interfaces through web service APIs.
Glance: responsible for the image service of OpenStack. Glance is a VM image discovery, registration, and retrieval system. It provides VM image storage, query, and retrieval functions and provides services for Nova. Glance depends on the storage and database services.
Swift: provides distributed and continuous virtual object storage for OpenStack. Swift supports cross-node storage. Swift components provide redundancy and failover management functions, and can also process archiving and media streams. It is particularly effective for big data and large-capacity measurement.
Cinder: a block storage service component of OpenStack. It manages all block storage devices and provides services for VMs.
Neutron: provides virtual network functions for OpenStack and establishes an independent network environment for each tenant.
Introduction to Huawei FusionSphere OpenStack
FusionSphere OpenStack (FusionSphere for short) is a Huawei's cloud computing operating system. It is developed based on the OpenStack architecture (specifically, based on the source code), retains the existing external interfaces of OpenStack, and integrates with Huawei's traditional telecom services. Simply speaking, FusionSphere is an enterprise edition of OpenStack enhanced by Huawei and known as a commercialized OpenStack.
Compared with OpenStack, FusionSphere has the following advantages:
- Has good compatibility. It can be deployed on various types of x86 servers and is compatible with various types of storage devices, allowing carriers and enterprises to choose servers and storage devices flexibly.
- Allows users to define service-level agreement (SLA) policies, fault identification criteria, and fault rectification policies. It streamlines IT resource scheduling, heat management, and power consumption management to reduce maintenance costs. FusionSphere can also automatically detect the load of servers or services and intelligently schedule resources to achieve load balancing across servers and service systems, ensuring better user experience and optimal response.
- Provides comprehensive permission management functions, allowing authorized users to manage system resources based on their specific roles and assigned permissions.
- Performs precise charging based on service types, for example, charging by IT resource (CPU, memory, and storage) usage or by time.
- Provides multiple operation tools to control and manage services and improve system operation efficiency.
- Adopts various security measures and policies and complies with information security laws and regulations to provide end-to-end protection for user access, management and maintenance, data, network, and virtualization.
- Author： Chen Le
- Updated on： 2021-12-06
- Views： 4194
- Average rating：