目录
虚拟化基础
虚拟化的概念
虚拟化的特征(本质)
虚拟机的两大派别
VMM讲解
虚拟化中的一些重要概念
VMM的功能以及分类
虚拟化的架构
寄居虚拟化
裸金属虚拟化
操作系统虚拟化
混合虚拟化
虚拟化的三个方向
什么是虚拟化
虚拟化的本质是一种资源管理技术,将计算机的各种物理资源(如服务器、网络、内存存储等)抽象化后呈现出来,这些资源不受现有资源的架构方式、地域或物理设备所限制;然后将这些资源组合为一个或多个计算机的配置环境,打破了物理设备结构间不可切割的障碍
即:没有虚拟化前软硬件绑定,虚拟化后软硬件解耦(将软件和硬件模块分离,降低之间的依懒性)
虚拟化技术的实现就是在系统中加入一个虚拟化层,通过该层将下层的资源抽象为另一种形式的资源,提供给上层应用
云计算与虚拟化之间的关系
虚拟化是实现云计算的技术支撑手段之一,但并非云计算的核心关注点
虚拟化技术是云计算在Iass层具有商用价值的基础
虚拟化的优势
节省成本、更加有效的资源调配、提高了生产率、简化运维与管理、具有更高的灵活性与扩展性、应用程序的开发更容易与安全、业务故障恢复更容易
分区
虚拟化层为多个虚拟机划分服务器资源,每个虚拟机可以同时运行一个单独的操作系统
对于虚拟机上的操作系统来说,都认为自己是运行在真实的物理机上的,因为它们能够检测到虚拟化层为其提供的”虚拟硬件”
隔离
一台虚拟机故障、中病毒都不会影响另一台虚拟机
封装(迁移所依赖的)
虚拟机的执行环境封装在独立文件中(例如虚拟机的内存、硬盘等都是以文件形式封装)
这样只需要对这些文件进行移动就可以移动虚拟机
相对于硬件独立(与硬件解耦)
由于虚拟机只能看到虚拟化层提供的“虚拟硬件”,而“虚拟硬件”不需要考虑物理服务器的情况,所以虚拟机就可以在任何的不同厂商服务器上运行(迁移需要保证使用的VMM虚拟化监视器是相同的)--不同架构服务器、不同操作系统下安装的VMM软件都是不同的,具体需要去相应的VMM软件官网查看(在下一节点讲解VMM)
小聚大(计算能力融合)
将若干台服务器上的资源全部拿出来丢到一个资源池中,然后在该资源池上安装1个操作系统使用全部的资源;提升了服务器的整体性能
典型代表为Google
大聚小
将1个服务器分成若干个小的虚拟机;提高了资源利用率
典型代表为Amazon EC2
Host Machine: 物理机资源
Guest Machine: 虚拟机资源
Host OS: 物理机上运行的系统
Guest OS: 虚拟机上运行的系统
Hypervisor: Hypervisor又称为虚拟机监控器(Vritual machine monitor缩写VMM)是一种运行在基础物理服务器和操作系统之间的中间软件层,能够允许多个操作系统和应用来共享同一硬件资源(即在虚拟化环境中管理各虚拟机的CPU、内存、I/O设备、指令集等);该软件层也被称为虚拟化层,是所有虚拟化技术的核心
VMM的功能
虚拟资源
VMM通过底层硬件资源构建一个包含虚拟CPU、内存、硬盘、I/O等的虚拟环境
在该环境中的Guest OS认为自己运行在一台真的计算机上,并唯一拥有这台‘虚拟’机器上的所有资源
虚拟环境调度
VMM可以同时构建多个虚拟机,运行多个Guest OS并发执行,并通过策略来有效的调度资源
虚拟化环境的管理接口
VMM提供一组完备的管理接口来支持虚拟环境的创建、删除、暂停和迁移等功能
上层的管理通过调用VMM提供的管理接口,为用户提供管理界面
VMM的两种实现方式
Hypervisor VM——Ⅰ型虚拟化——裸机型虚拟化——无需操作系统
VMM直接运行在物理硬件上,聚焦虚拟I/0性能优化,主要用于服务器类的应用
运行效率高,VMM就作为主操作系统
例如:VMware ESX服务器版本、Xen 3.0及之后版本、Hyper-V都是该类型的VMM
不同的VMM软件类型及版本是运行在不同的架构服务器上(x86、RAM等架构)
Hosted VM ———Ⅱ型虚拟化——主机型虚拟化——需要操作系统
VMM运行在物理机的操作系统上,上层功能相对更加丰富,常用于桌面应用
运行效率低于Ⅰ型,不过VMM作为应用程序运行在主操作系统环境内,更加灵活
例如:VMware workstation、Xen 3.0以前版本、Oracle VMVirtualBox都是该类型的VMM
对于KVM属于1还是2型的VMM,目前存在争议,可作为混合型,暂且归为2型
以上Ⅱ型VMM既可以运行在Linux系统,也可以运行在Windows系统中
即VMM的两种实现方式可以细分为以下四种实现方式;
Ⅱ型VMM可以细分为:寄居、混合、操作系统虚拟化,因为这三者都需要宿主机(即需要先安装一个操作系统)
Ⅰ型VMM分为:裸金属架构(不需要安装宿主操作系统)
寄居虚拟化架构指在宿主操作系统之上安装和运行虚拟化程序,依赖于宿主操作系统对设备的支持和物理资源的管理;该虚拟化架构也称为Ⅱ型VMM
虚拟化层VMM可以看做一个软件,必须安装在操作系统之上才可以正常运行,兼容性高,易于实现;不过管理开销大,对性能的损耗大
例如:PC上使用的VMware Workstation,在硬件基础之上安装一个主操作系统也就是宿主操作系统,然后在操作系统上安装一个软件VMware Workstation来进行虚拟化,然后在软件上开启若干个虚拟机
厂商VMware Workstation、Hyper-V部分版本
裸金属虚拟化架构就是原生架构,直接将虚拟化VMM安装在硬盘上,接管服务器的所有资源;该虚拟化架构也称为Ⅰ型VMM
虚拟化层就作为主操作系统,仅仅负责和上层的虚拟机操作系统沟通以及资源协调,不用处理太复杂的事项,使得虚拟机性能和物理主机性能差不多;不过硬件的兼容性较差,虚拟层内核开发难度大
即:在物理服务器上直接安装虚拟化管理软件,然后在其上运行若干个虚拟机
厂商VMware EXS、Citrix Xen、FusionSphere、Hyper-V部分版本
划分一个宿主机操作系统的一部分,在该部分里面产生一个执行环境,然后在执行环境里面运行多个虚拟机(在操作系统上虚拟出一个个操作系统);大类上来说也属于Ⅱ型VMM
操作系统虚拟化架构就是把单个的操作系统划分为多个容器,使用容器管理器来进行管理
管理开销低;但是隔离性差,多容器共享同一操作系统
厂商Virtuozzo
将1个内核级的驱动插入到宿主操作系统的内核,这个驱动器作为虚拟硬件管理器来协调虚拟机和宿主操作系统之间的硬件访问,来实现虚拟化资源的调配;大类上来说也属于Ⅱ型VMM
混合虚拟化需要底层硬件支持虚拟化扩展功能
厂商Redhat KVM
计算虚拟化
细分为CPU虚拟化、内存虚拟化、I/0虚拟化
CPU虚拟化:让虚拟机像物理机一样执行一些CPU指令(高危指令、用户指令)
内存虚拟化:内存虚拟化简单来说就是内存地址的管理
1/O虚拟化:将1个输入输出接口虚拟化为多个
存储虚拟化
细分为裸设备+逻辑卷、存储设备虚拟化、主机存储虚拟化+文件系统
网络虚拟化
细分为VMDQ、SSR-IOV等