云上战“疫”背后:快杰云主机的技术担当

风格不统一 提交于 2020-02-21 10:17:29

新冠肺炎催生了办公、医疗、教育等行业的“线上解决”,加速了各行业与“云”的结合,也对不少服务企业提出了新的考验:持续攀登的高并发、多连接,需要更加高性能稳定的云平台支撑,确保不宕机、不卡断以及流畅稳定的云上体验。

在这场战“疫”中,UCloud快杰云主机历经了多项考验,在计算、网络、存储各方面均具备优异性能。其中,为了响应“停课不停学”的号召,快杰云主机为小禾科技线上教育直播平台提供了高性能稳定的云资源支持,同时UCloud还免费提供直播带宽和流量等资源,保障高并发场景下直播平台及课程的顺利进行。

 

快杰云主机的优异表现依托于产品的技术优化,来看一组快杰云主机的配置参数:搭载Intel最新Cascade Lake CPU、NVMe SSD硬盘、25G RDMA网络,并通过最新的智能网卡提供硬件卸载。在这其中,每一项参数优化均经历了诸多思路重建、革旧换新的技术更迭。

下面我们就来聊聊快杰云主机的“破局”之路。

一、存储“破局”

快杰云主机搭载的NVMe SSD硬盘,采用64层3DNAND,支持8TB/s高速TRIM。支持性能出色的同时,NVMe SSD硬盘通过动态精确能耗控制,能源效率也比前代提升38%。

国内专业云资源选型服务平台 CloudBest 实验室的报告中(阿里云、腾讯云、UCloud 、华为云云主机对比测试报告),关于“磁盘性能”的测试结果如下:

图:队列深度7*16的【随机读写】&【平均时延】

可以看到,快杰云主机的I/O读写能力对比其他云厂商最高可达到10倍的差距,平均时延可降低近6倍,磁盘性能的优势非常出众。

磁盘性能对于云主机来讲是非常重要的一个参数,快杰云主机在云盘优化方面做了很多工作,我们将这些工作用六个字来总结:要致富、先修路。

1、更高效的存储架构:NVMe筑基

要修路,先筑基。从泥泞路径到柏油马路,决定的是道路的基础质量保障,并且基础架构设施的质量提升足以促进产品性能产生大幅度的飞跃。

同理,在快杰云主机云硬盘的基础架构上,采用的便是行业内最优的NVMe存储架构

与传统的SATA架构不同的是,NVMe传输协议在诞生之初就充分利用了PCIe SSD的低延时以及并行性优势,成为计算存储行业的大热趋势。

NVMe SSD比SATA快在哪里呢?举个例子,市面上性能不错的SATA SSD,在队列深度上可以达到32,然而这也是AHCI所能做到的极限罢了。而PCIe SSD下的队列深度则需达到128,甚至是256才能够发挥出最高的IOPS性能,NVMe解决了这个问题——在NVMe下,最大的队列深度可达64K,此外,NVMe的队列数量也从AHCI的1提高到了64K。

图:NVME&AHCI队列深度对比

同时,PCIe主控与CPU直接相连,对比SATA主控通过控制器中转再连接CPU的方式, PCIe SSD因此具备更低的时延。可以看到,对比SATA,PCIe接口本身在性能上具备更高的优势,再加上NVMe具有比AHCI更深、更宽的命令队列,NVMe SSD成为行业技术大势也就不足为奇了。

这便是快杰云主机云盘优化工作的第一步,NVME筑基。

2、 更宽阔的通信道路:25G以太网加速

道路基础修建好后,还有一个问题:如何最大化地提升道路通行速率呢?从单行道变为八车道绝对是捷径之一。

同样,在快杰云主机云盘优化的工作中,我们采用了25G以太网络替代传统10G以太网,大大提升了存储数据传输的速率。

目前大部分数据中心主要是基于10G以太网架构,随着互联网下数据的爆发式增长,数据中心必须通过增加与现有基础设施并行的带宽能力实现扩展,从而有能力处理不断增大的数据负载。而25G便是下一代数据中心网络带宽和信道容量扩展的新方向。

