개요

하드웨어 기반 가상화 (Hardware-based virtualization)이란 하드웨어의 도움을 통해서 가상의 컴퓨팅 환경을 가상머신에 제공하는 방법을 의미한다. Intel-VT 혹은 AMD-V와 같은 기술이 대표적으로서, CPU내부적으로 가상의 vCPU를 만들 수 있는 기능을 제공함으로서, 기존의 Binary translation이나 Para virtualization과 같은 OS의 수정이 없는 Full virtualization을 성능의 저하가 거의 없이 돌릴 수 있도록 하였다. 물론 Para virtualization의 성능 향상을 무시할 수 없기 때문에 Virtio와 같은 기술이 반가상화의 장점을 가져오면서 I/O와 같은 경우 매우 큰 성능향상을 가져올 수 있다. 이는 I/O와 같은 경우에는 보안상 반드시 (SR-IOV와 같은 Passthrough 기술이 아닌이상) VMM의 접근 권한 체크가 필요하기 때문이다.

하드웨어 기반 가상화 방식에서도 Trap and emulate가 사용된다. 이는 모든 명령어를 하드웨어로 가상화 시키는 것은 매우 힘들기 때문이다. 따라서 자주 발생하고 성능에 큰 영향을 미치는 명령어를 중심으로 하드웨어가 대신 가상화를 도와준다. 이러한 자주 발생하고 성능에 큰 영향을 미치는 대표적인 명령이 바로 Page table수정이다. 기존에는 Shadow page table을 사용하여서 모든 메모리 접근 권한을 매 Page table entry마다 Emulate해주어야 했지만, Hardware-based virtualization에서는 Extended page table을 통해서 이러한 권한 체크를 하드웨어가 대신 수행할 수 있도록 하여서 Page table과 같은 MMU overhead를 줄였다.

같이 보기

  1. x86 가상화