我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:白小姐 > 分布式算法 >

分布式云计算实践你想了解的这里都有!

归档日期:06-11       文本归类:分布式算法      文章编辑:爱尚语录

  云计算在过去十年已悄然改变了人们的生活方式和企业的商业模式,未来可能还会继续重塑新的产业格局。随着人工智能、物联网等新兴行业的不断涌现,作为云计算底层技术的核心代表--分布式技术...

  云计算在过去十年已悄然改变了人们的生活方式和企业的商业模式,未来可能还会继续重塑新的产业格局。随着人工智能、物联网等新兴行业的不断涌现,作为云计算底层技术的核心代表--分布式技术,又赋予了云商哪些技术能力来满足用户日益复杂的业务需求?所谓分布式技术,就是把一个业务拆分成不同的子业务,分布在不同的机器上执行。相对于采用单机集群部署可能带来的系统庞大复杂、难以维护、单点故障、扩展性差等问题,云计算架构里更多采用的是分布式技术,主要原因是其在大规模扩展能力、资源池化、硬件故障容错能力、性能提升等方面都有着巨大的优势。那么,分布式技术在具体的云计算产品中有哪些应用实践?针对这个问题,5月28日UCloud TIC(北京站)“分布式云计算实践”技术专场,四位UCloud资深技术专家分享了各自的技术经验与实战心得。

  块存储作为云计算的基础组件,可以为云服务器提供可随机读写能力,且具备持久化存储、高可靠、低时延特性。同时采用多副本冗余,能避免网络硬件故障而导致的数据?可用。UCloud技术总监彭晶鑫在现场分享时提到,利用分布式技术,块存储可以实现计算和存储分离,它带来的好处有:

  1.在线迁移。预测机器故障前,我们将虚机迁移至另外一台健康的宿主机时,不需要迁移磁盘的数据,只需迁移CPU和内存,整个过程可在几十秒内完成。如果没有计算存储分离,可能要持续数十分钟甚至几个小时,而且在线迁移的过程非常影响用户的IO体验。

  2.宕机恢复。如果宿主机宕机,我们只需要利用远端的分布式存储,在另外一台宿主机上分配CPU和内存就可以快速在新的宿主机上拉起虚机,宕机的恢复速度基本能在一分钟内完成。如果没有计算存储分离,可能要数十分钟甚至更长时间。

  3.高可用高可靠性。通过分布式技术在后端能够发现节点故障并在几秒的时间内剔除掉有故障的副本,从而避免节点硬件故障、网络故障等带来的存储数据问题和可用性问题。

  4.存储池化。通过分布式存储组成较大的池化容量,且实现了按需分配存储空间,避免本地存储碎片过多问题,通过软件层面的一些设计甚至可提供超大容量存储,例如32TB、40TB、100TB。

  过去几年,存储行业的底层软硬件技术发生了快速的发展,存储介质方面,从HDD 到 SATA SSD 再到NVMe SSD ,性能提升了百倍;网络接口上,从千兆、万兆到100G,网络接口也迎来跨越式发展。UCloud块存储团队面对这些发展,做了很多底层研发设计的工作,体现在产品上就是从普通云盘升级为SSD云盘,IOPS从1000提高到2.4万,时延从5-10毫秒降低到0.5-3毫秒。加上今年推出的最新型RSSD云盘,IOPS提升50倍至120万,顺序吞吐量提升18倍,延迟降低至0.1毫秒。

  为了推出这样一款超高性能的RSSD云盘,UCloud在系统层面做了大量工作来彻底压榨NVMe的硬件能力。首先是在client侧利用vhost user技术,通过vring实现虚机到存储client的数据零拷贝。网络协议用RoCE代替TCP,RoCE能提供一种特别清晰简单的消息机制,让应用程序可以直接访问两端的内存,完全绕过kernel,使4K读写的网络包收发时延降到10微秒。然后存储读写上用SPDK代替libaio,SPDK提供用户态IO读写,高并发下依然能保持较低的时延。IO路径整体保持在用户态,并使用线程轮询减少用户态内核态间的切换,减少中断带来的损耗。通过这种整体的软硬件协同设计,RSSD云硬盘性能获得极大的提升,延时得到很大程度的降低。

  除此之外,云盘也要充分考虑数据可靠性和备份,备份有两个衡量因素RPO和RTO。做备份时既不能影响云盘的读写性能,并且操作要足够简单。因此我们推出了数据方舟,通过异构解耦的实现方式,?影响源主机,且运维过程依赖小,通过分布式计算和分布式存储技术来保证1TB数据盘的恢复时间(RTO)在10-30分钟内完成,而以前需要7-8小时。

  UCloud技术总监罗成对通过回顾UDB的发展历程和用户的变革诉求,阐述了UDB演进中的“变与不变”。首先,UDB在过去六年的发展基本遵循着如下路径:

  1.首先,紧跟开源社区步伐。2013 年,UDB 从最流行的开源数据库 MySQL 起步,首先推出了 MySQL 实例,2014 年在国内首推了 MongoDB 云服务,2016 年推出 PostgreSQL。从最权威的 DB Engine 排名来看, UCloud 的数据库产品UDB和UMem覆盖了 TOP 级的类型。

  2.从产品角度来看,UDB 产品逐渐从早期的资源型交付,转为增值型交付。资源型交付可以简单理解为“我购买的 UDB 是怎么样的资源”,包括版本与机型、稳定可靠、高性能、高可用、安全性、隔离等。增值型交付则可以理解为“自带 DBA”,它是面向场景化的多面手,应对在使用过程中场景化的需求,比如灾备、扩容、迁移、调优等。从 UDB 产品的发展历程来看,现在越来越多的产品是在提供增值型的特性交付。

  3.从开源到自研。经过自研能力的积累和沉淀,在 2016 年,UCloud 推出了自研分布式 UDB(即 UDDB),宣告 UCloud 在自研方面开花结果。

  针对成长型业务具备的业务优先但稳定性变未知、业务弹性但数据库不弹性、规模上量但运维效率跟不上的共性痛点和需求,UCloud 采用高可用性、高性能、高可靠性方案来解决。在高可用性方面, UDB团队采用更朴素的漂移 VIP+DB 双主的实现,在数据链路上减少一次转发,消除一个潜在性能瓶颈,并且简化控制模块,减少不可控因素。在高性能上,UDB通过动态扩展来实现,比如主从、读写分离,性能等方面可以进行线性加速的。罗成对透露,最新一次针对 MySQL 的性能优化后,在通用的场景下,QPS 提高到了 7.27 万,TPS 提高到了 3.6k,相比之前有 32% 的性能提升。至于高可靠,UDB一直保持极好的扩展性,这是对成长型业务最有利的保障。

  关于UDB高性能高可用的具体实践上,罗成对重点介绍了三个场景。第一个是All-in-one优化,用户业务快速发展而架构上存在绑定,应用太多用量上去太快导致硬件跟不上。对此的解法是做一主多从的升级,通过多级联克服连接瓶颈。并做了差异化的调优,通过差异化的自适应调整来维持自适应的高峰。第二个是抢红包,通过UDDB使业务高峰的运行没有任何问题,QPS达到35万以上。并且还提供了秒级的差异化监控,包括队列、CPU、内存使用情况等。第三个是618/双11等促销电商活动,UDB提供自动化巡检、独享型实例数据库专区、定制化秒级监控、差异化告警等全方位的解决方案。

  从去年开始,国家对IPv6网络技术普及的发力,开始对各行各业提出诸多了要求,对UCloud而言,例如很多游戏客户陆续的会有接入IPV6的需求,因此在2018年底UCloud推出了NAT64转换产品,用户可以不用修改业务就可以将IPv6的客户端接入,目前已在北上广三地部署,洛杉矶等海外节点也即将上线,主要为了解决无法拿到源地址的问题,后端不需改造就可将IPv6流量引入。Q3季度预计还将推出原生支持IPv6的VPC产品,为每个子网分配IPv6地址段,支持自动化分配地址、自动创建等。

  UCloud高级技术总监徐亮首先介绍了上述三种IPv6外网接入的产品方案。这三个方案的IPv6实现原理如下:

  1.NAT64模块是通过3.2T可编程交换机实现,它允许自行编写P4语言的代码,从而能做带宽控制的功能以及基本的DDOS IN防护。同时攻击流量在NAT64的Access上被限制掉,就不会影响后端NAT服务器的稳定性。NAT64通过P4l实现了一致性哈希的负载均衡模块,将流量灵活转给后端。还支持会话管理,记录TCP连接对应分配的IPv4源地址和源端口号。

  2.ULB7支持IPv6的架构也是用3.2T可编程交换机去完成的,把带宽控制的功能放到了边界路由器UVER 2.0上,还实现了overlay隧道的功能,外网的Internet流量进来,经过UVER2.0交换机之后它就会变成一个overlay隧道,然后通过内网传输。另外还加了一个通用的ClusterGW模块,它同样是3.2T可编程交换机,但它采用的是通用的一致性哈希算法,可认为是三层负载均衡的设备。

  3.VPC在支持IPv6则做到了极简,报文进来经UVER后,无需再经NAT等设备,可以直接送到宿主机,在宿主机OVS里实现了分布式防火墙。因此架构的整体性能很高,单机10G/25G都没有问题。此外由于共享带宽的所有IP都经过同一台可编程交换机,从而做到更稳定更精确的共享带宽控制。

  在具体的IPv6外网接入实现上,UCloud大量使用了可编程交换机,和传统的DPDK相比具有明显的性能优势,比如NAT64的单机性能可以达到25G的BPS 、6.4M的PPS、20万的CPS和40M的并发连接数。另外,UVER2.0的灰度发布实现,是通过一个SET的3台交换机通过BGP宣告实现1主2备,停掉?台灰度交换机的BGP宣告,如果需要升级新版本,就进行轮流升级直到全部灰度SET都升级到新版本,同时切换?部分EIP到灰度SET,切换时持续检查迁移EIP的探测结果保持不变,直到流量全部切换到灰度SET。通过这种方式可以很平滑的把数据升级完成,且对用户没有影响。

  “总的来说,整个IPv6的设计里面,考虑最关键的点还是高可用,即能够为用户提供稳定可靠的业务,其次我们考虑的是可拓展性,采用可编程交换机之后,在很长时间内性能都不是问题。”徐亮总结。

  关于Anycast的定义,UCloud产品总监冯业浩介绍到:“Anycast就是一组服务器对外宣称同一IP地址,用户在访问IP地址时将流量给到其中的某一台服务器节点并得到处理,所以从客户端来看Anycast是一个IP地址,但是从server端来看它其实是分布在全球各地的一组服务器。”Anycast逐渐发展成为全球视角下一个非常重要的基础设施产品.

  接下来冯业浩介绍了UCloud AnycastEIP是如何帮助用户实现全球服务加速和DDoS全球分布式清洗:

  1.在全球加速方面,UCloud在全球七个边缘节点进行了相应EIP的宣告,用户流量可以就近接入,而且传输中大多数路径由内网专线承担,因此可以降低公网传输过程中抖动和延迟的影响,获得明显的加速效果。相比原先通过DNS切换的方案,消灭了切换时间,尤其适合全球服游戏等需要实时处理的场景。

  2.在DDoS分布式清洗方面,UCloud通过全球七个边缘节点,将攻击流量分成七份,在边缘节点分别清洗之后,将正常流量通过回源,给到就近服务节点,每一个节点都拥有高达240G的DDoS清洗能力。相对于传统的单点清洗,AnycastEIP形成了集团军式的全面清洗方式,回源质量也更有保证。

  在网络架构上,AnycastEIP将全球多节点逻辑上组成一张网,其下有多种网元构成。WBR(WAN Border Router)组成IBN网络,WER(WAN Edge Router)组成WBN网络,IBN网络提供机房的出口容灾,当机房的某ISP出现问题时,会通过IBN将所有出向流量送到周边节点,周边节点将流量纳入自己的WBR。WBN提供UCloud内部的公网加速,Anycast互访可通过WBN直接实现,从而保证访问的低延迟。做高可用设计时,AnycastEIP有多个广播点,如果其中一个输入口发生问题,相关的流量将有BGP协议迅速收敛到其他的节点。同时,AnycastEIP支持多个地域的资源绑定和健康检查,如果健康检查发现某个后端服务节点有问题,就会将这个节点从服务器剔除,从而保证业务高可用。

  最后,冯业浩还补充说到Anycast目前存在的两个困扰,一个是次优化问题,由于公网环境异常复杂,Anycast大部分情况下带来的都是优化,少数情况下也可能带来恶化;另外一个是单向加速的问题,即入向走UCloud专线,出向仍然走的是公网,因此只能带来单向的加速效果。针对这两个问题,AnycastEIP后续将推出Global ULB和Global PathX两个产品,通过绑定全球地域下所有的后端节点,不需要选择加速区域和被加速区域,从而摆脱地域限制,以解决单向加速问题。

本文链接:http://frankstella.net/fenbushisuanfa/466.html