Openstack official website content: http://docs.openstack.org/grizzly/openstack-object-storage/admin/content/
Because I only focus on the part of openstack Object Storage, I did not write anything related to other modules (or I am relatively lazy). I may add it if necessary in the future.
The translation level is limited. If a netizen finds an error during reading, please criticize and correct it.
1. Why does openstack1.1 need cloud?
In today's data centers, many computers are inefficient at computing power and network bandwidth utilization. For example, a project requires a large amount of computing power to complete a computing task, but after the computing is complete, these computing capabilities are no longer needed. If you want a cloud computing service that provides services on demand, it has the flexibility to automatically provide or terminate services, and basically does not require your intervention. The phrase "cloud computing" is often represented in the same shape as the cloud in the figure. It indicates that service-related responsibilities are transferred from users to providers. The cloud in these figures includes the responsibility to provide computing capabilities that can be used to complete the work. Just like the power we use every day, cloud computing provides a shared resource set for buyers or users: networks, storage, applications, or other services used to complete tasks.
Cloud computing highlights the following features:
L independent provision of services on demand: provide services and networks with few human intervention
L Network Access: Any computing capability in the Network is available, and many different devices are allowed to access through standard mechanisms.
L resource pool: users can access cloud resources that serve other customers as needed
L Elasticity: cloud resources are provided quickly and scaled as needed
L measurable service: Like a pay-as-you-go device, the cloud can optimize resource utilization and control the service level and server type, such as storage orProgramProcessing
Cloud computing provides different service models based on the features required by users.
L SaaS: software as a service. Provide users with the ability to use software in the cloud environment, such as web-based email.
L PAAs: Platform as a service. Provides users with the ability to deploy applications. These applications are deployed through the programming languages or tools supported by the cloud platform.
L IAAs: basic design as a service. Provide users with infrastructure such as computers, network connections, and storage. Users can run any software or operating system on these infrastructures.
When you hear some terms, such as public cloud or private cloud, they all involve cloud deployment models. A private cloud is a separate organizational structure service, which can be deployed internally or used as a backup device (on-premise or off-premise ). Public clouds are visible to the public or a large industrial group, most of which are owned by cloud service companies. NIST also definesCommunityCloud, which is shared by some organizations to support a special community.
There are also hybrid clouds. Hybrid clouds are hybrid models of Public and Private clouds, or hybrid models of cloud computing including virtual and physical servers.
What have people done with cloud computing? Cloud computing can meet our needs for large-scale computing. The combination of virtual servers makes full use of existing hardware and releases the potential of old hardware. Cloud computing is also used for collaboration because cloud computing is highly available on computers connected by networks. Many industry-level packages such as character processing, numeric operations, and email interaction are also available through cloud computing. Cloud computing also provides storage services to prevent users from buying additional hard disks and enable users to store large-scale data online.
1.2 Why openstack
Openstack's mission: to provide scalable and elastic cloud storage for Public and Private clouds regardless of their size. At the core of our mission is a basic requirement: the cloud must be simple and scalable.
If you are new to openstack, you will undoubtedly have problems with installation, deployment, and usage. These problems seem hard to solve at the beginning, but don't be afraid, we have a guide to help you solve the problem. Because this project is so new and constantly changing, you need to keep an eye on the changing information. If you are reading a document a few months ago, you feel that the content in the document is not completely accurate, you can send mailing list (https://launchpad.net /~ Openstack) or presents a bug (https://bugs.launchpad.net/openstack-manuals/+filebug) approach so that we can update or delete it in time.
1.3 openstack Components
Currently, openstack has seven core components: compute, objectstorage, identity, dashboard, block storage, and network) and image service ). We will introduce them in order.
L object storage service-Swift
Provides object storage service. Allows you to store or retrieve files (but not mount directories like file servers ). Some companies provide commercial storage services based on SWIFT, including kt, rackspace (the birthplace of SWIFT), and internap. Many large companies also use swift to store their internal data.
Provides directories and resource libraries for Virtual Disk Images. These Disk Images are the most useful in openstack computing. Although this service is technically optional, it is required by any cloud.
Provide virtual servers as needed. Rackspace and HP provide commercial computing services based on Nova and are used internally in Mercado Libre and NASA (the birthplace of Nova.
Provides a web-based modular user interface for all openstack services. With this web GUI, you can perform most operations on your cloud, such as running an instance, assigning IP addresses, and setting access control permissions.
Provides authentication and authorization services for all openstack services, as well as service directories for various services.
L Network -- quantum
Provide "network connection as a service" between Interface Devices managed by other openstack services ". Allows users to create their own networks and attach interfaces to them. The openstack network has a plug-in structure to support many popular network vendors and technologies.
L Block Storage-Cinder
Provides persistent Block Storage for virtual machines.
In addition to these services, some are considered to be integrated into openstack in the future.
1.4 Concept Structure
The overall design goal of the openstack project is to complete a cloud operating system that can be expanded on a large scale. To achieve this goal, every service that makes up openstack must work with other services to provide a complete IAAs. We use the APIS provided by each service for integration. These APIs allow each service to use another service and allow one implementer to close any service. These APIs are the same for cloud end users.
In terms of concept, the relationship between services is as follows:
L The dashboard ("horizon") provides a Web Front-end for other openstack services
L computing ("NOVA") stores and retrieves delicate disks ("Images") and is associated with the metadata in the Image Service ("glance ")
L Network ("quantum") provides virtual networks for computing services
L Block Storage ("cinder") provides storage volumes for computing services
L Image Service ("glance") can store Virtual Disk Files in Object Storage Service ("swift ")
L all services are certified by the Certification Service ("keystone.
1.5 Logical Structure
Some details about the main modules of openstack are provided. These details are not detailed. The purpose is to describe what the administrator needs to know to better understand how to design, deploy, install, and configure the platform.
Modules are organized based on their functions and categorized based on their types.
These types include:
L daemon: runs as a daemon. It is usually installed as a service on a Linux platform.
L Script: scripts run through external modules when some events occur
L client: a python client bound to access the service
L CLI: a command line interpreter for command submission
As you can imagine, the logical structure is much more complex than the conceptual structure. Like any service-oriented structure, the structure chart quickly becomes messy when attempting to explain the associations of all service interactions. The following structure diagram illustrates the most common architecture based on openstack.
Horizon is a modular djangoweb application that provides end users with an openstack service management interface.
Like most web applications, the structure is relatively simple:
L horizon is deployed through mod_wsgi of Apache.CodeIt can be divided into reusable Python modules and interface presentations with most of the logic.
L a database. Dependent on data of other services, with little data
From the network architecture perspective, this service needs to be accessible to users and be able to interact with the public APIs of each service. If you want to use the management function, you need to connect to their admin API terminal (endpoint) (this is not accessible to general users)
1.5.2 computing (compute)
Nova is the most complex and distributed component in openstack. A large number of cooperation efforts are made to submit user API requests to running virtual machines. The main modules are executed using python. The following list is divided into functions:
Receives and responds to end users' computing function API requests. It supports openstack computing service APIs, Amazon EC2 APIs, and a Special admin API (set for priority users to perform management operations ). It also initializes most of the allocation activities (such as running an instance) and enforces some policies.
A metadata request is received from an instance and generally only runs in a multi-host environment where the NOVA-network is installed.
Networking for VMS)
Image Management (EC2 solution)
Command Line Interpreter/interface
1.5.3 object store)
Swift's structure is very distributed to prevent any single-node faults and enhance horizontal scalability. It includes the following components:
L Proxy Server (Swift-proxy-server)
The openstack object API or the original HTTP request is used to receive external requests. It receives uploaded files, modifies metadata, or creates a container. In addition, it also provides a list of files or containers for Web browsers. The proxy server uses the optional cache (such as memcache) to improve performance.
L account Server
Manage the account defined by OSS
L container server
Manage a container ing for Object Storage Service
L object Server
Manage the actual objects of a storage Node
L there are also some periodic processes that execute housekeeping tasks for big data storage. Among them, the most important thing is the copy service, which is used to ensure consistency and availability. Other periodic activities include auditing and updating.
Identity Authentication is performed through configurable wsgi middleware. (Wsgi: Server Gateway Interface)
1.5.4 image store)
1.5.7 Block Storage)
1.6 storage concepts
Storage involves many parts of openstack. Different types may cause us some troubles, even some experienced cloud engineers.
L The use of openstack object storage is not like that of traditional hard disks. The limitations of the POSIX type file system are relaxed for Object Storage Service, and its access is API-based (the API uses http ). You do not need to provide atomic operations and rely on eventual consistency. You can easily expand a storage system to avoid the failure of the central node.
L openstack Image Service is used to manage Virtual Machine images of openstack clusters, rather than storing them. It provides an abstraction of different storage methods.
L The openstack object storage function can be executed independently, and the swift product can be used independently of the Nova product.