1. 하이퍼바이저란?

호스트에서 여러 가상의 Guest OS를 실행하기 위한 플랫폼이다. 하이퍼바이저는 Type-1, Type-2 유형이 있다.

2. Type-1 가상화

베어메탈 하이퍼바이저 기반의 가상화이다.

베어메탈과 하이퍼바이저 사이에 OS가 없다. 따라서 뒤에 설명할 Type-2 가상화에 비해 오버헤드가 적다는 장점이 있지만 관리 영역이 없기 때문에 별도의 관리 콘솔이 필요하다.

종류는 Hyper-V, Parallels Server, ESX Server 등이 있다.

Type-1 가상화는 다시 전가상화와 반가상화로 구분된다.

2-1. 전가상화 (Full Virtualization)

하드웨어를 완전히 가상화한다. 

베어메탈에서 하이퍼바이저를 구동하면 DOM0라는 관리용 가상 머신이 구동되는데 이제부터는 가상 머신들이 하드웨어 접근 시 DOM0를 통하게 된다. 모든 것이 DOM0를 통하기 때문에 성능에 영향이 있을 수 있다. 

2-2. 반가상화 (Para Virtualization)

전가상화와 달리 DOM0를 통하지 않고 Hypercall이라고 하는 인터페이스를 통해 하이퍼바이저에게 요청을 보낼 수 있다. 따라서 전가상화에 비해 성능이 빠르다.

하지만 Hypercalls를 사용하려면 Guest OS가 가상화 여부를 알고 있어야 한다. 하이퍼바이저에게 Hypercalls 요청이 가능하도록 커널 수정이 필요할 수도 있다.

따라서 리눅스 등 오픈 소스 OS가 아니면 반가상화를 이용하기 쉽지 않다. 기존 윈도우 OS에 Xen-tool 등을 설치하는 방법도 있다.

3. Type-2 가상화

호스트형 가상화라고 불리는 것으로 기존 OS에서 쉽게 가상 머신을 만들 수 있다. 예를 들어 리눅스에서 윈도우를 사용하거나 윈도우에서 리눅스를 사용할 수 있다.

호스트 운영체제 상에 하이퍼바이저가 있고 가상 머신을 에뮬레이트한다. 따라서 오버헤드가 있다.

종류는 VMware Workstation, Virtual Box, Parallels Workstation 등이 있다.