第 2 章 配置 OpenStack Compute 存储
本节介绍了 OpenStack Compute(nova)中的镜像后端存储的架构,以及基本的配置选项。
2.1. 架构概述
在 Red Hat Enterprise Linux OpenStack Platform 中,OpenStack Compute 服务使用 KVM hypervisor 来执行计算负载。libvirt
驱动被用来处理和 KVM 间的所有交流,并启用对虚拟机的创建功能。
Compute 服务需要考虑两类 libvirt
存储:
- 基础镜像(base image):Image 服务镜像的一个缓存的、具有特定格式的副本。
-
实例磁盘(Instance disk):由
libvirt
创建作为虚拟机实例的后端。实例磁盘可以存储在 Compute 的临时存储(使用libvirt
),也可以存储在一个具有持久性的存储中(如使用 Block Storage)。
Compute 服务创建虚拟机实例的步骤是:
-
缓存 Image 服务的后端镜像作为
libvirt
的基础。 - 把基础镜像转换为 raw 格式(如果被配置)。
- 调整基础镜像的大小来匹配虚拟机 flavor 的规范。
- 使用基础镜像创建 libvirt 实例磁盘。
在上面的图中,#1 实例磁盘使用临时存储;#2 磁盘使用块存储卷。
2.2. 配置
用来处理 libvirt
基础镜像和实例磁盘的 Compute 配置(参数在 /etc/nova/nova.conf
文件中定义)会决定环境的性能和安全性。
项 | 参数 | 描述 | 默认 |
---|---|---|---|
[DEFAULT] |
|
是否把
把基础镜像转换为 raw 格式会比 hypervisor 直接使用镜像(例如,一个 qcow2 镜像)需要更多空间。如果您的系统有较慢的 I/O 或空间比较小,您可以把它设置为 'false',这样可以通过提高数据压缩/解压操作对 CPU 的要求来换取对输入带宽要求最小化的目的。
raw 基础镜像需要和 |
|
[DEFAULT] |
|
|
true |
[DEFAULT] |
|
即使没有使用 CoW 实例磁盘,每个虚拟机所获得的数据副本也是稀疏的,因此,虚拟机可能会在运行时出现 ENOSPC 错误。通过在实例磁盘镜像中运行 |
none |
[DEFAULT] |
|
是否启用通过访问块设备上的基础镜像来直接调整基础镜像的功能(布尔值)。使用较旧版本的 因为这个参数会启用直接挂载镜像的功能,而这个功能通常会因为安全性的原因被禁用,所以它在默认情况下没有被启用。 |
|
[DEFAULT] |
|
一个新临时卷的默认格式。它的值可能是: |
|
[DEFAULT] |
|
在连续两次运行镜像缓存管理器(image cache manager)间需要等待的秒数,这会影响到 libvirt compute 节点的基础缓存。在这段间隔时间内会自动删除不再使用的缓存镜像(请参阅 |
|
[DEFAULT] |
|
是否启动自动删除不使用的基础镜像的功能(每 |
|
[DEFAULT] |
|
在从 |
|
[ |
|
为 |
|