第 11 章 为 NFV 工作负载启用 RT-KVM
为了便于安装和配置 Red Hat Enterprise Linux Real Time KVM (RT-KVM),Red Hat OpenStack Platform 提供以下功能:
- 为实时置备 Red Hat Enterprise Linux 的实时 Compute 节点角色。
- 额外的 RT-KVM 内核模块。
- Compute 节点自动配置。
11.1. 规划 RT-KVM Compute 节点
在计划 RT-KVM Compute 节点时,请确保完成以下任务:
您必须将红帽认证的服务器用于 RT-KVM Compute 节点。
如需更多信息,请参阅 Red Hat Enterprise Linux for Real Time 认证服务器。
注册 undercloud 并附加有效的 Red Hat OpenStack Platform 订阅。
如需更多信息,请参阅 Director 安装和使用指南中的 注册 undercloud 和 附加订阅。
启用 undercloud 所需的存储库,如 RT-KVM 的
rhel-9-server-nfv-rpms
存储库,并将系统软件包更新至最新版本。注意您需要单独订阅
Red Hat OpenStack Platform for Real Time
SKU,才能访问此软件仓库。
构建实时镜像
在 undercloud 上安装 libguestfs-tools 软件包,以获取 virt-customize 工具:
(undercloud) [stack@undercloud-0 ~]$ sudo dnf install libguestfs-tools
重要如果在 undercloud 上安装
libguestfs-tools
软件包,请禁用iscsid.socket
,以避免与 undercloud 上的tripleo_iscsid
服务冲突:$ sudo systemctl disable --now iscsid.socket
解压镜像:
(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.tar
复制默认镜像:
(undercloud) [stack@undercloud-0 ~]$ cp overcloud-hardened-uefi-full.qcow2 overcloud-realtime-compute.qcow2
注册您的镜像以启用与您的自定义相关的红帽软件仓库。将
[username]
和[password]
替换为以下示例中的有效凭证。virt-customize -a overcloud-realtime-compute.qcow2 --run-command \ 'subscription-manager register --username=[username] --password=[password]' \ subscription-manager release --set 8.4
注意为安全起见,如果在命令提示符中使用它们,则可从历史记录文件中删除凭证。您可以使用
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]'
添加使用 NFV 的 Red Hat OpenStack Platform 所需的存储库。
virt-customize -a overcloud-realtime-compute.qcow2 --run-command \ 'sudo subscription-manager repos --enable=rhel-8-for-x86_64-baseos-eus-rpms \ --enable=rhel-8-for-x86_64-appstream-eus-rpms \ --enable=rhel-8-for-x86_64-highavailability-eus-rpms \ --enable=ansible-2.9-for-rhel-8-x86_64-rpms \ --enable=openstack-16.2-for-rhel-8-x86_64-rpms \ --enable=rhel-8-for-x86_64-nfv-rpms \ --enable=fast-datapath-for-rhel-8-x86_64-rpms'
创建一个脚本,以配置镜像的实时功能。
(undercloud) [stack@undercloud-0 ~]$ cat <<'EOF' > rt.sh #!/bin/bash set -eux dnf -v -y --setopt=protected_packages= erase kernel.$(uname -m) dnf -v -y install kernel-rt kernel-rt-kvm tuned-profiles-nfv-host grubby --set-default /boot/vmlinuz*rt* EOF
运行脚本以配置实时镜像:
(undercloud) [stack@undercloud-0 ~]$ virt-customize -a overcloud-realtime-compute.qcow2 -v --run rt.sh 2>&1 | tee virt-customize.log
注意如果您在
rt.sh
脚本输出中看到以下行,"grubby fatal error: 无法找到合适的模板"
,您可以忽略此错误。检查之前命令生成的
virt-customize.log
文件,以使用rt.sh
脚本检查是否正确安装的软件包。(undercloud) [stack@undercloud-0 ~]$ cat virt-customize.log | grep Verifying Verifying : kernel-3.10.0-957.el7.x86_64 1/1 Verifying : 10:qemu-kvm-tools-rhev-2.12.0-18.el7_6.1.x86_64 1/8 Verifying : tuned-profiles-realtime-2.10.0-6.el7_6.3.noarch 2/8 Verifying : linux-firmware-20180911-69.git85c5d90.el7.noarch 3/8 Verifying : tuned-profiles-nfv-host-2.10.0-6.el7_6.3.noarch 4/8 Verifying : kernel-rt-kvm-3.10.0-957.10.1.rt56.921.el7.x86_64 5/8 Verifying : tuna-0.13-6.el7.noarch 6/8 Verifying : kernel-rt-3.10.0-957.10.1.rt56.921.el7.x86_64 7/8 Verifying : rt-setup-2.0-6.el7.x86_64 8/8
重新标记 SELinux:
(undercloud) [stack@undercloud-0 ~]$ virt-customize -a overcloud-realtime-compute.qcow2 --selinux-relabel
提取 vmlinuz 和 initrd:
(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 image
注意vmlinuz
和initramfs
文件名中的软件版本与内核版本不同。上传镜像:
(undercloud) [stack@undercloud-0 ~]$ openstack overcloud image upload --update-existing --os-image-name overcloud-realtime-compute.qcow2
现在,您有一个实时镜像,可用于所选 Compute 节点上的 ComputeOvsDpdkRT
可组合角色。
修改 RT-KVM Compute 节点上的 BIOS 设置
要减少 RT-KVM Compute 节点上的延迟,请在 Compute 节点 BIOS 设置中禁用以下参数的所有选项:
- 电源管理
- 超线程
- CPU 睡眠状态
- 逻辑处理器