Understand different OS Concepts/Virtualization

KVM과 QEMU란? (Linux 가상화 솔루션)

Somaz 2022. 8. 8. 13:43
728x90
반응형

Overview

오늘은 KVM과 QEMU에 대해 알아보겠다. 두 기술 모두 리눅스(Linux) 환경에서 가상화를 구현하는 핵심 솔루션이다. 일반적으로 KVM과 QEMU는 함께 사용되며, 상호 보완적인 관계를 가진다.

 

출처 : https://www.researchgate.net/profile/Tolga-Soyata/publication/281177318/figure/fig1/AS:284451906048014@1444830027668/Comparison-of-Xen-KVM-and-QEMU.png

 

 

 

 

 


 

 

 

KVM과 QEMU란?

 

KVM (Kernel-based Virtual Machine)

KVM은 리눅스 커널에 내장된 가상화 모듈로, x86 프로세서의 하드웨어 가상화 기술(Intel VT-x, AMD-V)을 활용하여 고성능 가상화 환경을 제공한다.

  • 기본 개념: 리눅스 커널을 하이퍼바이저(Hypervisor)로 변환하여 가상 머신을 실행할 수 있도록 한다.
  • 특징:
    • 리눅스 커널의 일부로 동작 (Mainline Kernel 포함)
    • 가상 CPU(VCPU), 가상 메모리, I/O 장치 가상화 제공
    • QEMU와 함께 사용하여 완전한 가상 환경 구축 가능

 

 

QEMU (Quick Emulator)

QEMU는 CPU 및 주변 장치를 소프트웨어적으로 에뮬레이션하는 오픈소스 에뮬레이터이다. 가상 머신의 실행 환경을 제공하는 역할을 하며, KVM과 결합하여 더욱 효율적인 가상화 성능을 제공한다.

  • 기본 개념: 하드웨어 환경을 소프트웨어적으로 구현하여 이종(異種) 아키텍처 간 실행을 가능하게 한다.
  • 특징:
    • CPU, 네트워크, 디스크 컨트롤러 등 다양한 하드웨어 에뮬레이션 지원
    • KVM과 함께 사용 시, 하드웨어 가속을 활용하여 성능 향상
    • Windows, macOS 등 다양한 OS 실행 가능

 

 

 

 

 


 

 

 

 

 

🖥️ 가상화와 에뮬레이션의 차이점  

개념 가상화 (Virtualization) 에뮬레이션 (Emulation)
동작 방식 실제 하드웨어에서 OS를 실행 소프트웨어적으로 하드웨어 환경을 구현
성능 고속 실행 (네이티브 성능에 근접) 낮은 성능 (소프트웨어 변환 필요)
하드웨어 요구 사항 호스트와 게스트 OS의 아키텍처가 동일해야 함 호스트와 게스트 OS의 아키텍처가 다를 수 있음
대표 기술 KVM, VMware, VirtualBox QEMU (비-KVM 모드)

 

 

 

KVM + QEMU 조합의 필요성

 

KVM의 역할

  • 가상 머신(VM) 실행을 위한 하드웨어 가속 지원
  • CPU, 메모리, I/O 성능 최적화

 

QEMU의 역할

  • 하드웨어 가상화를 지원하지 않는 경우 소프트웨어 에뮬레이션 제공
  • KVM과 함께 사용하여 디바이스 및 네트워크 에뮬레이션 제공

 

즉, KVM은 하이퍼바이저 역할을 수행하고, QEMU는 가상화된 하드웨어 환경을 제공하는 역할을 한다.

 

 

 

 

 


 

 

 

 

 

 

KVM + QEMU 설치 및 사용 예시

 

1️⃣ KVM & QEMU 설치 (Ubuntu 기준)

sudo apt update && sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager

 

2️⃣ 가상 머신 생성

virt-install --name test-vm --ram 2048 --vcpus 2 --disk size=10 --os-variant ubuntu20.04 --network bridge=virbr0 --graphics none

 

3️⃣ 가상 머신 실행 및 확인

virsh list --all  # 실행 중인 VM 확인
virsh start test-vm  # VM 시작
virsh console test-vm  # VM 접속

 

 

 

 

 


 

 

 

 

 

KVM vs QEMU 비교 

비교 항목  KVM QEMU
역할 하드웨어 가속 기반 가상화 CPU 및 하드웨어 에뮬레이션
성능 네이티브에 가까운 성능 소프트웨어 변환으로 인해 느림
지원 아키텍처 x86_64, ARM, PowerPC 등 거의 모든 아키텍처 지원
용도 VM 실행 (가상 서버 운영) 다양한 OS 실행 (크로스 플랫폼)

 

 

 

 


 

 

 

 

 

결론

  • KVM은 리눅스 커널 기반 하드웨어 가상화 솔루션이며, QEMU는 다양한 하드웨어 환경을 소프트웨어적으로 구현하는 에뮬레이터이다.
  • KVM과 QEMU를 함께 사용하면, 고성능 가상화 환경을 구축하면서도 다양한 운영체제 및 하드웨어 구성을 지원할 수 있다.
  • 하드웨어 가상화를 지원하는 환경에서는 KVM을 활성화하여 최적의 성능을 확보하는 것이 중요하다.

 

 

 

 

 


Reference

728x90
반응형