为什么国内全闪系统很少支持QLC,因为寿命搞不定啊

2021年09月 · XSKY

微信图片_20210914140344.png


数据爆发式增长为IT基础设施带来了更多挑战,特别是保存数据的存储设备。尤其是随着大数据、人工智能应用的逐渐增多,包括一些数据密集型的关键业务,使存储设备的性能优劣变得非常重要。全闪存的出现,突破了传统存储性能瓶颈,很好的解决了这一问题,渐渐成为数据中心存储的主力军。

XSKY星辰天合今年7月发布了基于XSKY SDS V5的分布式全闪存XINFINI™星飞8000,是国内首款商用QLC SSD的企业级存储产品,采用领先的全闪技术架构,支持TLC/Optane + QLC SSD分层,兼顾高性能与低成本。与业界主力产品相比,XINFINI™星飞在数据读写性能方面超过50%,而硬件成本则下降40%。

本期内容,XSKY星辰天合技术专家将为你解密,XINFINI™星飞为了适配QLC SSD的特点,都做了哪些优化。


QLC SSD简介


随着近几年SSD大规模推广和量产,SSD的单位成本也在不断降低。但是相比于传统的机械硬盘,其成本还是相对较高。为了降低SSD的单位成本,SSD厂商通常的做法是提高存储密度。目前市面上SSD的主要包含SLCMLCTLCQLC四种,其对应的每Cell能够存储的bit分别为1234。每Cell存储的bit越多,存储密度就越大,单位成本就越低,随之而来的是存颗粒支持的擦除次数也越少。QLC单盘容量上可以轻松做到几十TB,但是其持续写入寿命相对于TLC也下降不少。


微信图片_20210914140445.png


XINFINI™星飞介绍


XINFINI星飞的底层基于XSpeed构建,XSpeed的技术细节可以参考“底座升级:为什么业界很少支持块EC?性能搞不定啊!

为了发挥QLC SSD顺序大块写稳定的优点和隐藏其寿命短的天然缺点,从架构层面我们需要解决两个方面的问题:

让高寿命的SSD承担前端大部分最热的IO

对前端的小IO和已经冷却的数据进行聚合而后顺序写入QLC SSD。

为了做到以上两点,XINFINI星飞在硬件层面为Cache OSD配置了Intel Optane SSD,通过分布式全局Cache策略,使得最热的数据能够保留在Cache层,以此避免频繁地触发Cache替换,最终让流向Data OSD(QLC SSD)的都是相对较冷的数据。通过上述的方案,我们发挥了Optane SSD寿命长,性能高的特点,也屏蔽了QLC SSD寿命短的天然劣势。

XINFINI星飞不仅在硬件层面做了适配升级,IO路径上我们也做了优化。


XINFINI™星飞IO路径 


XINFINI星飞采用Tier架构,分为缓存层(Cache)和数据层。

缓存层接收到来自业务的小块随机写IO,然后聚合成大块写入数据层(QLC SSD)。这个过程要求建立一套Cache层对象到数据层对象的映射关系,如下图所示。


微信图片_20210914140453.jpg


缓存层映射元数据


上述的映射关系(后续简称映射元数据)是这个架构的核心设计,为了适应全闪对时延的要求,整个设计需满足以下几个方面:

可靠的元数据服务:因为元数据的核心地位,我们要求元数据采取多副本策略,并能根据实际需要随时调整;

快速地元数据访问:因为映射关系直接影响到后续cacheread miss后从数据层读取的效率;

高效地元数据持久化:因为每次LogAppend需要更改大量的映射,每个映射可能就几十到几百字节,因此需要对这个小块映射进行聚合而后持久化,避免太大的元数据写放大。

为了实现上述的两个条件,XINFINI星飞提供了一套分布式的映射元数据服务,每次数据聚合完毕需要更新映射时只需调用该服务的接口。并且通过高效地算法设计,使得映射元数据能跟随数据随时流动。当集群发生异常,数据需要进行恢复时候,数据会从host A迁移到host B,XINFINI星飞特有的元数据服务可以保证数据迁移的时候也一并将元数据一起迁移。通过将数据和映射元数据绑定,保证了对元数据的访问可以避免横跨网络,从而大大提升访问效率。


数据层元数据


经过缓存层IO的巧妙转化,IO达到数据层其实只剩下最简单的对特定对象的读写删请求。为了服务于数据层自己的数据恢复和磁盘空间管理,该层还保留少量的一部分元数据。每次IO访问都需要更新少许的元数据(几十B到几百B不等)。由于QLC SSD对于小IO支持不友好,即使元数据的少量更新也会打乱缓存层下发的大块顺序写。因此,XINFINI星飞对数据层的元数据进行优化,也将该部分元数据也存放于前面章节介绍的映射元数据服务中,使得底下QLC SSD事实上只承担了缓存层LogAppend后的大块顺序写业务。


微信图片_20210914140500.png


高级功能


XINIINI星飞在设计之初就意识到了业务的高级功能(包含快照、克隆,同步/异步复制等)对存储设计的影响。由于副本和EC的天然区别,存储系统在设计上述高级功能的时候经常需要针对副本和EC采取不同的方案设计,这也使得EC在产品发布上对于一些高级功能支持经常需要慢半拍。

XINFINI星飞区别于常规存储IO路径的设计,将所有的高级功能全部在缓存层实现,确保数据层只需要处理最简单的读写删请求即可。


产品对比


目前市场上主流的支持QLC SSDSDS的厂商主要对比如下:


微信图片_20210914154327.jpg


可以看到,XINFINI星飞是目前市面上支持业务类型最丰富的QLC SSDSDS产品。在此基础上,XINFINI星飞支持灵活配置多种形态的数据安全策略,目前主流推荐多副本(缓存层)+ EC(数据层)。


微信图片_20210914140507.jpg


总结


XINFINI™星飞通过优化元数据的设计很好地支持了QLC SSD,成功地打造了国内特有的全闪存解决方案,以极低的成本,全闪的性能释放数据中心生产力;以一体化的产品设计、全生命周期的服务,降低用户总体拥有成本;通过丰富的产品组合和场景化解决方案,轻松实现从传统向敏捷IT的过渡,是数字化转型的理想选择。