지난 포스팅에서 vCPU의 개념과 하이퍼스레딩의 관계를 살펴보았다면, 오늘은 그 vCPU를 실제로 생성하고 물리 자원(pCPU)에 매핑하는 핵심 소프트웨어인 하이퍼바이저(Hypervisor)에 대해 정리해보고자 한다. 가상 머신 모니터(VMM)라고도 불리는 이 기술이 어떻게 하드웨어를 추상화하는지 그 갈래를 나누어 분석해 보았다.
1. 하이퍼바이저의 정의와 역할
하이퍼바이저는 하나의 물리 서버에서 여러 개의 Guest OS를 동시에 실행할 수 있도록 해주는 가상화 플랫폼이다. VMM(Virtual Machine Manager)이라고도 부르며, 가상 머신을 생성, 삭제하고 리소스를 제어하는 소프트웨어이다. 물리적 하드웨어와 Guest OS 사이의 중개자 역할을 수행한다.
- 역할
- 자원 분할 및 할당: 물리 서버의 자원을 각 가상 머신에 효율적으로 분배한다.
- 자원 격리: 각 가상 머신이 사용하는 자원을 서로 완전히 분리한다.
- 하드웨어 추상화: 물리 하드웨어를 직접 노출하지 않고, 단순한 인터페이스로 숨긴다.
- 명령어 중재: Guest OS가 실행하는 명령을 pCPU로 전달한다.
2. 하이퍼바이저의 두 가지 유형 (Type 1 vs Type 2)
컴퓨터 아키텍처 관점에서 하이퍼바이저는 설치 위치에 따라 크게 두 가지 유형으로 나뉜다.

| 구분 | Type 1 (Bare-Metal) | Type 2 (Hosted) |
| 설치 위치 | 하드웨어 위 (Native) | 운영체제 위 (Application) |
| 성능(Efficiency) | 매우 높음 (오버헤드 최소) | 상대적으로 낮음 (중간 계층 존재) |
| 안정성 | 높음 (한 VM이 죽어도 하이퍼바이저 건재) | 보통 (호스트 OS가 죽으면 모든 VM 중단) |
| 주요 목적 | 서버 가상화, 클라우드 서비스 | 개인 개발, 테스트용, 레거시 SW 실행 |
Type 1: 네이티브/베어메탈(Bare-Metal) 하이퍼바이저
하드웨어 바로 위에 하이퍼바이저가 직접 설치되는 방식이다.
- 특징: 호스트 OS가 없으므로 오버헤드가 매우 적고 성능이 뛰어나다.
- 장점: 하드웨어 자원을 직접 제어하므로 안정성이 높고 엔터프라이즈 환경에 적합하다.
- 대표 사례: Xen, VMware ESXi, Microsoft Hyper-V, KVM(하이브리드로 분류되기도 한다)
- 실제 사용 예시(AWS): 우리가 AWS EC2 인스턴스를 빌릴 때, 그 밑바닥에는 윈도우나 리눅스 같은 일반 OS가 깔려 있지 않다. 대신 KVM이나 Xen 같은 하이퍼바이저가 하드웨어 직속으로 붙어서 수천 명의 사용자에게 자원을 쪼개준다. 성능 손실이 거의 없어야 하기 때문에 이 방식을 쓴다.
Type 2: 호스트형(Hosted) 하이퍼바이저
기존의 운영체제(Windows, macOS, Linux 등) 위에 소프트웨어 애플리케이션처럼 설치되는 방식이다.
- 특징: 일반 사용자가 설치하기 쉽고 관리가 편하다.
- 단점: 호스트 OS를 거쳐 하드웨어에 접근해야 하므로 오버헤드가 상대적으로 크다.
- 대표 사례: Oracle VirtualBox, VMware Workstation
- 실제 사용 예시(개발자의 로컬 테스트 환경): 맥북을 쓰는데 윈도우 전용 프로그램을 테스트해야 할 때, VirtualBox나 VMware Workstation을 켠다. 하드웨어를 통째로 갈아엎을 순 없으니, 내가 쓰던 맥 OS 위에서 잠깐 가상 환경을 띄우는 용도다. 설치는 쉽지만, 맥 OS와 하이퍼바이저가 자원을 나눠 써야 하므로 성능은 Type 1보다 떨어진다.
3. 가상화 구현 방식의 차이: 전가상화 vs 반가상화
하이퍼바이저가 Guest OS의 명령을 어떻게 처리하느냐에 따라 성능과 호환성이 크게 달라진다.

