虚拟化系列介绍(一)

网友投稿 580 2022-05-30

哈哈,为了积极支持社区建设,有点臭不要脸地把多年(已成记忆的2013年)前的博客文章搬进来,可能个别字眼会改变一下!

本系列初步构思有五篇文章,主要介绍网络虚拟化,存储虚拟化,服务器虚拟化,桌面虚拟化和应用虚拟化

先从我们大多数人较熟悉和常用的服务器虚拟化开始。这里所说的服务器虚拟化,包含服务器操作系统的虚拟化,也包含办公娱乐用操作系统的虚拟化,说白了就是对各种操作系统的虚拟化,也就是我们用户接触和使用到的虚拟机(VM,Virtual Machine)

一、云计算

在谈论虚拟化之前,却有必要说明一下云计算。

云计算,这个名词如今已是大红大紫,但现在还没有权威的具体的定义。我反复查找资料,看到美国国家技术和标准研究院(NIST)有一个定义供参考。

“云计算是一个提供便捷的可通过网络访问一个可定制的计算资源池的服务模式(计算资源包含存储,网络,服务器,应用和开发等);这些资源能够快速部署,并只需要很少的管理工作或与服务供应商很少的交互。”

上面一段话看起来依旧深奥晦涩,在这里我仅罗列云计算的一些特点,(我个人理解的云计算)具有如下一些特点:

资源池化

按需使用

自助服务

虚拟化和网络化

可扩展和可度量

高效率和低能耗

任意设备和便捷访问

虽然目前业界对云计算没有完整权威定义,但当今云计算的具体服务模式,却显而易见的有以下三种方式:

基础设施即服务 Infrastructure as a Service,IaaS

平台即服务 Platform as a Service,PaaS

软件即服务 Software as a Service,SaaS

我说了这么多废话,大家好像也没看出与今天要探讨的虚拟化有多大关系,诸位且慢,请看下图一所示。

(图一、虚拟化与云计算架构

可见虚拟化是云计算的基础,离开了虚拟化,可以说云计算必然成了无源之水无本之木;但虚拟化绝不等于云计算,可以说云计算是一种模式,虚拟化是一种技术

二、虚拟化

那什么是虚拟化呢?较学术的解释如下:

“一种对不同计算资源进行隔离、去耦合的过程。”

照我个人的理解,就是实现软件与硬件无关(也可以说是把硬件标准化),这样就达到操作系统和软件资源可在不同物理硬件之间移动和运行的目的

三、虚拟化架构

当今用于服务器虚拟化的体系架构,归纳起来可以说有如下图二所示的三种:

(图二、常见的三种虚拟化架构)

这里面涉及到一个叫VMM的层,我们称其为虚拟机监控器(Virtual Machine Monitor),它主要是实现多个独立实例共享同一底层硬件资源。

最左边的,可以叫程序虚拟化,常见的就是Java虚拟机,它隔离特殊进程,为其创造运行环境,达到与操作系统无关,程序不必为特定的操作系统或硬件编写。

中间的这种,我们可以说是混合虚拟化,就是在操作系统底层(Ring0)加入相应驱动,但还与操作系统应用层(Ring3)有交互,也就是说虚拟化管理层是运行在主机操作系统之上,依靠主机操作系统来模拟硬件设备,以便在其上运行虚拟机,其优点是对物理硬件要求低,但是性能相对差。常见的例子有微软的Virtual PC/VirtualServer;VMware的VMware Workstation/VMware Server;VirtualBox等。

最右边的,可以说是真正的虚拟化,有的称其为裸金属架构。他是直接在硬件上跑虚拟化管理层,其优点是性能比较好。裸金属架构的虚拟化管理层,一般叫做Hypervisor,它一般运行在Ring1层(有的书上解读为Ring-1,实际上X86就Ring0到Ring3,所以这种说法有待商榷;进一步解释见下一段落)。常见的有VMware ESX Server,微软的Hyper-V(微软2003年收购Connectix后获得的技术发展而来),思杰的XenServer(源于英国剑桥大学计算机实验室开发的一个Xen虚拟化开源项目),当然还有Redhat等推荐的KVM架构,我大华为现在主要也玩这个。

虚拟化技术最初有牛哄哄的IBM于上世纪60年代设计,主要是用于大型机的。事实上要实现虚拟化,还得处理器硬件支持。x86 处理器有 4 个特权级别:Ring 0 ~ Ring 3,只有运行在 Ring 0 ~ 2 级时,处理器才可以访问特权资源或执行特权指令;运行在 Ring 0 级时,处理器可以访问所有的特权状态。x86 平台上的操作系统一般只使用 Ring 0 和 Ring 3 这两个级别,操作系统内核等运行在 Ring 0 级,用户进程运行在 Ring 3 级。为了避免来宾操作系统控制系统资源,Hypervisor不得不降低自身的运行级别,一般运行在 Ring 1级(Ring 2 不使用)。x86处理器硬件起先并不带有虚拟化功能(主要就是实现Hypervisor运行在 Ring 1级),在2005年与2006年,英特尔与AMD分别在它们的x86架构上实现和硬件支持虚拟化

四、裸金属架构的区别

如上所述,即使是裸金属架构的虚拟化,它也有一个VMM的层,一般又叫做Hypervisor,并且一般运行在Ring1层。主要代表有VMware ESX Server和微软的Hyper-V。但他们两家也还有一些不同之处。如下图三所示。

(图三、胖廋虚拟化比较

VMware ESX Server由于把底层物理硬件的驱动程序整合到Hypervisor管理层中,所以管理层显得比较胖,我们不妨称其为胖虚拟化。这种架构对底层物理硬件的要求比较高,稳定性和安全性的挑战比较高。

虚拟化系列介绍(一)

微软的Hyper-V,Hypervisor管理层仅用于管理CPU和内存,而不包含底层物理硬件的驱动程序,所以管理层显得比较瘦,我们不妨称其为瘦虚拟化。由于不包含硬件驱动,所以代码量比较小,安全性更高、稳定性也更好,下图是网上的参考资源。

华为云计算 华为云

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【Android 组件化】路由组件 ( 生成 Root 类记录模块中的路由表 )
下一篇:华为云专家心得:20个开发技巧教你开发高性能计算代码
相关文章