一文读懂什么是虚拟化技术

虚拟化是云计算的关键技术,云计算的应用必定要应用虚拟化技术。云计算是IT的最大特点就是动态,所有的信息和数据都是建立在动态的架构上,无限扩展用户的需求来调节资源负载。没有虚拟化动态技术就没有云。将云计算基础架构中的硬件变成一种动态的服务,要达到这个目的,关键在于产品的虚拟化能力,虚拟化是实现动态的基础,只有在虚拟化的环境中云才能实现动态的。

什么叫虚拟化?

虚拟化是一个广义的术语,在计算机方面主要指计算的元件是在虚拟的架构上运行而不是在物理机上运行。虚拟化技术的作用:可以扩展硬件的容量,简化软件的配置过程,可以实现在单个的CPU上模拟多个CPU,单个硬盘可以模拟多个硬盘,单个网卡可以模拟多个网卡,并且允许一个平台同时运行多个操作系统,应用程序可以在相互独立的空间内运行并且相互之间不会有影响,从而有效地利用计算机的闲置资源并提高了工作的效率。

目前虚拟化是一种经过验证的软件技术,它现在以非常快的速度改变着IT的面貌、改变着传统的IT模式。它不是最近几年出现的,在20世纪90年代,x86处理器采用系统分区,就出现了虚拟化技术,这种虚拟化技术最先用在苹果Macinatosh操作系统中。

实际上,从20世纪以来,人们一直很关注系统的兼容、整合、集成能力,但是由于计算机、操作系统、通信协议及接口的不一致,结果不是很好,虚拟化技术在很大程度上提供了帮助或解决了这一问题。如今,虚拟化技术已经有了很大的发展,用户越来越多,个人用户、企业用户、地方政府数据中心等都在采用虚拟化技术。

为什么越来越多的人选择使用虚拟化技术呢?从目前IT发展面临的一些挑战来看,主要的挑战集中在资源的闲置、IT运营维护成本的增长、大数据的爆发、产品的供应链跟不上等方面。根据统计分析的结果,目前IT的闲置资源高达85%;IT的运维和管理成本在逐年上升,其中1元钱中就包含了0.7元的运维和管理成本;大数据给目前的IT环境带来了挑战,特别是在电子商务这一领域,信息呈爆炸式的增长,每年增长速度高达54%;产品供应链的效率低直接导致3.5%的营业额损失,接近400亿美元。这些都是需要迫切解决的问题。

采用虚拟化技术可以缓解IT面临的这些难题。虚拟化技术的优势表现在以下方面。

  1. 更高的资源利用率。虚拟化技术实现物理资源和资源池的动态共享,有利于提高资源的利用率,用户可以动态地选择需求来满足资源的不同负载。
  2. 降低管理成本。利用虚拟化技术,可以采用中央管理来简化公共管理任务,实现负载均衡的自动化管理,还可以支持在多个平台上使用公共工具,从而降低管理成本。
  3. 提高使用的灵活性。虚拟化技术可以实现动态的资源部署和重配置,可以满足用户不断变化的业务需求。
  4. 高可用性。在不影响用户的情况下对物理资源进行删除、升级、更改。
  5. 高扩展性。虚拟化技术采用动态方式部署,可以根据不同产品对资源的需求支持比物理资源小或大得多的虚拟资源。
  6. 灵活的互操作性。虚拟化技术能提供各种接口和协议的兼容性,这点远胜于物理资源。
  7. 高安全性。虚拟化技术可以实现简单的共享机制,这便于实现对数据和服务的控制和安全访问。
  8. 高效率。虚拟资源崩溃,因不存硬件方面的问题,能在很短的时间内恢复。

虚拟化技术与其他技术的区别

虚拟化技术不是多任务也不是多线程的。多任务表示在一个操作系统中有多个程序并行运行,虚拟化技术是在同一台物理机中可以运行多个操作系统,每个操作系统中有多个程序运行,对于在物理机运行的多个操作系统,每个操作系统都可以运行在一个虚拟的CPU上或虚拟主机上。多线程技术表示在单个CPU上模拟双CPU来平衡各个程序的运行性能,模拟出的两个CPU不是独立的,它们是不能分离的,只是协同工作。而虚拟化技术则是从物理硬件上抽象出来,将物理硬件与操作系统分开,可以模拟多个CPU、多个硬盘、多个显卡等,从而提高了IT资源的利用率,减少了资源的闲置率,资源、管理、利用率、灵活度等方面都得到了较大的提高。

虚拟化技术的发展

虚拟化技术是在20世纪60年代首次出现的,在20世纪80年代,虚拟机技术已不再广泛使用。到了20世纪90年代,研究人员采用虚拟化技术来解决不同型号的物理设备的兼容问题、利用率不足问题、管理成本逐渐增加问题。现在虚拟化技术处于技术的前沿,可以帮助企业升级和管理,从而保障了企业在世界各地IT基础架构的使用。

虚拟化的分类

虚拟化技术有很多,有内存的虚拟化、桌面虚拟化、cpu虚拟化、硬盘虚拟化、网络虚拟化等。目前虚拟化技术在X86平台使用得特别多。这里讲的虚拟化主要指的是系统虚拟化。

