「独具匠心」哪有什么一夜成名?其实全是百炼成钢

从去年11月份到今年春节前后,华为存储研发骨干曹长斌几乎每天都夜不能寐,因为他参与的OceanStor新一代智能分布式存储研发项目遇到各种棘手难题。那段时间,他甚至连吃饭、跑步都会想着如何解决研发面临的问题。

OceanStor D系列智能分布式存储是华为存储近年来最重要的战略级产品。它不仅是华为存储产品线的一次重大升级,也承载着华为面向智能时代打造海量多样性数据底座的愿景。

时光荏苒,时钟不经意间来到 5 月 15 日。这一天,华为 OceanStor D 系列新一代智能分布式存储产品正式对外发布。此刻,曹长斌如释重负,连续奋战多日带来的疲惫并不能掩盖住激动之情:“如果需要打分,我愿意给它打十分,它不仅在整体架构、性能、功能等方面遥遥领先,更是华为存储研发以客户需求为中心,通过全球化协作、率先克服业界众多挑战而打造出来的产品。”

OceanStor D 系列实现了分布式存储性能全球第一,单节点性能高达 16.8 万 IOPS 和 1 毫秒以内时延,在业界标准 SPC-1 测试中排名第一;首次实现在一套存储中同时支持块、文件、对象、HDFS 协议;并且,率先将人工智能技术融入到存储全生命周期管理。

在这一系列靓丽数字的背后,其实是华为北京、上海、深圳、成都、波士顿、硅谷等地的跨地域研发团队紧密协作,先后进行了近十个版本的迭代,反复打磨、优化的成果。

简而不减

“客户经常跟我们的架构师们反馈,存储真的太复杂了。”身为研发的曹长斌会定期与架构师交流。华为存储架构师们每年会花费30%的时间与一线客户进行交流,从而将一线业务需求尽可能地反馈给研发人员,进而精准研发出符合客户需求的产品和解决方案。

存储的复杂性是一直困扰着用户的数据中心,这种复杂性主要体现为,经过长期的信息化建设,用户数据中心普遍面临着多种类型的存储,生产、备份、容灾通常采用了不同厂商的不同存储产品,烟囱式的存储环境带来了巨大的管理复杂度,还无法让数据之间很好地流动、共享和价值挖掘。

曹长斌以电信行业为例:“IoT、4K/8K、AR/VR 等新业务不断涌现,充满着不确定性,传统存储产品很难去满足新业务从小到大的成长,用户们希望更简单的存储架构,来灵活支撑多样性业务的发展。”

事实上,OceanStor D 系列研发之前,华为已经对产品酝酿了很久。最终,华为将它定位为一个战略级的平台产品,在保持分布式存储的灵活性和高扩展性之时,可以长出其他丰富的功能,包括块、文件、对象、大数据,支撑企业数据湖构建。

打通性能的任督二脉

分布式存储最大的优势在于灵活性,但性能也很容易遇到瓶颈。特别是随着节点数量的增加,性能达到一定量级之后,往往会因为硬件、网络等原因,各种意想不到的“瓶颈”接踵而至。因此,单节点稳定性、性能是考验分布式存储成色的重要因素。

在曹长斌看来,性能问题是研发过程中遇到的最大挑战之一。“从立项设计时,我们就希望 OceanStor D系列能够达到企业级全闪存阵列的性能,单节点性能能够达到 14 万 IOPS,并且时延控制在 1 毫秒之内。研发团队为此做了很多预研究的工作,但落地时还是遇到了巨大的挑战。”曹长斌所言的挑战即是性能波动问题。

分布式存储节点的性能波动浮动范围大且不稳定,从而给整个分布式存储性能提升带来瓶颈。单节点性能达到 10 万 IOPS 之后,性能始终上不去。令研发团队更加头疼的是,产生性能波动的“隐形瓶颈”很多,需要研发人员去逐个发现和解决,整个性能波动问题的解决前前后后花了4个月时间,几乎每天都讨论和研究到凌晨2、3点。

此时,华为强大的跨领域研发能力起到了关键作用。当项目组一筹莫展时,全球研发体系中的操作系统专家、网络专家和芯片专家,加入了队伍并肩作战,从不同的角度去探索性能波动的问题所在。“我们首先发现中断分配不均的问题,有些服务器中断过度,使得服务器性能发挥不出来。因此,经过多个方案探索之后,实现了中断均摊化,将单节点性能提升了 20%。解决这个优化点之后,研发团队再从业务干扰、软件堆栈、分布式锁等方面进行优化,最终达到了最初设计的性能目标。”

经过华为研发团队优化、落地、再优化的螺旋上升式的改进,最终打通了性能的任督二脉,对于服务器硬件、网络等方面的控制越来越精准,实现了非鲲鹏节点 14 万IOPS、鲲鹏节点 16.8 万 IOPS 的稳定性能。

铸就数据可靠的生命线

在性能不断提升的同时,研发团队还面临另一个大挑战:在高性能、大并发的数据读写情况下如何保持数据一致性。

