20.11. CPU 모델 및 토폴로지
이 섹션에서는 CPU 모델의 요구 사항을 다룹니다. 모든 하이퍼바이저에는 기본적으로 CPU 기능 게스트가 표시되는 자체 정책이 있습니다. QEMU/KVM에서 게스트에 제공하는 CPU 기능 세트는 게스트 가상 머신 구성에서 선택한 CPU 모델에 따라 다릅니다.
qemu32
및 qemu64
는 기본 CPU 모델이지만 다른 모델(추가 기능 포함)을 사용할 수 있습니다. 각 모델 및 해당 토폴로지는 도메인 XML의 다음 요소를 사용하여 지정됩니다.
그림 20.13. CPU 모델 및 토폴로지 예 1
<cpu match='exact'> <model fallback='allow'>core2duo</model> <vendor>Intel</vendor> <topology sockets='1' cores='2' threads='1'/> <feature policy='disable' name='lahf_lm'/> </cpu>
그림 20.14. CPU 모델 및 토폴로지 예 2
<cpu mode='host-model'> <model fallback='forbid'/> <topology sockets='1' cores='2' threads='1'/> </cpu>
그림 20.15. CPU 모델 및 토폴로지 예 3
<cpu mode='host-passthrough'/>
CPU 모델이나 해당 기능에 제한이 없는 경우 다음과 같은 간단한 cpu 요소가 사용될 수 있습니다.
그림 20.16. CPU 모델 및 토폴로지 예 4
<cpu> <topology sockets='1' cores='2' threads='1'/> </cpu>
도메인 XML의 이 섹션의 구성 요소는 다음과 같습니다.
element | 설명 |
---|---|
<cpu> | 이 요소에는 vCPU 기능 세트에 대한 모든 매개변수가 포함되어 있습니다. |
<match> | <cpu> 요소에 표시된 기능이 사용 가능한 vCPU와 얼마나 밀접하게 일치해야 하는지 지정합니다. <topology> 가 <cpu> 요소에 중첩된 유일한 요소인 경우 match 특성을 생략할 수 있습니다. match 속성에 사용 가능한 값은 다음과 같습니다.
<cpu> 요소에서 match 속성이 생략되면 기본 설정 match='exact' 가 사용됩니다. |
<mode> | 이 선택적 특성은 게스트 가상 머신 CPU를 호스트 물리적 머신 CPU에 최대한 가깝게 구성하는 데 더 쉽게 사용할 수 있습니다. mode 특성에 가능한 값은 다음과 같습니다.
|
<model> | 게스트 가상 머신에서 요청한 CPU 모델을 지정합니다. 사용 가능한 CPU 모델 및 해당 정의 목록은 libvirt의 data 디렉터리에 설치된 cpu_map.xml 파일에서 확인할 수 있습니다. 하이퍼바이저가 정확한 CPU 모델을 사용할 수 없는 경우 libvirt는 CPU 기능 목록을 유지하면서 하이퍼바이저에서 지원하는 가장 가까운 모델로 자동 대체됩니다. 선택적 fallback 속성은 이 동작을 금지하는 데 사용할 수 있으며, 이 경우 지원되지 않는 CPU 모델을 요청하는 도메인을 시작하려고 하면 실패합니다. fallback 속성에 지원되는 값은 allow (기본값) 및 forbid 입니다. 선택적 vendor_id 특성은 게스트 가상 머신에 표시된 벤더 ID를 설정하는 데 사용할 수 있습니다. 정확히 12자 길이여야 합니다. 설정되지 않은 경우 호스트 물리적 시스템의 벤더 ID가 사용됩니다. 일반적인 가능한 값은 AuthenticAMD 및 GenuineIntel 입니다. |
<vendor> | 게스트 가상 머신에서 요청한 CPU 벤더를 지정합니다. 이 요소가 누락된 경우 게스트 가상 머신은 벤더에 관계없이 지정된 기능과 일치하는 CPU에서 실행됩니다. 지원되는 공급 업체 목록은 cpu_map.xml 에서 확인할 수 있습니다. |
<토폴로지> | 게스트 가상 머신에 제공된 가상 CPU의 요청된 토폴로지를 지정합니다. 소켓, 코어, 스레드 수, 소켓당 코어 수, 코어당 코어 수, 코어당 3개의 스레드 수를 각각 지정해야 합니다. |
<기능> | 선택한 CPU 모델에서 제공하는 기능을 미세 조정하는 데 사용되는 0개 이상의 요소를 포함할 수 있습니다. 알려진 기능 이름 목록은 CPU 모델과 동일한 파일에서 확인할 수 있습니다. 각 feature 요소의 의미는 다음 값 중 하나로 설정해야 하는 policy 특성에 따라 달라집니다.
|
20.11.1. 게스트 가상 머신 NUMA 토폴로지
<numa>
요소와 도메인 XML에서 다음을 사용하여 게스트 가상 머신 NUMA 토폴로지를 지정할 수 있습니다.
그림 20.17. 게스트 가상 머신 NUMA 토폴로지
<cpu> <numa> <cell cpus='0-3' memory='512000'/> <cell cpus='4-7' memory='512000'/> </numa> </cpu> ...
각 셀 요소는 NUMA 셀 또는 NUMA 노드를 지정합니다.
CPU
는 노드에 포함된 CPU의 CPU 또는 범위를 지정합니다. memory
는 노드 메모리를 kibibytes(24바이트의 블록)로 지정합니다. 각 셀 또는 노드에는 0부터 시작하는 순서에 따라 cellid
또는 nodeid
가 할당됩니다.