云计算虚拟化技术解读_第1页
云计算虚拟化技术解读_第2页
云计算虚拟化技术解读_第3页
云计算虚拟化技术解读_第4页
云计算虚拟化技术解读_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

云计算虚拟化技术解读(1)胡经国本文作者的话本文是根据有关文献和资料编写的《漫话云计算》系列文稿之一。现作为云计算学习笔录,奉献给云计算业外读者,作为进一步学习和研究的参考。希望能够得到大家的指教和喜欢!下面是正文本文主要内容涉及虚拟化及其层次、虚拟化方式选择、虚拟化管理、数据中心虚拟化。一、虚拟化及其层次虚拟化,是指在同一台物理机器上模拟多台虚拟机的能力。每台虚拟机,在逻辑上拥有独立的处理器、内存、硬盘和网络接口。使用虚拟化技术,能够提高硬件资源的利用率,使得多个应用能够运行在同一台物理机上,各自拥有彼此隔离的运行环境。虚拟化也有不同的层次。例如,硬件层面虚拟化和软件层面虚拟化。(下图中:Application:应用(程序)OperatingSystem:操作系统VMwareVirtualizationLayer:VMware虚拟化层次IntelArchitecture:英特尔架构CPU:中央处理器Memory:内存NIC:网卡Disk:磁盘、硬盘)链接:VMwareVMware(中文名威睿,纽约证券交易所代码VMW)是一家虚拟机软件公司的英文名称。该公司是全球桌面到数据中心虚拟化解决方案的领导厂商。全球不同规模的客户依靠VMware来降低成本和运营费用、确保业务持续性、加强安全性并走向绿色。2008年,VMware年收入达到19亿美元,拥有逾150000的用户和接近22000多家合作伙伴,是增长最快的上市软件公司之一。VMware总部设在加利福尼亚州的帕罗奥多市(PaloAlto)。1、硬件层面虚拟化硬件层面虚拟化,是指通过模拟硬件的方式,获得一个类似于真实计算机的环境,可以运行一个完整的操作系统。硬件层面虚拟化,又可分为不同的实现方式,例如:⑴、FullVirtualization(全虚拟化)几乎是完整地模拟一套真实的硬件设备。大部分操作系统无须进行任何修改即可直接运行在全虚拟化环境中。⑵、PartialVirtualization(部分虚拟化)仅仅提供了对关键性计算组件或者指令集的模拟。操作系统可能需要做某些修改才能够运行在部分虚拟化环境中。⑶、Paravirtualization(半虚拟化)不对硬件设备进行模拟,虚拟机拥有独立的运行环境,通过虚拟机管理程序共享底层的硬件资源。大部分操作系统需要进行修改才能够运行在半虚拟化环境中。在硬件虚拟化层面,现代的虚拟化技术通常是全虚拟化和半虚拟化的混合体。常见的虚拟化技术,例如VMWare、Xen和KVM,都同时提供了对全虚拟化和半虚拟化的支持。以硬件虚拟化的方式所提供的虚拟机,通常都在运行一个完整的操作系统,在同一台宿主机上存在大量相同或者相似的进程和内存页。从而,导致明显的性能损耗。目前,通过KSM等技术,可以识别与合并含有相同内容的内存页。但是,还没有对大量相同或者相似的进程进行优化处理的有效手段。因此,硬件虚拟化,也往往被称为重量级虚拟化。在同一宿主机上,能够同时运行的虚拟机数量,是相当有限的。链接:宿主机和目标机宿主机,是指安装虚拟机软件的计算机。目标机,是指除了宿主机、虚拟机以外的网络上的第三方机器。链接:KSM技术KSM(KernelSharedMemory或KernelSamepageMerging,内核共享内存或内核相同页合并)技术。对于KVM虚拟化,有一个功能就是内存合并。简单说,就是把相同的内存合并,这样可以让你的物理机运行更多的虚拟机。KVM就是KeyboardVideoMouse(键盘、视频、鼠标)的缩写。KVM交换机通过直接连接键盘、视频和鼠标端口,让您能够访问和控制计算机。2、软件层面虚拟化软件层面虚拟化,往往是指在同一个操作系统实例的基础上,提供多个隔离的虚拟运行环境,也常常被称为容器技术。在软件虚拟化层面,同一宿主机上的所有虚拟机,共享同一个操作系统实例,不存在由于运行多个操作系统实例所造成的性能损耗。因此,软件虚拟化也往往被称为轻量级虚拟化。在同一宿主机上,能够同时运行的虚拟运行环境数量,是比较宽松的。以Solaris操作系统上的Container(容器)为例,一个Solaris操作系统的实例,理论上可以支持多达8000个Container(实际能够运行的Container数量取决于系统资源和负载)。与此类似,Linux操作系统上的LXC,可以轻松地在同一宿主机上同时支持数量可观的虚拟运行环境。链接:容器技术由于hypervisor(虚拟机监控程序)虚拟化技术仍然存在一些性能和资源使用效率方面的问题,因而出现了一种称为容器技术(Container)的新型虚拟化技术来帮助解决这些问题。链接:LXCLXC(LinuxContainer,Linux容器),是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。二、虚拟化方式选择在虚拟化这个领域,国内的公司对硬件虚拟化的兴趣较大。在研发和生产环境中,也大都采用硬件虚拟化技术。淘宝,是国内较早地研究并应用软件虚拟化技术的。淘宝主站的实践经验表明,使用cgroup替代Xen,能够提升资源利用率。链接:CgroupsCgroups(Controlgroups,对照组),是Linux内核提供的一种可以限制、记录、隔离进程组(processgroups)所使用的物理资源(如:cup,memory,IO等等)的机制。最初由Google的工程师提出,后来被整合进Linux内核。Cgroups也是LXC为实现虚拟化所使用的资源管理手段,可以说没有Cgroups就没有LXC。链接:XenXen,是一个开放源代码虚拟机监视器,由剑桥大学开发。它打算在单个计算机上运行多达100个满特征的操作系统。操作系统必须进行显式地修改(移植),以便在Xen上运行(但是提供对用户应用的兼容性)。这使得Xen无需特殊硬件支持,就能达到高性能的虚拟化。至于在一个实际的应用场景中,到底应该选择硬件虚拟化还是软件虚拟化,应该重点考虑最终用户是否需要对操作系统的完全控制权(例如升级内核版本)。如果最终用户仅仅需要对运行环境的控制权(例如PaaS层面的各种AppEngine服务),软件虚拟化可能性价比更高。对于为同一应用提供横向扩展能力的应用场景,软件虚拟化也是比较好的选择。对于需要深入了解虚拟化技术的技术人员来说,VMWare发表的白皮书《UnderstandingFullVirtualization,Paravirtualization,andHardwareAssist》是一份很好的参考资料。通常来讲,能够直接使用虚拟化技术的用户数量是比较少的。以Linux操作系统为例,能够进行虚拟机生命周期管理的用户,一般就是具有访问libvirt权限的用户。在一个公司或者其他实体中,这些用户通常是系统管理员。链接:libvirtlibvirt是一套免费、开源的支持Linux下主流虚拟化工具的C函数库,其旨在为包括Xen在内的各种虚拟化工具提供一套方便、可靠的编程接口。三、虚拟化管理1、两种管理情况早期的虚拟化技术,解决的是在同一台物理机上提供多个相互独立的运行环境的问题。当需要管理的物理机数量较小时,系统管理员可以手动登录到不同的物理机上,进行虚拟机生命周期管理(资源配置、启动、关闭等等)。当需要管理的物理机数量较大时,就需要写一些脚本/程序,来提高虚拟机生命周期管理的自动化程度。2、虚拟化管理工具以管理和调度大量物理/虚拟计算资源为目的软件,称为虚拟化管理工具。虚拟化管理工具使得系统管理员可以从同一个位置执行如下任务:⑴、对不同物理机上的虚拟机进行生命周期管理;⑵、对所有的物理机和虚拟机进行查询甚至监控;⑶、建立虚拟机命名与虚拟机实例直接的映射关系,使得虚拟机的识别和管理更加容易。链接:虚拟机生命周期使用虚拟机生命周期管理工具制定一个计划,可以帮助你保持虚拟化环境平稳运行。虽然虚拟机可以永远运行,但并不意味着应该这样使用。虚拟机生命周期管理帮助你判断虚拟机应该何时收回。虚拟机生命周期过程相对来讲比较复杂,从虚拟机生命周期的四个阶段开始:规划、准备、生产和收回。虚拟机生命周期管理的关键在于弄明白何时应该更换虚拟机。Linux操作系统上的VirtManager,是一个简单的虚拟化管理工具。在VMWare(VMW,虚拟机软件,是全球桌面到数据中心虚拟化解决方案的领导厂商)产品家族中,VMWarevSphere,是一个功能强大的虚拟化管理工具。虚拟化管理工具,是虚拟化技术的自然延伸。简单的虚拟化管理工具,解决的是由于物理机数量增多所导致的工作内容繁杂问题。在这个层面,虚拟化管理通常和集群的概念同时出现。一个虚拟化管理工具,往往需要获得各台物理机上的虚拟机生命周期管理权限(例如具有访问libvirt权限的用户名和密码)。在同一个集群当中,为了方便起见,可能需要设定一个在整个集群层面通用的管理用户。可以认为,虚拟化管理为系统管理员提供了便利;但是并没有将虚拟机生命周期管理的权限下放给其他用户。四、数据中心虚拟化1、数据中心虚拟化管理系统在数据中心层面,系统管理员需要面对大量不同类型的硬件和应用。与小型集群相比较,数据中心的系统复杂度大大提高了。这时,简单的虚拟化管理工具,已经无法满足系统管理员的要求。因此,在虚拟化管理工具的基础上,又发展出各种数据中心虚拟化管理系统。在硬件层面,数据中心虚拟化管理系统,通过划分资源池(一个资源池通常是一个集群)的方式,对硬件资源进行重新组织;并以虚拟基础构架(VirtualInfrastructure)的方式将计算资源暴露给用户。在软件层面,数据中心虚拟化管理系统,引入系统管理员和普通用户两种不同的角色,甚至是基于应用场景的需要设定颗粒度更细的基于角色的权限控制(RoleBasedAccessControl,RBAC)。系统管理员,对整个数据中心的物理机和虚拟机拥有管理权限;但是一般不对正常的虚拟机进行干涉。普通用户,只能在自己具有权限的资源池内进行虚拟机生命周期管理操作,不具有控制物理机的权限。在极端的情况下,普通用户只能够看到分配给自己的资源池,而不了解组成该资源池的物理机细节。在数据中心虚拟化之前,创建虚拟机的动作,是需要系统管理员来完成的。在数据中心虚拟化管理系统中,通过基于角色的权限控制,虚拟机生命周期管理的权限被下放给所谓的“普通用户”,在一定程度上可以减轻系统管理员的负担。但是,出于系统安全的考虑,并不是公司里所有的员工都能够拥有这样的“普通用户”账号。一般来说,这种“普通账号”只能够分配给某个团队的负责人。可以认为,一直到数据中心虚拟化这个层面,虚拟机的生命周期还是集中式管理的。数据中心虚拟化管理系统,是虚拟化管理工具的进一步延伸。它所解决的是由于硬件和应用规模上升所带来的系统复杂度问题。具体的物理设备被抽象成资源池之后,公司高管只需要了解各个资源池的规模、负载和健康状况;最终用户只需要了解分配给自己的资源池的规模、负载和健康状况。只有系统管理员,还需要对每一台物理设备的配置、负载和故障了如指掌。但是,资源池的概念也从逻辑上对所有的物理设备进行了重新整理和分类,使得系统管理员的工作变得更加容易了。2、数据中心虚拟化管理系统提供的运维自动化功能现代的数据中心虚拟化管理系统,往往提供了大量有助于运维自动化的功能。这些功能包括:⑴、基于模板快速部署一系列相同或者是相似的运行环境;⑵、监控、报表、预警、会计功能;⑶、高可用性、动态负载均衡、备份与恢复等等。一些相对开放的数据中心虚拟化管理系统,甚至以开放API的方式,使得系统管理员能够根据自身的应用场景和流程,开发额外的扩展功能。3、值得推荐的数据中心虚拟化管理软件在VMWare产品家族中,VMWarevCenter是一个数据中心虚拟化管理软件。其他值得推荐的数据中心虚拟化管理软件,包括: Convirt,XenServer,OracleVM,OpenQRM等等。五、云计算一一对数据中心虚拟化的进一步封装1、 云计算管理软件云计算是对数据中心虚拟化的进一步封装。在云计算管理软件中,同样需要有云管理员和普通用户两种(甚至更多)不同的角色以及不同的权限。管理员,对整个数据中心的物理机和虚拟机拥有管理权限;但是一般不对正常的虚拟机进行干涉。普通用户,可以通过浏览器自助地进行虚拟机生命周期管理,也可以编写程序通过WebService(Web服务)自动地进行虚拟机生命周期管理。2、 云计算层面虚拟机生命周期管理在云计算这个层面,虚拟机生命周期管理的权限,被彻底下放给真正的普通用户。但是,也将资源池和物理机等等概念,从普通用户的视野中屏蔽了。普通用户可以获得计算资源,但是无需对其背后的物理资源有任何了解。从表面上看,云计算似乎就是以与AmazonEC2/S3相兼容的模式提供计算资源。而在实质上,云计算使计算资源管理的模式发生了改变,最终用户不再需要系统管理员的帮助即可自助地获得和管理计算资源。3、 云计算管理软件的数据中心虚拟化管理功能对于云管理员来说,将虚拟机生命周期管理权限下放到最终用户,并没有降低其工作压力。相反,他有了更加令人头疼的事情需要去处理。在传统的IT架构中,往往是一个应用配备一套计算资源,应用之间存在物理隔离,问题诊断也相对容易。在升级到云计算模式之后,多个应用可能共享同一套计算资源;应用之间存在资源竞争,问题诊断就相对困难。因此,云管理员往往希望选用的云计算管理软件,能够有相对全面的数据中心虚拟化管理功能。对于云管理员来说,至关重要的功能包括:⑴、监控、报表、预警、会计功能;⑵、高可用性、动态负载均衡、备份与恢复等等;⑶、动态迁移,可以用于局部负载调整以及故障诊断。显而易见,从虚拟化到云计算,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论