计算虚拟化
1.什么是 虚拟化
-
什么是虚拟化:虚拟化是一种技术,将物理设备进行逻辑化,转化成文件夹或文件,实现软硬件解耦
-
好处:
-
提高资源利用率
-
软硬件解耦(具备其他高级特性:HA,DRS,DPM)
-
虚拟机可移植性强
-
-
2.虚拟化
2.1、虚拟化中的概念
2.2、虚拟化类型
-
裸金属型虚拟化(I型):Hypervisor直接调用底层硬件,不需要通过底层操作系统
-
Hypervisor负责管理所有的资源和虚拟环境:VMM承担管理资源,同时向上提供vm用于运行guest os
-
优点:不依赖操作系统,支持多种操作系统,多种应用;
-
缺点:虚拟层内核开发难度大
-
-
宿主型虚拟化(II型):物理资源由主机操作系统管理,实际的虚拟化资源由VMM提供
-
优点:简单,易于实现
-
缺点:安装运行应用程序依赖于主机操作系统对设备的支持,管理开销大,性能消耗较大
-
2.3、特点:
-
分区:虚拟化层为多个虚拟机划分服务器资源,每个虚拟机可以单独运行一个操作系统
-
隔离:通过分区建立的虚拟机之间采用逻辑隔离措施,防止相互影响
-
封装:每个虚拟机的配置都独立存储于物理硬件的 一小组文件中
-
相对硬件独立:封装成文件后,迁移只需迁移配置文件和设备文件复制到另一台主机即可,不需要关心底层硬件是否兼容;
2.4、虚拟机的底层形式文件(磁盘文件、配置文件)
-
磁盘文件 虚拟机啊的磁盘在底层的存放形式,不同的虚拟化的格式
-
配置文件 虚拟机的配置信息(网卡信息、cpu信息、系统的信息)
3.计算虚拟化
3.1、cpu虚拟化 (二进制翻译)
-
CPU虚拟化需要解决两个问题
-
如何模拟CPU指令 (所有敏感指令)
-
敏感指令:可以读写系统关键资源的指令叫做敏感指令。
-
特权指令:决大多数的敏感指令是特权指令,特权指令只能在处理器的最高特权级 (内核态)执行。
-
-
如何让多个VM共享CPU
-
利用与Native操作系统类似的机制—通过定时器中断,在中断触发时陷入VMM,从而根据调度机制进行调度。
-
-
-
CPU虚拟化:硬件–>VMM(虚拟机监视程序)–>Guest os(虚拟机操作系统)–>app
-
当Guest OS执行到特殊指令的时候,系统会切换到VMM,让VMM来处理特殊指令
-
-
经典虚拟化:基于Power pc cpu架构 Power pc cpu架构和传统的X86架构不同的是指令集的不同,有部分指令无法被虚拟化层拦截(X86架构的16条指令),没有通过虚拟化层的转译,硬件无法识别指令从而会引发一些错误,因此CPU虚拟化分为:全虚、半虚、硬虚
-
全虚:将所有指令都收集到虚拟化层进行处理
-
优势:不需要修改Guest os
-
劣势:虚拟化层开销大,从而导致CPU虚拟化的效率不高
-
-
半虚:设计理念是将16条指令,由VMM(虚拟化层)移向Guest OS(虚拟机操作系统)自身 通过主动的方式由Guest OS去处理这些指令,而不是被移交给VMM做处理。在这种设计理念下,就需要修改Guest OS内核。 使其在虚拟化进程中捕捉到特殊指令,并直接通过Guest os内核对CPU进行操作,因为中间少了VMM的虚拟化封装解码等等操作,所以对CPU性能的损耗会非常低从而使虚拟机效率高
-
优点:虚拟化层的开销小
-
劣势:需要修改虚拟机操作系统 因为一般Guet os虚拟机操作系统,是不会直接交给虚拟化层,需要修改Guest os内核(目前支持x86、mips、arm这些内核版本)
-
-
硬虚(硬件辅助虚拟化):Guest OS执行到特殊指令可以直接下达到计算机系统硬件去处理,而不需要通过VMM去处理
-
优点:虚拟化效率最高
-
缺点:需要CP
-