한양과학기술고등학교

에듀테크 프로젝트 대시보드

가상화와 하이퍼바이저

물리 서버 1대 = 가상 서버 여러 대

가상화(Virtualization)는 하드웨어(CPU·메모리·디스크·네트워크)를 소프트웨어로 흉내 내 하나의 물리 서버 위에서 서로 완전히 독립된 여러 운영체제(VM)를 동시에 돌리는 기술이다. 이 흉내를 담당하는 소프트웨어가 하이퍼바이저(Hypervisor)다.

하이퍼바이저 두 종류 — Type 1 vs Type 2

"호스트 OS가 있느냐 없느냐"로 나뉜다. 버튼을 눌러 두 구조를 비교해 보자.

Guest OS
App A
Guest OS
App B
Guest OS
App C
Hypervisor (KVM / ESXi / Xen)
Host OS (Windows / macOS / Linux)
물리 하드웨어 (CPU·RAM·디스크)
Type 1 (Bare-metal / Native) — 하이퍼바이저가 하드웨어 위에 직접 설치되어 커널처럼 동작한다. 중간에 범용 OS가 없어 오버헤드가 적고 성능이 좋다. 서버실·클라우드에서 쓰는 방식. 예: VMware ESXi, Microsoft Hyper-V, Xen, KVM(리눅스 커널 자체가 하이퍼바이저가 됨).

메모리 오버커밋 체험 — VM에게 실제보다 많이 약속하기

하이퍼바이저는 흔히 물리 메모리보다 더 많은 메모리를 VM들에게 할당(오버커밋)한다. 모든 VM이 동시에 최대치를 쓰지는 않는다는 가정 때문인데, 슬라이더를 움직여 한계를 넘겨 보자.

가상 할당(vRAM) 합계 물리 메모리(pRAM): 16 GB

VM만 할 수 있는 것들

전체를 소프트웨어로 흉내 내기 때문에 가능한 기능들 — 실제 하드웨어에서는 불가능하다.

스냅샷 (Snapshot)

VM의 메모리·디스크 상태를 그 순간 그대로 사진 찍듯 저장. 업데이트 전 스냅샷을 찍어두면 실패해도 즉시 그 시점으로 되돌리기 가능.

라이브 마이그레이션

VM을 중단 없이 다른 물리 서버로 이동. 메모리 페이지를 미리 복사해두고 마지막 남은 변경분(dirty page)만 짧게 멈춰 옮긴다. 하드웨어 점검 시에도 서비스 무중단.

VT-x / AMD-V

게스트의 특권 명령어를 CPU가 하드웨어 수준에서 가로채 하이퍼바이저에 위임. 순수 소프트웨어 에뮬레이션보다 훨씬 빠르다 (하드웨어 지원 가상화).

가상 네트워크 / 가상 디스크

물리 NIC 하나를 가상 스위치로 여러 VM에 나눠주고, 디스크는 하나의 큰 파일 (.vmdk, .qcow2)로 존재 — 통째로 복사하면 VM 복제 완료.

VM vs 컨테이너 — 격리 수준 차이

둘 다 "격리된 실행 환경"을 만들지만 격리 계층이 다르다. 컨테이너의 자세한 원리는 컨테이너 & Docker 기초 페이지 참고.

가상 머신 (VM)컨테이너
격리 단위커널 포함 OS 전체호스트 커널을 공유, 프로세스만 격리
부팅 속도수십 초 (커널 부팅부터)수백 ms (프로세스 실행 수준)
디스크 크기수 GB ~ 수십 GB수 MB ~ 수백 MB
격리 강도강함 (커널까지 완전 분리)상대적으로 약함 (커널 취약점 = 전체 위험)
다른 커널 실행가능 (Linux VM 위에 Windows VM)불가능 (호스트 커널에 종속)
실전에서는 함께 쓴다. 클라우드(AWS EC2, GCP Compute Engine)는 먼저 하이퍼바이저로 VM을 만들어 고객마다 완전히 격리하고, 그 VM 내부에서 다시 Docker 컨테이너를 여러 개 띄워 앱을 배포한다. 이 서버(43.203.123.184)도 AWS EC2, 즉 실제로는 물리 서버 위 KVM 기반 VM 한 대다.