第 15 章 配置实时计算
作为云管理员,您可能需要 Compute 节点上的实例遵循低延迟策略并执行实时处理。实时 Compute 节点包含一个具有实时的内核、特定虚拟化模块和优化的部署参数,以方便实时处理要求并最小化延迟。
启用 Real-time Compute 的进程包括:
- 配置 Compute 节点的 BIOS 设置
- 使用实时内核和 Real-Time KVM (RT-KVM)内核模块构建实时镜像
-
将
ComputeRealTime
角色分配给 Compute 节点
对于实时计算部署工作复制的一个用例,请参阅 Network Functions Virtualization Planning and Configuration Guide 中的Example: Configuring OVS-DPDK with ODL and VXLAN tunnelling 部分。
只有在 Red Hat Enterprise Linux 7.5 或更高版本支持实时 Compute 节点。
15.1. 为实时准备 Compute 节点
在 overcloud 中部署 Real-time Compute 之前,您必须启用 Red Hat Enterprise Linux Real-Time KVM (RT-KVM),配置 BIOS 以支持实时 overcloud 镜像。
先决条件
- 您必须将红帽认证的服务器用于 RT-KVM Compute 节点。详情请查看 Red Hat Enterprise Linux for Real Time 7 认证服务器。
-
您需要单独订阅 Red Hat OpenStack Platform for Real Time,才能访问
rhel-8-for-x86_64-nfv-rpms
存储库。有关为 undercloud 管理软件仓库和订阅的详情,请参阅 Director 安装和使用指南中的注册 undercloud 和附加订阅。
流程
要构建实时 overcloud 镜像,您必须为 RT-KVM 启用
rhel-8-for-x86_64-nfv-rpms
存储库。要检查将从存储库中安装哪些软件包,请输入以下命令:$ dnf repo-pkgs rhel-8-for-x86_64-nfv-rpms list Loaded plugins: product-id, search-disabled-repos, subscription-manager Available Packages kernel-rt.x86_64 4.18.0-80.7.1.rt9.153.el8_0 rhel-8-for-x86_64-nfv-rpms kernel-rt-debug.x86_64 4.18.0-80.7.1.rt9.153.el8_0 rhel-8-for-x86_64-nfv-rpms kernel-rt-debug-devel.x86_64 4.18.0-80.7.1.rt9.153.el8_0 rhel-8-for-x86_64-nfv-rpms kernel-rt-debug-kvm.x86_64 4.18.0-80.7.1.rt9.153.el8_0 rhel-8-for-x86_64-nfv-rpms kernel-rt-devel.x86_64 4.18.0-80.7.1.rt9.153.el8_0 rhel-8-for-x86_64-nfv-rpms kernel-rt-doc.noarch 4.18.0-80.7.1.rt9.153.el8_0 rhel-8-for-x86_64-nfv-rpms kernel-rt-kvm.x86_64 4.18.0-80.7.1.rt9.153.el8_0 rhel-8-for-x86_64-nfv-rpms [ output omitted…]
要为 Real-time Compute 节点构建 overcloud 镜像,请在 undercloud 上安装
libguestfs-tools
软件包以获取virt-customize
工具:(undercloud)$ sudo dnf install libguestfs-tools
重要如果在 undercloud 上安装
libguestfs-tools
软件包,请禁用iscsid.socket
以避免 undercloud 上的tripleo_iscsid
服务的端口冲突:$ sudo systemctl disable --now iscsid.socket
提取镜像:
(undercloud)$ tar -xf /usr/share/rhosp-director-images/overcloud-full.tar (undercloud)$ tar -xf /usr/share/rhosp-director-images/ironic-python-agent.tar
复制默认镜像:
(undercloud)$ cp overcloud-full.qcow2 overcloud-realtime-compute.qcow2
注册镜像并配置所需的订阅:
(undercloud)$ virt-customize -a overcloud-realtime-compute.qcow2 --run-command 'subscription-manager register --username=<username> --password=<password>' [ 0.0] Examining the guest ... [ 10.0] Setting a random seed [ 10.0] Running: subscription-manager register --username=<username> --password=<password> [ 24.0] Finishing off
使用您的红帽客户帐户替换
username
和password
的值。有关构建实时 overcloud 镜像的常规信息,请参阅使用 virt-customize 修改 Red Hat Enterprise Linux OpenStack Platform Overcloud 镜像 的知识库文章。
查找 Red Hat OpenStack Platform for Real Time 订阅的 SKU。SKU 可能位于已注册到 Red Hat Subscription Manager 的系统中,并使用相同的帐户和凭证:
$ sudo subscription-manager list
将 Red Hat OpenStack Platform for Real Time 订阅附加到镜像:
(undercloud)$ virt-customize -a overcloud-realtime-compute.qcow2 --run-command 'subscription-manager attach --pool [subscription-pool]'
创建在镜像中配置
rt
的脚本:(undercloud)$ cat rt.sh #!/bin/bash set -eux subscription-manager repos --enable=[REPO_ID] dnf -v -y --setopt=protected_packages= erase kernel.$(uname -m) dnf -v -y install kernel-rt kernel-rt-kvm tuned-profiles-nfv-host # END OF SCRIPT
运行脚本来配置实时镜像:
(undercloud)$ virt-customize -a overcloud-realtime-compute.qcow2 -v --run rt.sh 2>&1 | tee virt-customize.log
重新标记 SELinux:
(undercloud)$ virt-customize -a overcloud-realtime-compute.qcow2 --selinux-relabel
提取
vmlinuz
和initrd
。例如:(undercloud)$ mkdir image (undercloud)$ guestmount -a overcloud-realtime-compute.qcow2 -i --ro image (undercloud)$ cp image/boot/vmlinuz-4.18.0-80.7.1.rt9.153.el8_0.x86_64 ./overcloud-realtime-compute.vmlinuz (undercloud)$ cp image/boot/initramfs-4.18.0-80.7.1.rt9.153.el8_0.x86_64.img ./overcloud-realtime-compute.initrd (undercloud)$ guestunmount image
注意vmlinuz
和initramfs
文件名中的软件版本与内核版本不同。上传镜像:
(undercloud)$ openstack overcloud image upload \ --update-existing --os-image-name overcloud-realtime-compute.qcow2
现在,您有一个实时镜像,可用于选择 Compute 节点上的
ComputeRealTime
可组合角色。要减少 Real-time Compute 节点上的延迟,您必须修改 Compute 节点上的 BIOS 设置。您应该在 Compute 节点 BIOS 设置中禁用以下组件的所有选项:
- 电源管理
- Hyper-Threading
- CPU 睡眠状态
逻辑处理器
有关这些设置的描述及其禁用它们的影响,请参阅设置 BIOS 参数。有关如何更改 BIOS 设置的详情,请查看您的硬件制造商文档。