存储 频道

大容量时代如何保障0.5ms低时延?华为全闪存有绝招

华为充分理解用户对大容量的渴求,OceanStor Dorado V3可以满足保持0.5ms低时延的同时,支持超过200TB用户容量的诉求,达到业界领先水平。要知道从OceanStor Dorado V3设计之初,华为就从未放松过对极致大容量的不断追求,凭借其众多独门绝招,保障在大容量下还能保持0.5ms稳定时延,帮助企业从容应对全闪存时代高性能、大容量的挑战。

大容量时代如何保障0.5ms低时延?


    全闪存存储的浪潮正席卷而来,各厂商都在不遗余力的宣传更高的IOPS、更低的时延指标,高性能、低时延成为全闪存阵列最耀眼的标签。所谓“乱花渐欲迷人眼”,在这些华丽的性能指标背后,目前全闪存阵列产品在容量上的表现却显得暗淡很多,要么是最大用户容量远低于传统存储,要么是性能随用户容量增长太早开始衰减,又或者是性能衰减太快,让既想享受全闪存的高性能、低时延,又对大容量有需求的您难于抉择。

硬件设计充分考虑大容量场景需求

“工欲善其事,必先利其器。”华为新一代全闪存阵列的硬件平台对高性能、大容量的支持做了充分的考虑:

在后端组网上,抛弃传统的硬盘框间级联的模式,全部采用硬盘框以12Gbps SAS链路直连控制框的模式,保证在大容量场景下,使用多个硬盘框时后端时延不增加,带宽线性扩展。

单引擎支持最高300盘位,支持单盘容量最大3.6TB,让在配置大容量时不用担心硬件规格的掣肘,更加得心应手。

全闪存阵列通常会提供8KB左右粒度的ROW LUN,以及在此粒度上构建的快照、重删压缩等能力,与传统阵列相比,在为用户带来巨大价值的同时也带来了大量的元数据,对系统的缓存能力构成巨大挑战。为此华为为OceanStor Dorado V3配备了每引擎最高1TB的内存规格,帮助企业在全闪存时代直面大容量的挑战。

优化内存使用方式,充分发挥全闪存阵列优势

“好钢用在刀刃上”。对比传统阵列,全闪存阵列表面上只是后端时延的降低,在阵列内部却是全IO栈上时延、资源开销的重新洗牌,许多传统阵列经典设计背后的假设都被打破,实际上是一次深刻的变革,OceanStor Dorado V3对此有充分的体现。

比如在内存使用方面,传统阵列受制于HDD盘的性能瓶颈,需要把大量内存用作数据缓存,来提升系统性能,而全闪存阵列受益于SSD盘的高性能,对数据缓存的依赖大大降低,却又面对元数据量急剧增长的新问题。为此OceanStor Dorado V3勇于革新,大量缩减传统上占比最大的数据缓存,并将大多数内存用于元数据缓存,用于应对全闪存阵列在大容量时对巨量元数据的访问需求,保证在大容量下也能保持高性能、低时延。

极致优化元数据内存布局,自动压缩冗余信息

元数据是用于描述用户数据的数据,在一个典型的全闪存阵列中,主要的元数据有LUN LBA映射表和指纹表,用于描述用户数据与LUN LBA及指纹间的关联关系,在IO过程中会被多次访问,其访问性能会极大地影响系统性能。而随着用户容量的不断增大,这些元数据也会越来越多,因此如何做到更高效的组织元数据,在有效的内存空间里缓存更多的元数据,就成为如何在高性能、低时延下为用户提供更大容量的关键。

OceanStor Dorado V3主要从两方面入手解决这个问题:

一方面,对系统里所有的元数据结构做了系统、细致的分析,通过精简冗余信息,调整元数据信息的组织方式,区分对待盘上布局和内存布局等一系列手段,把元数据内存布局的静态优化做到了极致。

另一方面,通过分析我们发现,一些类型的元数据由于算法和数据结构上的特点,在局部容易形成规律性分布。华为专门开发了高效的元数据压缩算法,契合该规律,提取出冗余信息并重新布局,完成内存布局的动态优化,能有效节省40%以上的内存空间开销。同时这种动态布局完全兼容原有数据结构和算法,对系统的性能影响可以忽略不计,在提升用户容量的同时保证性能、时延。

大容量时代如何保障0.5ms低时延?

优化内存共享分配方式,把内存资源发挥到极致

阵列系统的应用场景复杂多样,每种场景下对各种内存分区的实际使用量也各不相同,如何高效利用内存资源就成为一个难题。面对难题,OceanStor Dorado V3实现了内存分区的动态规划机制。当一种内存分区空间即将耗尽时,OceanStor Dorado V3能够决策是否为其补充内存资源;同样的,在特定情况下,OceanStor Dorado V3也能决策是否需要从某些分区回收内存资源。

受益于内存分区的动态规划,OceanStor Dorado V3不需要为POOL/LUN/快照等最大规格、远程复制等增值特性,以及极端IO开销等各种场景全量预留内存,当前不被用户使用的内存都可以动态规划给元数据缓存使用。通过这种方式,OceanStor Dorado V3能够保证元数据缓存在各种场景下,都能获取尽可能多的内存页面,从而得以有效支撑大容量场景对元数据缓存的需求。

优化换入换出机制,实现淘汰优先级策略

随着用户容量的不断增大,阵列的元数据缓存必然会面对无法缓存全部元数据的情况。对此业界主要有两种方式来解决问题:

一种方式是严格限制元数据必须全缓存,比如EMc

XtremIO就采用这种方式。其代价是同等硬件规格能支撑的用户容量有限。

另一种方式是实现缓存的换入换出机制,通过牺牲一部性能换取用户容量的大幅扩展,可以满足不同用户的需求。此时如何高效实现换入换出机制,尽量减少Cache不命中的几率和代价,就是一个在大容量下保持高性能的关键问题。

OceanStor Dorado V3采用第二种方式,通过智能算法优化换入换出机制:

一是通过优化淘汰算法减少算法本身的CPU开销,同时有效区分冷热数据,优先淘汰冷数据,使淘汰导致的Cache不命中降至最低。

二是对系统中各种元数据被淘汰的代价做理论建模,通过模型计算对元数据做分类和排序,再以此为依据确定淘汰优先级策略,保证优先淘汰代价最小的元数据。

得益于对换入换出机制的优化,在大容量时代,OceanStor Dorado V3也能够保证0.5ms时延的高性能。

特别提醒:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
0
相关文章