kvm介绍
Posted Howareyou?
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kvm介绍相关的知识,希望对你有一定的参考价值。
KVM(Kernel-Based Virtual Machines)是一个基于Linux内核的虚拟化技术, 可以直接将Linux内核转换为Hypervisor(系统管理程
序)从而使得Linux内核能够直接管理虚拟机, 直接调用Linux内核中的内存管理、进程管理子系统来管理虚拟机
KVM在2007年2月被收录进Linux 2.6.20版本的内核
虚拟化分为两种类型:
1:Hypervisor直接运行在硬件上 (例如:kvm)
2:Hypervisor运行在OS上 (例如:vmware)
kvm技术比较奇葩只要当前系统(Linux)装载了KVM模块, Linux内核就直接变成Hypervisor, Hypervisor可以直接在系统上运行相关
的管理命令来创建、删除…KVM虚拟机,每个创建出来的虚拟机又有自己的用户空间和内核空间
注意在原有系统上执行各种命令是不受kvm模块管理的
那虚拟机上的cpu是如何虚拟出来的?
就是由原有的内核中的一个线程,通过kvm模块辅助完成,比如一个虚拟机的一颗cpu运行就是通过原有内核中的一个线程通过kvm模
块辅助在内核中完成,两颗cpu就是用两个线程,从内核的角度来看虚拟cpu就是一个线程
如果kvm虚拟机的用户空间进行了i/o调用,是怎么个过程?(我们知道i/o调用一般都是特权指令)
首先用户空间,会发起系统调用,将请求转交给自己的内核空间,内核空间再转交给原有的用户空间的qemu应用程序所模拟出来的各
种硬件设备,再由qemu转交给原有内核空间完成真正的i/o系统调用,如果非i/o类的特权指令则直接交给硬件cpu处理,这一特性使得
kvm技术性能的损失和真正的物理机相比小于10%
kvm的两类组件:
/dev/kvm:工作于hypervisor,在用户空间可通过ioctl(),系统调用来完成VM创建、启动等管理功能;它是一个字符设备
功能:创建VM、为VM分配内存、读写VCPU的寄存器、向VCPU注入中断、运行VCPU等等
qemu进程:工作于用户空间,主要用于实现模拟PC机的IO设备
以上是关于kvm介绍的主要内容,如果未能解决你的问题,请参考以下文章