相比10G,25G以太网具有增强计算和存储效率的优点,能够提供带宽更高、速度更快的连接,我们可以把它看做加速2.5倍的10G以太网。此外,可以运行两个25G通道实现50G,或运行四个通道实现100G,并且25G完全兼容10G以太网的相关物理标准,可以实现新旧应用的平滑迁移。

图:25G以太网&10G以太网对比

25G以太网之于10G以太网便是单行道到八车道的飞跃,网络带宽能力的大幅提升帮助快杰云主机实现数据传输的加速,从而助力磁盘性能提升。

3、更轻量级的传输路径:RDMA降低延迟

近两年国家大力普及高速公路ETC取代传统的人工收费站模式,司机无需停车便可实现快速感应过车。与传统收费模式相比,ETC耗时不到两秒,通行能力是人工收费通道的5至10倍。可以预见到,一辆车可提高5-10倍的效率,那么对整条高速路而言,就会是极大的通行速率提升。

我们这里说到的RDMA便具备类似的功能。RDMA是一类通信协议,也是近几年在云计算/大数据领域非常火的一项新技术,它的全称为远程直接数据存取,就是为了解决网络传输中服务器端数据处理的延迟而产生的。

在详细介绍RDMA功能之前,先来了解下传统TCP/IP通信模式的瓶颈。

传统的TCP/IP网络通信通过内核发送/接收消息,数据发送方需要将数据从用户应用空间Buffer拷贝到内核空间的Socket Buffer中,并在内核空间中进行添加数据包头、数据封装等一系列操作。同样,数据接收方也需要在内核进行大量数据包解析工作,并第二次拷贝到相应位置的用户空间Buffer。

图:TCP/IP&RDMA传输原理对比示意

在这样复杂的传输过程中,内核承担了极大的压力,一旦遇到大量数据传输的情况,势必会造成硬盘I/O读写能力的延迟。

RDMA则通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,不会对内核造成太大影响。RDMA消除了外部存储器复制和上下文切换的开销,因而能解放内存带宽和CPU周期用于改进应用系统性能。RDMA作为快杰云主机后端存储的通信协议,实现收发包卸载到硬件,使得RSSD云盘的延迟降低到0.1毫秒,从而大幅度降低数据处理的延时。

简单来讲,RDMA好比是ETC,省去了停车、沟通、缴费等复杂的步骤,避免成为数据传输中的瓶颈,形成一个更轻量级的传输路径。

除此之外,针对虚拟化IO路径的性能瓶颈问题,我们使用SPDK VHost代替QEMU,实现虚机到存储客户端的数据零拷贝;在存储引擎方面由SPDK代替libaio,高并发场景下依然可以保持较低的时延。

总的来说,通过一系列技术革新手段,使得快杰云主机NVMe-SSD云盘的磁盘性能达到最佳状态。

二、网络增强2.0的“破局”

当我们搭建好一个超高性能的云硬盘,云主机的优化工作就结束了吗?

答案是,远远不够。事实上,此时还会出现一个问题,那就是云主机日益增长的高性能需求与落后的核心配置之间的矛盾。

而这个矛盾就是由传统的内核CPU处理模式所带来的。

1、CPU的局限性

早期,服务器的功能较为简单,需要处理的数据运算量也不大,因而所有的应用处理均是由CPU内核完成的,此时的CPU作为核心大脑是绰绰有余的。

但是,随着云计算和大数据时代的来临,云主机的计算需求越来越高。举个例子,云主机会附加VNF的安全功能,而此类安全应用的处理与网络传输不同的是,往往需要将数据包一一拆开做解析,对CPU的处理能力带来极大的负担。这时的CPU可以看作是拆东墙、补西墙的状态,计算能力的大幅度消耗,势必会带来对其他应用的效率影响,从而造成云主机整体性能的下降。

在这样的背景下,网络与计算的高效融合势在必行。

