2.虚拟化的类型
在云环境下,服务器虚拟化、存储和网络虚拟化是主要的研究内容
服务器虚拟化
服务器虚拟化是云计算虚拟化的核心,是将物理服务器资源抽象成逻辑资源,让一台物理服务器转化成多台相互隔离的虚拟服务器。
服务器虚拟化使得服务器不再受限于物理上的界限,而是让 CPU 、内存、磁盘、 I/O 等硬件变成可以动态管理的“资源池”。
服务器虚拟化能够提高资源利用率,简化系统管理,实现服务器整合,让IT对业务的变化更具适应力。
服务器虚拟化典型实现架构
寄居架构(Hosted Architecture)
需要安装宿主操作系统,在宿主操作系统之上安装VMM,使用VMM创建和管理虚拟机
裸金属架构(Bare Metal Architecture)
将VMM直接安装在物理服务器之上,在VMM上安装其他操作系统
虚拟机(VM)的实现过程中,主要包含CPU虚拟化、内存虚拟化、 I/O 虚拟化
CPU虚拟化
为了实现一台主机模拟多个系统,需要将CPU虚拟化,这样可将单个CPU模拟为多个CPU并行,多个系统的应用程序都可以在相互独立的空间内运行而互不影响,并且支持虚拟操作系统直接在硬件上运行,无需进行二进制转换,从而显著提高计算机额工作效率。
X86处理器响应有4个不同优先级,称为Ring0 - Ring3:
- Ring0的优先级最高,用于操作系统内核,通常系统内核才拥有Ring0的权限,可以直接和硬件沟通读取输入输出设备、CPU和内存等数据
- Ring1和Ring2用于操作系统服务
- Ring3优先级最低,用于应用程序
虚拟化CPU时需要分清指令集
指令集通常分为非特权指令和特权指令两种:
- 非特权指令不能改变共享资源的值或状态。共享资源包括处理器、内存、计时器和特殊目的的寄存器等。非特权指令包括如算术运算指令、逻辑运算指令等。
- 特权指令是所有用来访问共享资源的值或状态的指令,这类指令包括关机、设置计时器、设置程序计数器、改变重定位寄存器的值和I/O相关的指令。
在VMM执行非特权指令时,可以直接运行,而特权指令,则需要仿真运行
关于虚拟机监控器(VMM或Hypervisor):
CPU虚拟化可以分为三类:全虚拟化、半虚拟化和硬件辅助虚拟化
- 全虚拟化:采用二进制代码翻译技术。全虚拟化是一种采用二进制代码翻译技术。即在虚拟主机运行的时候,将陷入指令(访管指令)插入到特权指令的前面,把执行陷入到虚拟主机的监视器里面去,然后虚拟主机监视器动态的把这些系统指令转换成为能够实现相同功能的指令的序列之后再去执行。不用修改客户操作系统就能实现全虚拟化技术,但是动态转换指令的步骤将需要使用一定量的性能开销。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
- 半虚拟化:通过修改客户操作系统实现的,把虚拟化层的超级调用作为特权指令,以此来解决虚拟主机运行特权指令的相关问题。
- 硬件辅助虚拟化:一种硬件方案,支持虚拟化技术的 CPU 加入了新的指令
集和处理器运行模式来完成与CPU虚拟化相关的功能。
内存虚拟化
内存虚拟化的主要作用是共享物理系统内存,动态分配给虚拟机。
虚拟机监视器需要维护物理机里内存地址块和虚拟机内部看到的连续内存块的映射关系,保证虚拟机的内存访问是连续的、一致的。
VMM 内存虚拟化的实现方式:
- 软件方式:通过软件实现内存地址的翻译,比如 Shadow page table (影子页表)技术、页表写入法
- 硬件实现:基于 CPU 的辅助虚拟化功能,比如 AMD 的 NPT 和 Intel 的 EPT 技术
影子页表法:如果客户在操作系统中维护自己页表时,该页表将维护虚拟主机物理内存和虚拟主机逻辑地址之间的映射关系。虚拟机监视器则是为每一台虚拟主机维护着一个与其相对应的页表,页表里面保存着物理主机的内存和虚拟主机的物理内存之间的映射关系。
页表写入法:若客户操作系统要创建一个全新页表的时候,必须向虚拟机监视器去注册要创建的新页表。虚拟机监视器维护会维护该新页表,并 记录着物理主机地址和虚拟主机逻辑地址之间的映射关系 。在客户操作系统想对该页表进行更新的时候,虚拟机监视器会对该页表进行修改。即实现页表写入法就必须修改客户操作系统。
基于硬件的扩展页表(EPT)
IO虚拟化
IO虚拟化目的是屏蔽输入输出的差异,在不同设计之间进行数据表示的转换
主流的I/O设备虚拟化模型:
- 模拟模型
- 泛虚拟化模型
- 设备直接分配模型
- SR-IOV
若需细节请阅读
https://blog.****.net/lkn910907/article/details/41866109
参考资料:
https://blog.****.net/sdulibh/article/details/83653983
https://www.cnblogs.com/sammyliu/p/4543597.html
乔寿合.服务器虚拟化技术探索[J].现代信息科技,2019,3(12):93-95. DOI:10.3969/j.issn.2096-4706.2019.12.036.