配置计算 (zun) 服务 (可选)¶
计算服务 (zun) 处理在 OpenStack 环境中创建虚拟机。OpenStack-Ansible 使用的许多默认选项都位于 zun role 中的 defaults/main.yml 中。
可用区¶
具有多个可用区部署者可以设置 Ansible 变量 zun_default_schedule_zone 以指定新请求的可用区。这在具有不同类型 hypervisor 的环境中很有用,其中构建会根据其资源需求发送到某些硬件类型。
例如,如果您有在两个机架上运行的服务器,且不共享 PDU。这两个机架可以分组为两个可用区。当一个机架断电时,另一个仍然可以工作。通过将您的容器分布到这两个机架(可用区)上,您将提高您的服务可用性。
Ceph (RBD) 的块设备调优¶
启用 Ceph 并定义 zun_libvirt_images_rbd_pool 默认情况下会更改两个 libvirt 配置
hw_disk_discard:
unmapdisk_cachemodes:
network=writeback
在 libvirt 中将 hw_disk_discard 设置为 unmap 可为底层块设备启用 discard(有时称为 TRIM)支持。这允许回收底层磁盘上未使用的块。
将 disk_cachemodes 设置为 network=writeback 允许数据在每次更改时写入缓存,但这些更改会在定期的时间间隔刷新到磁盘。这可以提高 Ceph 块设备上的写入性能。
您可以使用两个 Ansible 变量(此处显示默认值)来自定义这些设置
zun_libvirt_hw_disk_discard: 'unmap'
zun_libvirt_disk_cachemodes: 'network=writeback'
您可以通过将 zun_libvirt_hw_disk_discard 设置为 ignore 来禁用 discard。可以将 zun_libvirt_disk_cachemodes 设置为空字符串以禁用 network=writeback。
以下最小示例配置将 zun 设置为使用 ephemeral-vms Ceph pool。以下示例使用 cephx 身份验证,并需要为 ephemeral-vms pool 存在的 cinder 帐户
zun_libvirt_images_rbd_pool: ephemeral-vms
ceph_mons:
- 172.29.244.151
- 172.29.244.152
- 172.29.244.153
如果您为 pool 有不同的 Ceph 用户名,请将其用作
cinder_ceph_client: <ceph-username>
Ceph 关于 OpenStack 的文档Ceph documentation for OpenStack 提供了有关这些设置的更多信息。
Config drive¶
默认情况下,OpenStack-Ansible 不配置 zun 以强制为 zun 构建的每个实例配置 config drive。元数据服务提供用于在实例内部的 cloud-init 的配置信息。只有当实例未安装 cloud-init 或不支持处理元数据时,才需要 config drive。
部署者可以设置 Ansible 变量以强制为每个虚拟机部署 config drive
zun_force_config_drive: True
某些格式的 config drive 可能会阻止实例在 hypervisor 之间正确迁移。如果您需要强制 config drive 并且能够迁移实例,请使用 zun_zun_conf_overrides 变量将 config drive 格式设置为 vfat
zun_zun_conf_overrides:
DEFAULT:
config_drive_format: vfat
force_config_drive: True
Libvirtd 连接性和身份验证¶
默认情况下,OpenStack-Ansible 以以下方式配置 libvirt daemon
已启用 TLS 连接
已禁用 TCP 明文连接
通过 TCP 连接的身份验证使用 SASL
您可以使用以下 Ansible 变量自定义这些设置
# Enable libvirtd's TLS listener
zun_libvirtd_listen_tls: 1
# Disable libvirtd's plaintext TCP listener
zun_libvirtd_listen_tcp: 0
# Use SASL for authentication
zun_libvirtd_auth_tcp: sasl
Multipath¶
Nova 支持 iSCSI 基存储的 multipath。通过配置覆盖启用 zun 中的 multipath 支持
zun_zun_conf_overrides:
libvirt:
iscsi_use_multipath: true