가상화란?

가상화는 하이퍼바이저(Hypervisor)라고 하는 소프트웨어를 사용하여 하나의 물리적 하드웨어에 다수의 가상 머신을 만드는 기술이다.

왜 가상화를 사용하는가?

일반적으로 OS를 실행하려면 각 OS를 전용 물리적 서버에 설치하고 실행해야 한다. 결국 OS 1개당 물리적 서버 1대가 필요하므로 여러 OS를 동시에 실행해야 하는 경우에는 여러 대의 서버가 필요하다. 이는 서버 구성 비용이나 운영 및 유지보수 측면에서 상당히 비효율적이다. 이러한 문제들을 가상화를 통해 해결할 수 있다.

가상화를 이용하면 운영체제를 기반 하드웨어로부터 분리할 수 있으므로 여러 운영체제를 하나의 물리적 머신에서 동시에 실행할 수 있다. 그리고 각 가상 머신에 서비스를 제공함으로써 적은 물리적 머신으로 많은 가상 머신을 운영할 수 있다는 큰 장점이 있다.

이를 포함하여 가상화의 장점은 다음과 같다.

가상화의 종류

호스트 가상화 (Type 2)

호스트 가상화는 Base가 되는 Host OS 위에 Guest OS가 구동되는 방식이다.

하이퍼바이저 가상화 (Type 1, Bare-Metal)

하이퍼바이저 가상화는 Host OS 없이 하드웨어에 하이퍼바이저를 설치하여 사용하는 방식이다.

하이퍼바이저 가상화는 아래와 같이 전가상화(Full-Virtualization, hardware Virtual Machine)와 반가상화(Para-Virtualization)로 분류할 수 있다.

전가상화 (Full-Virtualization)

전가상화는 하드웨어를 완전히 가상화하는 방식으로 Hardware Virtual Machine이라고도 불린다.

하이퍼바이저를 구동하면 DOM0라고 하는 관리용 가상 머신이 실행되며, 모든 가상 머신들의 하드웨어 접근이 DOM0을 통해서 이루어진다. → 모든 명령에 DOM0이 개입하는 구조다.

전가상화에서는 하이퍼바이저가 Guest OS들의 명령을 번역해 하드웨어로 전달하는 역할을 한다. 따라서, 별도의 Guest OS의 튜닝이 필요없다.