企业虚拟化的目的及本质

什么是虚拟化?

定义计算机的服务层级

这里写图片描述
计算机的服务层级一般是由下图所示构成,从最底层的硬件开始,向上有操作系统,软件运行的框架(或称为Framework),应用程序,应用程序提供的服务以及最上层的用户等。任何信息系统大都遵循此架构,也是计算机系统几十年来一直不变的架构.

1.硬件部分

硬件厂家虽然可以用各式各样的新科技来制作先进的产品,但还是得考虑到产品的通用性。以CPU为例,虽然各种CPU厂家都以高速低耗电为主要设计原则,但以信息业来说,还是有几个必须遵守的架构,如Intel架构,PowerPC架构等。
这里写图片描述

2.操作系统部分

举例来说,如果你买了一片新的显示器想要玩三维游戏,必须先安装驱动程序才能发挥硬件的功能及效能。这时操作系统的用处,就是提供游戏和硬件之间沟通的管道(驱动程序),因此没有操作系统的话,硬件和用户之间是被隔离的。

3.框架部分

大家都有使用IE的经验,如果你使用IE时,只将”C:\Program Files\Internet Explore\iexplore.exe”克隆出来,在拿到另一台电脑使用,这个IE是无法运行的。原因是这个IE在运行时,虽然有运行文件了,但还需要底层的框架提供各种功能。这些框架就是所谓的底层架构(Framework)。这么做的好处是让程序开发人员有一个共通的平台,并且也能确保开发出来的软件能在任何安装Framework的计算机上运行。Java Runtime,Microsoft Framewrok就是常见的例子。

4.软件部分

软件就是我们看到的单独的应用程序,如MSN,Word等。当我们要使用软件时,只要运行该软件的运行文件就可以。计算机中软件的单位都是运行文件,再大的软件都有一个代表性的运行文件。而网页上的软件,则由index.html这一类的首页来给定,或是由Web Server来给定软件的入口点。

5.服务部分

软件呈现出来的功能称为服务。一般来说,一个现代的软件服务包括了物理数据(放在数据库系统中),业务逻辑以及界面(Interface).用户通过界面,以业务逻辑为工具来操作物理数据,就是一个基本的服务模式。

虚拟化可以打破层级依赖的现状

事实上,这些不同的层级之间与当前的架构是紧紧依赖的。没有软件的话,服务就无法提供给用户;没有Framework,软件就无法运行;没有操作系统的话,就无法安装各式各样的软件和Framework;没有硬件当然就什么都没有了。为了避免层次之间的紧密依赖性,在1960年,就引入了虚拟化的概念,做法很简单,就是将上一层对下一层的依赖撤销:换句话说,就是将本层的依赖从底层抽离出来,因此我们定义”虚拟化”的正规说法,可以为”虚拟化,就是不断抽离依赖的过程”.

理解:“虚拟”从字面上看就是”假”的,意味着”本来没有这个东西,但要假装让你觉得有,以达到我们使用的目的”,事实上,这个较白话的解释,就是当前虚拟化的真正实践原则。

服务虚拟化的例子

通常在申请网站时,需要一个域名和对应的IP,但IP不够,因此我们可以利用Web Server中的配置,让多个域名指向一个IP。按照前面的解释,就是”让域名能脱离对IP的依赖”,而另一个解释更清楚,就是”原来没有这么多IP来一对一指向域名,我们就假装有这么多IP对到不同的域名”,因此一个IP可以对应多个域名,节省IP的目的就达成了。

软件虚拟化的例子

最常见的就是可携式软件(或绿色软件,Portable Software)了。有些软件放在USB随身盘中,带到哪里都可以运行,这种软件和下层Framework的依赖被打破,不需要Framework也可以运行。

Framework虚拟化的例子

