1680 단어
8 분
가상화
2025-04-07

가상화#

가상화는 컴퓨터에서 컴퓨터 리소스의 추상화를 일컫는 광범위한 용어

  • 물리적인 컴퓨터 리소스의 특징을 다른 시스템, 응용 프로그램, 최종 사용자들이 리소스와 상호 작용하는 방식으로부터 감추는 기술

가상화 대상 시스템#

  • ABI 레벨 : Application 관점 가상화 (Ex. JVM)
  • ISA 레벨 : 명령어 집합에 대한 가상화 (Ex. Vmware)

하이퍼바이저#

하이퍼바이저는 가상화 소프트웨어

  • Type 1 Hypervisor

    • 물리시스템 하드웨어에 직접 설치되어 실행되고 가상머신 관리
    • 베어 메탈 하이퍼바이저라고도 함
    • EX. Xen, KVM, Microsoft Hyper-V, VMWare ESX/ESXi
  • Type 2 Hypervisor

    • 호스트머신 운영체제 위에서 애플리케이션처럼 설치되어 가상머신 관리
    • Ex. VMWare Workstation, VirtualBox, QEMU, KVM

가상화 유형#

  • 전가상화 : 게스트 OS를 수정하지 않는 가상화
  • 반가상화 : 게스트 OS를 수정하여 하이퍼바이저와 통신할 수 있는 API를 추가한 가상화
  • 하이브리드 가상화 : I/O나 메모리 집약형 작업 등 제약이 있는 환경에 대해서 반가상화를 적용하여 성능을 개선하고자 제안
  • 운영체제 레벨 가상화 : 컨테이너화. 일반적인 가상화와 달리 물리시스템에 설치된 운영체제를 모든 컨테이너가 공유하는 시스템

가상화 기술#

  • 폰노이만 구조의 컴퓨터는 CPU, Memory, I/O 장치로 구성

CPU 가상화#

NOTE

운영 체제는 CPU의 커널 모드에서 실행되며, 일반 사용자 프로그램은 유저 모드에서 실행된다.

  • 커널 모드는 모든 CPU 명령 실행 가능
  • 유저 모드는 일부 제한된 명령 실행 가능

소프트웨어 지원 전가상화#

  • 가상머신을 실행하는 Guest OS는 원래 커널 모드에서 실행되어야하지만, 가상화 환경에선 이를 실행할 수 없음
  • 이에 유저 모드에서 Guest OS를 실행 후, 커널 명령이 실행될 때 예외를 발생시켜 하이퍼바이저가 이를 가로채서 처리

단점 - 일부 명령어는 예외를 발생하지 않음 - 따라서 이러한 명령을 수정하는 바이너리 트랜슬레이션이 필요한데, 이 과정에서 성능을 저하시킴

소프트웨어 지원 반가상화#

하이퍼 콜은 가상 환경에서 Guest OS가 직접 하이퍼바이저와 통신하기 위한 특수한 호출

  • Guest OS가 물리적 하드웨어를 직접 제어할 수 없기에 필요한 기능을 하이퍼바이저에게 요청
  • 이를 시스템콜과 유사한 방식으로 하이퍼바이저에게 직접 명령을 전달하므로 하이퍼 콜이다

장점은 트랩보다 성능은 향상되지만 Guest OS가 지원하도록 수정해야함

  • 이를 지원하는 방식이 반 가상화

하드웨어 지원 가상화#

소프트웨어 가상화의 성능 문제 해결을 위해 Intel VT-x, AMD-V 같은 하드웨어 지원 가상화 지술 등장

이 기술은 CPU 내부에 하이퍼바이저 전용 실행 모드를 추가하여, Guest OS를 특권 모드에서 실행할 수 있도록 지원

  • 하이퍼바이저가 직접 개입하지 않아도 CPU나 Guest OS 특권 명령을 처리할 수 있으므로 성능 향상
  • 트랩과 바이너리 트랜슬레이션이 불필요해지며, 가상 오버헤드 감소

메모리 가상화#

가상화 이전에도 컴퓨터 시스템은 가상 메모리를 사용하고 있다. 따라서 주소 변환 과정은 아래와 같음

  • 비가상화 환경(일반 환경)

가상 주소 → 물리 주소#

  • 가상 주소(Virtual Address): 프로세스 또는 VM이 사용하는 주소
  • 물리 주소(Physical Address): 실제 RAM에서 사용하는 주소

운영 체제는 **페이지 테이블(Page Table)**을 사용해 가상 주소를 물리 주소로 매핑

  • 가상화 환경(하이퍼바이저 개입)

가상 주소 → 가상물리 주소 → 물리주소#

  • 가상화 환경에서는 가상머신 또한 하이퍼바이저 상에서 동작하는 프로세스이므로, 가상주소를 사용한다. 따라서 주소 변환에 한 단계가 추가

섀도우 페이지 테이블 (Shadow Page Table) 방식 메모리 가상화#

  • 하이퍼바이저가 게스트 OS의 페이지 테이블을 감시하고, 별도의 섀도우 페이지 테이블을 유지하며 주소 변환을 수행
  • 단점: 오버헤드가 크다 (페이지 테이블 변경 시 하이퍼바이저가 개입)

하드웨어 지원 페이지 테이블 (EPT, NPT) 방식 메모리 가상화#

  • Intel VT-x: EPT (Extended Page Tables)
  • AMD-V: NPT (Nested Page Tables)
  • CPU가 2단계 주소 변환을 직접 처리하여 하이퍼바이저의 개입을 최소화 → 성능 향상
메모리 가상화 방식설명장점단점
섀도우 페이지 테이블하이퍼바이저가 페이지 테이블을 관리모든 OS 지원 가능성능 저하
EPT/NPT (하드웨어 지원)CPU가 직접 2단계 주소 변환성능 향상하드웨어 지원 필요

I/O 가상화#

  • 소프트웨어적 I/O 가상화

    • I/O 장치 에뮬레이션 : 하이퍼바이저가 가상 머신(VM)에 가짜(에뮬레이션된) I/O 장치를 제공하고, 실제 I/O 처리는 하이퍼바이저가 담당
    • I/O 반가상화 : VM이 하이퍼바이저와 직접 통신하여 최적화된 I/O 드라이버를 사용. (예: VirtIO 방식)
    • 직접 접근 I/O : VM이 특정 물리적 I/O 장치를 직접 제어할 수 있도록 하이퍼바이저가 장치를 VM에 직접 할당 (장치 공유 불가, 한 VM이 독점)
  • 하드웨어 지원 I/O 가상화

    • IOMMU (I/O memory management unit) : DMA(Direct Memory Access) 요청을 가상 주소에서 물리 주소로 변환하여 I/O 장치가 가상화 환경에서도 안전하게 메모리에 접근 가능하도록 지원
    • SR-IOV (single root I/O virtualization) : 하나의 물리적 I/O 장치를 여러 개의 가상 기능(VF, Virtual Function)으로 나누어 여러 VM이 직접 I/O 장치를 공유할 수 있도록 지원
가상화
https://devlog.jpstudy.org/posts/2025/cs/virtualization/
저자
SY
게시일
2025-04-07
라이선스
CC BY-NC-ND 4.0