Job Recruitment Website - Zhaopincom - What is OpenStack? Explain OpenStack in detail.

What is OpenStack? Explain OpenStack in detail.

Explain.

OpenStack is a project managed by a cloud platform, not a software. This project is composed of several main parts, and some specific work is completed.

OpenStack is an open source project, which aims to provide software for the construction and management of public and private clouds. OpenStack is recognized as the universal front end of Infrastructure as a Service (IaaS) resources.

If you don't understand this, let me introduce it to you from another angle:

First of all, let everyone look at the following two pictures, which are very simple and clear:

This picture is the login interface of openstack.

The following is an administrative interface of openstack.

From these two pictures, I believe that with some development experience, we can see what openstack is. It can be said to be a framework, and can even be understood from the perspective of software. If you don't understand, explain it from the traditional development. I don't know if you know oa, erp and other systems. If you don't know, you can find a lot of information online. What's the difference between him and oa and erp? Quite simply, openstack is a platform or solution for cloud computing. It is an important part of cloud computing.

Have a perceptual knowledge of openstack.

(2) 2) What can OpenStack do?

Everyone knows Alibaba Cloud platform and Baidu cloud platform, while Alibaba Cloud platform is said to be the second development of openstack. For secondary development, I believe anyone who has been exposed to software will understand this concept. If you don't understand, look it up online yourself. In other words, openstack can build a cloud platform, what cloud platform, public cloud and private cloud. Now Baidu is recruiting private cloud engineers, which should be talents in this field.

(3) 3) What does OpenStack itself contain?

The following are five important components of OpenStack:

L nova-–computing services

L swift-–storage service

L glance-mirror service

Lkeystone-–certification service

Lhorizon–ui service

Figure 1 OpenStack basic framework

The following figure shows the interaction between Keystone and Dashboard and other OpenStack widgets.

A detailed description of each service is as follows:

(a) OpenStack computing facility ---- Nova Nova is a flexible controller for OpenStack computing. All actions required by OpenStack cloud instance life cycle will be handled and supported by Nova, which means that Nova will appear as a management platform, responsible for managing the computing resources, network, authorization and measurement of the whole cloud. Although Nova itself does not provide any virtual capabilities, it will use libvirt API to interact with the host of the virtual machine. Nova provides external processing interfaces through the Web service API, which are compatible with Amazon's Web service interfaces.

Functions and characteristics

Case life cycle management

L computing resource management

L network and authorization management

Rest-based API

Asynchronous continuous communication

L supports various hosts: Xen, XenServer/XCP, KVM, UML, VMware vSphere and Hyper-V.

Open stack computing unit

L Nova elastic cloud includes the following main parts:

L API server (nova-api)

Message Queuing (rabbit-mq Server)

L operating workstation (nova-compute)

L network controller (nova- network)

L volume management (nova- volume)

L scheduler (nova-scheduler)

API server (nova-api)

API server provides the interface between cloud facilities and the outside world, and it is the only channel for external users to manage the cloud. Various EC2 APIs are called by using web services, and then the API server sends the request to the target device in the cloud for processing through the message queue. As an alternative to EC2-api, users can also use OpenStack's native api, which we call "OpenStack API".

Message queuing (Rabbit MQ server)

OpenStack uses message queuing for communication based on AMQP (Advanced Message Queuing Protocol). Nova makes an asynchronous call to the request response, and triggers a callback as soon as the request is received. Because of the use of asynchronous communication, any user's actions will not be in a waiting state for a long time. For example, the process of starting an instance or uploading an image is very time-consuming, so the API call will wait for the result to return without affecting other operations. Asynchronous communication has played a great role here, making the whole system more efficient.

Operating workstation (nova-compute)

The main task of operating the workstation is to manage the whole life cycle of the instance. They receive the request through the message queue and execute it, thus performing various operations on the instance. In a typical actual production environment, many computing workstations will be set up. According to the scheduling algorithm, the instance can be deployed on any available computing workstation.

Network controller (nova network)

The network controller handles the network configuration of the host, such as IP address allocation, project VLAN configuration, security group setting and network configuration of the computing node.

Volume workstation (nova- volume)

Volume workstation manages LVM-based instance volumes, which can be created, deleted and attached to the instance, and can also be separated from the instance. Why is volume management so important? Because it provides a way to keep the instance persistent, for example, after ending an instance, if the root partition is not persistent, any changes to it will be lost. However, if the volume is detached from the instance, or the volume is attached to this instance, even if the instance is closed, data will still be stored in it. This data can be accessed again by attaching the volume to the original instance or another instance.

Therefore, important data must be written to this volume for future access. This application is especially important for the storage of data server instances.

Nova- scheduler

The scheduler is responsible for passing the nova-API call to the target. The scheduler runs as a daemon named "nova-schedule", and appropriately selects the computing server from the available resource pool according to the scheduling algorithm. There are many factors that affect the scheduling results, such as load, memory, the distance of child nodes, CPU architecture and so on. The powerful thing is that the nova scheduler adopts a pluggable architecture.

At present, nova scheduler uses several basic scheduling algorithms:

