QEMU 5.2가 출시되었습니다 . 이 새로운 버전 에는 216명의 개발자가 참여한 3200개 이상의 변경 사항이 포함되어 있으며 , RISC-V 라이브 마이그레이션 지원, RISC-V 하이퍼바이저에 대한 실험적 지원, 더 많은 보드 지원 등이 추가되었습니다.
QEMU에 익숙하지 않은 분들을 위해 설명드리자면, QEMU는 한 하드웨어 플랫폼용으로 개발된 프로그램을 완전히 다른 아키텍처를 가진 시스템에서 실행할 수 있도록 해주는 에뮬레이터입니다 . 예를 들어, ARM 애플리케이션을 x86 호환 PC에서 실행할 수 있습니다.
QEMU의 가상화 모드에서는 CPU에서 명령을 직접 실행하고 Xen 하이퍼 바이저 또는 KVM 모듈을 사용하기 때문에 격리 된 환경에서 코드를 실행하는 성능이 하드웨어 시스템에 가깝습니다.
QEMU 5.2의 주요 새로운 기능
빌드 시스템이 변경되었습니다. 이제 QEMU를 컴파일하려면 ninja 툴킷이 설치되어 있어야 합니다.
블록 장치 드라이버가 백그라운드에서 실행되는 qemu-storage-daemon 프로세스를 vhost-user-blk의 백엔드로 사용할 수 있도록 지원이 추가되었으며 , 'nbd-server-add' 명령을 대체하고 'qemu-storage-daemon'을 지원하는 새로운 QMP 명령 'block-export-add'도 추가되었습니다.
qcow2 이미지의 경우, 확장 L2 레지스터 지원이 추가되어 불완전한 그룹(서브클러스터)별로 공간을 할당할 수 있습니다. 이미지를 생성할 때 L2를 활성화하려면 "extended_l2 = on" 옵션을 지정해야 합니다.
또한 , qemu를 NBD 클라이언트로 사용하는 것에 대한 지원이 개선된 점도 주목할 만합니다. 이는 네트워크를 통해 데이터를 교환할 때 타임아웃이 발생하여 게스트 운영 체제가 차단되는 상황을 줄여줍니다. qemu-nbd는 여러 개의 '-B name' 옵션을 지정하여 여러 개의 변경된 비트맵을 한 번에 지정할 수 있는 기능을 제공합니다.
또 다른 중요한 변경 사항은 TLS 및 multifd를 사용한 암호화 데이터 전송을 지원하는 새로운 고성능 마이그레이션 모드 입니다 . 기본 마이그레이션 대역폭 제한이 1Gbps로 증가했습니다.
마이그레이션 매개변수 'block-bitmap-mapping'이 추가되어 마이그레이션 중에 전송할 비트맵을 더욱 세밀하게 제어할 수 있게 되었습니다. 이 매개변수는 수신 측 호스트 이름이 소스 호스트 이름과 다른 경우에도 작동합니다.
또한, RAM에서 수행되는 작업과 관련된 부하를 고려하여 마이그레이션 중 업데이트 속도를 예측하기 위해 새로운 'calc-dirty-rate' 및 'query-dirty-rate' 호출이 추가되었습니다.
또한 mp2-an386, mp2-an500, raspi3ap(라즈베리 파이 3 모델 A+), raspi0(라즈베리 파이 제로), raspi1ap(라즈베리 파이 A+) 및 npcm750-evb/quanta-gsj 보드 에 대한 지원도 제공 합니다.
AArch32 아키텍처의 경우 ARMv8.2 FEAT_FP16 (중간 정밀도 flaoting 지점) 확장에 대한 지원이 구현됩니다.
마지막으로, virtiofsd에 대한 새로운 옵션에 대해서도 언급되어 있는데, 게스트 시스템에서 확장된 xattr 속성 이름의 렌더링을 제어하는 옵션 , 호스트 시스템에서 마운트 지점이 다른 파티션을 별도로 연결하는 옵션, 그리고 pivot_root를 대체할 수 있는 샌드박스 격리 메커니즘을 지정하는 옵션이 있습니다.
RISC-V 아키텍처 에뮬레이터로의 라이브 마이그레이션 지원 과 RISC-V용 실험적 하이퍼바이저 지원(버전 0.6.1로 업데이트됨)이 추가되었습니다. virt/Spike 시스템에서 NUMA 소켓 지원도 추가되었습니다.
이번 새 버전의 주요 변경 사항은 다음 과 같습니다.
- guest-get-devices, guest-get-disks 및 guest-ssh- {get, add-remove} -authorized-keys 명령이 QEMU 게스트 에이전트 (qemu-ga)에 추가되었습니다.
- kvm-steal-time 기반 계정에 대한 지원이 추가되었습니다.
- HPPA 아키텍처 에뮬레이터는 NetBSD 및 Debian 0.5 및 0.6.1과 같은 매우 오래된 Linux 배포판 부팅을 지원합니다.
- PowerPC 아키텍처 에뮬레이터는 NUMA 토폴로지에 대한 사용자 정의 간격 지원을 개선했습니다.
- KVM 용 s390 아키텍처 에뮬레이터는 진단 명령 0x318에 대한 지원을 추가했습니다.
- 클래식 코드 생성기 TCG (Tiny Code Generator)는 추가 z14 명령어에 대한 지원을 구현합니다.
- vfio-pci 장치에서는 에뮬레이트 된 기능 대신 실제 컴퓨터 기능에 대한 정보가 제공됩니다.
- Xtensa 아키텍처 에뮬레이터는 단 정밀도 및 배정 밀도 부동 소수점 opcode를 사용하여 DFPU 보조 프로세서에 대한 지원을 추가합니다.