关键计算 API 概念

OpenStack 计算 API 被定义为一种 RESTful HTTP 服务。该 API 利用 HTTP 协议的所有方面(方法、URI、媒体类型、响应代码等),并且提供商可以自由使用协议的现有功能,例如缓存、持久连接和内容压缩等。

提供商可以在 HTTP 响应头中返回标识请求的信息,例如,以便促进提供商和客户端应用程序之间的通信。

OpenStack 计算是一种计算服务,可在云中提供服务器容量。计算服务器有不同配置的内存、核心、磁盘空间和 CPU,可以在几分钟内配置。与计算服务器的交互可以通过 OpenStack 计算 API 以编程方式进行。

用户概念

要有效地使用 OpenStack 计算 API,您应该了解几个关键概念

  • 服务器

    计算系统中的虚拟机 (VM) 实例、物理机或容器。创建服务器时,Flavor 和镜像是必需元素。服务器还需要一个名称。

    有关更多详细信息,例如服务器操作和服务器元数据,请参阅:服务器概念

  • 风味

    请求服务器的虚拟硬件配置。每个 Flavor 都有独特的磁盘空间、内存容量和 CPU 时间优先级组合。

  • Flavor Extra Specs

    可用于描述服务器规范的键值对,不仅仅是关于 CPU、磁盘和 RAM。例如,它可以用于指示由此 Flavor 创建的服务器具有 PCI 设备等。

    有关更多详细信息,请参阅:Flavor Extra Specs 和 Image Properties

  • 镜像

    用于创建或重建服务器的文件集合。运营商默认提供许多预构建的操作系统镜像。您还可以从已启动的云服务器创建自定义镜像。这些自定义镜像对于备份目的或如果您计划频繁部署特定的服务器配置,它们非常有用。

  • Image Properties

    可帮助最终用户确定镜像中客户操作系统需求的键值对。

    有关更多详细信息,请参阅:Flavor Extra Specs 和 Image Properties

  • 密钥对

    可以在服务器启动时注入的 ssh 或 x509 密钥对。这允许您在服务器创建后连接到服务器,而无需使用密码。如果您没有指定密钥对,Nova 将为您创建一个 root 密码,并在服务器创建响应中以明文形式返回它。

  • Volume

    Nova 可以用作永久存储的块存储设备。创建服务器时,它可以使用一些磁盘存储空间,但被认为是非持久性的,因为它会在服务器销毁时被销毁。可以将卷附加到服务器,然后稍后将其分离并由另一个服务器使用。卷由 Cinder 服务创建和管理。有关更多信息,请参阅 块设备映射

  • 配额

    对任何单个租户可能消耗的资源量的上限。可以使用配额来限制租户创建的服务器数量或消耗的磁盘空间,以便没有一个租户会使系统不堪重负并阻止其他租户的正常运行。更改配额是一项管理员级别的操作。有关更多信息,请参阅 配额

  • 速率限制

    请参阅 限制

  • 可用区

    可用于控制新服务器创建位置的主机机器分组。这方面存在一些混淆,因为“可用区”这个名称在其他云中(例如 Amazon Web Services)被用来表示服务器位置的物理隔离,可用于在某个区域不可用时将云资源分配以实现容错。如果管理员小心设置可用区,Nova 中也可以实现这种隔离,但这不是默认设置。

网络概念

网络由 网络服务 处理。在使用计算服务中的服务器时,最重要的网络资源是端口,它是网络的一部分。可以应用安全组来控制防火墙访问。根据网络服务配置,端口也可以链接到浮动 IP 以进行外部网络访问。

在创建服务器或将网络接口附加到现有服务器时,可以指定零个或多个网络和/或端口以附加到服务器。如果没有提供任何内容,计算服务默认会在可用于发出请求的项目中的单个网络上创建一个端口。如果项目可用多个网络,例如公共外部网络和私有租户网络,则会发生错误,并且必须使用特定的网络或端口进行请求。如果指定了网络,计算服务将尝试代表用户在给定网络上创建一个端口。更高级的端口类型,例如 SR-IOV 端口,必须预先创建并提供给计算服务。

有关更多详细信息,请参阅 网络 API 参考

管理员概念

