서버의 가상화는 하이퍼바이저, 가상 OS, VMM(Virtual Machine Monitor)라고 불리며 크게 Type1(네이티브, 베어메탈 방식)과 Type2(호스트형 방식)으로 나눌 수 있다.
Type 1 가상화
Type 1 가상화는 네이티브 혹은 베어메탈 하이퍼바이저를 이용하는 가상화다. 하드웨어 위에 하이퍼바이저가 직접 구동되고 그 위에 게스트 운영체제가 수행되는 방식이다. Oracle VM Server for X86, VMware의 ESX/ESX i Server, Citrix Xenserver, Oracle의 VM Server, 마이크로소프트의 Hyper-V, Virtual Iron, Parallels의 Parallels Server 등이 Type-1 형태의 하이퍼바이저다.
베어메탈을 관리할 OS를 설치하지 않으므로 호스트형 가상화에 비해 오버헤드가 적다는 장점과 물리 머신의 리소스 관리가 유연하다는 특징이 있다. 하지만 머신에 대한 관리 기능이 없기 때문에 장비를 컨트롤하기 위해서 컴퓨터나 콘솔이 필요하다.
Type 1 가상화는 전가상화(Full-Virtualization)와 반가상화(Para-Virtualization)로 분류된다.
전가상화(Full-Virtualization)
전가상화는 말 그대로 하드웨어를 완전히 가상화하는 방식이다. 하이퍼바이저를 베어메탈에 구동하면, DOM0라고 하는 관리용 가상머신이 구동된다. 전가상화는 나머지 모든 가상머신들의 하드웨어 접근이 이 DOM0를 통해서 이뤄진다. 모든 명령에 대해서 DOM0가 개입을 하게 되는 형태다. 하드웨어를 완전히 가상화하기 때문에 게스트 운영체제의 별다른 수정 없이 사용할 수 있다는 장점이 있다.
하지만 하이퍼바이저가 모든 명령을 중재하게 되기 때문에 성능이 비교적 느리다. 또 한, 특정 인스트럭션의 경우 하이퍼바이저가 반드시 처리해줘야 하며, 트랩 처리도 해줘야 하는 문제가 있다.
반가상화(Para-Virtualization)
전가상화와는 달리 하드웨어를 완전히 가상화하지 않는다. 전가상화의 가장 큰 단점인 성능 저하를 해소하고자 모든 명령을 DOM0를 통해 하이퍼바이저에게 요청을 하는 것이 아니라 하이퍼콜(Hyper Call)이라는 인터페이스로 직접 하이퍼바이저에게 요청을 날릴 수 있게 해주는 것이다. 따라서 전가상화에 비해 성능이 빠르다는 장점이 있다.
하지만 하이퍼콜을 이용하여 하이퍼바이저에게 요청을 보내는 동작을 기존 OS들은 할 수 없다. 즉, 게스트 운영체제가 하드웨어의 가상화 여부를 알고 있어야 하며, 필요한 경우 하이퍼바이저에게 하이퍼콜을 요청할 수 있도록 운영체제의 커널을 수정해야 한다. 따라서 오픈소스 운영체제가 아니라면 반가상화를 이용하기 쉽지 않다는 단점이 있다. (물론 Xen-tool 같은 것을 윈도우에 설치하면 반가상화를 이용할 수 있는 방법이 있긴 하다)
Type 2 가상화
Type 2 가상화는 호스트형 가상화라고 부른다. 베어메탈 하드웨어를 구동하기 위한 호스트 운영체제가 설치되고 그 위에 하이퍼바이저가 실행된다.
호스트 운영체제 위에 하이퍼바이저가 구동되고 가상의 하드웨어를 에뮬레이팅하기 때문에 오버헤드가 크다. 하지만 가상의 하드웨어를 에뮬레이팅하기 떄문에 호스트 운영체제에 크게 제약사항이 없다. 리눅스에서 윈도우를 구동하거나 윈도우에서 유닉스를 구동하는 등의 형태가 가능하다.
호스트형 가상화 소프트웨어에는 VMware의 VMware Workstation, VMware Server, VMware Player 등이 있고, 마이크로소프트의 Virtual Server 2005, Virtual PC, 오라클의 Virtual Box, Parallels의 Parallels Workstation 등이 있다.
호스트형 가상화의 특징은 기존 운영체제를 사용하는 시스템에 손쉽게 가상 머신을 구축할 수 있다는 것이다.
댓글