一直以来,数据可靠和一致是存储产品的生命线。“在存储产品中,数据一致是核心中的核心。如果写进去的数据和读出来的数据不一样,那将对用户的业务产生巨大影响。”曹长斌表示。与传统存储不同,分布式存储产品必须采用不一样的实现数据可靠和一致的方法。并且随着集群节点的不断扩展,分布式存储系统的复杂性随之提高,对于数据一致性也带来更大的挑战。

在性能调优期间,团队就遇到了较多数据不一致的情况。“当时为了提升性能,有些数据不一定马上写到盘中,而是写入内存,之前一些并发机制导致了老数据把新数据覆盖了,出现数据不一致的情况。”曹长斌回忆到。

经过将近一个月时间的反复讨论,波士顿团队提出了一套新的日志机制与工具来解决数据不一致难题。“通过新的日志机制,在数据访问入口和数据落盘前的出口,进行关键信息的打印,加上 CRC 校验,来发现和解决数据不一致性的问题。”曹长斌表示,“通过对 IO 通道从头到尾的追踪,可以具体定位到整个 IO 通道哪个模块、具体模块中哪个具体函数导致的数据不一致,层层推进来解决问题。

最终,团队完成上千个节点等不同场景下的数据不一致情况的检验,解决了将近 30 个业务 IO 异常的问题,完美地铸就了OceanStor D系列分布式存储强大的生命线。

性能与成本兼得之道

海量数据成为常态,分布式存储的数据可用性也变得至关重要。分布式存储中的冗余功能可以提升数据可靠性和存储系统的可用性。通常,业界采用数据复制或者纠删码功能来实现数据冗余。相比于数据复制对存储空间的巨大消耗,纠删码技术可以在更小的存储空间实现更优的容错和安全性,但是对于存储系统的性能也有着较大影响。因此,分布式存储中的纠删码功能如何做到存储空间利用率与性能二者兼得就成为业界的难题。如何在保证数据可靠性和性能的前提下,减少数据冗余,成为了分布式存储降成本的关键技术。

数据爆炸增长,“存不下”的问题日益凸显,影响“存不下”一个很大的原因,就是成本。业界采用多副本或者纠删码功能(Erasure Code,简称EC)来实现数据冗余,如何在保证数据可靠性和性能的前提下,减少数据冗余,成为了分布式存储降成本的关键技术。

“EC 功能有两大难题,一个是打开功能之后对主机性能的影响,有些存储产品在该项功能打开之后对主机性能影响可以达到 30% 左右;另外一个就是,如何做到大比例的 EC。”曹长斌表示。为此,华为存储研发团队设计出多套模型和备选方案来降低EC功能对主机性能的影响,经过多次验证之后,弹性 EC 功能实现了性能和容量的完美平衡。

“在高并发和高负载的情况下,弹性 EC 功能通过 IO 聚合,并利用存储盘的特质,将随机读写改成顺序读写,来解决性能问题。另外,对于大比例 EC,我们采用了追加写的方式,这意味着修改某个数据时,不需要读老数据和校验,从而大幅降低对性能的影响。”

冰冻三尺非一日之寒

“我们希望在 OceanStor D 系列中做出业界竞争对手没有的东西,形成自己的差异化优势。”作为华为存储研发的一名老兵,曹长斌见证和参与了 OceanStor D 系列分布式存储从 1.0 到 8.0 的全过程。

众所周知,存储是一个技术门槛较高、相对封闭的领域,国外存储巨头常年处于领先的位置,中国本土存储品牌多年以来一直处于跟随者的角色。曹长斌对此深有感触:“在过去,竞争对手做什么,我们就跟着做什么,采用的是‘Me too,But cheaper’的策略;之后随着自身不断成长,在技术层面迎头赶上,则变成了‘Me too,But Better’。现在则是去寻求开发出别人没有的功能和技术,确定自身的差异化优势。”

OceanStor 分布式存储基于华为在企业存储领域十多年企业级可靠性和性能的积累,融入了华为公有云在海量扩展能力、数据缩减能力方面的领先技术打造而成。“放眼全球,既做公有云、也做企业存储、同时还提供自研芯片的分布式存储厂商,仅此一家”曹长斌自豪地说,“我们有什么理由不好好做、不做好?”

「独具匠心」哪有什么一夜成名?其实全是百炼成钢

研发团队挑灯夜战

写在最后

华为OceanStor D系列分布式存储诞生于2012年,源自于华为公司内部大量数据库一体机替代的这个想法。一路走来,从1.0成长到8.0,这是华为存储人坚持不懈和精益求精的精神,也是华为存储人解决一个个业界难题、逐步实现当初想法的过程,更是中国分布式存储的从无到有、从弱到强的真实写照。

未来,随着5G、物联网、人工智能等应用的兴起,一个更加丰富、更加智能的新数据时代也将到来。华为OceanStor D系列分布式存储不仅让海量多样性数据底座的愿景在新数据时代走向落地,也将开启华为智能数据与存储战略崭新的一页。


分享到:


相關文章: