虚拟化

转载 2017年11月09日 11:12:19


什么是虚拟化?

虚拟化是一个广义的术语,是指计算元件在虚拟的基础上而不是真实的基础上运行,是一个为了简化管理,优化资源的解决方案。如同空旷、通透的写字楼,整个楼层几乎看不到墙壁,用户可以用同样的成本构建出更加自主适用的办公空间,进而节省成本,发挥空间最大利用率。这种把有限的固定的资源根据不同需求进行重新规划以达到最大利用率的思路,在IT领域就叫做虚拟化技术。

虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。

虚拟化技术与多任务以及超线程技术是完全不同的。多任务是指在一个操作系统中多个程序同时并行运行,而在虚拟化技术中,则可以同时运行多个操作系统,而且每一个操作系统中都有多个程序运行,每一个操作系统都运行在一个虚拟的CPU或者是虚拟主机上;而超线程技术只是单CPU模拟双CPU来平衡程序运行性能,这两个模拟出来的CPU是不能分离的,只能协同工作。

虚拟化技术也与VMware Workstation等同样能达到虚拟效果的软件不同,是一个巨大的技术进步,具体表现在减少软件虚拟机相关开销和支持更广泛的操作系统方面。

虚拟化技术有很多定义,下面就给出了一些这样的定义。

“虚拟化是以某种用户和应用程序都可以很容易从中获益的方式来表示计算机资源的过程,而不是根据这些资源的实现、地理位置或物理包装的专有方式来表示它们。换句话说,它为数据、计算能力、存储资源以及其他资源提供了一个逻辑视图,而不是物理视图。” —— Jonathan Eunice, Illuminata Inc。

“虚拟化是表示计算机资源的逻辑组(或子集)的过程,这样就可以用从原始配置中获益的方式访问它们。这种资源的新虚拟视图并不受实现、地理位置或底层资源的物理配置的限制。” —— Wikipedia

“虚拟化:对一组类似资源提供一个通用的抽象接口集,从而隐藏属性和操作之间的差异,并允许通过一种通用的方式来查看并维护资源。” —— Open Grid Services Architecture Glossary of Terms。

虚拟化的目的是什么

虚拟化的主要目的是对 IT 基础设施进行简化。它可以简化对资源以及对资源管理的访问。

消费者可以是一名最终用户、应用程序、访问资源或与资源进行交互的服务。资源是一个提供一定功能的实现,它可以基于标准的接口接受输入和提供输出。资源可以是硬件,例如服务器、磁盘、网络、仪器;也可以是软件,例如 Web 服务。

消费者通过受虚拟资源支持的标准接口对资源进行访问。使用标准接口,可以在 IT 基础设施发生变化时将对消费者的破坏降到最低。例如,最终用户可以重用这些技巧,因为他们与虚拟资源进行交互的方式并没有发生变化,即使底层物理资源或实现已经发生了变化,他们也不会受到影响。另外,应用程序也不需要进行升级或应用补丁,因为标准接口并没有发生变化。

IT 基础设施的总体管理也可以得到简化,因为虚拟化降低了消费者与资源之间的耦合程度。因此,消费者并不依赖于资源的特定实现。利用这种松耦合关系,管理员可以在保证管理工作对消费者产生最少影响的基础上实现对 IT 基础设施的管理。管理操作可以手工完成,也可以半自动地完成,或者通过服务级协定(SLA)驱动来自动完成。

在这个基础上,网格计算可以广泛地利用虚拟化技术。网格计算可以对 IT 基础设施进行虚拟化。它处理 IT基础设施的共享和管理,动态提供符合用户和应用程序需求的资源,同时还将提供对基础设施的简化访问。

虚拟化的解决方案

纯软件虚拟化解决方案存在很多限制。“客户”操作系统很多情况下是通过虚拟虚拟化机监视器(VirtualMachineMonitor,VMM)来与硬件进行通信,由VMM来决定其对系统上所有虚拟机的访问。(注意,大多数处理器和内存访问独立于VMM,只在发生特定事件时才会涉及VMM,如页面错误。)在纯软件虚拟化解决方案中,VMM在软件套件中的位置是传统意义上操作系统所处的位置,而操作系统的位置是传统意义上应用程序所处的位置。这一额外的通信层需要进行二进制转换,以通过提供到物理资源(如处理器、内存、存储、显卡和网卡等)的接口,模拟硬件环境。这种转换必然会增加系统的复杂性。此外,客户操作系统的支持受到虚拟机环境的能力限制,这会阻碍特定技术的部署,如64位客户操作系统。在纯软件解决方案中,软件堆栈增加的复杂性意味着,这些环境难于管理,因而会加大确保系统可靠性和安全性的困难。

硬件方案

而CPU的虚拟化技术是一种硬件方案,支持虚拟技术的CPU带有特别优化过的指令集来控制虚拟过程,通过这些指令集,VMM会很容易提高性能,相比软件的虚拟实现方式会很大程虚拟化度上提高性能。

虚拟化技术可提供基于芯片的功能,借助兼容VMM软件能够改进纯软件解决方案。由于虚拟化硬件可提供全新的架构,支持操作系统直接在上面运行,从而无需进行二进制转换,减少了相关的性能开销,极大简化了VMM设计,进而使VMM能够按通用标准进行编写,性能更加强大。另外,在纯软件VMM中,缺少对64位客户操作系统的支持,而随着64位处理器的不断普及,这一严重缺点也日益突出。而CPU的虚拟化技术除支持广泛的传统操作系统之外,还支持64位客户操作系统。虚拟化技术是一套解决方案。完整的情况需要CPU、主板芯片组、BIOS和软件的支持,例如VMM软件或者某些操作系统本身。即使只是CPU支持虚拟化技术,在配合VMM的软件情况下,也会比完全不支持虚拟化技术的系统有更好的性能。两大CPU巨头Intel和AMD都想方设法在虚拟化领域中占得先机,但是AMD的虚拟化技术在时间上要比Intel落后几个月。

