KVM 아키텍처 개요
KVM은 커널 공간에서 작동하는 로드 가능한 커널 모듈로, 호스트 시스템을 하이퍼바이저로 변환합니다. 기본 가상화 인프라는 kvm.ko 핵심 모듈과 프로세서별 모듈(kvm-intel.ko 또는 kvm-amd.ko)로 구성됩니다. 게스트 가상머신은 QEMU라는 다중 플랫폼 에뮬레이터와 협력하여 동작하며, 각 VM은 호스트 운영체제 내에서 별도의 사용자 공간 프로세스로 실행됩니다.
하드웨어 지원 메커니즘
KVM은 Intel VT-x(Extended Page Table 기술 포함) 또는 AMD-V(Rapid Virtualization Indexing 포함)와 같은 하드웨어 가상화 확장이 반드시 필요합니다. 이러한 기술들은 Ring -1 특권 레벨을 도입하여 하이퍼바이저가 게스트 가상머신의 커널이 표준 특권 레벨(Ring 0)에서 실행되도록 허용합니다. Intel VT-d 또는 AMD-Vi를 지원하는 프로세서는 가상화된 입출력 자원에 대한 더욱 빠른 접근을 제공합니다.
메모리 및 I/O 관리
Extended Page Table(EPT) 또는 Rapid Virtualization Indexing(RVI) 같은 두 번째 수준 주소 변환(SLAT) 기술을 통해 메모리 성능이 크게 향상됩니다. 가상머신의 I/O 통신은 VirtIO라는 반가상화된 장치 인터페이스를 통해 수행되며, 이는 커널 2.6.25 이후 KVM에서 기본으로 사용됩니다. Kernel Same-page Merging(KSM) 기술은 동일한 메모리 페이지를 여러 게스트 간 공유하여 메모리 효율성을 향상시킵니다.