
CPU虚拟化:
目标是使虚拟机上的指令能被正常执行,且效率接近物理机
内存虚拟化:
目标是能做好虚拟机内存空间之 间的隔离,使每个虚拟机都认为自己拥有了整个内存地址,且效率页能接近物理机。
I/O虚拟化:
目标使不仅让虚拟机访问到他们所需 要的I/O资源,而且要做好它们之间的隔离工作,更重要的是减轻由于虚拟化所带来的开销。
全虚拟化:
使用VMM实现CPU、内存、设备I/O的虚拟化,而Guest OS和计算机系统硬件都不需要进行修改。
优点 | 缺点 |
|---|---|
不需要修改guest os | 虚拟化层的开销大 |
半虚拟化:
使用VMM实现CPU和内存虚拟化,设备I/O虚拟化由Guest OS实现。
优点 | 缺点 |
|---|---|
虚拟化层开销小,性能好 | 需要修改guest os |
硬件辅助虚拟化:
借助硬件(主要是处理器)的支持来实现高效的全虚拟化。
优点 | 缺点 |
|---|---|
让物理硬件直接支持虚拟化功能能够识别敏感指令 | 需要CPU支持虚拟化 |
设备发现:需要控制各虚拟机能够访问的设备
访问截获:
I/O虚拟化可以被看做是位于服务器组件的系统和各种可用I/O处理单元之间的硬件中间件层,使得多个Guest可用复用有限的外设资源
I/O虚拟化的过程,就是模拟设备的这些寄存器和内存,解惑Guest OS对IO端口和寄存器的访问,通过软件的方式来模拟设备行为。
在QEMU/KVM中,客户机可用使用的设备大致可分为三类:



KVM使用的Qeumu技术介绍:

Xen的Hypervisor是服务器经过BIOS启动之后载入的首个程序,然后启动一个具有特定权限的虚拟机,称之为Domain 0(简称Dom0)。
Dom0的操作系统可以是Linux或Unix,Domain 0实现对Hypervisor控制和管理功能。
在所承载的虚拟机中,Dom0是唯一可以直接访问物理硬件(如存储和网卡)的虚拟机,它通过本身加载的物理驱动,为其它虚拟机(Domain U,简称DomU)提供访问存储和网卡的桥梁。

KVM(Kernel-based Virtual Machine)是基于内核的虚拟机。这是一款开源软件,于2007年2月被集成到Linux 2.6.20内核中。
KVM本质是Linux内核中的虚拟化功能模块kvm.ko,利用Linux做大量的事,如任务调度、内存管理与硬件设备交互等。

KVM是Linux Kernel的一个模块, 运行在内核空间。


类别 | 作用 |
|---|---|
云计算 | 一种商业模式或服务模式 |
虚拟化 | 实现云计算的重要手段之一 |
虚拟化技术:
VRM——————————虚拟机资源管理,会与cna进行对接,可以控制多台cna
KVM——————————虚拟机中的模块,存储在linux内核里
XEN——————————虚拟机中的内核模块,06年以前主流的虚拟机架构
libvirt——————————软件包,负责对接驱动和管理工具,它拥有多种语言的api接口,可以用根据对应语言的api直接进行管理libvirt对kvm操作
Guest Os——————————虚拟机操作系统
Huest Os——————————硬件操作系统
driver——————————硬件驱动
HPA——————————物理机的物理内存
HVA——————————物理机的虚拟内存
GPA——————————虚拟机的物理内存
GVA——————————虚拟机的虚拟内存
TLB——————————转译后备缓冲区
CAM——————————结合存储