系统虚拟化的目的:通过使用虚拟化管理器(Virtual Machine Monitor,VMM)在一台物理机上虚拟和运行一台或多台虚拟机(Virtual Machine,VM)。VMM主要有如下两种形式。

  1. Hypervisor VM:它直接运行在硬件(Bare Metal),提供接近于物理机的性能,并在I/O上做了很多优化,主要用于服务器类的应用。
  2. Hosted(托管)VM:它运行在物理机的操作系统上,虽然其本身性能不如Hypervisor(因为它和硬件之间隔了一层OS),但是其安装和使用非常方便,而且功能丰富,如支持三维加速等特性,常用于桌面应用。

系统虚拟化的分类 

由于采用的技术不同,可以将系统虚拟化分为如上五大类。

  1. 硬件仿真(Emulation):属于Hosted模式,在物理机的操作系统上创建一个模拟硬件的程序(Hardware VM)来仿真所要的硬件,并在此程序上运行虚拟机,而且虚拟机内部的客户操作系统(Guest OS)无须修改。
  2. 全虚拟化(Full Virtulization):在客户操作系统和硬件之间捕捉和处理那些对虚拟化敏感的特权指令,使客户操作系统无须修改就能运行,速度会根据不同的实现而不同,但大致能满足用户的需求。这种方式是业界最成熟和最常见的,而且属于 Hosted 模式和 Hypervisor 模式的都有,知名的产品有IBM CP/CMS、VirtualBox、KVM、VMware Workstation和VMware ESX(在其4.0版被改名为VMware vSphere)。
  3. 半虚拟化(Parairtulization):与完全虚拟化有一些类似,也利用Hypervisor来实现对底层硬件的共享访问,但是由于在Hypervisor 上面运行的Guest OS已经集成了与半虚拟化有关的代码,使得Guest OS能够非常好地配合Hyperivosr实现虚拟化。通过这种方法,将无须重新编译或捕获特权指令,使其性能非常接近物理机,最经典的产品就是Xen,而且因为微软的Hyper-V所采用的技术和Xen类似,所以也可以把Hyper-V归属于半虚拟化。
  4. 硬件辅助虚拟化(Hardware Assisted Virtualization):Intel/AMD等硬件厂商通过对部分全虚拟化和半虚拟化使用到的软件技术进行硬件化来提高性能。硬件辅助虚拟化技术常用于优化全虚拟化和半虚拟化产品,而不是独创一派,最出名的例子是VMware Workstation,它虽然属于全虚拟化,但是在它的6.0版本引入了硬件辅助虚拟化技术,如Intel的VT-x和AMD的AMD-V。现在市面上的主流全虚拟化和半虚拟化产品都支持硬件辅助虚拟化,包括VirtualBox、KVM、VMware ESX和Xen。
  5. 操作系统级虚拟化(Operating System Level Virtualization):通过对服务器操作系统进行简单的隔离来实现虚拟化,主要用于VPS。主要的技术有Parallels Virtuozzo Containers、Unix-like系统上的chroot和Solaris上的Zone等。

虚拟化的基础是虚拟机

虚拟机是一种严密隔离的软件容器,它可以运行自己的操作系统和应用程序,就像一台物理计算机一样。虚拟机的运行完全类似于一台物理计算机,它包含自己的虚拟(即基于软件实现的)CPU、RAM 硬盘和网络接口卡(NIC)。

操作系统无法分辨虚拟机与物理计算机之间的差异,应用程序和网络中的其他计算机也无法分辨。即使是虚拟机本身也认为自己是一台“真正的”计算机。不过,虚拟机完全由软件组成,不含任何硬件组件。因此,虚拟机具备物理硬件所没有的很多独特优势。

虚拟化的优点

虚拟化所带来的好处是多方面的,主要包括了以下几点:

  • 效率:将原本一台服务器的资源分配给数台虚拟化的服务器,有效地利用了闲置资源,确保企业应用程序发挥出最高的可用性和性能。
  • 隔离:虽然虚拟机可以共享一台计算机的物理资源,但它们彼此之间仍然是完全隔离的,就像它们是不同的物理计算机一样。因此,在可用性和安全性方面,虚拟环境中运行的应用程序之所以远优于在传统的非虚拟化系统中运行的应用程序,隔离就是一个重要的原因。
  • 可靠:虚拟服务器是独立于硬件工作的,通过改进灾难恢复解决方案提高了业务连续性,当一台服务器出现故障时可在最短时间内恢复且不影响整个集群的运作,实现整个数据中心的高可用性。
  • 成本:降低了部署成本,只需要更少的服务器就可以实现需要更多服务器才能做到的事情,也间接降低了安全等其他方面的成本。
  • 兼容:所有的虚拟服务器都与正常的x86系统兼容,改进了桌面管理的方式,可部署多套不同的系统,将因兼容性造成问题的可能性降至最低。
  • 便于管理:提高了服务器/管理员比例,一个管理员可以轻松地管理比以前更多的服务器而不会造成更大的负担。

发表评论