1) 호스트 가상화 :
호스트가상화는 Base가 되는 Host OS위에 Guest OS가 구동되는 방식입니다. 종류로는 VM Workstation, VMware Server, VMware Player, MS Virtual Sever, Virtual PC, Virtual Box, Paralles Workstation 등이 있습니다.
- 장점 : 가상의 하드웨어를 에뮬레이팅하기 때문에 호스트 운영체제에 크게 제약사항이 없음
- 단점 : OS위에 OS가 얹히는 방식이기 때문에 오버헤드가 클 수 있음
2) 하이퍼바이저 가상화 :
하이퍼가상화는 Host OS없이 하드웨어에 하이퍼바이저를 설치하여 사용하는 방식입니다. 종류로는 Xen, MS hyper-V, citrix, KVM 등이 있습니다.
- 장점 : 별도의 Host OS가 없기 때문에 오버헤드가 적고, 하드웨어를 직접 제어하기 때문에 효율적으로 리소스를 사용할 수 있음
- 단점 : 자체적으로 머신에 대한 관리 기능이 없기 때문에 관리를 위한 컴퓨터나 콘솔이 필요함
하이퍼바이저 가상화는 아래와같이 다시 전가상화(Full-Virtualization or Hardware Virtual Machine) 와 반가상화(Para-Virtualization)로 분류 됩니다.
2-1) 전가상화(Full-Virtualization)
전가상화는 하드웨어를 완전히 가상화 하는 방식으로 Hardware Virtual Machine 이라고도 불립니다.
하이퍼바이저를 구동하면 DOM0라고 하는 관리용 가상 머신이 실행되며, 모든 가상머신들의 하드웨어 접근이 DOM0을 통해서 이루어집니다.
즉, 모든 명령에 대해서 DOM0가 개입을 하게되는 형태입니다.
쉽게 말해 하이퍼바이저는 가상화된 OS가 뭐든지간에 각 OS들이 내리는 명령어를 알아들을 수 있습니다.
예를들어 윈도우 에서 Add, 리눅스 에서 ADD, 맥에서 add 라는 명령어를 내렸을때 하이퍼바이저가 “더해라”라고 번역 하여 명령어를 실행해주는 것입니다.
하이퍼바이저는 이러한 번역 역할 뿐만 아니라 가상화된 OS들에게 자원을 할당해주는 역할도 담당합니다.
- 장점 : 하드웨어를 완전히 가상화하기 때문에 Guest OS 운영체제의 별다른 수정이 필요 없음
- 단점 : 하이퍼바이저가 모든 명령을 중재하기 때문에 성능이 비교적 느림
2-2) 반가상화(Para-Virtualization)
반가상화는 전가상화와 달리 하드웨어를 완전히 가상화 하지 않습니다.
전가상화의 가장큰 단점인 성능저하의 문제를 해결하기 위해 하이퍼콜(Hyper Call)이라는 인터페이스를 통해 하이퍼바이저에게 직접 요청을 날릴 수 있습니다.
쉽게 말하면 가상화된 각 OS들이 각각 다른 번역기를 갖고 있는 것입니다. 그 번역기는 각각 다른 OS에서 내리는 각각 다른 명령어를 “더해라”라고 번역해주게 되는 것입니다.
- 장점 : 모든 명령을 DOM0를 통해 하이퍼바이저에게 요청하는 전가상화에비해 성능이 빠름
- 단점 : 하이퍼바이저에게 Hyper Call 요청을 할 수 있도록 각 OS의 커널을 수정해야하며 오픈소스 OS가 아니면 반가상화를 이용하기가 쉽지 않음
3) 컨테이너 가상화 :
호스트 OS위에 컨테이너관리 소프트웨어를 설치하여, 논리적으로 컨테이너를 나누어 사용합니다.
컨테이너는 어플리케이션 동작을 위한 라이브러리와 어플리케이션등으로 구성되기때문에 이를 각각 개별 서버처럼 사용가능합니다.
- 장점 : 컨테이너 가상화는 오버헤드가 적어 가볍고 빠른 장점이 있음