가상화는 하이퍼바이저(Hypervisor)라고 하는 소프트웨어를 사용하여 하나의 물리적 하드웨어에 다수의 가상 머신을 만드는 기술이다.
일반적으로 OS를 실행하려면 각 OS를 전용 물리적 서버에 설치하고 실행해야 한다. 결국 OS 1개당 물리적 서버 1대가 필요하므로 여러 OS를 동시에 실행해야 하는 경우에는 여러 대의 서버가 필요하다. 이는 서버 구성 비용이나 운영 및 유지보수 측면에서 상당히 비효율적이다. 이러한 문제들을 가상화를 통해 해결할 수 있다.
가상화를 이용하면 운영체제를 기반 하드웨어로부터 분리할 수 있으므로 여러 운영체제를 하나의 물리적 머신에서 동시에 실행할 수 있다. 그리고 각 가상 머신에 서비스를 제공함으로써 적은 물리적 머신으로 많은 가상 머신을 운영할 수 있다는 큰 장점이 있다.
이를 포함하여 가상화의 장점은 다음과 같다.
호스트 가상화는 Base가 되는 Host OS 위에 Guest OS가 구동되는 방식이다.
하이퍼바이저 가상화는 Host OS 없이 하드웨어에 하이퍼바이저를 설치하여 사용하는 방식이다.
하이퍼바이저 가상화는 아래와 같이 전가상화(Full-Virtualization, hardware Virtual Machine)와 반가상화(Para-Virtualization)로 분류할 수 있다.
전가상화는 하드웨어를 완전히 가상화하는 방식으로 Hardware Virtual Machine이라고도 불린다.
하이퍼바이저를 구동하면 DOM0
라고 하는 관리용 가상 머신이 실행되며, 모든 가상 머신들의 하드웨어 접근이 DOM0
을 통해서 이루어진다. → 모든 명령에 DOM0
이 개입하는 구조다.
전가상화에서는 하이퍼바이저가 Guest OS들의 명령을 번역해 하드웨어로 전달하는 역할을 한다. 따라서, 별도의 Guest OS의 튜닝이 필요없다.