让Framework不再受制于操作系统,让这个Framework支持的应用软件都能运行在各式各样的操作系统上。当前做得最好的应该就是Java Runtime.虽然在不同的操作系统上都要安装不同的版本的Java,但不同的操作系统都能运行Java的Runtime算是一个较贴近的例子。

操作系统虚拟化的例子

VMware vSphere就是最好的例子,vSphere提供一个”硬件界面”,让一台服务器上能并发运行多个操作系统,让操作系统都以为”自身在一台物理机器上”。

硬件还能虚拟化?”

最好的例子就是存储设备的虚拟化。我们可以将多个硬件组合成一个大存储池,并且依照我们的需要将这个存储池在分割。
这里写图片描述

平台虚拟化的历史

虚拟化小史

1.1960年:IBM的CP-40

在1960年,IBM的CP-40就完全展现了”完全虚拟化”的实力。在其上运行了14个IBM S/360的虚拟机,每一个虚拟机上拥有256KB的内存,并且可以对映到不同的磁盘分割区上,更可以使用共享的资源,如打印机,可以并发开发CP和CMS系统,并且也提供了安全上的功能。

2.1966年:IBM的 S360/Model 67

这是一台32比特内存寻址的机器,可以插上多个CPU,并且支持了完整的虚拟化功能。换句话说,在S360/M67上可以运行多个当时的应用操作系统,并且IBM也提供了一个转换层。当时可以运行虚拟化的S 360/M67称为CP-67,而这台CP-67对后来的任何虚拟化产品都算是启蒙的始祖。

近代的X86虚拟化产品发展

1.1998年:VMware的产品

在2000年以前,X86架构上并没有什么虚拟化的产品,而虚拟化在当时一绝非主流的趋势。但早在1998年,毕业于MIT的Diane Greene女士已早已察觉计算机资源的过底使用率,因此和Dr.Mendel Rosenblum,Scott Devine,Dr.Edward Wang以及Edouard Bugnion等人成立了VMware公司,专精于OS in OS的软件,期待能发挥硬件的完全效能,并且也为当时的专业IT人员提供了一个测试,评估的低成本环境。在1999年,VMware推出了X86上的第一款虚拟化商用软件VMware Wrokstation.这款Workstation可以让当时的Windows2000上运行多个Windows系统,Workstation版本的VWware,也让这个名字在信息业打响名号,为现在的VMware打下了良好的基础。

2.2000年之后:百家争鸣

眼看着VMware做大,各大厂商也开始重视虚拟化的市场。首先还是一些小型的软件厂家开始发难,如Windows系统下的Virtual PC,Parallels的Workstation以及VirtualBox等。这些小型厂家最后都变成了大公司的试金石,相继被微软,Sun或是IBM并购。时至今日,虚拟机已经成为各大软件公司的兵家必争之地,甚至连硬件厂家在推出产品时都要全力支持虚拟化的命令。

虚拟化的种类及简介

简单来说,平台虚拟化就是”OSes in an OS”,让一台物理计算机能并发运行多个OS。在平台虚拟化中,最重要的功能,就是让其上运行的多个OS觉得自身好像拥有独立的机器,而不是和别的OS分享。

提供这个功能的机制,通常被称为虚拟机管理员(Virtual Machine Monitor,VMM),更常用的名称为Hypervisor是虚拟机厂家的最高机密,也是不同虚拟机产品的差别,我们就从Hypervisor的观点来看不同种类的虚拟化.

原生及寄居架构

以是否存在宿主操作系统来看,虚拟机的Hypervisor主要分为原生及寄居两种架构。所谓原生架构,就是Hypervisor本身不需要依赖任何操作系统,或是说Hypervisor本身就是一个操作系统,只是这个操作系统的目的是专门服务于虚拟化。而寄居架构,则是Hypervisor被看成一个应用软件或是服务,运行在已经安装好的操作系统上才能运行。

1.寄居架构

