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

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
반응형
'Understand different OS Concepts > Virtualization' 카테고리의 다른 글
Proxmox란? (0) | 2024.05.24 |
---|---|
Xen Orchestra란? (0) | 2024.05.21 |
Enable Nested Virtualization IN KVM In Linux (KVM 중첩 가상화) (0) | 2022.09.02 |
Libvirt virsh 명령어 정리 (0) | 2022.08.12 |
Libvirt란? (Linux 가상화 관리 도구) (0) | 2022.08.08 |