对虚拟化技术的理解

虚拟化技术:在一台主机上实现多个操作系统,关键技术就是硬件的虚拟化

全虚拟化:CPU、内存以及IO设备都通过内核来进行虚拟化。优点是虚拟机操作系统内核不用修改,例如windows操作系统可直接创建;缺点是效率太低,所有的调用硬件设备的操作都需要hypervisor(主机内核)来中转调度。

半虚拟化:将IO设备驱动程序做成系统调用直接供给虚拟机使用,这样减少了主机内核的参与,例如虚拟机发报文直接调用网卡的驱动程序而不需要经过host主机内核。优点是效率高,缺点是在半虚拟化的实现里虚拟机不能是windows,因为半虚拟化使得虚拟主机知道自己是在一个虚拟环境中而不是真正拥有主机的所有硬件资源,在发报文时并不是直接发向网卡而是调用系统给出的API,所以对于半虚拟化主机上的虚拟机需要修改内核,而windows系统不允许修改内核。

在CPU硬件虚拟化上  Intel 推出了  VT-X  AMD推出了AMD-V  这两种CPU都在硬件层面上实现了虚拟化,也就是在原有的4层环的CPU上加了环-1,让虚拟机运行在环0上,host主机运行在环-1上。

在内存虚拟化上,影子MMU与TLB同样实现了升级,影子MMU使得LA--PA--HA  这些步骤直接简化为LA--HA;同样由于所有虚拟机共用MMU与TLB,在TLB中会记录每一个虚拟机的内存地址。


Intel和AMD分别通过EPT和NPT为虚拟化应用提升影子MMU的性能,并通过标记TLB来避免虚拟机切换时频繁清写TLB以提高TLB缓存命中率。


对虚拟化技术的理解_第1张图片
三大虚拟化公司
1、Vmware  可以在操作系统上直接安装软件然后新建各种虚拟机,也可以直接在硬件上跑虚拟化技术;支持全虚拟化和半虚拟化。

2、Xen技术  Xen平面只提供CPU和内存的驱动程序,在系统启动时Xen启动的同时需要同时加载Dom0(内涵操作系统,同时有硬件驱动程序),在Xen的虚拟化方式中,所有虚拟机的创建都是靠Dom0来完成的,一旦用到CPU和内存的时候才会用到Xen平面。一般的使用方式是在Dom0中装一个Qemu软件,这个软件功能很强大,本身就是一个可以虚拟化CPU、内存、IO设备的软件,在Xen虚拟化技术中其实只是用Qemu软件来为其他的虚拟机创建虚拟的IO设备。

3、KVM技术  红帽公司技术   在一个原有的Linux主机上一旦调用内核模块KVM模块,则内核变为Hypervisor。此时可以在系统上建立虚拟机,十分方便。但是KVM技术只是全虚拟化技术,必须要CPU支持HVM(也就是CPU支持硬件虚拟化)。同样在用户空间使用Qume为虚拟机创建IO设备,由KVM提供CPU及内存的虚拟化。

你可能感兴趣的:(Linux系统知识)