일단, 가상화를 시작하자고 말을 했으니 가상화가 무엇인지부터 알고 시작하자.
여러가지 유형이 있지만, 현재 가장 크게 사용되는 3가지 가상화에 대해서 설명해보자
1. Full virtualization (전가상화, 전체가상화)
전체 가상화(네이티브 가상화) 또한 가상화 방식이다. 이 모델은 게스트(guest) OS들과 네이티브 하드웨어 사이를 중재(mediate)하는 가상 머신을 사용한다. (그림 2) "중재(Mediate)"는 핵심적인 단어이다. VMM이 게스트 OS와 베어 하드웨어 사이를 중재하기 때문이다. 보호를 받고 있는 특정 명령어들은 하이퍼바이저 내에서 트랩핑(trap) 및 핸들되어야 한다. 기반 하드웨어는 OS가 소유한 것이 아닌, 하이퍼바이저를 통해서 공유되기 때문이다.
그림 2. 전체 가상화는 하이퍼바이저를
사용하여 기반 하드웨어를 공유한다.
전체 가상화는 하드웨어 에뮬레이션 보다는 빠르지만,
하이퍼바이저 중재 때문에 실제 하드웨어 보다는 성능이 낮다. 전체 가상화의 가장 큰 장점은 OS를 수정하지 않고 실행될 수 있다는 점이다.
유일한 제한 사항은 OS가 기반 하드웨어(예를 들어, PowerPC)를 지원해야 한다는 것이다.
2. Paravirtualization (부분 가상화)
Paravirtualization은 전체 가상화와 약간 유사한 대중적인 기술이다. 이 방식은 기반 하드웨어로의 공유 액세스에 하이퍼바이저를 사용하지만, 가상화 인식 코드를 OS로 통합한다. (그림 3) 이 방식은 재컴파일이나 트래핑(trapping)을 할 필요가 없다. OS 그 자체로 가상화 프로세스에 협력하기 때문이다.
그림 3. Paravirtualization은
프로세스를 게스트 OS와 공유한다.
앞서 언급했던 것처럼, Paravirtualization은 게스트 OS들이 하이퍼바이저에 맞게 수정되어야 한다. 이것이 단점이다. 하지만, Paravirtualization은
가상화 되지 않은 시스템 성능에 가까운 성능을 보인다. 전체 가상화와 마찬가지로, 여러 다른 OS들이 동시에 지원된다.
3. OS level virtualization
마지막 기술인 OS 레벨 가상화는 지금까지 다루어왔던 것과는 다른 기술을 사용한다. 이 기술은 그림 4처럼 OS에서 서버들을 가상화 한다. 이 방식은 하나의 OS를 지원하고, 서버들을 분리시킨다.
OS 레벨 가상화는 OS 커널을 수정해야 하지만, 장점은 성능이 우수하다는 점이다.
각각의 장 단점을 잘 파악해서 자신에게 맞는 가상화 방법을 선택하면 된다.