0. 하이퍼바이저란?
Hypervisor(하이퍼바이저)는 가상화 기술의 핵심으로 하나의 물리적 H/W에서 여러 개의 가상머신(Virtual Machine, VM)을 실행할 수 있도록 해주는 S/W 또는 펌웨어
1. 하이퍼바이저의 종류
크게 2가지의 유형으로 분류가 된다.
- 하드웨어 위에서 직접 실행되는 하이퍼바이저로 H/W 위에 별다른 OS를 추가 설치할 필요 없이 Hypervisor가 H/W 리소스스를 직접 엑세스가 가능
- Hypervisor S/W가 간단한 OS 역할을 수행함
- 높은 성능과 안정성을 제공하며, 주로 데이터 센터와 서버 가상화 환경에서 사용
- 종류 : VMware ESXi, Microsoft Hyper-V, Xen, KVM(Linux Kernel 기반)
2) Type 2 Hypervisor (Hosted Hypervisor)
- 기존의 운영 체제 위에서 실행되는 하이퍼바이저로 일반 사용자 및 개발 환경에서 많이 사용
- 호스트 OS에 설치된 Hypervisor Program으로 호스트형 혹은 내장형 하이퍼바이저라고도 함
- Type1에 비해 설치, 구성, 사용이 용이
- 종류 : Oracle VirtualBox, VMware Workstation, Parallels Desktop

2. 하이퍼바이저 주요 기능
- 리소스 분배 : CPU, 메모리, 스토리지, 네트워크 리소스를 가상 머신 간에 효율적으로 분배
- 가상 머신 격리 : 하나의 가상 머신에서 발생한 오류가 다른 가상 머신에 영향을 미치지 않도록 보호
- 스냅샷 및 복구: 가상 머신의 상태를 저장하여 특정 시점으로 복구 가능
- 동적 확장성: 필요에 따라 가상 머신의 리소스를 실시간으로 조정
- 가상 네트워크: 네트워크 가상화를 통해 가상 머신 간 통신 설정 가능
하이퍼바이저 사용의 장단점
장점
- 하드웨어 자원의 효율적 사용
- 운영 체제 및 애플리케이션 테스트에 유용
- 에너지 소비 감소(서버 통합)
- 장애 격리
단점
- 하드웨어 자원이 부족하면 성능 저하 발생
- 설정 및 관리 복잡도(Type 1의 경우)
- 특정 하이퍼바이저에 대한 의존성 증가
3. 하이퍼바이저가 사용되는 기술

Ring 구조의 의미
- Ring 3: 사용자 애플리케이션이 실행되는 공간으로, 권한 수준이 가장 낮음
- Ring 2: 일부 시스템 호출과 같은 중간 수준의 작업에 사용 가능 (일부 OS에서 미사용)
- Ring 1: 게스트 OS가 실행되는 공간으로, 커널 수준의 접근이 가능
- Ring 0: 가장 높은 권한을 가진 하드웨어 직접 접근 계층
(VMM 또는 가상화 계층이 여기에 위치하며 하드웨어 리소스를 제어)
1) Full Virtualization (완전 가상화)
- 구조설명
- Ring 3 : User Application(사용자 애플리케이션) 실행
- Ring 1 : Guest OS가 실행되고 H/W에 직접적인 접근 권한이 없음
- Ring 0 : 가상화 관리 계층(Virtual Machine Monitor, VMM)이 실행
해당 계층은 하드웨어 리소스를 제어하고 게스트 OS가 하드웨어에 접근하려는 요청을 가로채서 처리
- 물리적 하드웨어는 VMM을 통해 간접적으로 접근
- 특징
- 게스트 OS는 수정 없이 원래의 운영 체제 그대로 실행이 가능
- 하드웨어의 동작을 완전히 에뮬레이션하여 모든 운영 체제와 호환
- 높은 호환성과 OS 수정이 필요없지만, VMM에 의해 하드웨어 명령이 처리되기에 약간의 성능 손실 존재
-> Type 1 또는 Type 2 모두 가능하지만 대부분 Type 2 하이퍼바이저에서 구현
소프트웨어 에뮬레이션 (Software Emulation)
Emulation - 컴퓨터 또는 기타 여러 주변 장치의 기능을 다른 컴퓨터에서 구현하는 것을 의미
Emulator - 에뮬레이션을 하는 장치 또는 프로그램을 지칭
(위키1)에서는 위와 같이 에뮬레이션을 정의하고 있다.
...
그럼 Software Emulation이란 무엇일까?
하드웨어를 소프트웨어로 흉내 내는 방식
즉, 물리적 하드웨어 없이도 하드웨어의 동작을 가상 환경에서 재현을 하는 것을 의미

