커널 기반 가상 머신
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
커널 기반 가상 머신(KVM)은 리눅스 커널의 가상화 기반 시설로, 2006년에 개발이 시작되어 2007년 리눅스 커널에 통합되었다. KVM은 `/dev/kvm` 인터페이스를 통해 게스트 VM의 주소 공간 설정, I/O 공급, 비디오 디스플레이 매핑 등을 지원하며, QEMU와 같은 상위 레벨 클라이언트 애플리케이션에 장치 에뮬레이션을 위임한다. vCPU 핫 스와핑, 동적 메모리 관리, 라이브 마이그레이션 등의 기능을 제공하며, 다양한 그래픽 관리 도구와 호환된다. KVM은 다양한 GNU 라이선스로 라이선스가 부여되며, 커널 모듈은 GPL v2로 라이선스된다.
더 읽어볼만한 페이지
- 자유 가상화 소프트웨어 - LXC
LXC는 리눅스 커널의 cgroup과 네임스페이스 격리 기능을 이용하여 운영 체제 수준의 가상화를 제공하는 기술로, IBM 연구원들이 개발했으며 보안 강화 및 LXD 컨테이너 관리자 프로젝트를 통해 발전해왔다. - 자유 가상화 소프트웨어 - 젠 (하이퍼바이저)
젠은 하나의 물리적 하드웨어에서 여러 운영 체제를 동시에 실행할 수 있게 하는 하이퍼바이저로, 다양한 가상화 방식을 지원하며 여러 분야에서 활용된다. - 자유 에뮬레이션 소프트웨어 - 버추얼박스
버추얼박스(VirtualBox)는 오라클이 개발한 가상화 소프트웨어로, 단일 운영 체제 내에서 여러 게스트 운영 체제를 실행할 수 있으며, 핵심 패키지는 자유 소프트웨어로 제공된다. - 자유 에뮬레이션 소프트웨어 - 시그윈
Cygwin은 윈도우에서 유닉스 시스템과 유사한 환경을 제공하는 소프트웨어로, POSIX API 구현 및 다양한 개발 도구를 통해 유닉스 기반 소프트웨어의 개발, 빌드, 실행을 지원한다. - 리눅스 커널 특징 - AppArmor
AppArmor는 리눅스 보안 모듈로, 프로그램의 정상적인 동작을 정의하는 프로필을 통해 비정상적인 행위를 차단하며 SELinux의 대안으로 제시되었으나 보안 취약점, 성능, 설정, 호환성 등에 대한 논란도 있다. - 리눅스 커널 특징 - 크립토 API (리눅스)
크립토 API는 리눅스에서 사용자 프로그램이 커널의 암호화 엔진을 사용하도록 지원하는 인터페이스로, 명령어 집합 구조를 이용하거나 커널 드라이버를 통해 접근하며, AF_ALG와 cryptodev 등의 인터페이스를 제공한다.
커널 기반 가상 머신 - [IT 관련 정보]에 관한 문서 | |
---|---|
일반 정보 | |
유형 | 하이퍼바이저 |
라이선스 | GNU GPL 또는 GNU LGPL |
웹사이트 | www.linux-kvm.org |
개발 | |
개발자 | 리눅스 커널 커뮤니티 |
작성자 | Qumranet |
기술 정보 | |
운영체제 | 유닉스 계열 |
프로그래밍 언어 | C |
플랫폼 | ARM, 파워PC, ESA/390, IA-32, x86-64 |
2. 역사
아비 키비티는 2006년 중반에 Qumranet에서 KVM 개발을 시작했다. Qumranet은 2008년에 레드햇에 인수된 기술 스타트업 기업이다.[20][21]
KVM은 2006년 10월에 공개되었으며[22], 2007년 2월 5일에 출시된 커널 버전 2.6.20에 리눅스 커널 메인라인에 병합되었다.[1]
KVM은 파올로 본지니가 관리한다.[23]
3. 내부 구조
KVM은 장치 추상화를 제공하지만 프로세서 에뮬레이션은 제공하지 않는다. `/dev/kvm` 인터페이스를 통해 사용자 모드 호스트는 다음을 수행할 수 있다.
원래 QEMU의 포크된 버전이 게스트를 시작하고 커널에서 처리하지 않는 하드웨어 에뮬레이션을 처리하기 위해 제공되었으며, 해당 지원은 결국 업스트림 프로젝트에 병합되었다. 현재 kvmtool, crosvm, Firecracker 등 KVM 인터페이스를 활용하는 다양한 가상 머신 모니터(VMM)와 rust-vmm 같은 프레임워크로 구축된 전문 VMM이 있다.
KVM은 내부적으로 16비트 x86 기본 입출력 시스템의 오픈 소스 구현인 SeaBIOS를 사용한다.[25]
KVM 자체는 에뮬레이션을 전혀 실행하지 않으며, `/dev/kvm` 인터페이스를 공개하여 사용자 공간 호스트가 다음 기능을 이용할 수 있도록 한다.
리눅스에서 QEMU 버전 0.10.1 이후가 사용자 공간 호스트의 한 예이다. QEMU는 게스트를 네이티브에 가까운 속도로 가상화할 수 있는 경우 KVM을 사용하고, 그렇지 않으면 소프트웨어 에뮬레이션으로 폴백한다.[55]
4. 기능
KVM은 2007년 2월부터 vCPU 핫 스와핑,[26] 동적 메모리 관리,[27] 라이브 마이그레이션을 지원해왔다.[28][29] 또한 메모리 쓰기 집약적인 워크로드가 마이그레이션 프로세스에 미치는 영향을 줄여준다.[30]
5. 에뮬레이트하는 하드웨어
KVM 자체는 하드웨어를 거의 에뮬레이트하지 않고, 대신 QEMU, crosvm 또는 Firecracker와 같은 상위 레벨 클라이언트 애플리케이션에 장치 에뮬레이션을 위임한다.
KVM은 다음과 같은 에뮬레이트된 장치를 제공한다.
종류 | 장치 |
---|---|
비디오 카드 | Cirrus CLGD 5446 PCI VGA 카드, Bochs VESA 확장을 이용한 더미 VGA 카드[56], VirtIO, QXL VGA |
PCI | I440FX 또는 Q35 |
입력 장치 | PS/2 마우스 및 키보드[56] |
사운드 카드 | Sound_Blaster_16영어 사운드 블라스터 16, ENSONIQ AudioPCI ES1370영어 ES1370 AC97, Gravis Ultrasound GF1영어 Gravis Ultrasound GF1, CS4231A 호환[56], HD Audio |
이더넷 네트워크 카드 | AMD Am79C970A(Am7990영어 Am7990), E1000(Intel 82540EM, 82573L, 82544GC), NE2000영어 NE2000, Realtek RTL8139영어 RTL8139, VirtIO |
워치독 타이머 | Intel 6300ESB 또는 IB700 |
RAM | 50MB - 32TB |
CPU | 1 – 160 CPU |
6. 그래픽 관리 도구
- 김치는 KVM을 위한 웹 기반 가상화 관리 도구이다.
- 가상 머신 매니저는 KVM 기반 가상 머신의 생성, 편집, 시작 및 중지를 지원하며, 호스트 간 드래그 앤 드롭을 통한 VM의 라이브 또는 콜드 마이그레이션도 가능하다.
- Proxmox Virtual Environment는 KVM과 LXC를 포함하는 오픈 소스 가상화 관리 패키지로, 베어 메탈 설치 프로그램, 웹 기반 원격 관리 GUI, HA 클러스터 스택, 통합 스토리지, 유연한 네트워크 관리, 옵션 상용 지원을 제공한다.
- OpenQRM|OpenQRM영어은 이기종 데이터 센터 인프라를 관리하기 위한 관리 플랫폼이다.
- GNOME Boxes는 리눅스 상의 libvirt 게스트를 관리하기 위한 GNOME 인터페이스이다.
- oVirt|oVirt영어는 libvirt를 기반으로 구축된 KVM용 오픈 소스 가상화 관리 도구이다.
7. 라이선스
KVM의 일부는 다양한 GNU 라이선스로 구성되어 있다.[62]
구성 요소 | 라이선스 |
---|---|
KVM 커널 모듈 | GPL v2 |
KVM 사용자 모듈 | LGPL v2 |
QEMU 가상 CPU 코어 라이브러리 (libqemu.a) 및 QEMU PC 시스템 에뮬레이터 | LGPL |
리눅스 사용자 모드 QEMU 에뮬레이터 | GPL |
BIOS 파일 (bios.bin, vgabios.bin, vgabios-cirrus.bin) | LGPL v2 이상 |
KVM의 커널 모드 구성 요소는 리눅스 커널의 일부이며, 이는 GNU 일반 공중 사용 허가서 2판에 따라 라이선스가 부여된다.[32]
참조
[1]
웹사이트
Linux kernel 2.6.20, Section 2.2. Virtualization support through KVM
http://kernelnewbies[...]
2014-06-16
[2]
웹사이트
KVM FAQ: What do I need to use KVM?
http://www.linux-kvm[...]
[3]
웹사이트
FreeBSD Quarterly Status Report: Porting Linux KVM to FreeBSD
http://www.freebsd.o[...]
[4]
웹사이트
KVM on illumos
http://dtrace.org/bl[...]
2011-08-15
[5]
웹사이트
Gmane - Mail To News And Back Again
https://web.archive.[...]
2007-05-07
[6]
웹사이트
Gmane Loom
http://news.gmane.or[...]
2007-09-29
[7]
웹사이트
KVM/ARM Open Source Project
https://web.archive.[...]
2017-11-01
[8]
간행물
KVM/ARM: The Design and Implementation of the Linux ARM Hypervisor
https://dl.acm.org/d[...]
ACM International Conference on Architectural Support for Programming Languages and Operating Systems
2014
[9]
웹사이트
kernel/git/torvalds/linux.git: KVM: ia64: remove
https://git.kernel.o[...]
[10]
웹사이트
KVM wiki: Guest support status
http://www.linux-kvm[...]
2007-05-27
[11]
웹사이트
Running Mac OS X as a QEMU/KVM Guest
http://www.contrib.a[...]
2014-08-20
[12]
웹사이트
status
https://www.gnu.org/[...]
Gnu.org
2014-02-12
[13]
웹사이트
Guest Support Status - KVM
http://www.linux-kvm[...]
Linux-kvm.org
2014-02-12
[14]
웹사이트
OpenBSD man page virtio(4)
https://man.openbsd.[...]
2018-02-04
[15]
웹사이트
virtio binary packages for FreeBSD
http://people.freebs[...]
2012-10-29
[16]
웹사이트
NetBSD man page virtio(4)
https://web.archive.[...]
2013-07-15
[17]
웹사이트
plan9front
https://code.google.[...]
2013-02-11
[18]
웹사이트
An API for virtual I/O: virtio
https://lwn.net/Arti[...]
LWN.net
2014-04-16
[19]
웹사이트
SCSI target for KVM wiki
https://web.archive.[...]
linux-iscsi.org
2012-08-12
[20]
웹사이트
Interview: Avi Kivity
http://kerneltrap.or[...]
KernelTrap
2007-04-26
[21]
웹사이트
Red Hat Advances Virtualization Leadership with Qumranet, Inc. Acquisition
http://www.redhat.co[...]
Red Hat
2015-06-16
[22]
웹사이트
KVM 15 equipped with live migration | IT World Canada News
https://www.itworldc[...]
2007-03-07
[23]
웹사이트
Git Success Stories and Tips from KVM Maintainer Paolo Bonzini
https://web.archive.[...]
Linux.com
2015-06-17
[24]
웹사이트
KVM/QEMU Storage Stack Performance Discussion
http://www-01.ibm.co[...]
Linux Plumbers Conference
2015-01-03
[25]
웹사이트
SeaBIOS
http://www.seabios.o[...]
seabios.org
2014-06-16
[26]
웹사이트
Hot Plugging Virtual CPUs with Red Hat Enterprise Virtualization Manager
https://access.redha[...]
2016-02-16
[27]
웹사이트
Faq - KVM
https://www.linux-kv[...]
[28]
웹사이트
KVM-15 release [LWN.net]
https://lwn.net/Arti[...]
[29]
웹사이트
Migration - KVM
https://www.linux-kv[...]
[30]
웹사이트
Daniel P. Berrangé » Blog Archive » Analysis of techniques for ensuring migration completion with KVM
https://www.berrange[...]
[31]
웹사이트
The Definitive KVM (Kernel-based Virtual Machine) API Documentation — the Linux Kernel documentation
https://www.kernel.o[...]
[32]
웹사이트
Linux kernel licensing rules — The Linux Kernel documentation
https://www.kernel.o[...]
2020-01-06
[33]
웹사이트
Linux kernel 2.6.20, Section 2.2. Virtualization support through KVM
http://kernelnewbies[...]
2014-06-16
[34]
웹사이트
KVM FAQ: What do I need to use KVM?
http://www.linux-kvm[...]
[35]
웹사이트
FreeBSD Quarterly Status Report: Porting Linux KVM to FreeBSD
http://www.freebsd.o[...]
2008-10-03
[36]
웹사이트
KVM on illumos
http://dtrace.org/bl[...]
2011-11-15
[37]
웹사이트
Gmane - Mail To News And Back Again
http://article.gmane[...]
2007-05-07
[38]
웹사이트
Gmane Loom
http://news.gmane.or[...]
[39]
웹사이트
KVM/ARM Open Source Project
https://columbia.git[...]
[40]
웹사이트
KVM wiki: Guest support status
http://www.linux-kvm[...]
2007-05-27
[41]
웹사이트
Running Mac OS X as a QEMU/KVM Guest
http://www.contrib.a[...]
2014-08-20
[42]
웹사이트
status
https://www.gnu.org/[...]
Gnu.org
2014-02-12
[43]
웹사이트
Guest Support Status - KVM
http://www.linux-kvm[...]
Linux-kvm.org
2014-02-12
[44]
웹사이트
An API for virtual I/O: virtio
https://lwn.net/Arti[...]
LWN.net
2014-04-16
[45]
웹사이트
OpenBSD man page virtio(4)
https://man.openbsd.[...]
2018-02-04
[46]
웹사이트
virtio binary packages for FreeBSD
http://people.freebs[...]
2012-10-29
[47]
웹사이트
NetBSD man page virtio(4)
http://netbsd.gw.com[...]
2013-07-15
[48]
웹사이트
plan9front
https://code.google.[...]
2013-02-11
[49]
웹사이트
SCSI target for KVM wiki
http://linux-iscsi.o[...]
linux-iscsi.org
2012-08-12
[50]
웹사이트
Interview: Avi Kivity
http://kerneltrap.or[...]
[51]
웹사이트
Red Hat Advances Virtualization Leadership with Qumranet, Inc. Acquisition
http://www.redhat.co[...]
レッドハット
2015-06-16
[52]
웹사이트
Linux kernel 2.6.20, Section 2.2. Virtualization support through KVM
http://kernelnewbies[...]
2014-06-16
[53]
웹사이트
Git Success Stories and Tips from KVM Maintainer Paolo Bonzini
http://www.linux.com[...]
Linux.com
2015-06-17
[54]
웹사이트
KVM/QEMU Storage Stack Performance Discussion
http://www-01.ibm.co[...]
Linux Plumbers Conference
2015-01-03
[55]
웹사이트
SeaBIOS
http://www.seabios.o[...]
seabios.org
2014-06-16
[56]
문서
wiki.qemu.org – QEMU Emulator User Documentation
http://wiki.qemu.org[...]
[57]
문서
Ubuntu 7.04 /usr/share/doc/kvm/copyright からのライセンス情報
[58]
웹인용
Linux kernel 2.6.20, Section 2.2. Virtualization support through KVM
http://kernelnewbies[...]
2014-06-16
[59]
웹사이트
KVM FAQ: What do I need to use KVM?
http://www.linux-kvm[...]
[60]
웹인용
FreeBSD Quarterly Status Report: Porting Linux KVM to FreeBSD
http://www.freebsd.o[...]
[61]
웹인용
KVM on illumos
http://dtrace.org/bl[...]
[62]
문서
Licensing info from Ubuntu 7.04 /usr/share/doc/kvm/copyright
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com