kvm 게스트 운영 체제를 사용하는 qemu가 매우 느립니다.

kvm 게스트 운영 체제를 사용하는 qemu가 매우 느립니다.

kvm이 활성화된 qemu-system-x86_64 2.3.0을 사용하여 Gentoo x86_64 호스트(커널 3.18.9 강화)에서 Windows 7 가상 머신을 생성하려고 합니다. 커널을 성공적으로 컴파일하고 게스트(Windows 7)를 설치했지만 게스트에서 IO와 관련된 주요 성능 문제가 발생하고 있습니다.

호스트 사양은 1.7GHz(2.6GHz 터보) i5-3317U(2코어, 4스레드)이며 6GB DDR3 메모리와 5300rpm 하드 드라이브를 탑재했다. 호스트는 가상 머신 이미지가 저장된 /home에 마운트된 AES luks 암호화 파일 볼륨을 실행합니다. 게스트 머신의 사양은 2코어, 4스레드, 4GB 메모리, 15GB 이미지입니다(테스트를 위해 1GB 디스크 공간을 남겨둡니다). 게스트 컨테이너는 qcow2, compat 1.1, 지연 참조 카운트: true, 재카운트 비트: 16, 캐시는 없음으로 설정됩니다. 또한 이 qcow2 컨테이너를 형식으로 변환해 보았으며 raw문제 해결에 약간 도움이 되었습니다.

가능한 경우 virtio 드라이버를 설치하고 활성화했으며 info kvmqemus 터미널 내에서 명령을 실행하여 qemu가 kvm을 사용하고 있는지 확인했습니다. 또한 다음과 같이 시작 스크립트를 수동으로 조정해 보았습니다.

#!/bin/bash
export QEMU_AUDIO_DRV=alsa
exec qemu-system-x86_64 \
    --enable-kvm \
    -machine type=pc,accel=kvm \
    -smp cores=2,threads=4 \
    -vga std \
    -soundhw ac97 \
    -drive file=/WindowsVM.img2,cache=none,if=virtio \
    -netdev user,id=vmnic -device virtio-net,netdev=vmnic \
    -cpu host \
    -m 4G \
    -balloon virtio \
    -name Windows \
    -usbdevice tablet \
    -monitor stdio \
    "$@"

문제는 이미지를 부팅하고 종료하는 데 시간이 오래 걸린다는 것입니다. 앱을 여는 데에도 많은 시간이 걸립니다(테스트를 위해 Internet Explorer를 여는 데 15~20초). 하지만 몇 번 열면 앱이 캐시된 것처럼 몇 배 더 빠르게 열립니다. 제가 알아차린 또 다른 사실은 zip 파일 추출 속도가 50-60kb/s를 초과하지 않으며 파일이 일반적인 다운로드 속도로 다운로드되지만 일단 100%에 도달하면 시간이 완료되기 전에 잠시 동안 멈춘다는 것입니다. 가상디스크 IO 벤치마킹을 위해 크리스탈디스크마크를 실행해봤는데 순차읽기 속도는 400mb/s, 쓰기속도는 300mb/s로 확실히 잘못된 수치입니다. 이러한 최고점은 위에서 설명한 대로 암호화된 파일 볼륨에 저장된 이미지에서 가상 머신을 부팅할 때입니다. 암호화되지 않은 마운트 지점으로 이미지를 이동할 때 읽기 속도는 70mb/s, 쓰기 속도는 35mb/s로 좀 더 합리적으로 보입니다. 우연히도 가상 머신은 이미지가 암호화되지 않은 위치에 저장될 때 이러한 "지연"이 훨씬 덜 발생합니다. 시작/종료 시간은 여전히 ​​상당히 길지만, 이미지를 암호화된 위치에 저장하는 데 걸리는 시간이나 소프트웨어를 열고 닫는 데 걸리는 시간에는 전혀 가깝지 않습니다.

테스트를 통해 확인한 바와 같이 이미지를 담고자 하는 암호화된 파일 볼륨이 문제를 일으킬 수 있으며,하지만 다른 의견이나 시도해 볼 수 있는 다른 옵션을 원합니다. 암호화되지 않은 이미지를 암호화된 마운트 지점에 저장하는 것보다 성능에 덜 영향을 미칠 수 있는 이미지 자체를 암호화하는 방법이 있습니까? 컨테이너에 내장된 암호화를 활성화할 수 있습니까? 아니면 cryptsetup/luks를 사용하여 컨테이너를 구체적으로 암호화하여 성능을 향상시키는 더 좋은 방법이 있습니까?

당신의 도움을 주셔서 감사합니다.

답변1

호스트 운영 체제의 파일 시스템 위에 있는 .img 파일 대신 게스트 디스크에 LVM 볼륨을 사용할 수 있습니까? 이렇게 하면 가상 머신이 하드웨어에 더 가까워지고 암호화로 인해 발생할 수 있는 병목 현상이 제거됩니다. 이것이 문제가 된다면 가상화된 창은 자체 암호화를 실행할 수 있습니다.

비SSD, 비RAID 스토리지->암호화된 Linux 파일 시스템->NTFSI/O 속도 저하에 대한 많은 기회를 제공합니다.

관련 정보