2) Para-Virtualization (반/준 가상화)
- 구조설명
- Ring 3 : User Application(사용자 애플리케이션) 실행
- Ring 1 : 준가상화된 게스트 OS(Paravirtualized Guest OS)가 실행
- Ring 0 : 가상화 레이어(Virtualization Layer)가 실행되어 하드웨어를 관리
- 물리적 하드웨어는 VMM을 통해 간접적으로 접근
- 특징
- 게스트 OS가 가상화를 인식하고 하이퍼바이저와 협력하도록 수정되어 있음
(VM의 게스트 OS는 하이퍼바이저의 API를 호출하여 가상화 기능을 사용 [Hypervisor Call])
- Full Virtualization의 성능 손실에 대한 대안으로 나온 방법
- 게스트 OS를 수정해야 하므로 특정 운영 체제만 지원
-> Type 1 하이퍼바이저를 주로 사용
Hypervisor Call (하이퍼바이저 콜)
- 가상화가 되지 않은 일반 PC의 경우 애플리케이션 시스템 콜(System Call)신호는 OS 커널에서 처리
- 준가상화 환경 속 게스트 OS는 물리적 하드웨어에 직접 접근할 권한이 없어 시스템 콜을 하이퍼바이저가 처리 이때 사용되는 시스템 콜을 의미
...
즉, 하이퍼바이저와 게스트 OS 간의 인터페이스 역할을 수행

3) Hardware-Assisted Virtualization (하드웨어 지원 가상화)
- 구조설명
- Ring 3 : User Application(사용자 애플리케이션) 실행
- Ring 1 : 게스트 OS(Guest OS)가 실행
- Ring 0 : 하이퍼바이저(VMM)가 실행
이때 Ring 0은 CPU에서 제공하는 하드웨어 가상화 지원 기술(Intel VT-x, AMD-V)을 사용
- 특징
- 하드웨어 수준에서 게스트 OS의 특권 명령어를 직접 처리하기 때문에 높은 성능을 제공
- 하드웨어가 직접 가상화를 지원하여 하이퍼바이저의 부담 감소
(최신 CPU의 가상화 확장 기능을 활용)
- Full Virtualization / Para-Virtualization과 달리 H/W 기반 가상화
- H/W가 가상화 기능을 제공하지 않으면 사용할 수 없음
-> 주로 Type 1 하이퍼바이저를 사용하지만 Type 2 하이퍼바이저에서도 하드웨어 가상화 기술을 활용 가능

4. 사용 사례
- 클라우드 컴퓨팅: AWS, Azure, Google Cloud는 모두 하이퍼바이저 기반으로 작동
- 개발 및 테스트: 개발자들이 다양한 운영 체제에서 애플리케이션을 테스트할 때 사용
- 서버 통합: 물리적 서버 수를 줄이고 효율적으로 운영
5. 마무리
1) 요약
- 핵심 역할: 물리적 하드웨어를 가상화하여 여러 VM을 독립적으로 실행
- 종류: Type 1(Bare-Metal), Type 2(Hosted)
- 장점: 유연성, 격리성, 리소스 효율성
- 단점: 성능 오버헤드, 리소스 소모
2) 하이퍼바이저 사용 기술에 따른 동작 방식 3가지
- Full Virtualization: 하이퍼바이저가 전체적인 가상화 작업을 수행
- Para-Virtualization: 하이퍼바이저와 수정된 OS가 협력하여 성능 최적화
- Hardware-Assisted Virtualization: 하드웨어가 가상화를 지원하고 하이퍼바이저는 이를 관리
@참고문헌
하이퍼바이저란 무엇인가요?
하이퍼바이저란 무엇일까? Hypervisor 개념 알아보기
What is Hardware-Assisted virtaulization?