4.2. 安装 RHEL 实时客户机操作系统


要为实时工作负载准备虚拟机(VM)环境,请创建新虚拟机并调整其配置以实现低延迟性能。

先决条件

流程

  1. 使用 virt-install 工具创建带有以下属性的 RHEL 9 虚拟机:

    • 虚拟机有 2 个或更多分配的 vCPU
    • 虚拟机使用巨页来支持内存。

    以下示例命令创建一个名为 RHEL9-RT 的虚拟机,它符合上述要求:

    # virt-install -n RHEL9-RT \
        --os-variant=rhel9.6 --memory=3072,hugepages=yes \
        --memorybacking hugepages=yes,size=1,unit=G,locked=yes \
        --vcpus=4 --numatune=1 --disk path=./rhel9-rt.img,bus=virtio,cache=none,format=raw,io=threads,size=30 \
        --graphics none --console pty,target_type=serial \
        -l downloads/rhel9.iso \
        --extra-args 'console=ttyS0,115200n8 serial'
    Copy to Clipboard
  2. 安装完成后,关闭虚拟机。

    # virsh shutdown <RHEL9-RT>
    Copy to Clipboard
  3. 打开虚拟机的 XML 配置。

    # virsh edit <RHEL9-RT>
    Copy to Clipboard
  4. 调整 CPU 配置,如下所示:

    <cpu mode='host-model' check='partial'>
        <feature policy='require' name='tsc-deadline'/>
    </cpu>
    Copy to Clipboard
  5. 从虚拟机中删除非必要的虚拟硬件,以提高性能。

    1. 删除 virtio RNG 设备的 部分。

        <rng model='virtio'>
            <backend model='random'>/dev/urandom</backend>
            <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
        </rng>
      Copy to Clipboard
    2. 删除 USB 设备,如下所示:

      <hostdev mode='subsystem' type='usb' managed='yes'>
        <source>
          <vendor id='0x1234'/>
          <product id='0xabcd'/>
        </source>
      </hostdev>
      Copy to Clipboard
    3. 删除串行设备,如下所示:

      <serial type='dev'>
        <source path='/dev/ttyS0'/>
        <target port='0'/>
      </serial>
      Copy to Clipboard
    4. 删除 QXL 设备。

      <video>
        <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1'/>
      </video>
      Copy to Clipboard
    5. 禁用图形显示。

      <graphics type='vnc' ports='-1' autoport='yes' listen='127.0.0.1'>
        <listen type='address' address='127.0.0.1'>
      </graphics>
      Copy to Clipboard
    6. 在 USB 控制器设置中,将模型改为 none 以禁用它。

      <controller type='usb' index='0' model='none'/>
      Copy to Clipboard
    7. 删除 Trusted Platform 模块(TPM)配置,使其不会影响 RT 操作。

        <tpm model='tpm-crb'>
            <backend type='emulator' version='2.0'/>
        </tpm>
      Copy to Clipboard
    8. 禁用 memballoon 功能。

        <memballoon model='none'>
      Copy to Clipboard
    9. 在配置的 <features > 部分中,确保禁用 PMUvmport 功能,以避免它们可能导致的延迟。

        <features>
           [...]
           <pmu state='off'/>
           <vmport state='off'/>
        </features>
      Copy to Clipboard
  6. 编辑 & lt;numatune > 部分以设置 NUMA 节点。

      <numatune>
        <memory mode='strict' nodeset='1'/>
      </numatune>
    Copy to Clipboard
  7. 编辑 配置的 &lt;cputune> 部分,以按照为实时虚拟机优化 vCPU 固定 中的计划设置 vCPU NUMA 固定。

    以下示例使用 4 个 vCPU 和这些参数配置虚拟机:

    • 从 NUMA 节点 0 的隔离内核 15 是非实时 vCPU
    • 来自 NUMA 节点 1 - 3 的核心 16、47 和 48 是实时 vCPU
    • 配置将所有 QEMU I/O 线程固定到主机内务处理内核(0 和 32)。
    <cputune>
      <vcpupin vcpu='0' cpuset='15'/>
      <vcpupin vcpu='1' cpuset='47'/>
      <vcpupin vcpu='2' cpuset='16'/>
      <vcpupin vcpu='3' cpuset='48'/>
      <emulatorpin cpuset='0,32'/>
      <emulatorsched scheduler='fifo' priority='1'/>
      <vcpusched vcpus='0' scheduler='fifo' priority='1'/>
      <vcpusched vcpus='1' scheduler='fifo' priority='1'/>
      <vcpusched vcpus='2' scheduler='fifo' priority='1'/>
      <vcpusched vcpus='3' scheduler='fifo' priority='1'/>
    </cputune>
    Copy to Clipboard
    注意

    如果您的主机使用 启用了超线程 的硬件,还要确保 < cputune& gt; 配置满足以下要求:

    • 分配物理内核的同级功能,以执行实时或内务任务。
    • 在同一虚拟机上同时使用物理内核同级设备。
    • 对于固定到同一物理内核的同级的 vCPU,请将 vCPU 分配给同一任务(实时进程或日常处理)。

    请注意,上面的示例配置满足这些要求。

  8. 保存并退出 XML 配置。

故障排除

验证

  • 在主机上,查看虚拟机的配置,并验证它具有必要的参数:

    # virsh dumpxml <RHEL9-RT>
    Copy to Clipboard
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat