Compute API 关键概念 详解
Compute API 是 RESTful HTTP 服务,提供管理虚机的能力。
虚机可能有不同的内存大小,CPU数量,硬盘大小,能够在几分钟之内创建出来。和虚机的交互,可以通过Compute API编程实现。
用户需要知道的概念
-
Server
A virtual machine (VM) instance, physical machine or a container in the compute system. Flavor and image are requisite elements when creating a server. A name for the server is also required. 一个虚拟机实例,物理机或者容器。规格,镜像和名字是创建Server必须指定的元素。
For more details, such as server actions and server metadata, please see: Server concepts
-
Flavor 规格
Virtual hardware configuration for the requested server. Each flavor has a unique combination of disk space, memory capacity and priority for CPU time.
-
Flavor Extra Specs
Key and value pairs that can be used to describe the specification of the server which more than just about CPU, disk and RAM. For example, it can be used to indicate that the server created by this flavor has PCI devices, etc.
For more details, please see: Flavor Extra Specs and Image Properties
-
Image 镜像
A collection of files used to create or rebuild a server. Operators provide a number of pre-built OS images by default. You may also create custom images from cloud servers you have launched. These custom images are useful for backup purposes or for producing “gold” server images if you plan to deploy a particular server configuration frequently.
-
Image Properties 镜像属性
Key and value pairs that can help end users to determine the requirements of the guest os in the image.
For more details, please see: Flavor Extra Specs and Image Properties
-
Key Pair
An ssh or x509 keypair that can be injected into a server at it’s boot time. This allows you to connect to your server once it has been created without having to use a password. If you don’t specify a key pair, Nova will create a root password for you, and return it in plain text in the server create response.
-
Volume 云硬盘
A block storage device that Nova can use as permanent storage. When a server is created it has some disk storage available, but that is considered ephemeral, as it is destroyed when the server is destroyed. A volume can be attached to a server, then later detached and used by another server. Volumes are created and managed by the Cinder service. For additional info, see Block device mapping
-
Quotas 配额
An upper limit on the amount of resources any individual tenant may consume. Quotas can be used to limit the number of servers a tenant creates, or the amount of disk space consumed, so that no one tenant can overwhelm the system and prevent normal operation for others. Changing quotas is an administrator-level action. For additional info, see Quotas
-
Rate Limiting
Please see Limits
-
Availability zone 可用域(虚机可以被创建在哪些服务器上)
A grouping of machines that can be used to control where a new server is created. There is some confusion about this, as the name “availability zone” is used in other clouds, such as Amazon Web Services, to denote a physical separation of server locations that can be used to distribute cloud resources for fault tolerance in case one zone is unavailable for any reason. Such a separation is possible in Nova if an administrator carefully sets up availability zones for that, but it is not the default.
管理员需要知道的概念
Services
Services are provided by Nova components. Normally, the Nova component runs as a process on the controller/compute node to provide the service. These services may be end-user facing, such as the OpenStack Compute REST API service, but most just work with other Nova services. The status of each service is monitored by Nova, and if it is not responding normally, Nova will update its status so that requests are not sent to that service anymore. The service can also be controlled by an Administrator in order to run maintenance or upgrades, or in response to changing workloads.
-
nova-osapi_compute
This service provides the OpenStack Compute REST API to end users and application clients.
-
nova-metadata
This service provides the OpenStack Metadata API to servers. The metadata is used to configure the running servers.
-
nova-scheduler
This service provides compute request scheduling by tracking available resources, and finding the host that can best fulfill the request.
-
nova-conductor
This service provides database access for Nova and the other OpenStack services, and handles internal version compatibility when different services are running different versions of code. The conductor service also handles long-running requests.
-
nova-compute
This service runs on every compute node, and communicates with a hypervisor for managing compute resources on that node.
Services Actions
enable, disable, disable-log-reason
The service can be disabled to indicate the service is not available anymore. This is used by administrator to stop service for maintenance. For example, when Administrator wants to maintain a specific compute node, Administrator can disable nova-compute service on that compute node. Then nova won’t dispatch any new compute request to that compute node anymore. Administrator also can add note for disable reason.
Hosts
Hosts are the physical machines that provide the resources for the virtual servers created in Nova. They run a hypervisor
(see definition below) that handles the actual creation and management of the virtual servers. Hosts also run the Nova computeservice
, which receives requests from Nova to interact with the virtual servers on that machine. When compute service receives a request, it calls the appropriate methods of the driver for that hypervisor in order to carry out the request. The driver acts as the translator from generic Nova requests to hypervisor-specific calls. Hosts report their current state back to Nova, where it is tracked by the scheduler service, so that the scheduler can place requests for new virtual servers on the hosts that can best fit them.
Host Actions
A host action is one that affects the physical host machine, as opposed to actions that only affect the virtual servers running on that machine. There are three ‘power’ actions that are supported: startup, shutdown, and reboot. There are also two ‘state’ actions: enabling/disabling the host, and setting the host into or out of maintenance mode. Of course, carrying out these actions can affect running virtual servers on that host, so their state will need to be considered before carrying out the host action. For example, if you want to call the ‘shutdown’ action to turn off a host machine, you might want to migrate any virtual servers on that host before shutting down the host machine so that the virtual servers continue to be available without interruption.
Hypervisors
A hypervisor, or virtual machine monitor (VMM), is a piece of computer software, firmware or hardware that creates and runs virtual machines.
In nova, each Host (see Hosts) runs a hypervisor. Administrators are able to query the hypervisor for information, such as all the virtual servers currently running, as well as detailed info about the hypervisor, such as CPU, memory, or disk related configuration.
Currently nova-compute also supports Ironic and LXC, but they don’t have a hypervisor running.
Migrations
Migrations are the process where a virtual server is moved from one host to another. Please see Server concepts for details about moving servers.
Administrators are able to query the records in database for information about migrations. For example, they can determine the source and destination hosts, type of migration, or changes in the server’s flavor.