9장. 가상화

9.1. 커널 기반 가상화

virtio-blk-data-plane을 사용하여 블록 I/O 성능 개선

Red Hat Enterprise Linux 7.0에서 virtio-blk-data-plane I/O 가상화 기능은 기술 프리뷰로 사용할 수 있습니다. 이 기능은 I/O 성능을 위해 최적화된 전용 스레드에서 디스크 I/O를 수행하기 위해 QEMU를 확장합니다.

PCI 브리지

이전에 QEMU는 최대 32개의 PCI 슬롯만이 지원되었습니다. Red Hat Enterprise Linux 7.0에서는 사용자가 32개 이상의 PCI 장치를 설정할 수 있는 PCI 브리지를 갖추고 있습니다. 브리지 뒤에서 장치의 핫 플러깅은 지원되지 않음에 유의합니다.

QEMU 샌드박스

Red Hat Enterprise Linux 7.0에서는 커널 시스템 호출 필터링을 사용하여 KVM 가상화 보안을 강화하여 호스트 시스템과 게스트 간의 분리를 개선하였습니다.

QEMU 가상 CPU 핫 에드 지원

Red Hat Enterprise Linux 7.0에서 QEMU는 가상 CPU (vCPU) 핫 에드 지원을 제공합니다. 가상 CPUs (vCPUs)는 워크로드의 요구를 충족시키거나 또는 워크로드와 관련된 SLA (Service Level Agreement)를 유지 관리하기 위해 실행 중인 가상 머신에 추가될 수 있습니다. vCPU 핫 플러그는 Red Hat Enterprise Linux 7.0에서 기본값 시스템 유형인 pc-i440fx-rhel7.0.0 시스템 유형을 사용하는 가상 머신에서만 지원됨에 유의합니다.

멀티 큐 NIC

멀티 큐 virtio_net은 더 나은 확장성을 제공하여 각 가상 CPU는 다른 가상 CPU에 영향을 미치지 않고 사용할 수 있는 별도의 전송이 있거나 큐 및 별도의 인터럽트를 받을 수 있습니다.

멀티 큐 virtio_scsi

멀티 큐 virtio_scsi는 더 나은 확장성을 제공하여 각 가상 CPU는 다른 가상 CPU에 영향을 미치지 않고 사용할 수 있는 별도의 큐 및 인터럽트를 받을 수 있습니다.

실시간 마이그레이션 용 페이지 델타 압축

KVM 실시간 마이그레이션 기능은 게스트 메모리 페이지의 압축 및 전송된 마이그레이션 데이터 크기의 축소로 개선되었습니다. 이 기능은 마이그레이션이 데이터를 빠르게 수렴하게 할 수 있습니다.

KVM에서 HyperV Enlightenment 기능

KVM은 여러 Microsoft Hyper-V 기능을 업데이트했습니다. 예를 들어 메모리 관리 지원 (MMU) 및 가상 인터럽트 컨트롤러 지원 등이 있습니다. Microsoft는 게스트 및 호스트 사이의 반 가상화 API를 제공합니다. 이 기능의 부분을 호스트에서 구현하고 Microsoft 사양에 따라 이를 공개하여 Microsoft Windows 게스트는 성능을 향상시킬 수 있습니다.

고대역폭 I/O의 EOI 가속

Red Hat Enterprise Linux 7.0에서는 APIC (Advanced Programmable Interrupt Controller)에 Intel 및 AMD 확장 기능을 사용하여 EOI (End of Interrupt) 처리를 가속화합니다. 오래된 칩셋의 경우 Red Hat Enterprise Linux 7.0은 EOI 가속화의 반가상화 옵션을 제공합니다.

KVM 게스트 용 USB 3.0 지원

Red Hat Enterprise Linux 7.0에서는 기술 프리뷰로 USB 3.0 호스트 어댑터 (xHCI) 에뮬레이션을 추가하여 USB 지원이 개선되었습니다.

Windows 8 및 Windows Server 2012 게스트 지원

Red Hat Enterprise Linux 7.0에서는 KVM 가상 머신 내에서 실행되는 Microsoft Windows 8 및 Windows Server 2012 게스트를 지원합니다.

