4.2. RHEL 실시간 게스트 운영 체제 설치


실시간 워크로드를 위한 VM(가상 머신) 환경을 준비하려면 새 VM을 생성하고 대기 시간이 짧은 성능을 위해 구성을 조정합니다.

사전 요구 사항

프로세스

  1. virt-install 유틸리티를 사용하여 다음 속성으로 RHEL 10 VM을 생성합니다.

    • VM에 2개 이상의 vCPU가 할당됨
    • VM은 메모리 지원에 대규모 페이지를 사용합니다.

    다음 예제 명령은 언급된 요구 사항에 맞는 RHEL10-RT 라는 VM을 생성합니다.

    # virt-install -n RHEL10-RT \
        --os-variant=rhel10.0 --memory=3072,hugepages=yes \
        --memorybacking hugepages=yes,size=1,unit=G,locked=yes \
        --vcpus=4 --numatune=1 --disk path=./RHEL10-RT.img,bus=virtio,cache=none,format=raw,io=threads,size=30 \
        --graphics none --console pty,target_type=serial \
        -l downloads/rhel10.iso \
        --extra-args 'console=ttyS0,115200n8 serial'
  2. 설치가 완료되면 VM을 종료합니다.

    # virsh shutdown <RHEL10-RT>
  3. VM의 XML 구성을 엽니다.

    # virsh edit <RHEL10-RT>
  4. 다음과 같이 CPU 구성을 조정합니다.

    • AMD64 및 Intel 64 호스트에서 다음을 수행합니다.

      <cpu mode='host-model' check='partial'>
          <feature policy='require' name='tsc-deadline'/>
      </cpu>
    • 64비트 ARM 호스트의 경우:

      <cpu mode="host-passthrough" check="none"/>
  5. VM에서 필수가 아닌 가상 하드웨어를 제거하여 성능을 개선합니다.

    1. virtio RNG 장치의 섹션을 삭제합니다.

        <rng model='virtio'>
            <backend model='random'>/dev/urandom</backend>
            <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
        </rng>
    2. 다음과 같은 USB 장치를 제거합니다.

      <hostdev mode='subsystem' type='usb' managed='yes'>
        <source>
          <vendor id='0x1234'/>
          <product id='0xabcd'/>
        </source>
      </hostdev>
    3. 다음과 같은 직렬 장치를 제거합니다.

      <serial type='dev'>
        <source path='/dev/ttyS0'/>
        <target port='0'/>
      </serial>
    4. QXL 장치를 제거합니다.

      <video>
        <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1'/>
      </video>
    5. 그래픽 표시를 비활성화합니다.

      <graphics type='vnc' ports='-1' autoport='yes' listen='127.0.0.1'>
        <listen type='address' address='127.0.0.1'>
      </graphics>
    6. USB 컨트롤러 설정에서 모델을 none 으로 변경하여 비활성화합니다.

      <controller type='usb' index='0' model='none'/>
    7. 신뢰할 수 있는 플랫폼 모듈(TPM) 구성을 제거하여 RT 작업을 방해하지 않습니다.

        <tpm model='tpm-crb'>
            <backend type='emulator' version='2.0'/>
        </tpm>
    8. memballoon 기능을 비활성화합니다.

        <memballoon model='none'/>
    9. 구성의 <features > 섹션에서 PMUvmport 기능이 비활성화되었는지 확인하여 발생할 수 있는 대기 시간을 방지합니다.

        <features>
           [...]
           <pmu state='off'/>
           <vmport state='off'/>
        </features>

      64비트 ARM 호스트에서는 PMU 만 비활성화해야 합니다.

        <features>
           [...]
           <pmu state='off'/>
        </features>
  6. &lt ;numatune& gt; 섹션을 편집하여 NUMA 노드를 설정합니다.

      <numatune>
        <memory mode='strict' nodeset='1'/>
      </numatune>
  7. 구성의 <cputune > 섹션을 편집하여 실시간 가상 머신에 대해 계획된 vCPU 고정을 계획한 대로 vCPU NUMA 고정을 설정합니다.

    다음 예제에서는 4개의 vCPU 및 이러한 매개변수를 사용하여 VM을 구성합니다.

    • 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>
    참고

    호스트에서 활성화된 하이퍼 스레딩 과 함께 하드웨어를 사용하는 경우 < cputune > 구성도 다음 요구 사항을 충족하는지 확인합니다.

    • 물리적 코어의 형제를 할당하여 실시간 또는 하우스키핑 작업을 수행합니다.
    • 동일한 VM에서 물리적 코어의 형제를 모두 사용합니다.
    • 동일한 물리적 코어의 형제에 고정된 vCPU의 경우, 형제와 동일한 작업(실시간 프로세스 또는 하우스키핑)에 vCPU를 할당합니다.

    위의 구성 예제에서는 이러한 요구 사항을 충족합니다.

  8. XML 구성을 저장하고 종료합니다.

문제 해결

검증

  • 호스트에서 VM의 구성을 보고 필요한 매개변수가 있는지 확인합니다.

    # virsh dumpxml <RHEL10-RT>
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동