24.7. ARM 64의 가상화가 AMD64 및 Intel 64와 다른 방법
ARM 64 시스템의 RHEL 9의 KVM 가상화(AArch64라고도 함)는 여러 측면에서 AMD64 및 Intel 64 시스템의 KVM과 다릅니다. 여기에는 다음이 포함되며 이에 국한되지는 않습니다.
- 게스트 운영 체제
- ARM 64 VM(가상 머신)에서 현재 지원되는 유일한 게스트 운영 체제는 RHEL 9입니다.
- 웹 콘솔 관리
- RHEL 9 웹 콘솔에서 VM 관리의 일부 기능이 ARM 64 하드웨어에서 제대로 작동하지 않을 수 있습니다.
- vCPU 핫 플러그 및 핫 언플러그
- vCPU 핫 플러그라고도 하는 실행 중인 VM에 vCPU(가상 CPU)를 연결하는 것은 ARM 64 호스트에서 지원되지 않습니다. AMD64 및 Intel 64 호스트에서와 같이 실행 중인 VM(vCPU 핫 언플러그)에서 vCPU를 제거하는 것은 ARM 64에서 지원되지 않습니다.
- SecureBoot
- SecureBoot 기능은 ARM 64 시스템에서 사용할 수 없습니다.
- Migration
- ARM 64 호스트 간에 VM을 마이그레이션하는 것은 현재 지원되지 않습니다.
- 메모리 페이지 크기
ARM 64는 현재 64KB 메모리 페이지 크기가 있고 64KB 메모리 페이지 크기가 있는 호스트에서만 실행되는 VM을 지원합니다. 호스트 또는 게스트의 4KB 페이지 크기는 현재 지원되지 않습니다.
ARM 64에서 VM을 성공적으로 생성하려면 호스트에서 64KB 메모리 페이지 크기가 있는 커널을 사용하고 VM을 생성할 때 다음과 같이 kickstart 파일에 다음 매개변수를 포함하여
kernel-64k 패키지로
설치해야 합니다.%packages -kernel kernel-64k %end
- Huge Page
64KB 메모리 페이지 크기가 있는 ARM 64 호스트는 다음과 같은 크기의 대규모 메모리 페이지를 지원합니다.
- 2MB
- 512MB
16GB
ARM 64 호스트에서 THP(Transparent Huge Page) 파일 시스템을 사용하면 512MB 대규모 페이지만 지원합니다.
- SVE
ARM 64 아키텍처는 SVE( Scalable Vector Expansion) 기능을 제공합니다. 호스트가 기능을 지원하는 경우 VM에서 SVE를 사용하면 이러한 VM의 벡터 계산 및 문자열 작업의 속도가 향상됩니다.
SVE의 기본 줄 수준은 기본적으로 이를 지원하는 호스트 CPU에서 활성화됩니다. 그러나 Red Hat은 각 벡터 길이를 명시적으로 설정할 것을 권장합니다. 이렇게 하면 호환되는 호스트에서만 VM을 시작할 수 있습니다. 이렇게 하려면 다음을 수행합니다.
CPU에 SVE 기능이 있는지 확인합니다.
# grep -m 1 Features /proc/cpuinfo | grep -w sve Features: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm fcma dcpop sve
이 명령의 출력에
sve
또는 종료 코드가 0인 경우 CPU는 SVE를 지원합니다.수정할 VM의 XML 구성을 엽니다.
# virsh edit vm-name
<
;cpu&
gt; 요소를 다음과 유사하게 편집합니다.<cpu mode='host-passthrough' check='none'> <feature policy='require' name='sve'/> <feature policy='require' name='sve128'/> <feature policy='require' name='sve256'/> <feature policy='disable' name='sve384'/> <feature policy='require' name='sve512'/> </cpu>
이 예제에서는 SVE 벡터 길이 128, 256 및 512를 명시적으로 활성화하고 벡터 길이 384를 명시적으로 비활성화합니다.
- CPU 모델
-
ARM 64의 VM은 현재
호스트
CPU 모델만 지원합니다. - VM 저장 및 복원
- VM 저장 및 복원 은 현재 ARM 64 호스트에서 지원되지 않습니다.
- PXE
PXE(Preboot Execution Environment) 기능에서 부팅하지만 지원되지 않는 경우 Red Hat은 프로덕션 환경에서 사용하지 않는 것이 좋습니다.
PXE 부팅이 필요한 경우
virtio-net-pci
네트워크 인터페이스 컨트롤러(NIC)에서만 가능합니다. 또한 가상 머신 UEFI 플랫폼 펌웨어(edk2-aarch64
패키지와 함께 설치됨)의 기본 제공VirtioNetDxe
드라이버를 PXE 부팅에 사용해야 합니다. iPXE 옵션rome은 지원되지 않습니다.- 장치 메모리
- 듀얼 인라인 메모리 모듈(DIMM) 및 비휘발성 DIMM(NVDIMM)과 같은 장치 메모리 기능은 ARM 64에서 작동하지 않습니다.
- pvpanic
-
pvpanic 장치는 현재 ARM 64에서 지원되지 않습니다. VM이 부팅되지 않을 수 있으므로 ARM 64에서 게스트 XML 구성의 <
devices
> 섹션에서 <panic
> 요소를 제거해야 합니다. - OVMF
ARM 64 호스트의 VM은
edk2-ovmf
패키지에 포함된 AMD64 및 Intel 64에서 사용되는 OVMF UEFI 펌웨어를 사용할 수 없습니다. 대신 이러한 VM은 유사한 인터페이스를 제공하고 유사한 기능 세트를 구현하는edk2-aarch64
패키지에 포함된 UEFI 펌웨어를 사용합니다.특히
edk2-aarch64
는 내장된 UEFI 쉘을 제공하지만 다음 기능은 지원하지 않습니다.- SecureBoot
- 관리 모드
- kvm-clock
-
kvm-clock
서비스는 ARM 64의 VM에서 시간 관리를 위해 구성할 필요가 없습니다. - 주변 장치
ARM 64 시스템은 AMD64 및 Intel 64 장치와 부분적으로 다른 주변 장치 세트를 지원합니다.
- PCIe 토폴로지만 지원됩니다.
-
ARM 64 시스템은
virtio
-*-pcivirtio-iommu
및virtio-input
장치는 지원되지 않습니다. -
virtiofs
기능은 기술 프리뷰로만 제공되므로 지원되지 않습니다. -
virtio-gpu
드라이버는 그래픽 설치에만 지원됩니다. -
ARM 64 시스템은 그래픽 설치를 위해
usb-mouse
및usb-tablet
장치를 지원합니다. 기타 USB 장치, USB 패스스루 또는 USB 리디렉션은 지원되지 않습니다. - VFIO(Virtual Function I/O)를 사용하는 장치 할당은 NIC(물리적 및 가상 기능)에만 지원됩니다.
- 에뮬레이션된 장치
다음 장치는 ARM 64에서 지원되지 않습니다.
- ICH9, ICH6 또는 AC97과 같은 에뮬레이션된 사운드 장치.
- VGA 카드와 같은 에뮬레이션된 그래픽 카드입니다.
-
rtl8139
와 같은 에뮬레이션된 네트워크 장치 .
- GPU 장치
- ARM 64 시스템에서 GPU 장치 할당 은 지원되지 않습니다.
- 직렬 콘솔 구성
-
VM에서 직렬 콘솔을 설정할 때
grubby
유틸리티와 함께console=ttyS0
대신console=ttyAMA0
커널 옵션을 사용합니다. - 마스킹할 수 없는 인터럽트
- ARM 64 VM으로 마스킹할 수 없는 인터럽트(NMI)를 현재 사용할 수 없습니다.
- 중첩된 가상화
- 현재 ARM 64 호스트에서 중첩된 VM을 생성할 수 없습니다.
- v2v 및 p2v
-
virt-v2v
및virt-p2v
유틸리티는 AMD64 및 Intel 64 아키텍처에서만 지원되므로 ARM 64에서는 제공되지 않습니다.