Admin Documentation¶
OpenStack Compute 服务允许您控制一个基础设施即服务 (IaaS) 云计算平台。它使您能够控制实例和网络,并允许您通过用户和项目管理对云的访问。
Compute 不包含虚拟化软件。相反,它定义了与主机操作系统上运行的基础虚拟化机制交互的驱动程序,并通过基于 Web 的 API 暴露功能。
概述¶
为了有效地管理 compute,您必须了解不同的已安装节点如何相互交互。Compute 可以使用多个服务器以多种不同的方式安装,但通常多个 compute 节点控制虚拟机,而云控制器节点包含剩余的 Compute 服务。
Compute 云使用一系列名为 nova-* 的守护进程,这些进程持久存在于主机机器上。这些二进制文件可以全部运行在同一台机器上,也可以分布在大型部署中的多个机器上。服务和驱动程序的职责是
服务
- nova-metadata-wsgi
一个 WSGI 应用程序,用于提供 Nova Metadata API。
- nova-api-wsgi
一个 WSGI 应用程序,用于提供 Nova OpenStack Compute API。
- nova-compute
管理虚拟机。加载 Service 对象,并通过远程过程调用 (RPC) 在 ComputeManager 上暴露公共方法。
- nova-conductor
为 compute 节点提供数据库访问支持(从而降低安全风险)。
- nova-scheduler
将新虚拟机的请求分派到正确的节点。
- nova-novncproxy
为浏览器提供 VNC 代理,允许 VNC 控制台访问虚拟机。
- nova-spicehtml5proxy
为浏览器提供 SPICE 代理,允许 SPICE 控制台访问虚拟机。
- nova-serialproxy
提供串行控制台代理,允许用户访问虚拟机的串行控制台。
该架构在 Nova 系统架构 中有更详细的介绍。
注意
一些服务具有更改服务实现其核心功能的驱动程序。例如,nova-compute 服务支持允许您选择它可以使用的 hypervisor 类型的驱动程序。
部署注意事项¶
在进行部署之前,您可能需要考虑一些信息,尤其是在要进行较大规模的部署时。对于较小的部署,安装指南 中的默认设置就足够了。
Compute Driver Features Supported:虽然大多数 nova 部署使用 libvirt/kvm,但您可以使用 nova 与其他 compute 驱动程序。Nova 尝试在这些驱动程序之间提供统一的功能集,但是,并非所有功能都在所有后端上实现,并且并非所有功能都经过同等程度的测试。
Feature Support by Use Case:根据一些大型用例(通用云、NFV 云、HPC 云)的重要程度,查看每个驱动程序支持哪些功能。
Feature Support full list:深入了解每个 compute 驱动程序后端的各项功能。
Cells v2 configuration:对于大型部署,cells v2 cells 允许对您的 compute 环境进行分片。成功的 cells v2 布局的关键在于前期规划。
Availability Zones:Availability Zones 是一个面向最终用户的逻辑抽象,用于在不知道物理基础设施的情况下对云进行分区。
Placement service:Placement 服务的概述,包括它如何与 nova 的其余部分相适应。
Running nova-api on wsgi:有关使用真实的 WSGI 容器而不是内置的 eventlet Web 服务器的注意事项。
Nova service concurrency:有关如何在线程模式下使用和调整 Nova 服务的注意事项。
基本配置¶
一旦您拥有一个正在运行的 OpenStack 部署,您将希望对其进行管理。以下指南涵盖了从创建初始 flavor 和 image 到日志管理和实例实时迁移的所有内容。
Quotas:管理 nova 中的项目配额。
Scheduling:配置调度器的方式,以及这将如何影响 compute 实例在您的环境中的位置。如果您看到 compute 实例在您的主机中的分布出现意外情况,您将需要深入研究此配置。
Exposing custom metadata to compute instances:您可能希望扩展暴露给 compute 实例的基本元数据(通过元数据服务器或 config drive)以用于您的特定目的的方式和时间。
- Manage the cloud
- Manage Compute services
- Configure Compute service groups
- 日志记录
- Secure with rootwrap
- Configure SSH between compute nodes
- Configure live migrations
- Live-migrate instances
- Secure live migration with QEMU-native TLS
- Manage volumes
- Manage shares
- Manage Flavors
- Injecting the administrator password
- Configure remote console access
- Compute schedulers
- Config drives
- Image Caching
- Metadata service
- Manage Unified Limits Quotas
- Networking with neutron
- Security hardening
- Vendordata
- 通知
高级配置¶
OpenStack 云在平台运行,这些平台在它们提供的功能方面差异很大。默认情况下,Compute 服务试图抽象底层硬件,而不是暴露底层主机平台的具体信息。这种抽象表现为许多方面。例如,与其暴露主机上运行的 CPU 的类型和拓扑结构,服务会暴露一定数量的通用 CPU(虚拟 CPU 或 vCPU),并允许对这些 CPU 进行过度提交。同样,与其暴露主机上可用的单个类型的网络设备,而是提供通用的软件供电网络端口。这些功能旨在允许高资源利用率,并允许该服务提供一个通用的、具有成本效益的和高度可扩展的云,在其之上可以构建应用程序。
对于大多数工作负载,这种抽象是有益的。但是,对于某些工作负载,确定性和每实例性能至关重要,甚至至关重要。在这种情况下,实例预计可以提供接近原生性能。Compute 服务提供功能以改善这些类型工作负载的单个实例。
重要提示
在 Train 之前的部署中,或在正在进行滚动升级的 Stein/Train 混合部署中,除非明确 启用,使用 libvirt 驱动程序时,具有 NUMA 拓扑结构的实例的实时迁移是不可能的。NUMA 拓扑结构可以显式指定,或者由于使用 CPU pinning 或 huge pages 而隐式添加。有关更多信息,请参阅 bug #1289064。从 Train 开始,使用 libvirt 驱动程序时,具有 NUMA 拓扑结构的实例的实时迁移完全受支持。
- 将物理 PCI 设备附加到客户机
- CPU 拓扑
- 实时
- Huge pages
- 将虚拟 GPU 设备附加到客户机
- File-backed memory
- Using ports with resource request
- Using ports vnic_type=’vdpa’
- Attaching virtual persistent memory to guests
- Emulated Trusted Platform Module (vTPM)
- UEFI
- Secure Boot
- AMD SEV (Secure Encrypted Virtualization)
- Managing Resource Providers Using Config Files
- Compute Node Identification
- Resource Limits
- CPU models
- Other libvirt features
维护¶
一旦您正在运行 nova,以下信息将非常有用。
Upgrades:nova 的设计方式,以最大限度地减少服务影响并以正确的顺序进行升级。
- Troubleshoot Compute
- Orphaned resource allocations
- Rebuild placement DB
- Affinity policy violated with parallel requests
- Compute service logging
- Guru Meditation reports
- Common errors and fixes for Compute
- Credential errors, 401, and 403 forbidden errors
- Live migration permission issues
- Instance errors
- Empty log output for Linux instances
- Reset the state of an instance
- Injection problems
- 无法找到适用于 x86_64 的合适模拟器
- 分离后,卷附加失败
- 卷附加失败,未安装 systool
- 无法连接 FC SAN 中的卷
- 多路径调用失败退出
- 卷附加失败,缺少 sg_scan
- 请求的微版本被忽略
- 迁移实例
- 迁移实例
- 使用快照迁移实例
- 升级
- 从故障计算节点恢复
- hw_machine_type - 配置和更新 QEMU 实例机器类型
- hw_emulation_architecture - 配置 QEMU 实例仿真架构
- 软删除和影子表