가상화

가상화는 물리적 하드웨어 자원을 논리적으로 분할·추상화하여, 하나의 물리 머신 위에 다수의 독립 실행 환경을 제공하는 기술이다. 이를 통해 자원 활용도를 극대화하고, 애플리케이션 격리·보안·이식성·관리 유연성을 대폭 높일 수 있다. 운영체제 수준에서는 크게 다음 여섯 가지 측면에서 가상화를 구현·지원한다.


하이퍼바이저(가상 머신 모니터, VMM) 종류

베어메탈형(타입 1)

  • 하이퍼바이저가 직접 하드웨어 위에 설치되어 성능 오버헤드 최소화

  • 예: Xen, VMware ESXi, Microsoft Hyper-V Server

  • 모든 가상머신의 CPU·메모리·I/O 스케줄링을 통합 제어

호스트형(타입 2)

  • 기존 운영체제 위에서 애플리케이션처럼 실행

  • 예: VMware Workstation, VirtualBox, Parallels Desktop

  • 설치와 관리가 쉽지만, 호스트 OS 계층이 한 단계 더 있어 성능 저하


가상화 기술의 핵심 구성 요소

CPU 가상화

  • Intel VT-x / AMD-V 명령어 확장으로 특권 명령어 직접 실행

  • VMCS(Virtual Machine Control Structure)에 VM 상태 저장·복원

  • VMExit/VMEntry로 가상→물리 전환 시 최소한의 레지스터 교체

메모리 가상화

  • 하이퍼페이지(Huge Page) 활용으로 TLB 미스 감소

  • EPT(Extended Page Tables) / NPT(Nested Page Tables)로 2단계 주소 변환

  • 메모리 오버커밋(over-commit)과 스왑 기반 메모리 오버프로비저닝

I/O 가상화

  • 가상 디바이스 드라이버(VirtIO, para-virtualized driver)로 직접 전송

  • SR-IOV: 단일 NIC을 여러 가상 함수(VF)로 분할해 VM이 직접 DMA

  • PCI passthrough: 물리 장치를 특정 VM에 독점 할당


OS 레벨(컨테이너) 가상화

네임스페이스 격리

  • PID, 네트워크, 마운트 지점, UTS, IPC 네임스페이스로 프로세스 격리

  • 각 컨테이너는 독립적인 루트 파일 시스템, 네트워크 스택, 호스트명 사용

cgroups(제어 그룹)

  • CPU, 메모리, 디스크 I/O, 네트워크 대역폭 등 리소스 사용량 제한·예약

  • 계층적 그룹 구조로 컨테이너별·서비스별 자원 우선순위 관리

이미지 레이어링

  • 읽기전용 베이스 이미지 + 변경 레이어(울리어블 레이어)

  • 이미지 푸시·풀 시 레이어 단위 전송으로 효율적 배포

  • 레지스트리(Docker Hub, Harbor)와의 통합으로 버전 관리


운영체제 통합 관리 기능

스케줄링과 자원 할당

  • 하이퍼바이저 스케줄러: VM 우선순위, CPU 핀닝(CPU pinning)

  • 컨테이너 오케스트레이터: Pod/Service 단위 스케줄링, 리소스 요청·리미트

라이브 마이그레이션

  • 메모리 페이지 사전 복제(pre-copy), 변경 페이지 추적 후 반복 전송

  • 저장장치 스토리지 모빌리티 지원, 네트워크 연결 유지

고가용성(HA)와 장애 복구

  • 페일오버(failover) 클러스터링, 자동 재시작 정책

  • 저장소 복제(스토리지 미러링), 스냅샷 기반 롤백

Last updated