1.虚拟化:计算机资源的抽象和模拟
平台虚拟化:针对计算机和操作系统的虚拟化资源虚拟化:针对特定系统资源的虚拟化,比如内存、存储(ceph)、网络(sdn)资源等应用程序虚拟化:应用程序和操作系统解耦,为应用程序提供一个虚拟的运行环境
2.平台虚拟化实现方式
全虚拟化半虚拟化硬件辅助虚拟化
3.cpu虚拟化
目标:让guestOS里面的指令能够正常执行,保证性能和效率,尽可能接近物理机方式: 全虚拟化: 虚拟机模拟了完整的底层硬件,操作系统和软件不做任何修改就可以运行在虚拟机中 实现:特权级压缩和二进制翻译(BT)技术实现 Ring0-4指令权限 代表:VMware esxi cpu全虚拟化 = 特权压缩+二进制翻译 半虚拟化 对虚拟机的操作系统进行内核改造,虚拟机有自己的特殊指令,和VMM一起配合工作 代表:Xen 性能很高,更加接近物理机速度, 缺点:无法虚拟windows系统(windows闭源,无法改造内核代码) 硬件辅助虚拟化 对cpu指令进行改造,让cpu从根本上支持虚拟化 Intel:VT-x AMD:AMD-v cat /proc/cpuinfo | grep vmx //intel cat /proc/cpuinfo | grep svm //amd 效率和性能很高,接近物理机 代表:kvm
4.内存虚拟化
guestOS和物理机共用同一个物理内存,要做到相互不影响物理内存划分:块、页、页表方式: 全虚拟化: 影子页表技术 半虚拟化 页表写入法技术 硬件辅助虚拟化 引入EPT(Extended Page Table 扩展页表)技术
5.IO虚拟化
硬盘 or 网卡虚拟化让虚拟化能够访问到它需要的IO资源,与宿主机相互隔离方式: 全虚拟化: 模拟IO设备实现,虚拟出来的设备跟底层硬件无关 半虚拟化 采用前端驱动和后端驱动架构实现 硬件辅助虚拟化 让虚拟机直接使用物理设备 intel:VT-d AMD:IOMMU PCI-SIG:IOV 极大消除性能开销