技术实践

媲美物理机,裸金属云主机极致性能轻松应对大促

作者 | 李伟

面对京东11.11大促数百亿访问流量、每秒数百万次的高并发请求以及数十亿的实时消息推送,京东智联云通过在技术上的创新,有效支撑了京东11.11海量并发,保障业务系统平稳运行。

其中,裸金属云主机提供了与物理机无差别的极致性能,在本次11.11大促中,批量使用于零售、广告、推荐、搜索等业务中。为京东11.11解决物理机运维难题的同时,裸金属云主机与云主机相比还减少了性能损耗,提升了整体资源利用率。

目前,云原生正在重塑IT基础架构,Kubenetes和容器已经大规模用于京东集团的业务部署。裸金属服务器由于对现有云产品兼容,业务方不需要改变业务架构,可以直接将裸金属实例加入到已创建的Kubenetes集群中来实现容器化的业务部署。裸金属服务器+容器+K8s将成为大规模上云的最佳组合,在11.11大促中大显身手。

一、发挥极致物理性能——裸金属云主机

1、传统物理服务器面临的问题

早些年时候,考虑到采购机器需要一定周期,京东通常每年第一个季度就会开始评估当年618、11.11大促的业务量,等到机器到位以后,才能及时把机器上架到位,确保开门大促之前机器资源是充足的。

对于传统物理服务器,部署时还需要提前数天甚至数周准备服务器,装机,网络配置需要人工维护,硬盘难扩容。服务器异动时需要经过下架、上架、网络重新配置等一系列繁琐流程。当服务器出现故障时,用户业务恢复时间长,成本高。

2、云主机的不足

自从2016年开始,京东智联云逐步开始发力,京东集团的业务也开始不断迁移上云。如今零售、物流等核心业务都已经部署到京东智联云上,大促期间需要的资源全都可以在云上按需获取,全集团资源也都可以轻松实现弹性可伸缩。

在云计算基础架构中,主流的服务提供方式都是通过虚拟化技术为用户提供云主机。由于资源具有按需申请释放、弹性扩容缩容等特性,可以极大地节省IT资源购置和运维成本。

但云主机仍存在以下不足之处:

· 性能损耗:传统虚拟化实现依赖运行于物理服务器运行的虚拟化软件,此类软件会占用部分资源造成虚拟化损耗,使得云主机始终无法获得与物理服务器相媲美的性能;

· 性能干扰:传统云主机服务虽然通过虚拟化技术保证多租户间资源的隔离,但是仍然可能会出现内存带宽、CPU缓存等资源争抢情况,为虚拟机的性能带来噪声干扰;

· 安全威胁:如果某个租户的云主机系统存在严重漏洞,很可能导致安全威胁在入侵该虚拟机之后,横向感染其它虚拟机,带来安全隐患。

3、裸金属服务器兼具物理服务器与虚拟服务器优势

裸金属云主机是介于物理服务器和虚拟服务器之间的一种产品形态。首先,可以提供物理机的性能。通过将虚拟化软件卸载至硬件运行,以消除虚拟化损耗,达到与物理服务器相近的性能。在实际测试中,裸金属云主机与虚拟机相比,CPU性能提升2.7%,内存性能提升了24.6%,单CPU最大网络吞吐量提升了36%,整体接近物理机的性能。

其次,裸金属服务器也具备自动化运维。裸金属服务器可以做到分钟级部署交付,故障恢复时间短。另外,它还具有与虚拟机一样的自动化运维手段,以及丰富的可用性监控指标。

第三,裸金属服务器可以提供物理级别隔离。一台云主机独享物理机全部计算资源以保证与其他租户资源的绝对隔离,同时支持嵌套虚拟化。

基于京东智联云自研的虚拟化引擎,裸金属云主机提供了物理机无差别的极致性能,实现了在更低成本下更优质的服务,稳定支撑了京东11.11大促的顺利进行。

二、京东智联云裸金属云主机架构析

京东智联云裸金属技架构

上图是是京东智联云裸金属服务器技术架构,分为网络数据面、存储数据面、云主机控制面:

网络数据面:支持VxLan、Flow Table、ACL Table以及Connect Tracking的转发卸载和加速。数据包可以直接进入智能网卡网络快速通道,与外界通信,缩短了网络处理路径上的耗时,同时减少了CPU和内存的开销。实现了与京东智联云VPC无缝对接,兼容现有的网络产品。

存储数据面:基于SPDK模拟存储控制器。云主机的读写请求会通过该模拟设备与物理机上的云硬盘Agent(SPDK)通信,进而将请求发送至后端存储资源池并将其与设备与云硬盘存储后端联通。

云主机控制面:与云主机管理系统全面集成。实现了裸金属云主机像虚机一样的生命周期管理。用户可以在控制台一键部署裸金属云主机,方便的配置网络和存储资源。同时云主机管理平面为裸金属云主机提供了丰富的监控指标和故障恢复手段,保证了用户可以像传统云主机一样方便的使用裸金属云主机。

相对于传统云主机,裸金属云主机的网络、存储负载和控制平面下沉到了智能网卡,节省了Host侧的CPU,提升了资源利用率。

三、京东智联云第二代裸金属技术

在最新的京东智联云第二代裸金属架构中,使用了FPGA支持virtio-blk,virtio-net虚拟化,更具通用性的同时,FPGA将处理局部性和重复性强的负载,发挥在低延迟的流式处理方面的优势,CPU将处理较为复杂的负载,发挥在批量同构数据处理方面的优势。