Intel自2005年末开始便在其处理器产品线中推广应用IntelVirtualizationTechnology(IntelVT)虚拟化技术。Intel已经发布了具有IntelVT虚拟化技术的一系列处理器产品,包括桌面平台的Pentium46X2系列、PentiumD9X0系列和PentiumEE9XX系列,还有CoreDuo系列和CoreSolo系列中的部分产品,以及服务器/工作站平台上的XeonLV系列、Xeon5000系列、Xeon5100系列、XeonMP7000系列以及Itanium29000系列;同时绝大多数的Intel下一代主流处理器,包括Merom虚拟化

核心移动处理器,Conroe核心桌面处理器,Woodcrest核心服务器处理器,以及基于Montecito核心的Itanium2高端服务器处理器都将支持IntelVT虚拟化技术。而AMD方面也已经发布了支持AMDVirtualizationTechnology(AMDVT)虚拟化技术的一系列处理器产品,包括SocketS1接口的Turion64X2系列以及SocketAM2接口的Athlon64X2系列和Athlon64FX系列等等,并且绝大多数的AMD下一代主流处理器,包括即将发布的SocketF接口的Opteron都将支持AMDVT虚拟化技术。




转自百度经验

2003,JavaOne会办成什么样子?

2003,JavaOne会办成什么样子?“JavaOne大会本来应该是一次Java的盛会,但它现在变得越来越像Sun的用户组活动。”IBM WebSphere应用服务器市场主管Scott Hebner...
  • gigix
  • gigix
  • 2003-05-04 00:15:00
  • 1800

全虚拟化与半虚拟化的实现方式

目录目录 全虚拟化 软件辅助的全虚拟化 硬件辅助的全虚拟化 KVM虚拟机 半虚拟化全虚拟化不需要对GuestOS操作系统软件的源代码做任何的修改,就可以运行在这样的VMM中在全虚拟化的虚拟平台中,Gu...
  • Jmilk
  • Jmilk
  • 2016-07-05 01:47:02
  • 8161

App虚拟化技术初探

Plugin Technology BackgroundApp插件开发技术或App虚拟化技术以及App热修复技术,最近几年非常火热和流行,图中列举了两种主要的需求,第一种需求是很多时候我们想在Andr...
  • daide2012
  • daide2012
  • 2017-06-24 10:40:54
  • 898

虚拟化分类

简介         虚拟化简单的说就是我们平常所接触的在一个OS上运行另一个OS,这句话说的的确不假,但是这只是虚拟化的一个实例而已,而在虚拟化的定义上,有狭义和广义之分,因为虚拟化是对资源的逻辑...
  • swimming_in_IT_
  • swimming_in_IT_
  • 2016-11-10 15:23:08
  • 1413

全虚拟化与半虚拟化的区别(xen)

ring0是指CPU的运行级别,ring0是最高级别,ring1次之,ring2更次之……  拿Linux+x86来说,  操作系统(内核)的代码运行在最高运行级别ring0上,可以使用特权指令,...
  • beep_
  • beep_
  • 2016-06-02 16:28:58
  • 2281

企业虚拟化的目的及本质

什么是虚拟化?定义计算机的服务层级 计算机的服务层级一般是由下图所示构成,从最底层的硬件开始,向上有操作系统,软件运行的框架(或称为Framework),应用程序,应用程序提供的服务以及最上层的用户...
  • yongchaocsdn
  • yongchaocsdn
  • 2016-12-02 23:08:33
  • 1635

虚拟化原理浅析

一、引言 在生产环境中大多需要服务器来提供服务,但每一个服务可能需要的系统资源很少,独占一台服务器会浪费资源增大耗费,但是想象一下如果一台服务器上同时提供20个服务又会很混乱,因此期望提供服务的OS...
  • Celeste7777
  • Celeste7777
  • 2015-11-05 07:34:02
  • 2737

虚拟化安全怎么做?靠安全设备虚拟化还是换个思路?

业务系统在完成从实体机架构向虚拟化架构迁移后,安全问题就开始浮出水面:在实体机时代,我们有防火墙、WAF、IDS、IPS、堡垒机等一系列硬件设置可以堆叠,而在虚拟化架构中,这些硬件产品已经无法接入,于...
  • Jowto
  • Jowto
  • 2016-12-27 17:37:09
  • 553

Docker容器 vs 全虚拟化

希云为大家详细介绍Docker容器和全虚拟化之间的区别!
  • sisiy2015
  • sisiy2015
  • 2015-11-27 09:49:08
  • 1362

Docker:容器与虚拟化的理解

今天在微信公众号看到了一篇很好的文章【炸裂的云计算-01】虚拟化原理和分类。其中虚拟化的理解很有价值。再次算是记录一下读后感,或者说二次整理。容器和虚拟机每一个学习容器技术,比如Docker的人大概在...
  • picway
  • picway
  • 2017-08-02 00:35:44
  • 573
收藏助手
不良信息举报
您举报文章:虚拟化
举报原因:
原因补充:

(最多只允许输入30个字)