第 12 章 为 NFV 工作负载启用 RT-KVM
为了便于安装和配置 Red Hat Enterprise Linux Real Time KVM (RT-KVM),Red Hat OpenStack Platform 提供以下功能:
- 为实时置备 Red Hat Enterprise Linux 的实时 Compute 节点角色。
- 额外的 RT-KVM 内核模块。
- 自动配置 Compute 节点。
12.1. 规划 RT-KVM Compute 节点 复制链接链接已复制到粘贴板!
在计划 RT-KVM Compute 节点时,请确保完成以下任务:
您必须将红帽认证的服务器用于 RT-KVM Compute 节点。
如需更多信息,请参阅 Red Hat Enterprise Linux for Real Time 认证服务器。
注册 undercloud 并附加有效的 Red Hat OpenStack Platform 订阅。
如需更多信息, 请参阅使用 director 安装和管理 Red Hat OpenStack Platform 中的注册 undercloud 和 附加订阅。
启用 undercloud 所需的存储库,如 RT-KVM 的
rhel-9-server-nfv-rpms存储库,并将系统软件包更新至最新版本。注意您需要单独订阅
Red Hat OpenStack Platform for Real TimeSKU,然后才能访问此软件仓库。如需更多信息,请参阅使用 director 安装和管理 Red Hat OpenStack Platform 中的 为 undercloud 启用存储库。
构建实时镜像
在 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-hardened-uefi-full-17.1.x86_64.tar tar -xf /usr/share/rhosp-director-images/ironic-python-agent-17.1.x86_64.tar
(undercloud) [stack@undercloud-0 ~]$ tar -xf /usr/share/rhosp-director-images/overcloud-hardened-uefi-full-17.1.x86_64.tar (undercloud) [stack@undercloud-0 ~]$ tar -xf /usr/share/rhosp-director-images/ironic-python-agent-17.1.x86_64.tarCopy to Clipboard Copied! Toggle word wrap Toggle overflow 复制默认镜像:
cp overcloud-hardened-uefi-full.qcow2 overcloud-realtime-compute.qcow2
(undercloud) [stack@undercloud-0 ~]$ cp overcloud-hardened-uefi-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 9.0
virt-customize -a overcloud-realtime-compute.qcow2 --run-command \ 'subscription-manager register --username=[username] --password=[password]' \ subscription-manager release --set 9.0Copy 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 error: unable to find a suitable template",您可以忽略此错误。检查前面命令导致的
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 睡眠状态
- 逻辑处理器