从去年11月份到今年春节前后,华为存储研发骨干曹长斌几乎每天都夜不能寐,因为他参与的FusionStorage 8.0 研发项目遇到各种棘手难题。那段时间,曹长斌甚至连吃饭、跑步都会想着如何解决研发面临的问题。
FusionStorage 8.0是华为存储近年来最重要的战略级产品。它不仅是华为存储产品线的一次重大升级,也承载着帮助用户实现One Data Center One Storage(一个数据中心,一套存储)的愿景。
时光荏苒,时钟不经意间已来到5月15日。这一天,华为新一代智能分布式存储产品FusionStorage 8.0正式对外发布。此刻,曹长斌如释重负,连续奋战多日带来的疲惫并不能掩盖住激动之情:“如果需要打分,我愿意给FusionStorage 8.0打十分,它不仅在整体架构、性能、功能等方面遥遥领先,更是华为存储研发以客户需求为中心,通过全球化协作、率先克服业界众多挑战而打造出来的产品。”
FusionStorage 8.0实现了分布式存储性能全球第一,单节点性能高端16.8万 IOPS和1毫秒以内时延,在业界标准SPC-1测试中排名第一;首次实现在一套存储中同时支持块、文件、对象、HDFS协议;并且,率先将人工智能技术融入到存储全生命周期管理。
在这一系列靓丽数字的背后,其实是华为北京、上海、深圳、程度、波士顿、硅谷等地的研发团队在较短时间内,设计出一套全新的存储架构,进行了数千万行代码开发与移植,并先后进行了近十个版本的迭代,反复打磨、优化的成果。
简而不减
“客户经常跟我们的架构师们反馈,存储真的太复杂了。”身为研发的曹长斌会定期与架构师交流,他介绍到,华为存储架构师们每年会花费30%的时间与一线客户进行交流,从而将一线业务需求尽可能地反馈给研发人员,进而精准研发出符合客户需求的产品和解决方案。
存储的复杂性是一直困扰着用户的数据中心,这种复杂性主要体为,经过长期的信息化建设,用户数据中心普遍面临着多种类型的存储,生产、备份、容灾通常采用了不同厂商的不同存储产品,烟囱式的存储环境带来了巨大的管理复杂度,还无法让数据之间很好地流动、共享和价值挖掘。曹长斌表示:“客户希望更加聚焦在核心业务创新上,强烈渴望数据能够流动起来,通过一套存储来支撑数据中心业务,实现数据之间的生产、流动、共享和价值挖掘。”
另一方面,大量行业客户都在加快数字化转型的步伐,对于基于数据的数字化创新和业务敏捷性更加渴求,这也要求承载数据的存储产品,除了需要简化管理复杂度之外,还需要的性能、扩展性、功能、智能化等方面有着质的提升。
曹长斌以电信行业为例:“4K/8K、AR/VR等新业务不断涌现,并且充满着不确定性,传统存储产品很难去满足新业务从小到大的成长,用户们希望不花费更多精力在存储运维上,通过一套存储来支撑业务的变化。”
事实上,FusionStorage 8.0研发之前,华为已经对产品酝酿了很久。最终,华为将FusionStorage 8.0定位为一个战略级的平台产品,在保持分布式存储的灵活性和高扩展性之时,可以长出其他丰富的功能,包括文件系统、数据库、数据分析、数据湖等。用户可以通过FusionStorage 8.0来构建起自身的智能数据基础设施,以满足智能时代下对于数据存储、管理、分析的诉求。
打通性能的任督二脉
分布式存储最大的优势在于灵活性,可以帮助用户摆脱昂贵的高端硬件,通过普通的服务器即可为用户提供灵活、可扩展的存储服务。但分布式存储的性能通常很容易遇到瓶颈,与传统存储采用“专用堆栈”优化性能相比,分布式存储随着节点数量的增加,性能达到一定量级之后,往往会因为硬件、网络等原因,遇到各种意想不到的“瓶颈”。因此,分布式存储单节点稳定、出色的性能是考验分布式存储成色的重要因素。
在曹长斌看来,性能问题是FusionStorage 8.0研发过程中遇到的最大挑战之一。“从立项设计时,我们就希望FusionStorage 8.0能够达到企业级全闪存阵列的性能,单节点性能能够达到14万IOPS,并且时延控制在1毫秒之内,可以承载企业级关键应用。研发团队为此做了很多预研究的工作。但是在实际研发过程中,的确是遇到了巨大的挑战。”曹长斌所言的挑战即是性能波动问题,分布式存储节点的性能波动浮动范围大且不稳定,从而给整个分布式存储性能提升带来瓶颈。
FusionStorage 8.0在开发之初,单节点性能达到10万IOPS之后,性能始终上不去。令研发团队更加头疼的是,产生性能波动的“隐形瓶颈”很多,需要研发人员去逐个发现和解决。曹长斌表示:“整个性能波动问题的解决前前后后花了4个月时间,几乎每天都讨论和研究到凌晨2、3点。”
图:华为存储研发团队探讨研发中遇到的挑战
为此,在这段时间里,华为存储研发团队联系了华为全球研发体系中的操作系统调度专家、网络专家等,从不同的角度去探索性能波动的问题所在。“我们首先发现中断分配不均的问题,有些服务器中断过度,使得服务器性能发挥不出来。因此,经过多个方案探索之后,实现了中断均摊化,将单节点性能提升了20%。解决这个优化点之后,研发团队再从业务干扰、软件堆栈、分布式锁等方面进行优化,最终达到了最初设计的性能目标。”
经过华为研发团队优化、落地、再优化的螺旋上升式的改进,FusionStorage 8.0打通了性能的任督二脉,对于服务器硬件、网络等方面的控制越来越精准,实现了非ARM节点14万IOPS、ARM节点16.8万IOPS的稳定性能。
铸就强大的存储生命线
随着FusionStorage 8.0性能不断提升,华为存储研发团队又遇到了一个大挑战:在高性能、大并发的数据读写情况下如何保持数据一致性。
一直以来,确保数据可靠和一致是存储产品的生命线。“在存储产品中,数据一致是核心中的核心。如果写进去的数据和读出来的数据不一样,那将对用户的业务产生巨大影响。”曹长斌表示。与传统存储不同,分布式存储产品由于采用了普通的服务器硬件,必须采用不一样的实现数据可靠和一致的方法;并且随着集群节点的不断扩展,分布式存储系统的复杂性随之提高,对于数据一致性也带来更大的挑战。
在FusionStorage 8.0的性能调优期间,华为存储研发团队就遇到了较多数据不一致的情况。“当时为了提升性能,有些数据不一定马上写到盘中,而是写入内存,之前一些并发机制导致了老数据把新数据覆盖了,出现数据不一致的情况。”经过将近一个月时间的反复研究,华为存储研发团队决定设计和开发出一套新的日志机制与工具来解决数据不一致难题。“通过新的日志机制,在数据访问入口和数据落盘前的出口,进行关键信息的打印,加上CRC校验,来发现和解决数据不一致性的问题。”曹长斌表示,“通过对IO通道从头到尾的追踪,可以具体定位到整个IO通道哪个模块、具体模块中哪个具体函数导致的数据不一致,层层推进来解决问题。”
在解决数据不一致性的过程中,华为存储研发团队面临最大的困难就是:在高性能、大并发的读写数据中去寻找哪个IO导致的数据不一致。“数据不一致之所以是存储业界最难最大的挑战,就是因为存在巨大的不确定性。在海量数据中去追踪和查看IO异常,就像是大海捞针。”曹长斌回忆当时的场景依然历历在目,“整个团队在那段时间经常需要倒班,以跨夜、跨周的方式去跟踪和查看一个IO异常。”
最终,华为存储研发团队完成FusionStorage 8.0在上百个节点、几百个节点、上千个节点等不同场景下的数据不一致情况的检验,解决了将近30个业务IO异常的问题,完美地铸就了FusionStorage 8.0强大的生命线。
功能与性能的完美平衡
当解决好FusionStorage 8.0性能、数据一致性等挑战的同时,华为存储研发团队又聚焦到如何解决性能与功能的平衡难题上。如果用一个比喻来形容性能与功能之间的关系,那么鱼和熊掌不可兼得就是最真实的写照。比如,重复数据删除和压缩功能已经诞生多时,但是业界依然没有在分布式存储上对重删压缩功能与存储性能之间做好平衡。
“重删压缩功能其实是IO通道上的一个动作,对于存储性能影响很大。像在线重删,对于分布式存储的性能要求很高,而离线重删则对存储产品中的存储介质寿命有着影响。”曹长斌表示。
为此,华为存储研发团队在FusionStorage 8.0中研发出一项在线和离线自适应的重删压缩功能,根据存储系统的CPU、内存、存储介质等资源状况,通过加权算法来实现重删功能的自适应调整。“团队在开发这套加权算法时前后花费了将近两个月时间,通过反复的理论推导和调整,让FusionStorage 8.0的重删压缩功能可以与性能之间完美平衡。”据悉,在高负载情况下,业界的重删压缩功能打开对性能影响可达到30%-50%;而FusionStorage 8.0重删压缩功能的自适应机制则可以将对主机性能的影响降到15%以内,一旦达到15%就自动切换到后端重删。
在海量数据成为常态的情况下,分布式存储的数据可用性也变得至关重要。分布式存储中的冗余功能可以提升数据可靠性和存储系统的可用性。通常,业界采用数据复制或者纠删码功能(Erasure Code,简称EC)来实现数据冗余。相比于数据复制对存储空间的巨大消耗,纠删码技术可以在更小的存储空间实现更优的容错和安全性,但是对于存储系统的性能也有着较大影响。因此,分布式存储中的纠删码功能如何做到存储空间利用率与性能二者兼得就成为业界的难题。
“EC功能有两大难题,一个是打开功能之后对主机性能的影响,有些存储产品在该项功能打开之后对主机性能影响可以达到30%左右;另外一个就是,如何做到大比例的EC。”曹长斌表示。为此,华为存储研发团队设计出多套模型和备选方案来降低EC功能对主机性能的影响,经过多次验证之后,华为智能增强EC功能实现了性能和容量的完美平衡。
“在高并发和高负载的情况下,智能增强EC功能通过IO聚合,并利用存储盘的特质,将随机读写改成顺序读写,来解决性能问题。另外,对于大比例EC,我们采用了追加写的方式,这意味着修改某个数据时,不需要读老数据和校验,从而大幅降低对性能的影响。”
让存储智能起来
存储多年以来一直被人所诟病的就是复杂性,容量怎么规划和分配、QoS优先级如何划分、资源利用情况如何、何时进行扩容、故障如何发现和处理等等,这一系列问题会牵扯到用户大量的精力和时间。如何让存储智能起来,这是存储未来的发展趋势,也是FusionStorage 8.0正在全力前进的方向。
存储智能化是智能时代下用户的必然诉求。为此,华为率先在FusionStorage 8.0中将人工智能技术融入到存储全生命周期管理,从资源规划、业务发放、系统调优、风险预测、故障定位等方面实现智能运维管理。
根据华为介绍,FusionStorage 8.0在存储资源规划方面可以对性能容量趋势进行60天预判;还拥有超过1000个应用模板,实现一键式的资源发放;并且可以进行个性化调优,100%满足SLA诉求;超过2000个故障模式库,93%的问题发现即可给出方案。
事实上,存储是一个利用人工智能技术非常理想的环境,拥有丰富的状态数据和信息,以及固定的业务场景,很容易形成收集状态数据、机器学习和训练、预测预报、智能决策的闭环,通过不断的学习和训练,让存储的运维和管理愈发智能。
FusionStorage 8.0在智能化方面的突破还在于采用云上训练+本地训练的方式,云上拥有超过2PB的特征数据和1000个场景,通过云上和云下结合和协同,可以实现本地的增强训练和提升个性化体验。
让数据永存
“我们在新产品中需要尽一切可能防治数据丢失,进一步提升数据可靠性。”2018年一系列具有深远意义的数据丢失事件,促使华为存储高层对于数据安全性和可靠性提出的极高要求。
事实上,在数字化时代下,数据已经成为事实上的一种生产资料,数据正在成为企业与组织机构赖以生存的基础资源。并且,相比于信息化时代,用户在数字化时代下需要面临的数据类型更加丰富、应用场景更加复杂化。比如,物联网应用场景开始逐渐丰富,业务与云之间的联系日渐频繁,这也导致数据丢失的潜在因素正在变多。
为此,华为的思路在于针对各种数据丢失时间的原因和背景进行深入分析,并且提炼和总结出相应的场景可靠性方案,从根源上提供数据防丢失的保障。但是,新问题又出现了:如何在保存可靠性校验的有限空间中容纳这些场景的可靠性方案。
“这的确是一个非常具有挑战性的难题。华为在FusionStorage 8.0中已经包含了能够支撑30多种数据丢失场景的可靠性方案,但是可靠性校验的空间只有64个字节。要充分利用64个字节去容纳30多个场景的预防方案,极具难度。”曹长斌如是说。整个过程就犹如一场精确无比的手术,研发人员将每一个预防方案“植入”到极为可靠性交易空间中,精确到每个比特位。
更加难得的是,数据丢失场景并不是一次性收集完,它是一个持续增加的过程,研发团队在可靠性校验空间中每增加一个预防方案都需要在确保方案可行的前提下,尽可能地节省空间。曹长斌直言:“这是一个无比精细化的处理过程。前前后后调整四、五次之后,整个数据防丢失的预防方案实现了完美存储到可靠性校验空间中。”
从跟随到差异化
“我们希望在FusionStorage 8.0中做出业界竞争对手没有的东西,形成自己的差异化优势。”作为华为存储研发的一名老兵,曹长斌见证和参与了FusionStorage从1.0到8.0的全过程。
众所周知,存储是一个技术门槛较高、相对封闭的领域,国外存储巨头常年处于领先的位置,中国本土存储品牌多年以来一直处于跟随者的角色。曹长斌对此深有感触:“在过去,竞争对手做什么,我们就跟着做什么,采用的是‘Me too,But cheaper’的策略;之后随着自身不断成长,在技术层面迎头赶上,则变成了‘Me too,But Better’。现在则是去寻求开发出别人没有的功能和技术,确定自身的差异化优势。”
事实上,在FusionStorage 8.0中已经拥有众多差异化的优势。比如,新一代存储介质SCM(Storage Class Memory,存储级内存),被认为是填补内存和闪存之间的性能差异的理想介质,它不仅比闪存拥有更加出色的性能和更低的时延,还拥有比内存更大的容量。而业界当前鲜有存储厂商能够充分将SCM融入到存储产品解决方案之中,大部分还是浅尝而止的起步阶段。
“FusionStorage 8.0在SCM的使用上是走在最前沿的。尤其是针对新介质带来的新的读写方式变化,华为存储充分理解了SCM介质自身的理念、架构和特点,采用了字节级写的设计,减少了不需要的外读写操作,最大化发挥SCM的优点。”
除此之外,华为在容灾、备份一体化方案方面进行了创新,并且利用自身在通信网络领域的深厚积累,构建存储+智能AI网络的一体化解决方案,大幅提升自身的竞争力。
“FusionStorage 8.0的成功研发,背后是整个公司倾注的大量心血,不仅仅是公司的成就,也是对包括我在内的广发研发团队成员个人能力的提升。为此,我感到无比骄傲。”曹长斌最后表示道。
写在最后
华为FusionStorage诞生于2012年,源自于“用普通服务器硬件去构建出企业级存储系统”这个想法。一路走来,FusionStorage从1.0成长到8.0,是华为存储人坚持不懈和精益求精的精神,也是华为存储人解决一个个业界难题、逐步实现当初想法的过程,更是中国分布式存储的从无到有、从弱到强的真实写照。
未来,随着5G、物联网、人工智能等应用的兴起,一个更加丰富、更加智能的新数据时代也将到来。华为FusionStorage 8.0不仅让One Data Center One Storage(一个数据中心,一套存储)愿景在新数据时代走向落地,也将开启华为智能数据战略崭新的一页。