Randomization: the host randomly selects available nodes;

Availability: similar to randomness, but the range of random selection is specified;

Simplification: In this way, the host chooses the one with the least load to run the instance. Load data can be obtained from other places, such as a load balancing server.

(2) OpenStack Image Server-GlanceOpenStack Image Server is a virtual machine image discovery, registration and retrieval system, and we can store the image in any of the following storage:

Local file system (default)

L OpenStack object storage

S3 direct storage

S3 object storage (as an intermediate channel for S3 access)

L HTTP (read only)

Functions and characteristics

Provide mirror related services

Scanning assembly

L scanning controller

L scanning register

(C) OpenStack storage facility ---- SWIFT.

Swift provides OpenStack with a distributed and persistent virtual object storage, similar to S3 simple storage service of Amazon Web Services. Swift has the ability to store hundreds of objects across nodes. Swift has built-in redundancy and failover management, and can also handle archiving and media streaming, especially for measuring big data (gigabytes) and large capacity (the number of multiple objects).

Functions and characteristics

Mass object storage

L large file (object) storage

Data redundancy management

L archiving capability-handling large data sets

L provide data containers for virtual machines and cloud applications.

L processing streaming media

L object secure storage

L backup and archiving

L good scalability

Swift component

L Swift account

Fast container

Fast object

L Swift agent

L Swift ring

Swift proxy server

Users interact with proxy server through Swift-API. The proxy server is the gatekeeper who receives external requests. It detects the location of legal entities and routes their requests.

In addition, the proxy server also handles the repeated routing request of the failed entity when the entity transfer fails.

Swift object server

Object server is a kind of binary storage, which is responsible for the storage, retrieval and deletion of object data in local storage. An object is a typical binary file stored in a file system, and has metadata (xattr) that extends file attributes.

Note: ext3/4, XFS, Btrfs, JFS and ReiserFS in Linux all support the xattr format, but there is no effective test to prove that it can also run well under XFS, JFS, ReiserFS, Reiserfs and ZFS. However, XFS is considered to be the best choice at present.

Swift container server

The container server will list all the objects in the container, and the default object list will be stored as a SQLite file. The container server also counts the number of objects contained in the container and the storage space consumption of the container.

Swift account server

An account server is similar to a container server and will list the objects in the container.

Ring (index ring)

Ring container records the location information of physical storage objects in Swift, which is a virtual mapping of entity names of real physical storage locations, similar to the indexing service for finding and locating the real physical locations of entities in different clusters. The so-called entity here refers to accounts, containers and objects, all of which have different rings.

(4) OpenStack authentication service (Keystone)

Keystone provides authentication and access policy services for all OpenStack components. It relies on its own REST (Identity-based API) system, and mainly authorizes Swift, Glance and Nova. In fact, authorization is based on the legality of the action source request. As shown in the figure below:

Keystone adopts two authorization methods, one is based on user name/password, and the other is based on token. In addition, Keystone also provides the following three services:

L Token service: contains authorization information of authorized users.

L Directory service: a list of available services that contain legal operations of users.

L Policy Service: Use Keystone to specify certain access rights for users or groups.

Authentication service component

Service portal: Like Nova, Swift and Glance, each OpenStack service has a designated port and a unique URL, which we call an endpoint.

L Location: In a data center, location specifies a physical location. In a typical cloud architecture, if not all services access a distributed data center or server, this is also called location.

L user: Keystone authorized user.

Translator's Note: OpenStack represents individuals and authorizes services to them in the form of users. Users have credentials and can be assigned to one or more tenants. After verification, each tenant will get a specific token. [Source:/s/blog _ 70064f190100udy.html]

L Service: Generally speaking, any component connected or managed through Keystone is called a service. For example, we can call Glance Keystone service.

L Roles: In order to maintain security restrictions, roles associated with specific users in the cloud are very important in terms of the operations that users can perform.

Note: A role is a set of permissions that apply to tenants, allowing specified users to access or use specific operations. A role is a logical grouping of usage rights, which enables common rights to be simply grouped and bound to users related to a specified tenant.

L Rent room: Rent room refers to a project with all service entrances and a specific member role.

Translator's Note: A room is mapped to the "project id" of a new star. In object storage, a room can have multiple containers. According to different installation methods, a room can represent a customer, account, organization or project.

(e) Web interface managed by OpenStack-Horizon.

Horizon is a Web control panel for managing and controlling OpenStack services. It can manage instances, mirror images, create key pairs, add volumes to instances, and operate Swift containers. In addition, users can directly access the instance by using VNC in the console or control panel. In a word, the horizon has the following characteristics:

Instance management: create and terminate instances, view terminal logs, VNC connections, add volumes, etc.

L access and security management: create security groups, manage key pairs, set floating IP, etc.

L Preference setting: You can set different preferences for virtual hardware templates.

L image management: edit or delete images.

L view the service directory

L Manage users, quotas and project objectives

L user management: create users, etc.

L volume management: creating volumes and snapshots

Object storage processing: creating and deleting containers and objects.

L download the environment variables of the project