호스트 가상화
호스트가상화는 Host OS위에 Guest OS가 구동되는 방식이다.
여기서 Host OS는 물리 머신위에 직접 동작하는 OS이며, Host OS위에서 동작하는 가상화머신에 설치된걸 Guest OS라 불린다.
종류로는 VM Workstaion, Vmware Server, Vmware Player, MS Virtual Server, Virutal Box, Parlles Workstation 등이 있다.
호스트 가상화 장단점
👉 가상의 하드웨어를 에뮬레이팅하기 때문에 호스트 운영체제에 제약사항이 없다.
👉 OS위에 OS가 있는 방식이기 때문에 오버헤드가 증가된다.
하이퍼바이저 가상화
하이퍼바이저 가상화는 Host OS 없이 하드웨어에 하이퍼바이저를 설치하여 사용하는 가상화 이다.
그래서 소프트웨어를 물리 하드웨어 위에 직접적으로 움직이기 때문에 하이퍼바이저 위에 가상머신을 움직이게끔 한다.
특징으로는 가상머신이 마치 독립한 호스트 시스템처럼 행동하며 그 이유는 복수의 복수의 가상화머신은 서로 간섭되지 않도록 하기 때문이다.
※ 하이퍼바이저 가상화는 아래와 같이 전가상화, 반가상화로 분류된다.
- Vmware ESX Server (전가상화)
- MS Hyper-v (전가상화)
- Citrix XenServer (반가상화)
하이퍼바이저 가상화 장단점
👉 별도의 Host OS가 없기 때문에 오버헤드가 적으며 하드웨어를 직접 제어하는 만큼 효율적으로 리소스를 사용할 수 있다.
👉 자체적으로 머신에 대한 관리 기능이 없기때문에 관리를 위한 PC 및 콘솔(CLI)이 필요하다.
전가상화(Full-Virtualization)
전가상화는 하드웨어를 완전히 가상화 하는 방식이므로 Guest OS가 HW에 접근하면서 제어를 요구한다.
이때 CPU는 가상화가 지원이 가능한지 확인을 하며 지원을 안할경우 Guest OS는 아예 운영할 수 없다.
반면에 지원이 가능하면 HW제어를 요구하고 이후 HW를 제어할 수 있게 된다.
전가상화(Full-Virtualization) 장단점
👉 하드웨어를 완전히 가상화 하기 때문에 Guest OS 운영체제의 별다른 수정할 필요가 없다.
👉 하이퍼바이저가 모든 명령을 중재하기 때문에 성능이 비교적 느린편에 속한다.
반가상화(Para-Virtualization)
반가상화는 전가상화와 달리 하드웨어를 완전하게 가상화 하지 않는다.
그 이유는 전가상화의 치명적인 단점인 성능저하의 문제를 하기위해 하이퍼콜이라는 인터페이스를 통해 하이퍼바이저에게 직접 요청할 수 있따.
그리하여 반가상화는 Guest OS와 하드웨어 사이의 번역 역할을 하지 않고 Guest OS에게 자원을 어떻게 분배할지 관리적 문제만 다룬다.
ex) Xen, KVM
반가상화(Para-Virtualization) 장단점
👉 모든 명령을 DOM을 통해 하이퍼바이저에게 요청하는 전가상화에 비하여 속도가 빠르다.
👉 하이퍼바이저에게 하이퍼콜을 요청할 수 있도록 OS의 커널을 수정해야한다.
컨테이너 가상화
호스트 OS위에 컨테이너 관리 소프트웨어를 설치하여 논리적으로 컨테이너를 나누어 사용한다.
특히나 컨테이너에는 Guest OS나 가상하드웨어를 포함하지 않고
어플리케이션 동작을 위한 라이브러리와 어플리케이션 등으로 구성되기 때문에 개별서버처럼 사용이 가능하다.
컨테이너 가상화 장단점
👉 오버헤드가 적으며 빠르다.
ex) OpenVz, LXC, Linux VServer, Docker, Oracle Solaris Zones
한번에 알아보는 각 가상화 서버 차이
👉 호스트 OS형은 일반적인 PC에서 VMware WorkStation을 설치하여 Guest OS를 설치하는 가상화 방식이며 PC의 리소스를 공유한다.
👉 하이퍼바이저형은 기존 OS위에 윈도우나 리눅스를 설치하는 방식이 아닌 하드웨어에서 가상화를 위한 OS(VMware ESXi)와 같은 소프트웨어를 설치 후
속에 윈도우, 리눅스 등의 OS를 설치하는 가상화 방식이다. (기업에서 많이 사용된다.)
👉 컨테이너형은 OS가상화가 아닌 소프트웨어를 가상화하는것에 목적을 두고 어플리케이션으로만 구성된다.