虚拟化

转载 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虚拟化技术。




转自百度经验

半虚拟化和全虚拟化的区别

全虚拟化(Full virtualization), 也称为原始虚拟化技术, 是另一种虚拟化方法. 该模型使用虚拟机协调客户操作系统和原始硬件(见图2). 这里"协调"是一个关键词, 因为VMM在...
  • qiqijianglu
  • qiqijianglu
  • 2013年11月07日 15:07
  • 18892

App虚拟化技术初探

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

理解全虚拟、半虚拟以及硬件辅助的虚拟化

接触过的一些搞了几年云计算的童鞋,也没明白常见的几种虚拟机技术方案的异同,比如只是记住了半虚拟要在虚拟机装驱动而全虚拟不需要,也不知道有时候为什么需要打开BIOS里的VT项。本人呢,在看了各种讲解虚拟...
  • flyforfreedom2008
  • flyforfreedom2008
  • 2015年04月18日 15:23
  • 8607

虚拟化与容器化关系

以 Docker 为代表的容器技术一度被认为是虚拟化技术的替代品,然而这两种技术之间并不是不可调和的。作者分别列举了容器技术以及虚拟化技术的优缺点,并提出将两者结合取长补短的解决方案。 容器为应...
  • permike
  • permike
  • 2016年08月31日 18:15
  • 1251

企业部署虚拟化的七大好处

编者按:目前虚拟化技术已经突破虚拟内存和虚拟服务器两大空间,延伸到网络虚拟化、微处理器虚拟化、文件虚拟化和存储虚拟化等许多领域。越来越多的企业也已经在内部采用虚拟化技术,那么企业实现虚拟化环境都有哪些...
  • SDNLAB
  • SDNLAB
  • 2015年01月05日 11:17
  • 1433

Linux中的虚拟化

在信息大爆炸的今天,大数据、云计算孕育而生,随着计算机硬件的高速发展,单台计算机用途的单一化(在大规模的服务器机房中很多机器职责单一,有些只负责计算,有些只负责存储处理等),硬件的性能潜力不能被高效开...
  • cywosp
  • cywosp
  • 2014年01月03日 14:49
  • 5483

网络虚拟化技术(一): Linux网络虚拟化

笔者现在在做云计算的网络设计,涉及到上百台服务器与交换机,在实测前必须进行原型测试,但是我只有一个工作用开发机,本文介绍一种方法,使用这一台机器模拟数十台服务器以及路由器的网络环境。Linux的网络虚...
  • halcyonbaby
  • halcyonbaby
  • 2014年11月22日 00:31
  • 3525

虚拟化的层次与机制

最近几年随着并行计算、集群等技术的火热,虚拟机领域焕发了第二春。虚拟化就是指多台虚拟机共享一台物理机硬件的计算机体系结构技术。虚拟化的基本思想是分割软硬件以产生更好的系统性能(实际上,软硬件资源并没有...
  • mayp1
  • mayp1
  • 2016年05月02日 15:51
  • 7805

虚拟化的发展历程和实现方式

目录目录 前言 虚拟化 虚拟机Virtual Machine 虚拟化的分类x86 CPU架构与虚拟化的关系 全虚拟化 Full virtualization 半虚拟化 Paravirtualizati...
  • Jmilk
  • Jmilk
  • 2016年03月31日 23:17
  • 4381

【云计算虚拟化】虚拟化学习认识总结

虚拟化的目的:是为了提高资源的利用率,提高管理的便携性,是云计算的底层基础。虚拟化的实现:是将底层的物理硬件都抽象成各种逻辑资源,也就是资源池化(虚拟化),然后再在这些逻辑资源之上,建立虚拟机操作系统...
  • chenriwei2
  • chenriwei2
  • 2015年10月17日 23:47
  • 1994
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:虚拟化
举报原因:
原因补充:

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