一、计算虚拟化简介

虚拟化只是云计算的入门技术。
不要把虚拟化和云计算搞混了
计算虚拟化发展史:


一、计算虚拟化简介_第1张图片
image.png

名词概念:


一、计算虚拟化简介_第2张图片
image.png

虚拟化分类:


一、计算虚拟化简介_第3张图片
image.png

在I型中是不需要Host OS的,VMM可以直接调用硬件资源,或者说VMM就是一个定制的host OS。hypervisor作用:1、识别、捕获 响应虚拟机发出的CPU的特权指令2、负责处理虚拟机的队列和调度,并将物理硬件处理结果发送给虚拟机。
优点:虚拟机不依赖操作系统,支持多种操作系统以及多种应用
缺点:虚拟化层的内核开发难度大
例如:xen、kvm、funshioncompute
II型虚拟化
VMM是Host OS上一个普通的应用程序
优点:简单 易于实现,安装和应用依赖主机操作系统对设备的支持
缺点:管理开销大,性能损耗大
虚拟化特点:


一、计算虚拟化简介_第4张图片
image.png

分区:在单一物理服务器上可同时运行多个虚拟机,按需使用硬件资源池中的资源
隔离:每个虚拟机之间都是隔离的,业务互不影响
封装:整个虚拟机的环境封装在独立的文件中,可以通过移动复制这些文件来移动和复制该虚拟机
独立:相对于硬件独立,虚拟机无需任何修改,可以在任何物理服务器上运行,实现虚拟机的热迁移。
热迁移:虚拟机保存和恢复通常是将整个虚拟机的运行状态完整保存下来,同时可以快速的恢复到原有硬件平台,甚至是不同硬件平台上,恢复以后虚拟机仍旧平滑运行。用户不会查到任何差异。
CPU虚拟化:
CPU的分级保护域,CPU被分为了几个环,就是Ring0-3。 Ring0权限最高,Ring3 权限最低。
Ring0的权限可以直接操纵硬件,一般只有操作系统或者驱动才有Ring0的权限。
Ring3权限最低,普通的所有的程序都可以有Ring3的权限。

敏感指令:只有在虚拟化才会有的这个,全虚拟化和半虚拟化
全虚拟化:Guest OS在执行这个敏感指令的时候 Hypervisor也会得到这个消息,然后Hypervisor去翻译这个指令,去调用硬件,并把返回结果给Guest OS。整个过程中Guest OS并不知道自己是一个虚拟机,他就认为自己执行了敏感指令,在整个过程中等于是敏感指令被执行了两次。hypervisor也去执行了,但同时Hypervisor也要翻译这个敏感指令,是需要消耗硬件资源的,所以全的效率没有半虚拟化高。
半虚拟化:虚拟机知道自己是虚拟机,应用在看到虚拟机执行敏感指令直接调用了hypercall,然后用hypervisor去执行,把结果返回给虚拟机,等于只执行了一次。半虚拟化缺陷:某些闭源虚拟化是不支持的。
硬件虚拟化:CPU把保护域分为了root和非root,都有ring0-3,guestOS运行在非root下的Ring0-3


一、计算虚拟化简介_第5张图片
image.png
一、计算虚拟化简介_第6张图片
image.png

内存虚拟化
采用地址映射,让客户机觉得自己运行在真实物理机上,VMM把虚拟机内存映射给物理机。每个虚拟机都认为自己的内存是连续的,而映射到物理机上其实是零散的。


一、计算虚拟化简介_第7张图片
image.png

I/O虚拟化


一、计算虚拟化简介_第8张图片
image.png

模拟没有半虚拟化性能好。
IO透传不经过hypervisor层,性能最好。需要硬件支持。

主流虚拟化技术:


一、计算虚拟化简介_第9张图片
image.png

KVM简介:
KVM是linux内核的一个模块,当一个安装linux操作系统的物理机,安装了KVM模块,他就变成了hypervisor,同时还不会影响原先在物理机上运行的程序。而且他的每个虚拟机都是一个进程,可以在linux界面使用kill命令,把进程杀掉。
一个普通的linux安装了KVM会增加三个运行模式。
1、Guest mode 主要指虚拟机(CPU\内存、磁盘等虚拟设备)一种受限的cpu模式
2、user mode 主要运行QUMU,模拟虚拟机实现I/O类的操作请求。
3、kernel mode 可以真正的硬件操作。


一、计算虚拟化简介_第10张图片
image.png

KVM体系架构


一、计算虚拟化简介_第11张图片
image.png

管理工具中Virsh和Virsh-install是命令行模式
Virt-manager和Virt-viewer是图形化模式
KVM的Kernel和 QEMU是核心组件。组成了整个虚拟化的解决方案。所有的硬件交互都需要使用QEMU
KVM用来做CPU内存虚拟化, QEMU用来做IO设备虚拟化,比如网卡啊,硬盘等模拟虚拟化。QEMU+KVM就是一套完整的解决方案了。
Libvirt
是一个开源的项目,可以直接管理KVM,向上提供了各个语言的接口


一、计算虚拟化简介_第12张图片
image.png

KVM I/O操作流程(默认)
可以看出来 无论是请求还是返回的结果都会经过KVM,KVM是没有对这个请求做什么处理的。


一、计算虚拟化简介_第13张图片
image.png

KVM I/O操作流程-Virtio
不经过KVM,把请求和返回的结果都放在vring这。提升了IO虚拟化的性能,这就是半虚拟化。


一、计算虚拟化简介_第14张图片
image.png

FusionCompute架构
FusionCompute的管理工具是VRM,可以提供一个WEB的图形化界面,可以看到各种状态。


一、计算虚拟化简介_第15张图片
image.png

优势


一、计算虚拟化简介_第16张图片
image.png

组件


一、计算虚拟化简介_第17张图片
image.png

你可能感兴趣的:(一、计算虚拟化简介)