본문 바로가기

전공공부

하이퍼바이저(Hypervisor)란?

지난 포스팅에서 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의 명령을 어떻게 처리하느냐에 따라 성능과 호환성이 크게 달라진다.

https://medium.com/@ravipatel.it/understanding-hypervisors-exploring-type-1-vs-type-2-and-full-vs-para-virtualization-71b4dad9abd9

구분 반가상화 (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