威尼斯城娱乐官方平台-平台点击

虚拟化技术概述

发布时间:2020-07-23 浏览次数:1723来源:百度文库

一、引言

先举个例子,一台物理主机有16G内存,用户A的程序只需要2G内存,用户B的程序只需要4G内存,如果没有用虚拟化技术,他们的解决方案如下:两用户程序放到同一台物理机器上,各自配置运行环境。资源都能满足了。问题是,程序的运行环境一个是Linux,一个是windows呢?如何防止用户A的程序不会窃取用户B数据呢?再买一台2G的物理主机,这样就解决了上面两个问题,呵呵。问题是,好浪费啊!如果再有个需要1G内存的用户来了,就买个1G的物理主机?如果老板有的是钱,没问题。有个更加省钱的方法:采用虚拟化的技术,在那台物理主机上生成两个操作系统出来,一个4G内存,一个2G内存,操作系统的类型任选,虚拟化能够提供资源隔离的功能。这样就完美解决了上述的问题。对普通人来讲,可能VMware虚拟计算机是最了解的吧。

二、虚拟化是什么?

虚拟化是云计算技术的基础。百度百科上说:是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。虚拟化使用App的方法重新定义划分IT资源,可以实现IT资源的动态分配、灵活调度、跨域共享,提高IT资源利用率,使IT资源能够真正成为社会基础设施,服务于各行各业中灵活多变的应用需求。

维基百科上说:In computing, virtualization refers to the act of creating a virtual (rather than actual) version of something, including virtual computer hardware platforms, operating systems, storage devices, and computer network resources.

因为虚拟化本质不是对硬件的改变,而是用App的方法抽象,虚拟出的IT资源与底层硬件相隔离,所以虚拟化技术能够实现IT资源的自动化分配、调度、共享、迁移、监控。这种特性对于大型网站运维来说非常有用,谁不想啥事都是自动化的?人总是比较容易马虎出错。另外,有些业务是IO密集型,有些业务是计算密集型,需求各有不同,虚拟化可以让IT资源按需分配。虚拟IT资源与硬件无关,所以当需要更多的资源的时候,只需要增加一些物理计算机即可,小型机与普通机器可以混合使用。服务器虚拟化主要有以下四方面的功能: 效率:将原本一台服务器的资源分配给了数台虚拟化的服务器,有效的利用了闲置资源,确保企业应用程序发挥出最高的可用性和性能。隔离:虽然虚拟机可以共享一台计算机的物理资源,但它们彼此之间仍然是完全隔离的,就像它们是不同的物理计算机一样。因此,在可用性和安全性方面,虚拟环境中运行的应用程序之所以远优于在传统的非虚拟化系统中运行的应用程序,隔离就是一个重要的原因。可靠:虚拟服务器是独立于硬件进行工作的,通过改进灾难恢复解决方案提高了业务连续性,当一台服务器出现故障时可在最短时间内恢复且不影响整个集群的运作,在整个数据中心实现高可用性。成本:降低了部署成本,只需要更少的服务器就可以实现需要更多服务器才能做到的事情,也间接降低了安全等其他方面的成本。兼容:所有的虚拟服务器都与正常的x86系统相兼容,他改进了桌面管理的方式,可部署多套不同的系统,将因兼容性造成问题的可能性降至最低。便于管理:提高了服务器/管理员比率,一个管理员可以轻松的管理比以前更多的服务器而不会造成更大的负担。通过实现 IT 基础架构的虚拟化,可以降低 IT 成本,同时提高现有资产的效率、利用率和灵活性。在全世界,各种规模的企业都享受着服务器的虚拟化带来的好处。数千家组织都在采用服务器虚拟化解决方案。

三、全虚拟化(Full Virtulization)

概况:主要是在客户操作系统和硬件之间捕捉和处理那些对虚拟化敏感的特权指令,使客户操作系统无需修改就能运行,速度会根据不同的实现而不同,但大致能满足用户的需求。这种方式是业界现今最成熟和最常见的,而且属于 Hosted 模式和 Hypervisor 模式的都有,知名的产品有VirtualBox、KVM、VMware Workstation和VMware ESX(它在其4.0版,被改名为VMware vSphere)、Xen(也支撑全虚拟化)。优点:Guest OS无需修改,速度和功能都非常不错,使用非常简单。缺点:基于Hosted模式的全虚拟产品性能方面不是特别优异,特别是I/O方面。半虚拟化或者叫准虚拟化(Para-virtualization)