QEMU 게스트에 대한 I/O 스로틀링

이 기능은 QEMU 게스트 블록 장치에 대해 I/O 스로틀링, 제한을 제공합니다. I/O 스로틀링은 I/O 메모리 요청의 처리 속도를 저하시킵니다. 이는 시스템 속도를 저하시키지만 시스템 충돌을 방지합니다. 이는 데이터 플레인을 감속시킬 수 없다는 점에 유의하십시오.

Ballooning 및 Transparent Huge Pages의 통합

Ballooning 및 Transparent Huge Pages는 Red Hat Enterprise Linux 7.0에서 보다 긴밀하게 통합되어 있습니다. Balloon 페이지는 이동 및 압축하여 Huge Pages가 될 수 있습니다.

호스트에서 시스템 엔트로피 풀

새 장치 virtio-rng는 게스트에 설정할 수 있으며 이는 호스트에서 게스트로 엔트로피를 사용할 수 있게 합니다. 기본값으로 이러한 정보는 호스트의 /dev/random 파일에서의 소스가 사용되지만 호스트에서 사용 가능한 하드웨어 임의 번호 생성기 (RNG)도 소스로 사용될 수 있습니다.

브리지 제로 카피 (Zero Copy) 전송

브리지 제로 카피 (Zero Copy) 전송은 대용량 메세지의 CPU 처리를 개선하기 위한 성능 기능입니다. 브리지 제로 카피 전송 기능은 브리지를 사용할 때 게스트에서 외부 트래픽으로의 성능을 향상시킵니다.

실시간 마이그레이션 지원

Red Hat Enterprise Linux 6.5 호스트에서 Red Hat Enterprise Linux 7.0 호스트로 게스트의 실시간 마이그레이션이 지원됩니다.

qemu-kvm에서 Discard 지원

fstrim 또는 mount -o discard 명령을 사용하여 Discard 지원은 도메인의 XML 정의에 있는 <driver> 요소에 discard='unmap'을 추가한 후 게스트에서 작동합니다. 예:
<disk type='file' device='disk'>
	<driver name='qemu' type='raw' discard='unmap'/>
  <source file='/var/lib/libvirt/images/vm1.img'>
  ...
</disk>

NVIDIA GPU 장치 할당

Red Hat Enterprise Linux 7.0에서는 에뮬레이트된 VGA로의 이차적 그래픽 장치로 NVIDIA 프로페셔널 시리즈 그래픽 장치 (GRID 및 Quadro)의 장치 할당을 지원합니다.

반가상화된 Ticketlock 지원

Red Hat Enterprise Linux 7.0에서는 초과 수용 상태인 CPU로 Red Hat Enterprise Linux 7.0 호스트를 통해 실행되는 Red Hat Enterprise Linux 7.0 게스트 가상 머신의 성능을 개선시키는 반가상화된 ticketlock (pvticketlocks)를 지원합니다.

할당된 PCIe 장치에서 오류 처리

AER (Advanced Error Reporting) 기능을 갖는 PCIe 장치가 게스트를 할당하는 도중 오류가 발생할 경우, 영향을 받은 게스트는 기타 다른 실행 중인 게스트나 호스트에 영향을 주지 않고 중지됩니다. 장치의 호스트 드라이버가 오류를 복구한 후 게스트를 다시 시작할 수 있습니다.

Q35 칩셋, PCI Express 버스 및 AHCI 버스 에뮬레이션

KVM 게스트 가상 머신의 PCI Express 버스 지원에 필요한 Q35 시스템 유형은 Red Hat Enterprise Linux 7.0에서 기술 프리뷰로 사용 가능합니다. AHCI 버스는 Q35 시스템 유형과 함께 포함되어 있을 경우에만 지원되며 Red Hat Enterprise Linux 7.0에서 기술 프리뷰로 사용할 수 있습니다.

VFIO-기반 PCI 장치 할당

