9.2. 为 NFV 工作负载启用 RT-KVM
为了协助安装和配置 Red Hat Enterprise Linux 8.2 Real Time KVM (RT-KVM),Red Hat OpenStack Platform 提供了以下功能:
- 为实时置备 Red Hat Enterprise Linux 的实时 Compute 节点角色。
- 额外的 RT-KVM 内核模块。
- 自动配置 Compute 节点。
9.2.1. 规划您的 RT-KVM Compute 节点 复制链接链接已复制到粘贴板!
您必须使用 Red Hat 认证的服务器作为 RT-KVM Compute 节点。如需更多信息,请参阅: Red Hat Enterprise Linux for Real Time 7 认证的服务器。
有关如何为 RT-KVM 启用 rhel-8-server-nfv-rpms 存储库的详细信息,并确保您的系统是最新的,请参阅: 注册和更新 undercloud。
您需要单独订阅 Red Hat OpenStack Platform for Real Time SKU,才能访问此软件仓库。
构建实时镜像
在 undercloud 上安装 libguestfs-tools 软件包以获取 virt-customize 工具:
sudo dnf install libguestfs-tools
(undercloud) [stack@undercloud-0 ~]$ sudo dnf install libguestfs-toolsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要如果在 undercloud 上安装
libguestfs-tools软件包,请禁用iscsid.socket以避免与 undercloud 上的tripleo_iscsid服务冲突:sudo systemctl disable --now iscsid.socket
$ sudo systemctl disable --now iscsid.socketCopy to Clipboard Copied! Toggle word wrap Toggle overflow 提取镜像:
tar -xf /usr/share/rhosp-director-images/overcloud-full.tar tar -xf /usr/share/rhosp-director-images/ironic-python-agent.tar
(undercloud) [stack@undercloud-0 ~]$ tar -xf /usr/share/rhosp-director-images/overcloud-full.tar (undercloud) [stack@undercloud-0 ~]$ tar -xf /usr/share/rhosp-director-images/ironic-python-agent.tarCopy to Clipboard Copied! Toggle word wrap Toggle overflow 复制默认镜像:
cp overcloud-full.qcow2 overcloud-realtime-compute.qcow2
(undercloud) [stack@undercloud-0 ~]$ cp overcloud-full.qcow2 overcloud-realtime-compute.qcow2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注册您的镜像,以启用与您的自定义相关的红帽软件仓库。在以下示例中,用有效的凭证替换
[username]和[password]。virt-customize -a overcloud-realtime-compute.qcow2 --run-command \ 'subscription-manager register --username=[username] --password=[password]' \ subscription-manager release --set 8.2
virt-customize -a overcloud-realtime-compute.qcow2 --run-command \ 'subscription-manager register --username=[username] --password=[password]' \ subscription-manager release --set 8.2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意为安全起见,您可以在命令提示符上使用凭据时从历史记录文件中删除凭据。您可以使用
history -d命令(后跟行号)删除历史记录中的个别行。从您的帐户的订阅中查找池 ID 列表,并将适当的池 ID 附加到您的镜像。
sudo subscription-manager list --all --available | less ... virt-customize -a overcloud-realtime-compute.qcow2 --run-command \ 'subscription-manager attach --pool [pool-ID]'
sudo subscription-manager list --all --available | less ... virt-customize -a overcloud-realtime-compute.qcow2 --run-command \ 'subscription-manager attach --pool [pool-ID]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 NFV 添加 Red Hat OpenStack Platform 所需的存储库。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个脚本,以在镜像上配置实时功能。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行脚本以配置实时镜像:
virt-customize -a overcloud-realtime-compute.qcow2 -v --run rt.sh 2>&1 | tee virt-customize.log
(undercloud) [stack@undercloud-0 ~]$ virt-customize -a overcloud-realtime-compute.qcow2 -v --run rt.sh 2>&1 | tee virt-customize.logCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您在
rt.sh脚本输出中看到以下行,"grubby fatal 错误:无法找到合适的模板",您可以忽略此错误。检查导致上一命令导致的
virt-customize.log文件,以检查通过rt.sh脚本正确安装的软件包。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重新标记 SELinux:
virt-customize -a overcloud-realtime-compute.qcow2 --selinux-relabel
(undercloud) [stack@undercloud-0 ~]$ virt-customize -a overcloud-realtime-compute.qcow2 --selinux-relabelCopy to Clipboard Copied! Toggle word wrap Toggle overflow 提取 vmlinuz 和 initrd:
mkdir image guestmount -a overcloud-realtime-compute.qcow2 -i --ro image cp image/boot/vmlinuz-3.10.0-862.rt56.804.el7.x86_64 ./overcloud-realtime-compute.vmlinuz cp image/boot/initramfs-3.10.0-862.rt56.804.el7.x86_64.img ./overcloud-realtime-compute.initrd guestunmount image
(undercloud) [stack@undercloud-0 ~]$ mkdir image (undercloud) [stack@undercloud-0 ~]$ guestmount -a overcloud-realtime-compute.qcow2 -i --ro image (undercloud) [stack@undercloud-0 ~]$ cp image/boot/vmlinuz-3.10.0-862.rt56.804.el7.x86_64 ./overcloud-realtime-compute.vmlinuz (undercloud) [stack@undercloud-0 ~]$ cp image/boot/initramfs-3.10.0-862.rt56.804.el7.x86_64.img ./overcloud-realtime-compute.initrd (undercloud) [stack@undercloud-0 ~]$ guestunmount imageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意vmlinuz和initramfs文件名中的软件版本因内核版本而异。上传镜像:
openstack overcloud image upload --update-existing --os-image-name overcloud-realtime-compute.qcow2
(undercloud) [stack@undercloud-0 ~]$ openstack overcloud image upload --update-existing --os-image-name overcloud-realtime-compute.qcow2Copy to Clipboard Copied! Toggle word wrap Toggle overflow
现在,您可以在所选 Compute 节点上与 ComputeOvsDpdkRT 可组合角色一起使用的实时镜像。
修改 RT-KVM Compute 节点上的 BIOS 设置
要减少 RT-KVM Compute 节点上的延迟,请在 Compute 节点 BIOS 设置中禁用以下参数所有选项:
- 电源管理
- 超线程
- CPU 睡眠状态
- 逻辑处理器
有关这些设置的描述以及禁用它们的影响,请参阅设置 BIOS 参数。有关如何更改 BIOS 设置的详情,请查看您的硬件厂商文档。
9.2.2. 使用 RT-KVM 配置 OVS-DPDK 复制链接链接已复制到粘贴板!
您必须确定 network-environment.yaml 文件中设置的 OVS-DPDK 参数的最佳值,以优化 OVS-DPDK 的 OpenStack 网络。如需了解更多详细信息,请参阅 第 8.1 节 “使用工作流推断 DPDK 参数”。
9.2.2.1. 生成 ComputeOvsDpdk 可组合角色 复制链接链接已复制到粘贴板!
使用 ComputeOvsDpdkRT 角色为实时计算镜像指定 Compute 节点。
为 ComputeOvsDpdkRT 角色生成 roles_data.yaml。
(undercloud) [stack@undercloud-0 ~]$ openstack overcloud roles generate -o roles_data.yaml Controller ComputeOvsDpdkRT
# (undercloud) [stack@undercloud-0 ~]$ openstack overcloud roles generate -o roles_data.yaml Controller ComputeOvsDpdkRT
9.2.2.2. 配置 OVS-DPDK 参数 复制链接链接已复制到粘贴板!
确定 network-environment.yaml 文件中的 OVS-DPDK 参数的最佳值,以优化您的部署。更多信息请参阅 第 8.1 节 “使用工作流推断 DPDK 参数”。
为您在
resource_registry下使用的 OVS-DPDK 角色添加 NIC 配置:resource_registry: # Specify the relative/absolute path to the config files you want to use for override the default. OS::TripleO::ComputeOvsDpdkRT::Net::SoftwareConfig: nic-configs/compute-ovs-dpdk.yaml OS::TripleO::Controller::Net::SoftwareConfig: nic-configs/controller.yaml
resource_registry: # Specify the relative/absolute path to the config files you want to use for override the default. OS::TripleO::ComputeOvsDpdkRT::Net::SoftwareConfig: nic-configs/compute-ovs-dpdk.yaml OS::TripleO::Controller::Net::SoftwareConfig: nic-configs/controller.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
parameter_defaults下,设置 OVS-DPDK 和 RT-KVM 参数:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.2.2.3. 部署 overcloud 复制链接链接已复制到粘贴板!
为 ML2-OVS 部署 overcloud:
9.2.3. 启动 RT-KVM 实例 复制链接链接已复制到粘贴板!
执行以下步骤在启用了实时 Compute 节点上启动 RT-KVM 实例:
在 overcloud 上创建 RT-KVM 类别:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动 RT-KVM 实例:
openstack server create --image <rhel> --flavor r1.small --nic net-id=<dpdk-net> test-rt
# openstack server create --image <rhel> --flavor r1.small --nic net-id=<dpdk-net> test-rtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要验证实例是否使用分配的仿真程序线程,请运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow