OpenStack is a project for cloud platform management, it is not a software. The project consists of a few major components put together to do some specific jobs.
OpenStack is an open-source project designed to provide software for building and managing public **** and private clouds, and OpenStack is recognized as a common front end for Infrastructure-as-a-Service, or IaaS, resources.
If these still do not understand, then from another point of view to introduce you:
First of all, let you look at the following two diagrams will be very simple and clear:
This picture is the login interface of openstack
Below is a management interface of openstack
From these two diagrams, I believe that there is a certain amount of experience in the development of the can see what openstack is. You can say that he is a framework, and even understand it from the perspective of software. If you don't understand it, you can explain it from traditional development. I do not know whether you understand oa, erp and other systems, if you do not understand can go to the Internet to find, a large number of information. What is the difference between him and oa, erp. It is very simple is openstack is used as a platform for cloud computing, or a solution. It is an important part of cloud computing.
Openstack above has a perceptual understanding.
(2) What can openstack do.
We all know the AliCloud platform, Baidu cloud platform, and AliCloud platform is rumored to be the secondary development of openstack. For the secondary development of the belief that as long as the contact with the software will understand the concept. Do not understand their own online to check. That is to say openstack, you can build a cloud platform, what cloud platform, public cloud, private cloud. Now Baidu is recruiting private cloud engineers, should be the talent in this area.
(3) openstack itself contains what
The following are five important components of OpenStack:
l Nova - computing services
l Swift - storage services
l Glance - Mirror Services
l Keystone - Authentication Services
l Horizon - UI Services
Figure 1 Basic OpenStack Architecture
The following figure shows Keystone, Dashboard both interact with other OpenStack parts.
Each service is described in detail below:
(i) OpenStack Compute Facility - Nova Nova is the elastic controller for OpenStack compute.The various actions required during the lifetime of an OpenStack cloud instance will be processed and supported by Nova, which means that Nova comes on the scene as the management platform, responsible for managing compute resources, networking, authorization, and metrics across the cloud. Although Nova itself does not provide any virtualization capabilities, it will use the libvirt API to interact with the host of the virtual machine.Nova provides processing interfaces externally through the Web services API, and these interfaces are compatible with Amazon's Web services interfaces.
Functionality and Features
l Instance Lifecycle Management
l Compute Resource Management
l Networking and License Management
l REST-based API
l Asynchronous Continuous Communication
l Support for various hosts: Xen, XenServer/XCP, KVM, UML, VMware vSphere and Hyper-V
OpenStack Compute Components
l The Nova Elastic Cloud consists of the following major components:
l API Server (nova-api)
l Message Queue (rabbit-mq server)
l Operations Workstation (nova-compute)
l Network Controller (nova-network)
l Volume Management (nova-volume)
l Scheduler (nova-scheduler)
API Server (nova-api)
API The server provides the interface for the cloud facility to interact with the outside world, and it is the only gateway for outside users to implement management of the cloud. Various EC2 APIs are invoked through the use of web services, and the API server then delivers the requests to the target facility within the cloud for processing through a message queue. As an alternative to the EC2-api, users can also use OpenStack's native API, which we call the "OpenStack API".
Message queues (Rabbit MQ Server)
OpenStack internally uses message queues to communicate based on AMQP (Advanced Message Queuing Protocol), which is an asynchronous invocation of a request response that triggers a callback as soon as the request is received. Because of the asynchronous communication, no user action is left waiting. For example, if the process of launching an instance or uploading an image is time-consuming, the API call will wait for the result to be returned without interrupting the rest of the operation, which is where asynchronous communication comes in handy and makes the whole system more efficient.
Nova-compute
The main task of the compute workstations is to manage the entire lifecycle of an instance. They receive requests via message queues and execute them to perform various operations on the instance. In a typical real-world production environment, many compute workstations are set up, and depending on the scheduling algorithm, an instance can be deployed on any of the available compute workstations.
Network controller (nova-network)
The network controller handles network configuration for hosts, such as IP address assignment, configuring project VLANs, setting up security groups, and configuring networks for compute nodes.
Volume Workstation (nova-volume)
Volume Workstation manages LVM-based instance volumes, and can create, delete, and attach volumes to an instance, as well as detach volumes from an instance. Why is volume management so important? Because it provides a means of maintaining persistent storage for an instance, for example, when ending an instance, any changes to the root partition will be lost if it is non-persistent. However, if you detach a volume from an instance or attach a volume to that instance, the data remains in it even if the instance is shut down. This data can be re-accessed by attaching the volume to the original instance or to another instance.
It is therefore important that important data be written to a volume for future access. This application is especially important for the storage of data server instances.
Scheduler
The scheduler is responsible for delivering nova-API calls to the target. The scheduler runs as a daemon called "nova-schedule" and appropriately selects the computing servers from the pool of available resources based on a scheduling algorithm. There are many factors that can affect the scheduling result, such as load, memory, proximity of child nodes, CPU architecture, and so on. The powerful thing is that the nova scheduler uses a pluggable architecture.
There are several basic scheduling algorithms currently used by the nova scheduler:
Randomization: the host randomly selects the available nodes;
Availability: similar to random, except that the range of random selections is specified;
Simplicity: applying this, the host selects the least-loaded one to run the instance. Load data can be obtained from elsewhere, such as a load balancing server.
(ii) OpenStack Image Server - GlanceOpenStack Image Server is a virtual machine image discovery, registration, and retrieval system, we can store images to any of the following types of storage:
Local file system (default)
l OpenStack object storage
l S3 direct storage
l S3 object storage (as an intermediate channel for S3 access)
l HTTP (read-only)
Functionality and features
Providing image-related services
Glance building blocks
l Glance controller<
l Glance Registrar
(c) OpenStack Storage Facility - Swift
Swift provides a distributed, persistent virtual object storage for OpenStack, which is similar to Amazon Web Service's S3 Simple Storage Service. Swift has the ability to store hundreds of objects across nodes. with built-in redundancy and failover management, Swift is also able to handle archiving and media streaming, and is particularly efficient at measuring large data (gigabytes) and large volumes (multiple object counts).
Functions and features
l Massive object storage
l Large file (object) storage
l Data redundancy management
l Archiving capabilities - handling large data sets
l Data containers for virtual machines and cloud applications
l Handling streaming media
l Object-safe storage
l Backup and archiving
l Good scalability
Swift Components
l Swift Accounts
l Swift Containers
l Swift Objects
l Swift Proxies
l Swift RING
Swift Proxy Server
Users are interacting with the proxy server through the Swift-API, which is the very gatekeeper that receives requests from the outside world, detects the location of legitimate entities and routes their requests.
In addition, the proxy server also simultaneously handles duplicate routing requests for failover entities when they fail and move on.
Swift Object Server
An object server is a binary store that handles the storage, retrieval, and deletion of object data from local storage. Objects are typical binary files stored in the file system with metadata (xattr) that extends file attributes.
Note: The xattr format is supported by ext3/4, XFS, Btrfs, JFS, and ReiserFS in Linux, but there are no valid tests to prove that it works equally well under XFS, JFS, ReiserFS, Reiser4, and ZFS. However, XFS is considered the best option at this time.
Swift Container Server
The Container Server lists all the objects in a container, and by default the list of objects is stored as a SQLite file (which can be changed to MySQL, which is used as an example in the installation). The container server will also count the number of objects contained in the container and the storage space consumed by the container.
Swift Account Server
The Account Server is similar to the Container Server and will list the objects in the container.
Ring (Index Ring)
The Ring container records information about the location of physically stored objects in Swift, which is a virtual mapping of entity names to real physical storage locations, similar to an indexing service that finds and locates the real physical locations of entities in different clusters. The so-called entities here refer to accounts, containers, and objects, which all have their own different Rings.
(d) OpenStack Authentication Service (Keystone)
Keystone provides authentication and access policy services for all OpenStack components, which relies on its own REST (Identity API) system to work. Identity API) system to work, mainly authenticating and authorizing (but not limited to) Swift, Glance, Nova, etc. In fact, authorization is done by authenticating the legitimacy of requests from action message originators. As shown below:
Keystone uses two authorization methods, one based on username/password and the other on token (Token). In addition, Keystone provides the following three services:
l Token Service: Contains authorization information for authorized users
l Directory Service: Contains a list of available services that users can legally operate on
l Policy Service: Specifically designates certain access privileges for a user or group using Keystone
Authentication Service Component
Service endpoints: Like Nova, Swift, and Glance, each OpenStack service has a designated port and a unique URL, which we call endpoints.l Zone: In a data center, a zone specifies a physical location. In a typical cloud architecture, it is also called a zone if not all services access a distributed data center or server.
l User: A Keystone-authorized user
Translator's note: Represents an individual to whom OpenStack authorizes services in the form of a user. Users have credentials and may be assigned to one or more tenants. After authentication, a specific token is provided for each individual tenant. [Source: /s/blog_70064f190100undy.html]
l Services: In general, any component that is connected or managed through Keystone is called a service. As an example, we can call Glance a service of Keystone.
l Role: In order to maintain security qualifiers, the role associated with a particular user within the cloud is important in terms of the actions that that user can perform.
Translator's note: A role is a collection of usage rights applied to a tenant to allow a specified user to access or use a particular operation. A role is a logical grouping of usage permissions that makes it simple to group and bind generic permissions to the users associated with a given tenant.
l Tenancy: a tenancy refers to a project with full service entry with specific member roles.
Translator's note: A tenancy maps to a Nova "project-id", and in an object store, a tenancy can have multiple containers. Depending on the installation, a lease can represent a customer, account, organization, or project.
(v) Web interface for OpenStack management - Horizon
Horizon is a web control panel for managing and controlling OpenStack services, which allows you to manage instances, images, create key pairs, add volumes to instances, manipulate Swift containers, and more. In addition, users can access the instances directly from the control panel using a console or VNC. In summary, Horizon has some of the following features:
l 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 up floating IPs, etc.
l Preferences: different preferences can be set for virtual hardware templates
l Image Management: Edit or delete images
l View Service Catalog
l Manage Users, Quotas, and Project Usage
l User Management: Create Users, etc.
l Volume Management: Create Volumes and Snapshots
l Object Storage Processing: Create and Delete Containers and Objects
l Download Environment Variables for Projects
l Access and Security Management: Create and manage groups, key pairs, set up IPs, etc.
l Access and Security Management: Create and manage groups, key pairs, and set up IPs, etc.