Computer Architecture

하이퍼바이저(Hypervisor) 종류 정리

10000seats 2023. 10. 23. 22:55

클라우드 컴퓨팅 환경을 만들기 위해 뭉친 집단인 오픈 스택(open stack) 프로젝트에서 부터 하이퍼바이저는 시작된다.

 

Open Stack

- 오픈스택은 클라우드 컴퓨팅 환경을 만드는 오픈 소스 플랫폼.

- 컴퓨트, 오브젝트 스토리지, 이미지, 인증 서비스 등이 유기적으로 연결되어 하나의 커다란 클라우드 컴퓨팅 시스템을 구축

 

Open stack은 IaaS 형태의 클라우드 컴퓨팅 오픈 소스 프로젝트이다. 2012년 창설된 비영리 단체인 OpenStack Foundation에서 유지, 보수하고 있으며 아파치 라이선스하에 배포된다.

 

Open stack project의 결과로 다양한 Hypervisor들이 등장하게 되었다.

 

Hypervisor (하이퍼바이저)

1. 정의

하이퍼바이저는 호스트 컴퓨터에서 다수의 운영 체제를 동시에 실행하기 위한 논리적 플랫폼을 말한다. 가상화 머신 모니터(virtual machine monitor) 또는 가상화 머신 매니저(virtual machine manager 또는 VMM) 라고 부른다. 

 

2. 오픈 스택 지정 그룹별 분류

https://thebook.io/006881/part01/ch02/03/02/

위에서 보는 분류는 Open stack에서 hypervisor를 그룹지어 분류해서 나누어 놓은 것이다. 각 그룹에 대해 정리해보면 아래와 같다. 그룹 A는 자체 테스트를 완료해 안정적인 서비스를 할 수 있는 하이퍼바이저 드라이버이고, 그룹 B는 프로바이더가 테스트하는 하이퍼바이저 드라이버인 Hyper-V, VMware, Xen Server, Xen via libvirt 입니다. 그리고 그룹 C는 몇 번의 테스타만 하는 하이퍼바이저 드라이버인 베어메탈, Docker, LXC via libvirt 입니다.

Hypervisor 정보 오픈 스택 공홈: https://wiki.openstack.org/wiki/HypervisorSupportMatrix

 

HypervisorSupportMatrix - OpenStack

WARNING: The information in doc/source/user/support-matrix.ini in the Nova source tree obsoletes this information. Compute Drivers OpenStack Compute (Nova) has an abstraction layer for compute drivers. This is what allows you to choose which hypervisor(s)

wiki.openstack.org

 

3. 가상화 방법에 따른 분류

 

1. 'Native' 또는 'Bare Metal' 형 하이퍼바이저 (Type 1)

운영 체제가 프로그램을 제어하듯이 하이퍼바이저가 해당 하드웨어에서 직접 실행되며 게스트 운영 체제는 하드웨어 위에서 2번째 수준으로 실행

 

장점

-> 별도의 Host OS가 없기 때문에 오버헤드가 적고, 하드웨어를 직접 제어하기 때문에 효율적으로 리소스를 사용할 수 있음

단점

-> 자체적으로 머신에 대한 관리 기능이 없기 때문에 관리를 위한 컴퓨터나 콘솔이 필요

 

2. 'Hosted' 형 하이퍼바이저 (Type 2)

일반 프로그램과 같이 호스트 운영체제에서 실행되며 VM 내부에서 동작되는 게스트 운영 체제는 하드웨어에서 3번째 수준으로 실행

 

장점

-> 가상의 하드웨어를 애뮬레이팅하기 때문에 호스트 운영체제에 크게 제약사항이 없음

단점

-> OS위에 OS가 얹히는 방식이기 때문에 오버헤드가 클 수 있음

 

Type1과 Type2의 차이점

https://ko.wikipedia.org/wiki/%ED%95%98%EC%9D%B4%ED%8D%BC%EB%B0%94%EC%9D%B4%EC%A0%80

 

3. Container (Type3)

호스트 OS위에 컨테이너관리 소프트웨어를 설치하여, 논리적으로 컨테이너를 나누어 사용

컨테이너는 어플리케이션 동작을 위한 라이브러리와 어플리케이션 등으로 구성되기 때문에 이를 각각 개별 서버처럼 사용가능

 

장점

-> 컨테이너 가상화는 오버헤드가 적어 가볍고 빠른 장점이 있음

 

 

4. 가상화 방식에 따른 분류

Type1에 해당하는 하이퍼바이저는 전가상화(Full-Virtualization)와 반가상화(Para-Virtualization)으로 다시 분류 할 수 있는데 최근에는 그 경계가 큰 의미가 없어졌다.

 

1. 전가상화(Full Virtualization)

하드웨어를 완전히 가상화 하는 방식으로 Hardware Virtual Machine 이라고도 불림

Guest OS는 하드웨어 자원을 요청하기 위해, 반드시 하이퍼바이저가 중재해야 함.

Host CPU의 가상화 기술을 이용해 전체 하드웨어를 완전히 가상화하는 기술, CPU의 VT(Virtualization Technology)이나 AMD-V등의 물리적인 가상화 지원 기능을 이용해야 함.

장점

-> 하드웨어를 완전히 가상화하기 때문에 Guest OS 운영체제의 별다른 수정이 필요 없음

단점

->  하이퍼바이저가 모든 명령을 중재하기 때문에 성능이 비교적 느림

 

2. 반가상화(Para-Virtualization)

하드웨어를 완전히 가상화하지 않음

반가상화를 지원하도록 수정된 커널과 장치 드라이버가 있어야함.(Guest OS의 커널을 수정하여 특권 명령이 수행될 때 Hypercall을 하이퍼바이저가 실행되도록 하는 기술)

대표적인 반가상화 방식 소프트웨어인 Xen에서 Guest OS는 Hyper call이라는 명령어를 통해 하드웨어에 필요한 자원을 바로 하이퍼바이저에게 전달하고, 하이퍼바이저는 바로 하드웨어를 제어함.

장점

-> 전가상화 기술보다 빠른 속도로 처리가 가능

단점

-> Guest OS의 커널을 일부 수정해야함.