2、网络增强2.0:基于OpenvSwitch卸载的智能网卡方案

一开始,为了解决云主机的计算性能问题,产生了TOE技术(TCP offload engine),即将TCP连接过程中的相关计算工作转移到专用硬件上,从而释放CPU资源,而这个专用硬件就是早先的普通网卡。

不过,随着Iaas的云计算服务模式出现,云主机需要承担更丰富的网络功能来满足云租户的需求,例如任意配置IP的虚拟私有网络、可扩展的4层负载均衡器、访问控制列表等等。这便意味着网卡需要具备更高性能以备网络性能的增强。

此时,智能网卡(Smart NIC)技术开始步入人们的视野。不同于传统网卡,智能网卡同时具备高性能及可编程的能力,既能处理高速的网络数据流,又能对网卡进行编程,实现定制化的处理逻辑。通过25G 智能网卡对网络流量进行卸载也已经成为业界的主流研究方向。

现阶段,智能网卡的实现百花齐放,例如:AWS采用基于通用ARM的众核方案、Azure采用基于FPGA的方案、华为云采用基于专用网络处理器(NP)的方案、阿里云采用基于可编程ASIC芯片的方案。就目前来看各个方案各有优劣,并没有特别突出一统天下的方案。

在业界没有非常完美的实现方案下,UCloud开始将目光转向开源技术,由于OpenvSwitch本身支持基于Linux Tc Flower Offload卸载接口,并且能够快速应用落地使用。最后,我们选择了基于OpenvSwitch卸载的智能网卡方案。

图:基于 Tc Flower Offload 的 OpenvSwitch 开源方案

Openvswitch是一个优秀的开源软件交换机,支持主流的交换机功能,比如二层交换、网络隔离、QoS、流量监控等,同时支持openflow,而openflow则定义了灵活的数据包处理规范,能够提供L1-L4包处理能力。

我们在Openvswitch开源技术的基础上解决了虚机迁移、VXLAN encap/decap 卸载、Ethernet over gre tunnel卸载等技术难点,在完善快杰云主机智能网卡方案的基础上,也与开源社区共享了解决手段。

目前,快杰云主机的智能网卡硬件基于ConnectX-5搭建,支持PCIe4.0/3.0规范和25Gb/s网络,适用于VM(包括SRIOV)、裸机(Bare Metal)和容器(Container)等多种场景。在上文提到的测评报告中,也对“内网质量”进行了测试,测试结果如下:

图:内网平均每秒收包数(由多到少排列)

同等情况下,统计测试机每秒收到包的数量,接收小包的数量越多,内网质量越好。可以看到,UCloud快杰云主机对比其他云厂商有着近5倍的优势,这也正是快杰云主机智能网卡方案“网络增强2.0”的定位所在。

三、典型应用场景

“纸上得来终觉浅,绝知此事要躬行”。说了这么多,最后我们来看一个快杰云主机的典型应用场景:Nginx是一个高性能的HTTP和反向代理web服务器,是网站门户用户的首选。Nginx具有并发能力非常强的特点,因此对运营主机的网络能力要求非常高。

“CloudBest”也对该项指标进行了测评对比,如下图,可以看到,UCloud快杰云主机在Nginx每秒处理请求数上对比其他云厂商高出一倍多。

图:Nginx测试每秒处理请求数(由多到少排列)

基于此,爱普新媒选择使用“快杰”搭建Nginx集群,作为API网关对其终端客户提供服务,使其原有集群内主机大幅度减少,并且在相同服务能力下成本减半。

除此之外,快杰云主机在数据库和Clickhouse场景下也具有明显性能优势,并已在PingCAP和TT语音的实际业务场景中实践应用。

写在最后

本文虽然讲述的是快杰云主机的技术建设历程,但仍可窥见物转星移下,云计算技术革新的滚滚巨轮。随着在大数据、人工智能、物联网等领域的持续创新技术投入,UCloud将持续为用户提供“性能极致、使用便捷”的云计算产品,带来更好的云上体验。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!