VFIO (Virtual Function I/O) 사용자 공간 드라이버 인터페이스는 개선된 PCI 장치 할당 솔루션으로 KVM 게스트 가상 머신을 제공합니다. VFIO는 장치 분리에 있어서 커널 수준 실행을 제공하고 장치 액세스의 보안을 강화하며 보안 부트와 같은 기능과 호환됩니다. VFIO는 Red Hat Enterprise Linux 6에서 사용된 KVM 장치 할당 메커니즘을 대체합니다.

Intel VT-d Large Pages

Red Hat Enterprise Linux 7.0에서 KVM게스트 가상 머신과 함께 VFIO (Virtual Function I/O) 장치 할당을 사용할 때 2MB 페이지가 IOMMU (input/output memory management unit)에 의해 사용되므로 I/O 작업의 TLB (translation lookaside buffer) 오버헤드가 감소됩니다. Red Hat Enterprise Linux 7.0에서 1GB 페이지 지원이 계획되어 있습니다. VT-d large pages 기능은 특정 Intel 기반 최신 플랫폼에서만 지원됩니다.

KVM Clock Get Time 성능

Red Hat Enterprise Linux 7.0에서 vsyscall 메커니즘은 KVM 게스트의 사용자 공간에서 클럭의 고속 읽기 지원을 위해 강화되었습니다. Red Hat Enterprise Linux 7.0 호스트에서 Red Hat Enterprise Linux 7.0을 실행하고 있는 게스트 가상 머신은 시간을 자주 읽는 애플리케이션의 성능이 개선되었음을 확인할 수 있습니다.

QCOW2 버전 3 이미지 포맷

Red Hat Enterprise Linux 7.0에는 QCOW2 버전 3 이미지 포맷 지원이 추가되어 있습니다.

개선된 실시간 마이그레이션 통계

실시간 마이그레이션에 대한 정보를 성능 분석 및 튜닝에 사용할 수 있습니다. 개선된 통계에는 가동 중단 예상 시간, 가동 중단 또는 잘못된 페이지 비율에 대한 정보가 포함됩니다.

실시간 마이그레이션 스레드

KVM 실시간 마이그레이션 기능은 스레딩을 지원하도록 개선되었습니다.

캐릭터 장치 및 직렬 포트의 핫 플러그

새로운 캐릭터 장치로 새로운 직렬 포트를 핫 플러그하는 것이 Red Hat Enterprise Linux 7.0에서 지원됩니다.

AMD Opteron G5 에뮬레이션

KVM은 AMD Opteron G5 프로세서를 에뮬레이트할 수 있습니다.

KVM 게스트에서 새 Intel 지시 사항 지원

KVM 게스트는 Intel 22nm 프로세서에 의해 지원되는 새로운 지시 사항을 사용할 수 있습니다. 이는 다음과 같습니다:
  • 부동 소수점 형식 Fused Multiply-Add
  • 256 비트 정수 벡터
  • Big-Endian Move instruction (MOVBE) 지원
  • 또는 HLE/HLE+.

VPC 및 VHDX 파일 포맷 지원

Red Hat Enterprise Linux 7.0의 KVM에는 Microsoft Virtual PC (VPC) 및 Microsoft Hyper-V 가상 하드 디스크 (VHDX) 파일 포맷에 대한 지원이 포함되어 있습니다.

libguestfs에서 새로운 기능

libguestfs는 가상 머신 디스크 이미지를 액세스하여 변경하기 위한 도구 모음입니다. Red Hat Enterprise Linux 7.0의 libguestfs에는 여러 개선 사항이 포함되어 있습니다. 이 중 가장 주목할 만한 사항은 다음과 같습니다:
  • SELinux 또는 sVirt 보안을 사용하는 보안 가상화는 악의적인 악성 디스크 이미지에 대한 보안이 강화되었습니다.
  • 원격 디스크는 처음에 NBD (Network Block Device)를 통해 확인 및 변경할 수 있습니다.
  • 디스크는 특정 애플리케이션에서 성능 향상을 위해 핫 플러그할 수 있습니다.

WHQL 인증 virtio-win 드라이버

Red Hat Enterprise Linux 7.0에는 최신 Microsoft Windows 게스트 (Microsoft Window 8, 8.1, 2012 및 2012 R2) 용 Windows Hardware Quality Labs (WHQL) 인증 virtio-win 드라이버가 포함되어 있습니다.