行业新闻

京东云鼎高管:京东虚拟化是如何应用的

时间:2013-09-19 04:50来源:awice 作者:宏福圣 点击:
【编者按】在虚拟化这个领域,大多采用硬件虚拟化技术。但近段时间国内外很多云计算厂商纷纷开始尝试使用LXC替代KVM/XEN等硬件虚拟化技术以获得更好的性能。至于在实际的应用场景

【编者按】在虚拟化这个领域, ,大多采用硬件虚拟化技术。但近段时间国内外很多云计算厂商纷纷开始尝试使用LXC替代KVM/XEN等硬件虚拟化技术以获得更好的性能。至于在实际的应用场景中到底应该选择硬件虚拟化还是软件虚拟化,需要多重因素考虑,目前没有一个确切的证据证明谁比谁更优。

那么,刚刚发布云战略的京东的选择是什么?

以下是京东云“云鼎”项目负责人何雨关于京东虚拟化应用的讲述:

虚拟化是指在同一台物理服务器上模拟多台虚拟机的能力,且每台虚拟机在逻辑上拥有独立的CPU、内存、硬盘和网络接口等。虚拟化可以提高硬件资源的利用率,使多个应用能隔离的运行在同一台物理机上。虚拟化分为硬件层面的虚拟化和软件层面的虚拟化。

硬件虚拟化是通过模拟硬件的方式来获得真实计算机的环境,可以运行一个完整的操作系统。在硬件虚拟化中,又有Full Virtualization(全虚拟化,完整的模拟一整套真实的硬件设备)、Partial Virtualization(部分虚拟化,仅对关键性计算组件或者指令集进行模拟。操作系统需要修改才能运行在部分虚拟化环境中)和Paravirtualization(半虚拟化,不对硬件设备进行模拟,虚拟机拥有独立的运行环境,通过虚拟机管理程序共享的硬件资源。大部分操作系统需要修改才能运行在半虚拟化环境中)等不同的实现方式。软件层面的虚拟化,指在同物理服务器上提供多个隔离的虚拟运行环境,也被称为容器技术。

在硬件虚拟化的层面,现代虚拟化技术通常是全虚拟和半虚拟的混合体。常见的虚拟化技术例如VMWare、Xen和KVM都同时支持全虚拟化和半虚拟化。硬件虚拟化方式提供的虚拟机,都独立的运行着一个完整的操作系统,这样在同一台物理宿主机上存在大量相同或者相似的进程和内存页,从而导致较大的性能损耗(比如:宿主机操作系统是Centos,使用KVM生成的多个虚拟机,且在每个虚拟机中都运行Windows操作系统和相同的QQ程序,这样宿主机的性能必然产生较大损耗)。目前,通过KSM(kernel samepage merging)等技术可以识别与合并含有相同内容的内存页,但是还没有对大量相同或者相似的进程进行优化处理的有效手段,相信随着虚拟化技术的发展,该技术也会取得巨大的进展。因此,硬件虚拟化也被称为重量级虚拟化,在同一宿主机上能够同时运行的虚拟机数量相当有限。在软件虚拟化的层面,同一宿主机上的所有虚拟机(又称Container)共享宿主机的操作系统实例,不存在由于运行多个操作系统实例所造成的性能损耗(比如:宿主机的操作系统为Centos,通过软件虚拟化技术生成多个Container,且每个Container都运行着QQ程序,由于它们共享同一个宿主机Centos操作系统,所有Container中QQ程序的进程在Centos中只有一个)。因此,软件虚拟化也被称为轻量级虚拟化,在同一宿主机上能够同时运行的虚拟运行环境数量比较宽松。以Solaris操作系统上的Container为例,一个Solaris操作系统的实例理论上可以支持多达8000个Container(实际能够运行的Container数量取决于系统资源和负载)。与此类似,Linux操作系统上的LXC也可以轻松地在同一宿主机上同时支持数量可观的虚拟运行环境。

在虚拟化这个领域,国内外的各大公司对硬件虚拟化的兴趣较大,在研发和生产环境中也大都采用硬件虚拟化技术。但是近段时间国内外很多云计算厂商纷纷开始尝试使用LXC替代KVM/XEN等硬件虚拟化技术以获得更好的性能。至于在实际的应用场景中到底应该选择硬件虚拟化还是软件虚拟化,需要从以下方面考虑。灵活性、易管理,可靠性、稳定性、性能考虑。硬件虚拟化更灵活、易管理。软件虚拟化则有更高性能。关于稳定性和可靠性没有一个确切的证据证明谁比谁更优。如果最终用户不需要独立的操作系统。而只需要关心运行环境(例如PaaS层面的各种App Engine服务),这样软件虚拟化也是比较好的选择。虽然Container能提升资源利用率,但迁移成本很高,硬件虚拟化具有天生的迁移优势,另外还包括工程师的学习成本,这些都是需要考虑在内的因素。所以选择上还需要根据自身的业务和公司的战略去确定使用哪种虚拟化技术。

目前京东根据自身业务需求,在公有云方面采用Openstack + KVM硬件虚拟化技术。但在PaaS层和私有云,则采用了Openstack + LXC的方式进行实现。让彼此的优势互补,以达到最佳的运行效果。

一般来讲虚拟化发展公认分为5个阶段。阶段一,服务器整合。通过虚拟化技术完成IT基础架构、资源的整合,包括服务器整合、存储整合、网络整合等。以此来进行IT基础设计的简化、达到提高IT设备的利用率,降低运维成本的目的。阶段二,动态工作负载迁移。通过虚拟化技术实现动态工作负载迁移。即在业务不受到任何影响的情况下,实现IT资源的动态调整和迁移,以此实现对局部资源的削峰填谷效应,进一步提高IT投资的利用率。传说中的虚拟机Resize&Live Migrate。阶段三,高可用。通过虚拟化实现高可用,即通过虚拟化技术提升服务质量,增强为前端业务提供服务支持的能力。用户在不增加IT投资的情况下,就可以使用虚拟机的冗余和备份。高可用分为硬件和软件,硬件层面只能通过采购冗余的硬件解决。比如:交换机、路由器、电力,空调,消防,和其他的冗余;软件层面需要考虑有状态的与无状态的区别。如:软件服务集群、Active/Passive、Active/Active等实现。阶段四,工作负载管理。通过虚拟化技术实现工作负载管理,有了前几个阶段的基础,用户可以对虚拟服务器进行统一的规划和管理。例如京东每个月月末都会有促销,那么管理员就可以有计划地在月末为其调配更多的虚拟资源,而无需增加物理设备的购买。这个就是传说中的ELB(Elastic Load Balance)+ AS(AutoScaling)。阶段五,灾难恢复。通过虚拟技术来实现灾难恢复,这同样是建立在前几阶段之上的高级应用,在本地或异地,通过虚拟服务器或虚拟存储实现不同等级的灾难恢复能力,用户可以根据自己能够忍受的业务中断时间来选择相应的方案,而这,也几乎不用增加过多的IT物理设施投入和运维成本。

(责任编辑:admin)
----------------------------------