这一类产品最大的特色就是必须在一个已经安装好的操作系统上进行,称为寄居架构(Hosted),这么做的好处就是硬件的兼容性。只要寄居的操作系统能使用的硬件,虚拟机中的操作系统都能使用到。然而这种运行在桌面操作系统上的Hypervisor,被视为寄居操作系统上的一个应用软件,虽然在安装时会将不少Hypervisor的部件放入内核,但在寄居的操作系统出现任何问题时,VM中的操作系统将无法使用,无法满足重视安全及稳定的企业应用上。

举例来说,最有名的虚拟产品VMware Workstation或是微软的Vitual PC/Server,都必须安装在一个操作系统之上,如Windows 7或是Windows Server 2003。如果这个操作系统蓝屏了,其上运作的VM客户端当然就全部一起蓝屏。这就是寄居架构

寄居架构的主流产品

  • VMware Workstation(有Windows及Linux版本)
  • VMware Server(有Windows及Linux版本,免费)
  • VMware Player(有Windows及Linux版本,免费)
  • 微软Virtual PC 2007
  • 微软Virtual Server PC(只能在Windows7上运行,免费)
  • Parallels Workstation
  • SUN Virtual Box(已被Oracle收购)

原生架构

相对于寄居架构的就是原生架构,原生架构上,Hypervisor直接安装在硬件上,将所有的硬件资源接管。由于Hypervisor层级小(可小到32MB footprint),并且不管理太复杂的事项,仅负责和上层的VM操作系统沟通及资源协调,蓝屏的概率更小。在其上的任何一个操作系统蓝屏了,都不会影响其他的客户端,因此较适合于企业应用。

当然原生架构的虚拟机为了保持其稳定性及微内核,自然不可能将所有桌面产品的驱动程序都放入,因此最大的问题就是硬件兼容性。大部分的原生架构产品都支持主流服务器及存储设备,如NAS,iSCSI或FC SAN,并且强调这些设备都经过了官方测试,为的就是确保在企业环境中的稳定性。一般PC所使用的硬件,大部分无法在原生架构的虚拟机下运行。

原生架构的主流产品

  • VMware vSphere
  • 微软Hyper-V 2008 R2(免费)
  • 微软Windows 2008 R2 Hyper-V Role
  • Citrix XenServer/XenDesktop
  • Xen(Linux,开源)
  • Qemm(Linux,开源)

以虚拟化的程度区分

1.完全虚拟化

当前大部分的主流虚拟机产品均属于此类,只要是客户端操作系统在这种虚拟产品上运行时,不需要做任何修改。如VMware Workstation,vSphere,微软的Hypervisor等。

2.硬件辅助虚拟化

或称硬件虚拟化(HVM),主要是操作系统在其上运行时,必须靠系统的硬件来落实虚拟化的过程。在Intel的VT和AMD的AMD-V推出之后,主流虚拟机厂家也在现有产品的基础上,推出新版本来融入此功能。当前所谓的硬件辅助,通常都是指虚拟化中的特有功能,如Intel的VT-d功能,在不支持的服务器上,虽然能安装vSphere,但却无法使用特定的功能。

3.部分虚拟化

此类虚拟机产品在运行时,系统只能提供部分的虚拟化,无法正常安装完整的操作系统,在早期化产品的版本中还常见到,但当前在X86平台下,已经很少有这样的产品了.

4.半虚拟化

或称”半虚拟化”或”泛虚拟化”。操作系统运行此类产品时,必须修改内核才能顺利安装,早期的Xen就属于此类,现在也较少有类似的产品。

5.操作系统虚拟化

这一类的虚拟机产品只能类比出主机的系统,如Linux上只能运行Linux,Windows上只能运行Windows,最有名的就是Virtuozzo,是当前大部分国外数据中心厂家在提供的Virtual Machine Host的主流技术.

6.寄居环境

最常见的就是Linux下的User Mode,可以在一个Linux下,以应用软件的方式来运行其他的Linux。注意这和Hosed寄居架构的完全虚拟化是不同的。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值