OSS 100Gbps/租户技术解读
内容介绍:
一、OSS 100Gbps/租户技术概况
二、后端性能保障
三、网络接入优化
四、最后一公里
五、总结与展望
本次分享的主题是OSS 100Gbps/租户技术解读,由阿里云弹性智能集团资深技术专家罗庆超分享。
一、OSS 100Gbps/租户技术概况
2023年,在云栖大会发布了100Gbps每租户在每个地域的性能规格,可让270g的模型文件用时21秒下载完,让客户享受OSS性能好处。2023年3月从第一个地域——北京开始,每半年一次更新,支持更多区域,国内已有4个大区支持,海外也会尽快支持。其中有好多工作,也有技术难度,接下来会从三个方面来介绍工作。第一,要做好100Gbps,必须在后端存储池构建一个很好的性能保障机制。第二,性能要发挥,通过网络让ECS或者云服务访问,网络通道如何构建也是一个关键点。第三,即使把路修到ECS,最后一公里怎么用起来也很关键。
二、后端性能保障
首先,难点,做性能提升会带来成本增加。介质的密度增加造成性能的下降,怎么优化是最有挑战性的一点。要提高后端的性能,就要准备更多的资源,以及网络带宽的增加,会增加通路上网络设备、流量、带宽的需求,这也是成本的消耗。第三端多了更多的带宽和LPNOPS,需要更多的计算处理能力,背后全都是要更多的钱来支撑。图中蓝色的是硬盘部分,个人要构建1TB的存储空间,不考虑冗余, 20T的盘只需要50块就可以做到容量。实际上按照单盘提供的100LPS, 100兆的能力,1TB的空间则只能提供5000LPS和5GB的能力。到对象存储业务时,有IO放大会更少的,上述是常规推断。硬盘厂家有一个冷知识,要保证硬盘在规定的AF级故障率下,最好做到每年读写的数据量大概是500TB平均是每秒18.3MB的带宽,则50块盘总带宽为915MB/s,不到实际小bps的能力。在云上,当存储数据很小时如100G在是自建数据中心得不到的,可以靠云的资源池来解决,这实际是多租户带来的破风效应。云厂家本质上还是要做优化来保证更大限度地发挥盘的能力。
最关键的一点是构建好大规模性能模型。性能模型从两个端口逼近,一是从用户的性能画像,即用户的读写、IO请求、删除特征等参数帮你评估你的需求。另一个是从后端分布式系统,按需求特点达到什么样的性能规格做一个集群,该集群按照该需求模型能达到多少能力。二者匹配就可做出性能模型,这是支撑后端性能保障的关键。
有模型后,关键是根据模型找出的一些关键参数以及在此模型不断积累参数的数据。数据再和性能模型匹配、迭代、优化,把性能数据和模型达到贴近。这样就可支撑自身规划、容量预测、性能预测等工作。
接下来是实操的过程中要做的工作。当新开地域要支持100G,建设好性能仓库,首先要做好资源池的建设,即要做好性能的弹性资源池,包括集群对外的端口、网络等,按照需求规划好。然后把高效的数据迁移来满足需求。因为不同的客户有不同性能需求的,即使同一客户,数据在不同生命阶段其性能也不同。所以要快速做好数据调度来满足高性能数据的要求,后端保障的核心就是根据前面的模型和数据构建好池子,保证其性价比。
三、网络接入优化
接下来是解决网络接入,相当于农村致富一样,要修条路把货物运出去。首先就是建设好高速公路的入口,要把入口拓展得足够多。建设两个入口肯定是发挥不出来后端性能的,所以扩宽网络库的入口。核心就是接收网络平台这些前端机器。针对网络不断地演进,从10到100G的时候,优化软件再把网络的能力给发挥出来。第二,要做到快速扩缩容。如果只是快速地扩容,那客户业务会有很强的波谷特征,白天可能需求很高,晚上的需求就没有那么高,机器就闲置在那儿了。所以快速扩缩容能力是关键的保证性价比的点。
接下来沟通好路口就要把路打通,打通往各个地方的物流通道。因为OSS是region级的服务,不对外暴露AZ信息。而ECS或者云服务访问OSS时,可能来自不同AZ,不同AZ要定义多少的带宽是我们很重要的一个工作。为满足既降低带宽又优化成本,在计算尽量就近部署,计算、访问、存储时,在同一个AZ既能够降低时延,又能够减少成本、提高性能。上述是高优先级的一个工作。第二,做跨AZ的访问能力。因为必然会存在跨AZ的访问的场景。这时候就要做好网络规划的联动,合理地利用网络定好得多产品的复用网络,来降低传输成本。
四、最后一公里
以上建设完成后,在ECS机器上最后一公里打通是最关键的工作。第一个优化是客户端SDK。以前因为后端慢,前端工具不用太快也无用。但现在后面提高了十倍,前面的最后一公里必须加速。先把OSS、SDK性能提高,老版本的SDK存在一些问题。例如在支撑AI场景上,经常反馈的性能不够,特别是加载大文件的时候。设计时为了快速迭代,用同步模型。后端带宽不大,就没有特别去优化。针对以上新版本有三方面的优化。一是大开发的能力,读的时候可以提高性能。二是对预取的设置。三是异步IO模型。充分地把CPU的能力给发挥出来。通过在已购的SDK上面的性能提升了30-50倍,在AI上结合起来做的优化。把端上用SDK的工具,随手拿到就可享受到后端的高性能。
第二是ossfs和ossutil。SDK是结合开发的,ossfs和ossutil基本上开箱即用,下载工具后,可以mountfs, 或者用ossutil拷贝,基本不需要开发。普通人都可以快速地根据指导手册给用起来。以前特别是OSSfs,在主题上要充分把缓存设计起来。缓存是用在本地硬盘的缓存。每次IO都要过硬盘,导致盘的瓶颈比较大。新版本有直读模式,数据读出来后不用缓存,直接返还应用,性能肯定就把本地硬盘的瓶颈消除了,在加载的速度上提升了3.6倍,小文件的list也大幅提升了6倍。这点让开箱即用的用户快速地享受该能力。
第三是UI的工具,连ID都不懂的用户直接打开、下载一个UI工具就可以进行OSS的数据访问。旧版本还是有一些问题的:第一,性能比较差,不稳定,波动比较厉害;第二,资源消耗不可控,随机进程开始跑,闲的时候能多跑一点,忙的时候就没有。如果后端内容较多,就容易出现卡顿、白屏,用户体验差;第三,交互形式不同,操作不方便,这对不太懂IT的人来说理解起来比较困难。新版本做了后端统一的资源池,任务由石化管理。多进程异步的IO模型用统一的交互模式,不仅体验好,性能也比较平稳,资源不可控、白屏的问题也优化了,在大模型下载上做到了十倍的性能提升。
上述都是OSS原生工具,这部分是AI/ML场景的特殊优化。因为AI场景有各家的支持,比如technology的collector,嵌入collector优化性能。我们用的是大地的common库,所以在各种网络、缓存、协议上面都有较多的优化。同时还做了针对AI元数据加速的能力,数据集加载的速度提升了4倍。这是根据场景优化嵌入AI框架的工作,以更好地享受OSS后端的性能。
五、总结与展望
2023年,提出了100Gbps每租户每地域的点,24年,让每一个用户开箱即用的享受能力。核心技术是把后端仓库建好后,就修好高速路口,建设好高速的路。然后最后一公里,我们用更多便捷的工艺帮助客户达成使用代价最小。
未来的挑战也有很多。比如有更多人提出了更多高性能的要求。对象存储大部分是基于SHDD,未来要基于SSD, SSD的性能模拟应该怎么办,还有单AZ和3AZ性能模型不同,中间涉及网络。 3 AZ的容灾也要考虑进去,即一部分挂了,其他还要工作,要做什么样的冗余也有变化。标准类型和归档类型在机型上、在后端的一些功能方面、规格上面还有一些差异,模型是什么样子?最后在应用层面上,用户画像、AI大数据低时延、高带宽的画像和视频监控写入会不会频繁删除不同场景上的画像?针对性的优化工作可以进一步展开的,也是我们要做模型迭代的点。OSS在16年和盘古一起开发的过程是技术螺旋上升的过程。每次做完基础的功能,伴随着稳定性、安全、性价比的提升。当做完一个阶段,功能需求有更多进来,然后又开发新的功能,不断地提升。在提升的过程中,团队的快速迭代能力非常重要。因为当发现线上的稳定性问题安全漏洞的时候,能够快速用版本把之解决,这是一个强大的能力。我们也希望通过螺旋迭代的方式,锤炼我们的技术、团队,为行业的客户打造优质、高效、好用、性价比高的对象存储产品。