| 구분 | 반가상화 (Para) | 전가상화 (Full) |
| Guest OS 인지 여부 | 알고 있음 (가상화임을 인지) | 모름 (진짜 하드웨어인 줄 알음) |
| 명령어 처리 방식 | OS가 직접 요청 전달 (Hypercall) | 하이퍼바이저가 가로채서 번역 (Trap & Emulate) |
| OS 수정 필요성 | 커널 수정 필요 (주로 리눅스) | 필요 없음 (호환성 높음) |
| 성능 | 상대적으로 높음 | 상대적으로 낮음 |
- 반가상화 (Para-Virtualization)
- Guest OS가 자신이 가상화 환경에 있음을 인지한다.
- 장점: 하이퍼콜(Hypercall)이라는 인터페이스를 통해 하이퍼바이저에 직접 요청을 보내므로 전가상화보다 빠르다.
- 단점: 하이퍼콜을 사용하도록 Guest OS의 커널을 직접 수정해야 하므로, 소스코드가 공개되지 않은 윈도우 같은 OS에 적용이 어렵다. 따라서 오픈 소스 OS(Linux 등) 위주로 사용된다.
- 전가상화 (Full Virtualization)
- 하드웨어를 100% 완벽하게 시뮬레이션한다.
- 장점: Guest OS의 커널을 수정할 필요가 없어 어떤 OS든 그대로 올릴 수 있다.
- 단점: OS의 특권 명령(Privileged Instructions)을 하이퍼바이저가 Trap & Emulate해야 하므로 성능 저하가 발생한다.
현대 시스템은 하드웨어 가상화 지원(Intel VT-x, AMD-V) 덕분에 전가상화의 성능 문제가 크게 완화되었으며, 실제 환경에서는 전가상화 + 반가상화(드라이버 수준)의 혼합 방식이 많이 사용된다.
4. AWS EC2: KVM과 Nitro 하이퍼바이저
우리가 자주 쓰는 AWS가 어떤 하이퍼바이저를 쓰는지 알아보자. AWS는 과거에 Xen을 주로 사용했으나, 현재는 최적화된 KVM(Kernel-based Virtual Machine) 기반의 Nitro 하이퍼바이저를 사용한다.
- KVM: 리눅스 커널 자체를 하이퍼바이저로 변신시킨다. 커널의 표준 기능(스케줄러, 메모리 관리 등)을 그대로 활용하면서 가상화할 수 있다. 리눅스가 호스트 OS 역할을 하지 않고, 커널 자체가 하드웨어 제어권을 가진 하이퍼바이저가 되기 때문에 Type1 또는 하이브리드로 분류한다.
- Nitro: 하이퍼바이저가 하던 I/O 처리(네트워크, 스토리지) 업무를 별도의 하드웨어 카드(Nitro Card)로 넘겨버렸다. 즉, 하이퍼바이저 자체를 최소화하고 하드웨어로 기능을 분산시킨 구조라고 볼 수 있다. 덕분에 CPU는 오직 VM의 연산에만 집중할 수 있게 되어 베어메탈에 가까운 성능을 가능하게 했다 .
'전공공부' 카테고리의 다른 글
| Nginx 핵심 개념 정리 (0) | 2026.03.31 |
|---|---|
| 애자일(Agile) 철학과 방법론 정리 (0) | 2026.03.29 |
| vCPU 동작 원리 (0) | 2026.03.29 |
| AWS 네트워크 핵심 구성 요소 정리 (0) | 2026.03.29 |
| Kata Containers와 gVisor (0) | 2026.03.27 |