求linux虚拟化技术的实现方案,谢了
关于Linux虚拟化的优势我们大家已经有所了解。目前使用最多的虚拟化操作系统还是Windows系列,但是Linux的成长速度是惊人的,大有替代Windows的趋势。关于Linux虚拟化技术大致上可以分为六个不同的方式。在本文中,我们将讨论实现Linux虚拟化的这六种方式,以及Linux下的多种虚拟化解决方案。
当我们讨论虚拟化解决方案的时候,常常都要提到具体厂商的具体产品,但是当我们提及Linux虚拟化解决方案的时候,我们更乐意讨论广泛而多样化的开源生态系统。Linux支持多种虚拟化平台,并延伸出多种技术,同样也是一个完整方案的一个元素。
虚拟化—老树开新花
虽然虚拟化现在如此的流行,但虚拟化不是一个新的技术,早在半个世纪之前IBM就已经开始部署虚拟化。最早虚拟化技术是在IBM M44计算机上进行实验,然后在IBM System/360大型机产品上开始普及。最早的真正意义上的整体应用虚拟化的硬件平台是IBM CP-40系统,在上世纪60年代末被用在商业应用上。
虚拟化包含多个层面,比如硬件虚拟化,这种虚拟化从底层的硬件平台直接支持软件环境;另外一种是操作系统虚拟化,这是Linux的一个亮点。
在硬件层之上,独立于操作系统的一层软件被称之为hypervisor,或者叫做虚拟机监视器。hypervisor创建了虚拟化平台,而操作系统实例则运行在这个平台上,这使得硬件平台可以被多个操作系统和应用所共享,从而降低硬件的成本。
运行在hypervisor上面的实体被称为虚拟机,即VM,是用来放置操作系统、应用和数据元的“容器”。虚拟机中的操作系统和应用程序的数据被存储在虚拟磁盘中,hypervisor利用虚拟磁盘来启动虚拟化平台。虚拟机被封装为一个文件,这样比分布式的文件更好管理。
本地虚拟化和主机虚拟化模型
早期的虚拟化模型被称为Type 1,或者叫本地虚拟化(native virtualization),这种模型下hypervisor直接运行在硬件之上,在hypervisor上面是虚拟机。后来出现了主机虚拟化(hosted virtualization)模式,被称为Type 2,hypervisor运行在操作系统之上,在同一平台上允许两个或更多的操作系统共存。
Linux虚拟化技术基础
了解了有关虚拟化的一些基本知识后,我们进入正题,来讨论一下Linux虚拟化的一些知识。首先是模拟(Emulation),是将一个操作系统(Host)的服务转换并显示成另一个操作系统(Guest)的过程,Host和Guest系统不一定是相同的,比如,Host系统可能是x86平台,可以提供PowerPC平台的模拟,即使是指令和架构完全不相同。
另外,hypervisor的模拟器(emulator)可以提供多个平台的模拟,比如下面的图例,在Host系统上可以仿真出PowerPC和ARM系统。模拟过程并不仅限于Type 2虚拟化模型,在虚拟化技术中都存在这个过程。
虚拟化模型中的模拟过程
Linux中最流行的两个模拟器(emulator)包括QEMU和Bochs(处理器和平台模拟器)。这种解决方案的优点是它们是非常“轻便的”,可以支持在不同的Host操作系统和平台上运行不同的Guest操作系统。而这种解决方案的缺点在于由于要模拟指令,导致效率比较低。QEMU通过动态编码转换的模拟方式,让内核和内部用户代码可以被加速。另外,QEMU是一个很好的嵌入式平台开发工具,可以为与主机相异的CPU开发和测试代码。QEMU还可以被用来其他虚拟化解决方案来进行设备模拟。
平台虚拟化
更加传统的虚拟化解决方案是平台虚拟化,或者叫做硬件虚拟化,具有两种主要的形式,完全虚拟化( full-virtualization)和半虚拟化(para-virtualization)。
完全虚拟化,虚拟化平台通过hypervisor来承载虚拟机(VM),完全虚拟化的关键在于这些虚拟机,也就是运行在这些虚拟机里面的操作系统可以在hypervisor上运行,并且不被修改,这在需要一个真正的虚拟平台时是非常理想的,但这种模式具有一个缺点。
在完全虚拟化下虚拟机VM会把虚拟平台当作物理平台,工作在虚拟平台上的Guest操作系统驱动就好像运行在真实的硬件之上。但需要考虑这意味着什么,Guest操作系统和虚拟平台之间通讯就好像和真实平台一样,在hypervisor里面存在着另外一个模拟层,模拟硬件平台并转发虚拟机对硬件的访问,就好像虚拟机直接在使用真实的硬件。这个过程需要大量的处理,会限制Guest系统的I/O性能。
解决这个问题的一个方法就是让Guest操作系统意识到自身是被虚拟化的,这种形式被称作半虚拟化(para-virtualization),如下图,在这种模式下,Guest系统包含了缩短硬件访问过程所需的驱动程序,这让把Guest系统从不必要的工作中解放出来,来进行更高级别的工作。
两种平台虚拟化方式
虽然完全虚拟化是一个理想的方案,但是通过修改Guest操作系统可以最大限度的减少处理开销,获得相当大的性能提升。
Linux包含两个重要的解决方案,可以同时实现完全虚拟化和半虚拟化。如Citrix的Xen是一个流行的解决方案,可以同时执行Type1和Type2型hypervisor,Amazon的EC2就采用Xen来进行服务器的虚拟化。
另一个重要的hypervisor是Linux Kernel Virtual Machine(KVM),同样都支持本地虚拟化和主机虚拟化模型。KVM是有特点的,它通过夹在内核模块可以对Linux内核进行小的修改,从而变成一个全特性的hypervisor。KVM通过应用virtio可以支持半虚拟化,在Guest系统中包括用于半虚拟化的标准Linux驱动。
KVM也是第一个完全集成在主线内核(mainline kernel)的hypervisor,由Rad Hat开发,在一些关键领域被采用,比如IBM对云计算的开发和测试中。
需要注意的是无论是完全虚拟化还是半虚拟化,每种解决方案都应用了硬件协助虚拟化(hardware-assisted virtualization)。目前新的AMD和英特尔CPU都集成了优化hypervisor的指令集,来增强Guest虚拟机的I/O性能。
操作系统虚拟化
操作系统虚拟化是另外一个重要的虚拟化技术,正如其名,是对操作系统本身进行虚拟化,而不是平台。在这种方式下,操作系统提供一组用户空间(User-Space)彼此隔离,而应用被限制在每个用户空间里面,就好像一个独立的主机。这种形式的虚拟化在虚拟主机环境中非常流行,让多个独立的用户可以共享一个操作系统。
操作系统虚拟化
操作系统虚拟化依赖于可以创建和隔离用户空间(或者叫做容器或者私有虚拟服务器)的Linux内核,OS虚拟化最大的好处在于几乎没有任何开销,因为用户只是简单的共享OS和主机,而不需要通过虚拟机。而缺点在于目前我们采用的OS虚拟化解决方案缺乏灵活性,不能在任意的操作系统上实施,用户共享主机和操作系统还需要注意版本。尽管有这些不足,服务器虚拟化还是应用的非常广泛。
Linux包含很多的操作系统解决方案,具有很高的可配置性。比如OpenVZ、Linux-VServer和FreeVPS是其中三个最流行的,均支持CPU、内存网络、I/O和存储配额配置,OpenVZ还支持主机之间的在线VPSes迁移。
其他Linux虚拟化技术
在上面的文章中,我们讨论了模拟、平台虚拟化和操作系统虚拟化,这三种是最常用的虚拟化技术,除此之外,还有很多其他种类的虚拟化技术可以满足我们的需求,下面我们来看看几种不同于之前谈论范畴的虚拟化技术。
CoLinux
CoLinux,或者叫做协作Linux,是一种利用协作虚拟机的虚拟化方式。在CoLinux模式下,Linux Guest系统运行在微软Windows操作系统之上,共享底层的硬件资源。CoLinux需要Guest系统(即CoLinux本身)被修改,让它认为自己运行在其他操作系统之上。CoLinux是一种半虚拟化的方式,是将Windows作为Host操作系统,并且每个Host系统上只能运行一个CoLinux实例。由于这种限制,CoLinux被定义为一种特别的虚拟化技术。
虚拟化技术可以帮助CIO用比较少的硬件分配比较多的资源,但也会带来一大堆管理难题,这就需要CIO更加关注管理流程和工具。 [计世网独家]有了服务器虚拟化,就有可能在比较少的硬件资源上运行多个应用软件和操作系统,这吸引了许多IT经理的目光。据弗雷斯特研究公司的近期调查显示,调查对象中,有四分之一对服务器进行了虚拟化处理,还有一些计划两年后对近一半的服务器进行虚拟化处理。据业界观察人士和IT经理声称,随着企业的IT队伍期望扩大服务器虚拟化技术的部署范围,很重要的一点就是,要敢于面对管理上的难题。
IDC公司的调研主任Stephen Elliot说:“虚拟化技术很容易让人着迷,IT部门部署虚拟机速度之快超出了管理水平。这项技术从一开始就应当在管理方面进行投入。”
对正在竭力管理虚拟机的人来说,下面是六个重要问题的答案:
一省略的技术运营主管Edward Christensen说:“你再也不是只要关心服务器外壳里面的部分,而是要担心这个设备里面的其他部分、需要什么资源。”
这家网上汽车公司使用VMware公司的产品,在开发及质量保证环境下,对惠普硬件系统上运行的服务器进行虚拟化处理。他又说:“过去你常认为‘我有一台配备两个处理器/16GB内存的服务器’,如今你却在想‘两个处理器和16GB内存只供我一人使用吗?还是某个虚拟机也占用或者需要这些资源?’”
二如何遏制散乱现象?
虚拟化技术提供了易于部署的优点,但这让IT经理们陷入了左右为难的处境。服务器配置起来越快捷,对服务器的需求似乎就越大,而这会迅速导致众多的虚拟机。
Adam Gray是位于加州圣巴巴拉的IT专业服务公司Novacoast的首席技术官,他说:“我们发现,每天不止一次地启用及停用新机器。许多这些机器是为了开发、测试及试运行而提供的。”
IT经理和业界观察人士认为,控制虚拟服务器散乱现象需要同样用于物理服务器部署环境的流程和审计,确保只有在需要时才配置机器。
马里兰州拉纳姆Merkle公司的IT基础设施经理Marc Kraus说:“公司规定,如果未经IT部门审批,别人就无权添加虚拟服务器。我们还每周进行扫描,以控制散乱现象。”
虽然基于策略的管理和清查工具可以帮助IT部门随时了解服务器的数量,但IT人员必须严格落实相应流程,防止虚拟服务器散乱危及部署项目的成功。
旧金山必百瑞律师事务所的网络服务和工程部门主管Albert Ganzon说:“大家知道,我们启用一台新的虚拟服务器后,一旦完成任务,就马上停用。我们必须防止服务器慢慢增多。”
Ganzon说,他正在部署VMware产品,目前有十多台虚拟服务器在运行。他领导的小组建立了“某种权力集中部门”:各业务部门必须向该部门正式提出服务器请求,以便控制未授权虚拟机数量激增的现象。他补充说:“这实际上向他们指出已有的资源,询问‘你果真需要另一台服务器吗?’”
缅因州不伦瑞克市鲍登学院的高级系统工程师Tim Antonowicz说,他利用基本的“完整性检查”(sanity check),防止VMware ESX虚拟服务器失去控制。他说:“如果有人请求一台新服务器,除了紧急情况,一定要确保你必须经过全面评估,才能确定这是否果真需要还是仅仅贪图方便。”
业界观察人士建议采用服务器生命周期管理流程,以便跟踪虚拟或者物理服务器的用途以及从启用到停用的状况。未能遏制随便部署的习惯会加大虚拟机管理方面的其他难题,比如补丁管理。
企业管理协会的Mann指出:“如果你不知道自己有多少机器或者多少机器已部署,给它们打上补丁也就无从谈起。”
三省略的Christensen说:“没错,我现有的管理工具管理虚拟服务器的效果与管理其他任何服务器一样好。不过区别在于,你可以使用工具查看并且操纵整台机器,但对于虚拟机就没有这样的优势。环境的可视化呈现和良好的仪表板是管理虚拟环境的两大关键。”
如今出现了填补虚拟机管理这块空缺的新兴公司,譬如PlateSpin、Scalent Systems、Veeam和Vizioncore及另外几家公司。它们声称,传统厂商填补不了这块空缺。比如说,新兴公司侧重的一些方面就是识别在虚拟机上运行的应用软件,获得可见性,从而了解对虚拟机的请求及响应。创新的虚拟服务器管理工具可以帮助IT经理更快识别哪些虚拟机上的哪些应用软件运行不顺畅。
扬基集团支撑技术企业部的主管George Hamilton说:“选择新兴公司的产品自有其头痛问题;不过从短期来看,这可以帮你完成如今用管理工具无法完成的功能。不过,这些新兴公司总是有可能被你现有的管理厂商收购。”举例说,VMware在9月份就收购了虚拟管理新兴公司Dunes Technologies,以补充其自己的产品。
如果IT经理没有准备好购买管理虚拟环境的专门软件,他们也可以采取一些办法,让切实可行的传统技术更适合虚拟环境。
比如,Ganzon加大了投资Network General产品的力度,监控进出虚拟服务器的流量。他结合了Network General的流量分析功能和Compuware公司的ServerVantage软件的物理服务器性能指标。
他解释道:“我们有过这样的情况,Compuware软件报告服务器响应正常,但我们无法了解虚拟层,也无法看清处理请求的情况。Network General产品可检查数据包、寻找请求和确认,从而确保虚拟层没有出现延迟;服务器的运行状况正如Compuware报告的那样。”
四捆绑的工具有效吗?
大家一致认为,VMware或者Xen的虚拟机管理程序(hypervisor)捆绑的管理工具在大型虚拟环境中达不到要求。
Noel说“如果你的虚拟化产品提供商也是管理设备的主要提供商,那么必然会痛苦不堪。”比如说,虽然虚拟机管理程序提供的软件可以告诉IT经理有多少虚拟机在主机上运行,但提供不了多少有关应用软件及其性能的情况。她补充说:“记住服务器存在的惟一理由是,为业务应用软件提供顺畅运行所需的功能。”
虽然VMware的虚拟机管理程序提供的软件能够管理这种虚拟机管理程序及环境,但业界观察人士认为,这种软件充其量不过具备监测了解性能或者其他厂商产品的功能。
IDC的Elliot说:“我认为,IT经理必须确定‘够好’的工具是不是适用于管理大型环境。IDC预测,在接下来的三年,大多数IT部门的环境会有不止一种的虚拟机管理程序;这就会需要异构的虚拟服务器管理方案。”
另外,要是IT经理期望把部署的虚拟服务器从几十台扩展到几百台,那么如今可从虚拟化技术厂商获得的技术不会有同样好的效果。虽然预计虚拟化技术厂商会在将来提供不同的管理功能,但如今的工具满足不了大型的多厂商多站点网络的要求。
EMA的Mann说:“大多数虚拟化技术厂商存在固有的扩展性问题��它们正在着手解决,但它们的管理工具需要能管理有多个子网和多个站点的整个环境。目前,虚拟机管理程序提供商面对大型环境,无力执行管理任务。”
但这并不是说开始涉足虚拟化的IT经理就无法利用这些工具了。
鲍登学院的Antonowicz说:“ESX Server可以直接连接到VMware的管理套件Virtual Center。你会自动得到监控CPU、磁盘、内存和网卡等硬件资源的功能。可以衡量ESX主机及主机里面所放的虚拟机的这些指标。”
科霍斯纽约学区的网络管理员Mark DiPofi结合使用惠普和VMware各自服务器产品随带的集成无人值守(iLO)和管理工具以及Network General公司的Sniffer产品,跟踪可能由来自服务器环境的额外流量引起的网络带宽问题。如今他管理着约20个虚拟服务器,并没有觉得立即需要添加更多的管理工具。
DiPofi说:“我使用iLO来远程管理硬件;它能告诉我物理设备是否温度过高。 我还使用VMware进入ESX服务器的后门。就我们眼下的需求而言,服务器随带的管理工具很好用。”
五省略的Christensen说:“现在外面就有出色的工具;在微软发布工具集的同时,它们只会变得更好。”
其他人认为微软似乎打算把其虚拟机管理程序放在不同的层面上,这可能会使得VMware更加吸引一些人。
Antonowicz说:“微软的设计仍基于这种方案:运行在基本的Windows内核上。如果虚拟层放在正式的操作系统内核上,微软无法从虚拟层得到同样的性能。在微软Virtual Server上运行的虚拟机仍被认为是运行在Windows服务器上的一种应用。只有使用VMware的ESX或者Xen,你才能得到真正的‘裸机’性能。”
业界观察人士认为:微软进入虚拟化技术市场后,市场格局无疑会随之变化。专家们认为,如今操作系统中没有内置虚拟机管理程序的平台就是Windows;等微软进入虚拟化领域后,IT经理就要重新评估虚拟化技术战略。
IDC的Elliot说:“微软需要解决性能和可靠性方面的关键问题;如果它能搞定这两个因素,就完全有能力与VMware直接竞争。微软占有相当大的地盘,虽然它在某些方面处于落后,但在迅速攻城略地。所以将来的问题是,VMware的功能会不会远远胜过微软的产品、从而击败微软的低价位优势?”
六选择自由软件还是开源软件?
对环境规模小、IT预算少的IT经理来说,自由软件和开源软件常常可以满足他们的管理要求。
Hyperic和Veeam等公司发布了旨在管理虚拟环境的产品。Hyperic在去年发布了Hyperic HQ for VMware软件,提供了把该公司旗舰软件的管理范围扩大到虚拟环境的功能。这家开发商还编写了可集成到VMware的API和Virtual Center接口的代码,以便发现物理服务器和虚拟服务器,并且把虚拟实例集成到所有系统清单中。若有变化,软件就能发现,更新存储库,并且通知IT人员。HQ能够执行该公司所说的“物理到虚拟映射”:除了向IT经理告知虚拟机里面运行的操作系统和应用软件外,还能告知虚拟机及相应主机。
拿Veeam来说:这家新兴公司依托其大获成功的自由软件,组建了商业软件公司。FastSCP 20 for VMware是一款自由软件性质的文件管理产品,可帮助客户移动虚拟机、把实例从一个服务器拷贝到另一个服务器。FastSCP最初在2006年10月发布,“已成为ESX文件管理领域事实上的标准,”Veeam的总裁兼CEO Ratmir Timashev如是说。
IT经理说,必要时,自由软件能符合需要。澳大利亚佩思Auracom Technologies公司的虚拟化技术顾问Mark Devlin就使用FastSCP,因为当初他需要虚拟化功能时,Veeam的这款软件是市面上惟一能满足他要求的工具。
Devlin说:“它是对ESX环境进行实时文件管理的最快办法;实际上,这个产品没有任何消极的方面��它其实会节省成本、降低人力成本、加快完成工作。”
其他人说,由于功能有限,这种低成本的替代方案在虚拟环境的使用寿命很短。
鲍登学院的Antonowicz说:“实际上没有哪款切实可行的自由软件解决方案管理得了VMware基础设施。由于VMware与物理服务器硬件有着紧密关系,自由软件产品想真正在这个层面上进行集成会很难。至于Xen虚拟化技术,因为它是开源的,所以只有少数几项基本的管理功能。不过要获得最宝贵的功能以及技术支持,这方面的最佳服务来自商业公司。”
EMA的Mann鼓励把开源软件派上用场,但要注意这一点:它们不是提供全面管理一大批虚拟服务器所需的惟一工具。他说:“你会需要多种解决方案,开源只是其中一种;你不该单单使用开源软件来管理整个环境。”
虽然他们使用传统的管理工具以及虚拟机管理程序捆绑的工具,其他业界观察人士却并不主张使用自由软件或者开源软件用于全面的虚拟服务器管理。
扬基集团的Hamilton说:“如果能填补现有管理工具的空缺,那么使用自由软件或者开源软件的风险确实很低。但让我试图把其管理范围扩大到部署的企业级虚拟环境,我会觉得不安。你不希望用自由软件或者开源软件管理过于庞大的环境。你认识到,它们满足不了所有要求。”
最后,业界观察人士提醒IT经理:管理物理服务器的问题到了虚拟环境不会消失��只会有增无减,而且会被系统之间的无形边界掩盖起来。IT经理说,事先认识到走虚拟化道路不会减轻管理负担,这有助于调整思路,以便管理大批虚拟机。
Antonowicz说:“管理虚拟机的道理与管理物理机一样。你仍得为所有虚拟机上的操作系统打补丁;仍需要监控应用软件;仍需要维护。IT人员需要掌握另一套流程,但想想虚拟机所带来的好处,这种付出是值得的。”
(清风编译)
目前业内主流的虚拟化方案主要有两个阵营的,第一个是第三方软件的,例如VMWare、思捷的,另一种是操作系统厂商提供的,例如Windows、redhat Liunx的,IBM很早以前在其小型机以上的服务器上就可以实现虚拟化功能了。至于国内的,目前我了解的,国内的服务器厂商大部分都是OEM VMWare的产品,只有一款叫做维纳斯的桌面虚拟化软件。从安全性角度来讲,我建议考虑国外的虚拟化软件。同时虚拟化是一个整体解决方案,它涉及到硬件(服务器、存储、网络交换)和软件还有信息安全等方面的内容,不单单是一套软件就能完成的。在做虚拟化工程的时候,首先要分析用户的业务需求,就是为什么要部署虚拟化,部署虚拟化能帮助用户解决哪些问题,用户实际需要的是服务器虚拟化还是桌面终端虚拟化,或者仅仅是一个虚拟桌面或者无盘站,这些搞清楚了以后,还要深入了解用户想花多少钱,做多少事,没钱,什么也做不成的!这些都确定以后,可以考虑硬件支撑和信息安全支撑方面的内容了。如果在这方面知识有限,无法准确界定边界范围的时候,可以求助厂商,在国内来讲,浪潮、曙光、联想都在说自己能够承载虚拟化技术,在选择厂商的时候,一定要深入了解厂商在用户当地的技术支持人员的技术实力,很多情况下,硬件服务器厂商确实是能够实现虚拟化支撑的,但是具体到技术上,理解较深或者技术水平较高的工程师都不在本地,无论是规划还是实施、维护,对于没有工程师的地方,都是灾难性的。
虚拟化解决方案:数据中心发展到一定规模,需要建立统一的存储资源池,做到各种存储设备的资源共享,减少数据资源浪费的同时避免信息孤岛。亿万克蛟云HF混闪系列产品可兼容业界95%以上品牌和型号的存储,有效解决异构环境下存储共享问题。感兴趣的话点击此处,免费学习一下
深圳市亿万克数据设备科技有限公司(以下简称亿万克)是研祥高科技控股集团旗下的全资子公司。研祥集团作为中国企业500强,持续运营30年。研祥集团全球49个分支机构,三个国家级创新平台,一直致力于技术创新引领行业发展。拥有1100多项授权专利,1300项非专利核心技术。亿万克集服务器和存储等数据中心产品的研发、生产、销售、服务系统整合于一体,是民族高科技制造企业领导品牌 (原研祥集团服务器事业部)。
0条评论