一些 API 主要关注 Nova 的管理,通常关注计算主机而不是服务器。

  • 服务

    服务由 Nova 组件提供。通常,Nova 组件在控制器/计算节点上作为进程运行以提供服务。这些服务可能是面向最终用户的,例如 OpenStack 计算 REST API 服务,但大多数只是与其他 Nova 服务协同工作。Nova 会监视每个服务的状态,如果它没有正常响应,Nova 会更新其状态,以便不再将请求发送到该服务。管理员还可以控制服务,以便运行维护或升级,或响应不断变化的工作负载。

    • nova-osapi_compute

      此服务向最终用户和应用程序客户端提供 OpenStack 计算 REST API。

    • nova-metadata

      此服务向服务器提供 OpenStack 元数据 API。元数据用于配置正在运行的服务器。

    • nova-scheduler

      此服务通过跟踪可用资源并找到最能满足请求的主机来提供计算请求调度。

    • nova-conductor

      此服务为 Nova 和其他 OpenStack 服务提供数据库访问,并在不同服务运行不同版本的代码时处理内部版本兼容性。Conductor 服务还处理长时间运行的请求。

    • nova-compute

      此服务在每个计算节点上运行,并与超visor 通信以管理该节点上的计算资源。

  • 服务操作

    注意

    本节中描述的服务操作仅适用于 nova-compute 服务。

    • 启用、禁用、禁用日志原因

      可以禁用该服务以指示该服务不再可用。管理员将其用于停止服务的维护。例如,当管理员想要维护特定的计算节点时,管理员可以禁用该计算节点上的 nova-compute 服务。然后 nova 不会再将任何新的计算请求调度到该计算节点。管理员还可以添加禁用原因的说明。

    • 强制关闭

      注意

      此操作在微版本 2.11 中启用。

      此操作允许您立即将服务状态设置为关闭。Nova 仅提供服务状态的非常基本的健康监视器,无法保证基础设施其他部分的健康状态,例如数据网络、存储网络和其他组件的健康状态。

      如果您拥有外部于 Nova 的更全面的健康监视系统,并且知道相关服务已死亡(并且与网络断开连接),则可以使用它来告诉 Nova 的其余部分它可以信任该服务永远不会恢复,并允许诸如撤离之类的操作。

      警告

      仅当您已完全隔离相关服务时,并且它绝不会向系统其余部分发送更新时,才应使用此操作。这可以通过关闭节点或完全隔离其网络来完成。如果您强制关闭未隔离的服务,可能会损坏在该主机上运行的 VM。

  • 宿主机

    主机是物理机器,为 Nova 中创建的虚拟服务器提供资源。它们运行一个 超visor(见下文定义),该超visor 处理虚拟服务器的实际创建和管理。主机还运行 Nova 计算服务,它从 Nova 接收请求以与该机器上的虚拟服务器交互。当计算服务接收到请求时,它会调用该超visor 的驱动程序的适当方法以执行请求。驱动程序充当从通用 Nova 请求到超visor 特定调用的翻译器。主机将其当前状态报告回 Nova,调度程序服务跟踪该状态,以便调度程序可以将新虚拟服务器的请求放置在最适合它们的宿主机上。

  • 主机操作

    注意

    这些 API 在微版本 2.43 中已弃用。

    主机操作是影响物理主机的一个操作,而不是仅影响在该主机上运行的虚拟服务器的操作。支持三种“电源”操作:启动关闭重启。还有两种“状态”操作:启用/禁用主机以及将主机设置为或退出维护模式。当然,执行这些操作会影响主机上的运行虚拟服务器,因此在执行主机操作之前需要考虑其状态。例如,如果您想调用“关闭”操作来关闭主机,您可能希望在关闭主机之前迁移主机上的任何虚拟服务器,以便虚拟服务器可以继续可用而不会中断。

  • Hypervisors

    超visor,或虚拟机监视器 (VMM),是一段计算机软件、固件或硬件,用于创建和运行虚拟机。

    在 nova 中,每个主机(参见 主机)都运行一个超visor。管理员可以查询超visor 以获取有关当前运行的所有虚拟服务器以及有关超visor 的详细信息,例如 CPU、内存或磁盘相关配置。

    目前 nova-compute 还支持 Ironic 和 LXC,但它们没有运行超visor。

  • 聚合

    请参阅 聚合开发人员信息

  • 迁移

    迁移是将虚拟服务器从一个主机移动到另一个主机的过程。请参阅 服务器概念 以获取有关移动服务器的详细信息。

    管理员可以查询数据库中的记录以获取有关迁移的信息。例如,他们可以确定源主机和目标主机、迁移类型或服务器 Flavor 的更改。