14.16.3. 호스트 물리적 머신 풀을 지원할 수 있는 호환되는 CPU 모델 확인
이제 단일 호스트 물리적 시스템의 CPU 기능을 확인할 수 있으므로 다음 단계는 게스트 가상 머신에 가장 적합한 CPU 기능을 결정하는 것입니다. 게스트 가상 머신을 다른 호스트 물리적 시스템으로 마이그레이션할 필요가 없다는 사실을 알고 있는 경우 호스트 물리적 머신 CPU 모델을 수정하지 않은 상태로 직접 전달할 수 있습니다. 가상화된 데이터 센터에는 모든 서버의 CPU가 100% 동일하도록 보장할 수 있는 구성 세트가 있을 수 있습니다. 다시 호스트 물리적 머신 CPU 모델을 수정하지 않은 상태로 바로 전달할 수 있습니다. 그러나 일반적인 경우는 호스트 물리적 시스템 간에 CPU가 다릅니다. 이 혼합된 CPU 환경에서 가장 낮은 공통 분모 CPU를 결정해야 합니다. 이는 쉽지 않으므로 libvirt는 이 작업에 대한 API를 제공합니다. libvirt가 호스트 물리적 시스템의 CPU 모델을 설명하는 XML 문서 목록을 제공하는 경우 libvirt는 내부적으로 이 모델을 CPUID 마스크로 변환하고 교집합을 계산하고, CPUID 마스크 결과를 XML CPU 설명으로 다시 변환합니다.
다음은 virsh기능이 실행될 때 기본 워크스테이션에서 기능으로 어떤 libvirt를 보고하는지 보여줍니다.
그림 14.3. 호스트 물리적 시스템의 CPU 모델 정보 가져오기
<capabilities> <host> <cpu> <arch>i686</arch> <model>pentium3</model> <topology sockets='1' cores='2' threads='1'/> <feature name='lahf_lm'/> <feature name='lm'/> <feature name='xtpr'/> <feature name='cx16'/> <feature name='ssse3'/> <feature name='tm2'/> <feature name='est'/> <feature name='vmx'/> <feature name='ds_cpl'/> <feature name='monitor'/> <feature name='pni'/> <feature name='pbe'/> <feature name='tm'/> <feature name='ht'/> <feature name='ss'/> <feature name='sse2'/> <feature name='acpi'/> <feature name='ds'/> <feature name='clflush'/> <feature name='apic'/> </cpu> </host> </capabilities>
이제 동일한 virsh capabilities 명령을 사용하여 임의의 임의의 서버와 비교합니다.
그림 14.4. 임의의 서버에서 CPU 설명 생성
<capabilities> <host> <cpu> <arch>x86_64</arch> <model>phenom</model> <topology sockets='2' cores='4' threads='1'/> <feature name='osvw'/> <feature name='3dnowprefetch'/> <feature name='misalignsse'/> <feature name='sse4a'/> <feature name='abm'/> <feature name='cr8legacy'/> <feature name='extapic'/> <feature name='cmp_legacy'/> <feature name='lahf_lm'/> <feature name='rdtscp'/> <feature name='pdpe1gb'/> <feature name='popcnt'/> <feature name='cx16'/> <feature name='ht'/> <feature name='vme'/> </cpu> ...snip...
이 CPU 설명이 이전 워크스테이션 CPU 설명과 호환되는지 확인하려면 virsh cpu-compare 명령을 사용합니다.
감소된 콘텐츠는
virsh-caps- workstation-cpu-only.xml
이라는 파일에 저장되었으며 virsh cpu-compare 명령은 이 파일에서 실행할 수 있습니다.
# virsh cpu-compare virsh-caps-workstation-cpu-only.xml Host physical machine CPU is a superset of CPU described in virsh-caps-workstation-cpu-only.xml
이 출력에서 볼 수 있듯이 libvirt 는 CPU가 엄격하게 호환되지 않음을 올바르게 보고합니다. 서버 CPU에 클라이언트 CPU가 없는 여러 기능이 있기 때문입니다. 클라이언트와 서버 간에 마이그레이션할 수 있으려면 XML 파일을 열고 일부 기능을 주석 처리해야 합니다. 제거해야 하는 기능을 확인하려면 두 시스템의 CPU 정보가 포함된
both-cpus.xml
에서 virsh cpu-baseline 명령을 실행합니다. # virsh cpu-baseline both-cpus.xml 을 실행하면 다음과 같은 결과가 나타납니다.
그림 14.5. 복합 CPU 기준
<cpu match='exact'> <model>pentium3</model> <feature policy='require' name='lahf_lm'/> <feature policy='require' name='lm'/> <feature policy='require' name='cx16'/> <feature policy='require' name='monitor'/> <feature policy='require' name='pni'/> <feature policy='require' name='ht'/> <feature policy='require' name='sse2'/> <feature policy='require' name='clflush'/> <feature policy='require' name='apic'/> </cpu>
이 복합 파일은 어떤 요소가 공통인지 보여줍니다. 공통적이지 않은 모든 것은 주석 처리해야합니다.