본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
(KVM에서 넘어옴)
  • KVM(Kernel-based Virtual Machine)은 리눅스 커널 자체를 하이퍼바이저로 만드는 커널 모듈(kvm.ko, kvm-intel.ko·kvm-amd.ko)이다
  • KVM은 인텔의 VT 및 AMD-V를 기반으로 동작하는 공개형 기술로, 리눅스에선 커널 2.6.20부터 포함되었다.
  • 이스라엘의 Qumranet(2005년 설립)이 개발해 2006년에 공개했고, 2008년 레드햇이 Qumranet 을 인수한 뒤로 레드햇이 개발을 주도한다. RHEL 의 기본 가상화 기술이다
  • x86 CPU 의 하드웨어 가상화 기능으로 게스트를 고치지 않고 돌리는 전가상화 방식이다

다른 가상화 기술과 구분

편집 원본 편집
기술 출발 방식
KVM Qumranet → 레드햇 리눅스 커널 모듈이 하이퍼바이저가 된다. 하드웨어 지원 전가상화
Xen 케임브리지 대학교 베어메탈 하이퍼바이저. 반가상화와 전가상화를 모두 지원
VirtualBox 이노텍 → 썬 → 오라클 운영체제 위에 응용 프로그램처럼 설치하는 호스트형(2형) 하이퍼바이저
도커 도커 사 하이퍼바이저 없이 커널을 공유하는 컨테이너 가상화


1. CPU 지원 여부 확인

 # egrep “(vmx|svm)” /proc/cpuinfo

2. 관련 패키지 설치

 # yum groupinstall virtualization-client virtualization-platform virtualization-tools

3. 서비스 데몬 실행

 # service libvirtd start

4. 네트워크 설정(네트워크 브리지 설정 포함)

5. 가상머신 생성 및 게스트 OS 설치

 # virt-manager

반가상화 장치(virtio)

편집 원본 편집

KVM 은 CPU 를 Intel VT-x·AMD-V 의 하드웨어 지원으로 가상화하므로 CPU 는 반가상화 대상이 아니다. 대신 게스트에 반가상화 드라이버를 넣어 입출력 장치를 에뮬레이션보다 빠르게 쓴다.

반가상화 장치 드라이버 하는 일
이더넷 카드 virtio-net 가상 네트워크 카드
디스크 I/O virtio-blk, virtio-scsi 가상 디스크 컨트롤러
VGA(그래픽) QXL(SPICE), virtio-gpu, VMware SVGA 호환 가상 그래픽 장치
메모리 벌룬 virtio-balloon 실행 중에 게스트 메모리를 거둬들이거나 돌려준다
  • KVM 의 반가상화는 이처럼 이더넷 카드·디스크 I/O·VGA 같은 장치 쪽에 쓰이고, CPU 는 하드웨어 지원 전가상화로 처리한다

QEMU 와의 관계

편집 원본 편집
  • KVM 은 처음부터 CPU 의 하드웨어 가상화 기능(Intel VT-x, AMD-V)을 쓰는 전가상화 하이퍼바이저로 개발되었다. 게스트 운영체제를 고치지 않고 그대로 돌린다
  • KVM 커널 모듈은 CPU 와 메모리의 가상화만 맡는다. 가상 머신 하나하나는 사용자 공간의 QEMU 프로세스로 돌고, QEMU 가 디스크·네트워크 카드·그래픽 같은 장치를 에뮬레이션한다. 그래서 흔히 KVM/QEMU 라고 부른다
  • QEMU 는 원래 다른 CPU 의 명령어까지 소프트웨어로 흉내 내는 에뮬레이터다. KVM 이 있으면 같은 종류 CPU 의 명령은 하드웨어에서 바로 실행해 빠르게 돈다
  • 가상 머신 관리는 libvirt 위의 virsh, virt-manager 로 한다
  • 반가상화 드라이버의 구조는 I/O 가상화, 반가상화와 전가상화의 차이는 반가상화·전가상화