티스토리 뷰

VMware

가상화(Virtualization)의 유형

리나 2007. 6. 12. 15:10
VMware Workstaion 는 Paravirtualization 도 지원하지만 전체 가상화(Full virtualization) 라고 해야하겠죠?
올해 나올 예정인 MS Windows Server 2008 에 포함될 WSV 는 OS 레벨 가상화에 해당되려나... ^^


출처: Virtual Linux (가상화 방식, 아키텍처, 구현 개요)

가상화 같은 경우, 단 한 가지 방법만 있는 것은 아니다. 사실, 다양한 레벨의 추상화(abstraction)를 통해서 같은 결과를 얻을 수 있다. 이 섹션에서는 리눅스의 가장 일반적인 가상화 방식 세 가지를 소개하고, 이들의 장단점을 비교해 볼 것이다. 가끔씩 같은 가상화 방식을 설명하는 경우에도 다른 용어를 사용한다. 이 글에서는 가장 일반적인 용어를 사용하도록 하겠다.

하드웨어 에뮬레이션(emulation)

가장 복잡한 가상화는 그림 1처럼 하드웨어 에뮬레이션에 의해 제공된다. 이 방식에서, 하드웨어 VM은 호스트 시스템에서 생성되어 해당 하드웨어를 에뮬레이트 한다.

그림 1. 하드웨어 에뮬레이션은 VM을 사용하여 필요한 하드웨어를 시뮬레이트 한다.

여러분도 잘 알겠지만, 하드웨어 에뮬레이션의 가장 큰 문제는 극도로 느려질 수 있다는 점이다. 모든 명령어들이 기반 하드웨어에 시뮬레이트 되어야 하기 때문에, 100배 정도 느려지는 것은 다반사이다. 사이클 정확성(cycle accuracy), 시뮬레이트 된 CPU 파이프라인, 캐싱 작동을 포함한 하이파이(high-fidelity) 에뮬레이션의 경우, 실제 속 차이는 1000배나 더 느려질 수도 있다.

하드웨어 에뮬레이션은 장점도 있다. 예를 들어, 하드웨어 에뮬레이션을 사용하면, PowerPC®용의 수정되지 않은 OS를 ARM 호스트에서 실행할 수 있다. 다른 프로세서를 시뮬레이트 하는 여러 개의 가상 머신들을 실행할 수도 있다.


전체 가상화(Full virtualization)

전체 가상화(네이티브 가상화) 또한 가상화 방식이다. 이 모델은 게스트(guest) OS들과 네이티브 하드웨어 사이를 중재(mediate)하는 가상 머신을 사용한다. (그림 2) "중재(Mediate)"는 핵심적인 단어이다. VMM이 게스트 OS와 베어 하드웨어 사이를 중재하기 때문이다. 보호를 받고 있는 특정 명령어들은 하이퍼바이저 내에서 트랩핑(trap) 및 핸들되어야 한다. 기반 하드웨어는 OS가 소유한 것이 아닌, 하이퍼바이저를 통해서 공유되기 때문이다.

그림 2. 전체 가상화는 하이퍼바이저를 사용하여 기반 하드웨어를 공유한다.

전체 가상화는 하드웨어 에뮬레이션 보다는 빠르지만, 하이퍼바이저 중재 때문에 실제 하드웨어 보다는 성능이 낮다. 전체 가상화의 가장 큰 장점은 OS를 수정하지 않고 실행될 수 있다는 점이다. 유일한 제한 사항은 OS가 기반 하드웨어(예를 들어, PowerPC)를 지원해야 한다는 것이다.


Paravirtualization

Paravirtualization은 전체 가상화와 약간 유사한 대중적인 기술이다. 이 방식은 기반 하드웨어로의 공유 액세스에 하이퍼바이저를 사용하지만, 가상화 인식 코드를 OS로 통합한다. (그림 3) 이 방식은 재컴파일이나 트래핑(trapping)을 할 필요가 없다. OS 그 자체로 가상화 프로세스에 협력하기 때문이다.

그림 3. Paravirtualization은 프로세스를 게스트 OS와 공유한다.

앞서 언급했던 것처럼, Paravirtualization은 게스트 OS들이 하이퍼바이저에 맞게 수정되어야 한다. 이것이 단점이다. 하지만, Paravirtualization은 가상화 되지 않은 시스템 성능에 가까운 성능을 보인다. 전체 가상화와 마찬가지로, 여러 다른 OS들이 동시에 지원된다.


OS 레벨 가상화

마지막 기술인 OS 레벨 가상화는 지금까지 다루어왔던 것과는 다른 기술을 사용한다. 이 기술은 그림 4처럼 OS에서 서버들을 가상화 한다. 이 방식은 하나의 OS를 지원하고, 서버들을 분리시킨다.

그림 4. OS 레벨의 가상화는 서버들을 분리시킨다.

OS 레벨 가상화는 OS 커널을 수정해야 하지만, 장점은 성능이 우수하다는 점이다.


콘텐츠 사용을 허락해 주신 IBM developerWorks 에 감사드립니다. ^^


댓글
댓글쓰기 폼