가상화 (Virtualization)
Jan 25, 2026 · Updated Jan 27, 2026
핵심 개념
섹션 제목: “핵심 개념”가상화는 단일 컴퓨터의 하드웨어(CPU, 메모리, 디스크, 네트워크 인터페이스 등)를 여러 실행 환경으로 추상화하여, 각 환경이 자체 개인 컴퓨터에서 실행되는 것처럼 보이게 하는 기술이다.
가상화 구조
VM1 Linux
VM2 Windows
VM3 Ubuntu
VM4 CentOS
VMM (Hypervisor) + Hardware
각 VM은 독립적인 OS를 실행하며 서로 격리된다.
에뮬레이션 vs 가상화
섹션 제목: “에뮬레이션 vs 가상화”| 구분 | 에뮬레이션 | 가상화 |
|---|---|---|
| CPU 아키텍처 | 소스와 대상이 다름 | 동일한 CPU 아키텍처 |
| 동작 방식 | 소프트웨어로 하드웨어 시뮬레이션 | 네이티브 실행 |
| 성능 | 느림 (명령어 변환 필요) | 빠름 |
| 예시 | Apple Rosetta (IBM Power → Intel x86) | VMware, VirtualBox |
가상화의 3가지 요구사항 (Popek & Goldberg, 1974)
섹션 제목: “가상화의 3가지 요구사항 (Popek & Goldberg, 1974)”| 요구사항 | 설명 |
|---|---|
| Fidelity (충실성) | 프로그램에게 원본 머신과 본질적으로 동일한 환경 제공 |
| Performance (성능) | 가상화된 환경에서 실행되는 프로그램의 성능 저하가 미미해야 함 |
| Safety (안전성) | VMM이 시스템 자원을 완전히 제어해야 함 |
Virtual Machine Manager (VMM)
섹션 제목: “Virtual Machine Manager (VMM)”VMM은 게스트 운영체제를 실행하고, 자원 사용을 관리하며, 각 게스트를 다른 게스트로부터 보호한다.
- Host: 가상 머신을 실행하는 물리 하드웨어 시스템
- VMM/Hypervisor: 가상 머신을 생성하고 관리하며, 게스트에게 호스트와 동일한 인터페이스 제공
- Guest: VMM 위에서 실행되는 OS (자신이 전용 하드웨어에서 실행된다고 믿음)
- 각 게스트는 가상 CPU, 가상 메모리, 가상 디스크, 가상 네트워크를 할당받음
VMM 모드: 가상화를 지원하는 CPU는 VMM이 시스템을 제어할 때를 위한 별도의 모드를 가진다.
- 사용자 프로세스보다 더 많은 권한
- 커널보다는 적은 권한
가상화 방식 분류
섹션 제목: “가상화 방식 분류”| 방식 | 설명 |
|---|---|
| Type 0 Hypervisor | 펌웨어 기반 (IBM LPAR) |
| Type 1 Hypervisor | Bare-metal (VMware ESX, Xen) |
| Type 2 Hypervisor | Hosted (VirtualBox, VMware) |
| Paravirtualization | 게스트 OS 수정 (Xen) |
| Programming-env VM | JVM, .NET CLR |
| Emulation | 다른 아키텍처 에뮬레이션 |
| Container | OS 수준 가상화 (Docker, LXC) |
가상화의 용도
섹션 제목: “가상화의 용도”| 용도 | 설명 |
|---|---|
| 서버 통합 | 여러 저사용률 서버를 하나로 합쳐 자원 최적화 |
| 격리 | 게스트 OS 간 보안 격리 |
| 개발/테스트 | 단일 물리 서버에서 여러 OS 실행 |
| 클라우드 컴퓨팅 | VM 단위로 자원을 제공하는 IaaS 기반 |
VCPU (Virtual CPU)
섹션 제목: “VCPU (Virtual CPU)”VMM은 각 게스트에 VCPU(Virtual CPU)를 제공합니다. VCPU는 코드를 직접 실행하지 않으며, 게스트의 현재 CPU 상태를 표현하는 데이터 구조이다.
VMM의 핵심 기능
섹션 제목: “VMM의 핵심 기능”| 기능 | 설명 |
|---|---|
| VM 생성/삭제 | 가상 CPU, 메모리, 디스크, 네트워크 구성 |
| CPU 스케줄링 | 물리 CPU를 여러 게스트 간에 시분할 |
| 메모리 관리 | 중첩 페이지 테이블, 메모리 오버커밋 |
| I/O 가상화 | 가상 디바이스 제공, 실제 디바이스와 매핑 |
| 격리 보장 | 게스트 간 보호, VMM 자체 보호 |
VMM은 OS인가?
섹션 제목: “VMM은 OS인가?”VMM은 OS와 유사한 기능(부팅 시 하드웨어 로드, 스케줄링, 메모리 관리)을 수행하지만, VMM의 “애플리케이션”은 게스트 OS이며 시스템 콜 대신 하드웨어 인터페이스를 제공한다는 점에서 구분된다.
하나의 큰 건물을 여러 개의 독립적인 아파트로 나누는 것과 같다. 각 입주자는 자신의 공간이 독립적이라고 느끼지만, 실제로는 같은 건물의 자원(전기, 수도)을 공유한다.
- 장점: 게스트 간 보안 격리, 서버 수 감소 및 비용 절감, VM 스냅샷/클론, 라이브 마이그레이션
- 단점: 성능 오버헤드(특히 I/O), 복잡성 증가, 하드웨어 지원 필요
관련 개념
섹션 제목: “관련 개념”- 하이퍼바이저 유형 (Type 0/1/2 Hypervisor) - 가상화를 구현하는 하이퍼바이저의 세 가지 유형
- 트랩 앤 에뮬레이트 (Trap-and-Emulate) - 가상화의 기본 구현 기법인 트랩 기반 에뮬레이션
- 하드웨어 가상화 지원 (VT-x/AMD-V) - CPU가 가상화를 위한 전용 모드를 제공하는 하드웨어 기능
- 컨테이너 (Container) - 하드웨어 가상화 대신 OS 수준 격리를 제공하는 경량 가상화
- VMM CPU 스케줄링 (VMM CPU Scheduling) - VMM이 물리 CPU를 여러 VCPU에 시분할하는 방식