存储 频道

华为OceanStor Dorado V3时延只有0.5ms

闪存之所以成为时下的大热门,很大程度上是因为用户业务对于数据处理的时间要求已经越来越高,以更快的速度完成对数据的处理和分析,也成为在商业竞争中获得优势的重要保证。

虽说各个厂商都相继推出了全闪存产品,但是作为衡量全闪存阵列的重要指标——“稳定时延”却各有差异,华为新一代全闪存阵列OceanStor Dorado V3的稳定时延可以做到0.5ms,在全行业达到领先水平,本文就硬件和软件架构设计上,来简单阐述一下OceanStor Dorado V3做到0.5ms时延背后的原因。

在硬件设计上,OceanStor Dorado V3每个控制框最大支持级联4个硬盘框进行容量扩展,为支持稳定低时延和线性扩展带宽,硬盘框全部采用12Gbps的SAS直连控制框模式,而不是传统存储的硬盘框间级联模式;更重要的是,OceanStor Dorado V3解决了困扰无数厂商的PCIe热插拔和双端口访问困难,支持NVMe SSD作为存储介质。并且,华为OceanStor Dorado V3 在协议栈上对NVMe SSD进行了精简,且不再需要HBA卡进行转换,后端链路整体时延有效减少。

在软件系统层面,OceanStor Dorado V3也做了大量优化,以保证端到端稳定时延,摘取一些关键的信息与各位分享:

分而治之,隔离干扰,减少时延的消耗

上下班需要乘坐公交车的朋友,应该会为政府划出公交车专用道的策略拍手叫好吧。有了这个专用道以后,公交车可以不用去跟私家车抢用车道,即使在上下班的高峰期也可以保证畅通的行驶,坐公交车的时间基本在可预测范围内。而私家车则共享着多条非公交车道,保证车道的高利用率。

由于后端SSD的IO处理能力提升,以及存储特性的不断丰富,全闪存阵列实际是一个计算密集型系统,需要强劲的处理器承担计算任务。这样的处理器一般拥有数十个物理核,这些核就像公路上的多个车道,存储系统中的各种业务处理逻辑就像行驶在这些车道上的车辆,对时延敏感的关键处理相当于公共汽车,为了保证这些关键处理能够不被频繁打断,不被其他任务阻塞,华为OceanStor Dorado V3实现了先进的处理器分组技术,将处理器中的各个核按照业务需要划分成不同的分区,类似于划分出公交专用道和非公交专用道,关键业务处理在自己的分区上运行,不会被其他任务打断,使得这些时延敏感的关键业务处理时间变得可预测。分区中若包含多个核,则在分区中执行的多个任务可以共享这些核,提升处理器利用率,降低时延的消耗。

IO业务请求“VIP制”,业务诉求优先响应

大家到银行办理业务时,应该注意到各大银行都为VIP客户设置了专用的窗口,VIP窗口繁忙时,VIP客户甚至可以直接插队到普通窗口优先处理,这样可以保证VIP客户得到最高效的服务。同样的,华为OceanStor Dorado V3为了保证请求的稳定低时延,也在系统中引入了类似VIP制的IO优先级调度机制,读请求和写入cache的写请求就像拥有“钻石卡”,可以在存储系统内优先拥有各种关键处理资源,包括CPU、内存、访盘并发等,而cache异步刷盘的请求以及系统内部产生的后台请求只能拥有“普通卡”,在出现资源争抢时,需要让位于拥有“钻石卡”的请求。

有效聚合,保证大块顺序写入SSD,实现请求处理效率最优

打车软件的普及给大家带来了很多方便,其中有一个拼车功能相信大家也不陌生,其作用在于聚集多个路线相近的用户同乘一辆车,既可以让每个用户支付的金额变少,也可以更加充分的利用公共交通资源,节省总体能耗,为更多的用户提供服务。

与之类似,华为OceanStor Dorado V3基于ROW机制聚集等待下盘的请求,形成较大粒度的数据块后一次性写入SSD,减少了压缩场景下随机小块写入SSD的次数,以及写入盘片后由于不对齐产生的盘内开销,提升系统整体性能。

另外在提供RAID保护的存储系统中,RAID写惩罚(校验时需要进行的额外读写操作)一直是影响性能的要素之一,华为OceanStor Dorado V3按满分条聚集请求后一次性下盘,有效减少下盘次数,也减少了校验产生的额外读写请求数,在保证性能的同时为支持更多冗余盘片的RAID算法(如RAID-TP)提供了更加有力的条件。

冷热数据分区,减少写放大,提升性能

众所周知,闪存颗粒只有在擦除后才能重新写入数据,SSD内部通过盘内垃圾回收找到垃圾量高的block,将有效数据搬移后,擦除对应的block,用于后续的写入。一个擦除块中数据是按照一个一个的page写入,随着这些page变为无效数据后,擦除块的垃圾量将逐渐增高,垃圾量越大垃圾回收时需要搬移的有效数据就越少,对SSD的性能和寿命影响就越小。

对于盘片来说,相同逻辑位置上的page只要发生了新写,原物理位置的page就会变为无效的垃圾,所以对于一个擦除块而言,各个page从写入到变为无效的周期越接近,在一定时间内都变为垃圾的可能性更高。在存储系统中,用户数据和元数据更新的频率差异很大,元数据更新非常频繁,用户数据更新的周期相对较慢,如果元数据和用户数据混合在一起写入盘上同一个block,那么元数据对应的物理page会很快失效,但是用户数据对应的物理page仍然有效,最终在垃圾回收时不得不大量的搬移用户数据,导致盘上写放大过大,影响SSD盘片的寿命和性能。因此华为OceanStor Dorado V3通过盘控配合将存储系统中更新频繁的元数据,以及相对不频繁的用户数据写入到不同的擦除块上,并保证元数据和用户数据写入的擦除块定期互换实现磨损均衡。

高效的元数据缓存机制,为闪存加速,并适应大盘时代诉求

全闪存产品要同时支持在线重删压缩、无损快照等特性,并且要达到较好的效果,需要按照细粒度管理用户空间,而细粒度的管理会引入大量的元数据,而且这些元数据会更新得非常频繁,因此能够在内存中访问元数据是全闪存达成最优性能的一个关键。

但是随着硬盘容量不断增加,要完全做到将所有元数据存放在内存中非常困难。比如前段时间某存储产品由于元数据采用全内存的方式存放,在硬盘容量不断扩大的趋势下不得不要求客户破坏性升级,把用户空间管理粒度改为8KB。这种杀鸡取卵的方式让用户怨声载道,品牌形象严重受损。

华为OceanStor Dorado V3采用元数据缓存的方式支持元数据换入换出,在无缝适应硬盘容量不断增大趋势的同时,尽可能的保证频繁访问的元数据在内存中命中。元数据缓存机制对应的核心技术包括元数据管理结构压缩处理,元数据缓存多级优先级淘汰算法,元数据快速预热算法,如上下电、控制器故障等场景加速元数据重新缓存到内存中的高效算法。

以上用我们日常生活的场景来对照OceanStor Dorado V3的核心算法技术,希望帮助大家理解。

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