它与完全虚拟化有一些类似,它也利用Hypervisor来实现对底层硬件的共享访问,但是由于在Hypervisor 上面运行的Guest OS已经集成与半虚拟化有关的代码,使得Guest OS能够非常好地配合Hypervisor来实现虚拟化。通过这种方法将无需重新编译或捕获特权指令,其最经典的产品就是Xen,而且因为MicroSoft的Hyper-V所采用技术和Xen类似,所以也可以把Hyper-V归属于半虚拟化。
这种虚拟技术以Xen为代表,其特点是修改操作系统的内核,加入一个Xen Hypervisor层。它允许安装在同一硬件设备上的多个系统可以同时启动,由Xen Hypervisor来进行资源调配。在这种虚拟环境下,依然需要模拟硬件设备,安装Guest操作系统,并且还需要修改操作系统的内核。Xen相对于传统的Virtual MachineMonitor,性能稍有提高,但并不十分显著。为了进一步提高性能,Intel和AMD分别开发了VT和Pacifica虚拟技术,将虚拟指令加入到了 CPU中。使用了CPU支撑的硬件虚拟技术,将不再需要修改操作系统内核,而是由CPU指令集进行相应的转换操作。优点:这种模式和全虚拟化相比,架构更精简,而且在整体速度上有一定的优势。缺点:需要对Guest OS进行修改,所以在用户体验方面比较麻烦。在完全虚拟化模式中,Hypervisor必须模拟设备硬件,它是在会话的最低级别进行模拟的(例如:网络驱动程序、磁盘、显卡等等),尽管在该抽象中模拟很干净,但它同时也是最低效、最复杂的。在半虚拟化中,来宾操作系统和Hypervisor能够共同合作,让模拟更加高效。缺点是操作系统知道它被虚拟化,并且需要修改才能工作。硬件辅助虚拟化(Hardware Assisted Virtualization)Intel/AMD等硬件厂商通过对部分全虚拟化和半虚拟化使用到的App技术进行硬件化(具体将在下文详述)来提高性能。硬件辅助虚拟化技术常用于优化全虚拟化和半虚拟化产品,而不是独创一派,最出名的例子莫过于VMware Workstation,它虽然属于全虚拟化,但是在它的6.0版本中引入了硬件辅助虚拟化技术,比如Intel的VT-x和AMD的AMD-V。现在市面上的主流全虚拟化和半虚拟化产品都支撑硬件辅助虚拟化,包括VirtualBox、KVM、VMware ESX和Xen。优点:通过引入硬件技术,将使虚拟化技术更接近物理机的速度。操作系统级虚拟化(Operating System Level Virtualization)

这种技术通过对服务器操作系统进行简单地隔离来实现虚拟化,主要用于VPS以及SWsoft的Virtuozzo/OpenVZ和Sun基于Solaris平台的Container技术为代表,其中Virtuozzo是商业解决方案,而OpenVZ是以Virtuozzo为基础的开源项目。他们的特点是一个单一的节点运行着唯一的操作系统实例。通过在这个系统上加装虚拟化平台,可以将系统划分成多个独立隔离的容器,每个容器是一个虚拟的操作系统,被称为虚拟环境(即VE,VirtualEnvironment),也被称为虚拟专用服务器(即VPS,Virtual Private Server)。在操作系统虚拟化技术中,每个节点上只有唯一的系统内核,不虚拟任何硬件设备。此外,多个虚拟环境以模板的方式共享一个文件系统,性能得以大幅度提升。在生产环境中,一台服务器可根据环境需要,运行一个VE/VPS,或者运行上百个VE/VPS。所以,操作系统虚拟化技术是面向生产环境、商业运行环境的技术。
    优点:因为它是对操作系统进行直接的修改,所以实现成本低而且性能不错。
    缺点:在资源隔离方面表现不佳,而且对Guest OS的型号和版本有限定。

四、硬件分区技术

硬件分区技术如下图所示:硬件资源被划分成数个分区,每个分区享有独立的CPU、内存,并安装独立的操作系统。在一台服务器上,存在有多个系统实例,同时启动了多个操作系统。这种分区方法的主要缺点是缺乏很好的灵活性,不能对资源做出有效调配。随着技术的进步,现在对于资源划分的颗粒已经远远提升,例如在 IBM AIX系统上,对CPU资源的划分颗粒可以达到0.1个CPU。这种分区方式,在目前的金融领域,比如在银行信息中心得到了广泛采用。容器虚拟化Docker现在Docker内部使用的技术是Linux容器(LXC技术),运行在与它宿主机同样的操作系统上,准许它可以和宿主机共享许多系统资源,它也会使用AuFS作为文件系统,也为你管理网络。AuFS是一个层状的文件系统,因此你可以有一个只读和一个只写部分,二者结合起来,可以使系统的共同部分用做只读,那块被所有容器共享,并且给每个容器自己的可写区域。让大家假设你有一个容器镜像(image)容量是1GB,如果你想用一个完整的虚拟机来装载,你得需要容量的大小是1GB乘上你需要虚拟机的数量。但使用Linux容器虚拟化技术(LXC)和AuFS,你可以共享1GB容量,如果你需要1000个容器,假设他们都运行在同样的系统影像上,你仍然可以用稍微比1GB多一点的空间来给容器系统。
Docker相比完全的虚拟机,可以实现基础共享,一个完整的虚拟化系统得到了分给它的自有全部资源,只有最小的共享。你获得了更多的隔离,但是这是很庞大的(需要更多的资源)。Hypervisor位置:Hypervisor安装在宿主操作系统上,通过宿主操作系统使用硬件,如VirtualBox、VMWare Workstation等。在Host系统上,加装了Virtual MachineMonitor,虚拟层作为应用级别的App而存在,不涉及操作系统内核。虚拟层会给每个虚拟机模拟一套独立的硬件设备,包含CPU、内存、主板、显卡、网卡等硬件资源,在其上安装所谓的Guest操作系统。最终用户的应用程序,运行在Guest操作系统中。这种虚拟机运行的方式有一定的优点,比如能在一个节点上安装多个不同类型的操作系统;但缺点也非常明显,虚拟硬件设备要消耗资源,大量代码需要被翻译实行,造成了性能的损耗,使其更合适用于实验室等特殊环境。安装在硬件层上

由Hypervisor直接管理硬件,如VMWare ESX、MicroSoft、KVM、XEN等。安装在内核上Hypervisor安装在宿主操作系统内核上,客户操作系统调用宿主操作系统内核。

 

XML 地图 | Sitemap 地图