Fenglin1
4 Beryllium

Re: 专题:极致性能存储DSSD的故事(更新发布会内容)

关键字3:硬件架构

     DSSD D5是一个大小5U的盒子,如下图,从正面看,阵列中可以容纳36个专门定制的包含双PCIe端口的闪存模块,每个模块最大的容量达到4TB,并支持热插拔。

DSSD_3_7.png

     下图DSSD D5的背面,DSSD阵列提供了冗余的PCIe端口来链接前端主机,共计达到96个链接,最大能够为48台服务器提供链路。这些数据链接能够让机架上的服务器的应用直接与DSSD中的闪存模块进行数据交互。而且这些模块都是冗余的,支持在不停机的情况下进行更换,还是支持断电保护。

DSSD_3_8.png

实现极致性能的,业界首个PCIe的Fabric:

DSSD_3_9.png

0 项奖励
Fenglin1
4 Beryllium

Re: 专题:极致性能存储DSSD的故事(更新发布会内容)

关键字4:IO Stack

     DSSD能实现如此高性能的关键就在于这个,虽然这个话题其实有很多可以扩展,有机会的话,楼主再后面的连载中再慢慢道来。今天只说发布会中介绍的,DSSD D5关键架构是将原有存储行业中被广泛使用的标准IO Stack直接抛弃了。下图是网络存储的IO Stack:

DSSD_3_10.png

     了解存储的读者都会知道,在现有的存储架构(SAN,NAS,OBJECT)一个应用要从数据容器中读取数据需要走过很多步骤,而这些步骤恰恰是导致数据访问延时无法进一步提升的主因。DSSD革命性就是将整个IO Stack压缩到只有几个步骤(看下图):

DSSD_3_11.png

     使用DSSD,应用可以直接读取DSSD闪存中的数据,这是业界第一个允许应用直接通过映射NVMe闪存模块的端口来进行数据交互的系统,通过这种IO Stack,整个数据访问过程,没有了操作系统调用,不需要经过交换机,没有过多的设备间交互,没有Buffer Copy,没有主机端Volume manager计算等诸多步骤,所以DSSD能够把整体性能大副提升。

0 项奖励
Fenglin1
4 Beryllium

Re: 专题:极致性能存储DSSD的故事(更新发布会内容)

关键字5:DSSD操作系统Flood

    Flood是DSSD阵列操作系统的名字,也是驱动整个阵列数据流和控制流的指挥部。发布会中介绍了Flood两类功能,数据访问与高可用性,Flood能够提供原生态的数据访问方式,支持对象和块,并通过API的方式实现文件存储。用户还能够使用特定应用的插件,例如Hadoop,插件可以允许Hadoop的数据节点直接与DSSD进行交互。DSSD的数据存储也是以存储池化闪存单元(Pool)的形式提供服务,最大化数据共享的能力。

DSSD_3_12.png

    高可用性方面,DSSD拥有Spac-Time Garbage Collection能够实现根据不同的闪存模块的用量、颗粒状况均衡的在全阵列中闪存模块中的数据存储,实现负载均衡与闪存磨损均衡,达到资源最大化利用。另外Flash Physics Control看似是一种监控硬件状态的机制,发布会中一句话带过,细节有待今后详细研究一些再介绍。Cubic RAID是一种优化的数据冗余方案,发布会中提到这种技术能够高效的可靠性与容量损失比,工作原理是将闪存中的数据颗粒通过类似网格的方式进行多维度分布数据与校验位,具体的工作原理详见后续文章“DSSD Cubic RAID技术解析”。

DSSD_3_13.png

0 项奖励
Fenglin1
4 Beryllium

Re: 专题:极致性能存储DSSD的故事(更新发布会内容)

3月1日更新到此,接下来更新内容:

关键字:Cubic RAID

关键字:应用场景

。。。未完待续

0 项奖励
Yanhong1
3 Cadmium

Re: 专题:极致性能存储DSSD的故事(更新发布会内容)

感谢Fenglin的及时更新

0 项奖励
zhaos2
3 Silver

Re: 专题:极致性能存储DSSD的故事(更新发布会内容)

及时详尽的分享,熬夜辛苦了,赞一个

0 项奖励
Roger_Wu
4 Ruthenium

Re: 专题:极致性能存储DSSD的故事(更新发布会内容)

支持!

价格出来了不?

0 项奖励
Fenglin1
4 Beryllium

Re: 专题:极致性能存储DSSD的故事(更新发布会内容)

价格有了,请联系当地销售了解

0 项奖励
Fenglin1
4 Beryllium

Re: 专题:极致性能存储DSSD的故事

DSSD Cubic RAID技术解析


     DSSD的发布会中所提到的Cubic Raid技术,其实是一种在RAID-6和多维RAID-6Multi-Dimensional RAID-6)基础上优化了的RAID技术。 本贴将介绍Cubic RAID的基础知识。在介绍Cubic RAID之前,我们首先简单来看一下RAID-6和多维RAID-6


RAID-6


     RAID-6是企业中最常用的保证数据较高的可用性,它使用两块校验盘,能够通过数据校验恢复在RAID条带中的1-2块盘中的数据。它的实现牺牲一部分空间利用率,虽然随着RAID-6条带中盘数量的增加,这种作为校验位的空间消耗会略有降低,但是RAID-6在单条带磁盘总数上存在限制,几乎不可能有超过20块盘的情况出现,甚至于EMC VMAX这样拥有巨无霸级别的存储阵列也最多支持14+2RAID-6,因为超过一定数量的磁盘的RAID-6会多阵列的控制器与计算资源带来极大的消耗。

DSSD-4-1.png

多维RAID-6


     多维RAID技术早在2000年之前就已经被开发出来,多维RAID-6是以二维的方式排列RAID条带,在这个由数据盘和校验盘组成的矩阵中,由于行和列都有两款校验盘的存在,可以允许整个矩阵中有更多的磁盘损坏的情况下恢复数据。

DSSD-4-2.png

     但是多维RAID有一个缺陷是,因为每个垂直和水平条带的校验都是分别计算的,所以,当某种特定的状况下,如果坏盘所在的行和列种都有个超过2个其他坏盘的时候,数据是不能被恢复的。如下图所示。读到这里,细心的读者可能会问,多维RAID为什么不能先恢复图中只有一个坏盘的列,这样原先三个坏盘的行就变成两个了,就能恢复了。楼主认为,就是由于传统的多维RAID行与列分别校验计算的限制,这种类型的数据就无法实现,但是Cubic RAID就能做到。

DSSD-4-3.png

Cubic RAID

     DSSD的Cubic RAID作为基于RAID-6和多维RAID-6改进的架构,DSSD 中的Cubic RAID使用18*32 FLASH CELLS的网格构建。与多维RAID相似,在每行与每列中都有两个CELL作为校验CELL。

DSSD-4-4.png

     而Cubic RAID相比多维RAID的改进之处是,它又为校验位行与列定义了校验位的校验位(交叉奇偶校验组),这样整个Cubic的网络就以一种数据、校验,交叉奇偶校验组三角的形式相互依赖。相互能通过计算来恢复数据。

DSSD-4-5.png

更重要的是,Cubic RAID可以以一种迭代算法来恢复多维RAID不能恢复的数据。大致的步骤如下:

当出现损坏CELL的行和列中都出现超过2个CELL的情况,首先Cubic RAID会将只有一个损坏CELL的行进行修复。

DSSD-4-6.png

然后,再将有一个损坏的的列恢复,并恢复所有的损坏CELL。

DSSD-4-7.png

同理,Cubic RAID可以将这种算法扩展到更加复杂的情况,下图中的网格中有大量的CELL损坏,那么Cubic RAID可以通过以下几个步骤对数据进行恢复:

DSSD-4-8.png

1. 先将所有小于等于2个损坏CELL的列修复

DSSD-4-9.png

2. 然后将小于等于2个损坏CELL的行修复

DSSD-4-10.png

3. 再修复剩余小于等于2个损坏CELL的列。

DSSD-4-11.png

4. 以此类推修复所有损坏的CELL。

DSSD-4-12.png

楼主总结了下面这张表列出了RAID Cubic和RAID6与多维RAID6的比较,方便大家理解:

RAID-6

多维RAID-6

Cubic RAID

可靠性

恢复1-2块损坏盘上的数据

坏盘所在的行与列的坏盘总数不能都大于2

理论上只要迭代算法可以继续进行,就能恢复数据。

空间率用率

X-2 /XX为条带中的盘总数),最低50%4块盘),最高87% 16块盘)

(X-2)-(Y-2)/X*Y,利用率取决于矩阵中的盘数量(XY)分别为行和列种的磁盘数量

(32-2)-(18-2)/32*18 = 83%

     综合来看,DSSD的Cubic RAID可以以17%非常低的空间消耗率,实现了极高的可靠性。这种可靠性远远超过了传统的RAID-6,甚至比3校验的RAID解决方案也高出许多。虽然Cubic RAID从原理上来看校验方面的计算量很大,但这显然没有影响到DSSD数据处理的性能,至于原因,且看连载中关于Flood操作系统的详细介绍。

Roger_Wu
4 Ruthenium

Re: 专题:极致性能存储DSSD的故事

DSSD上到处都是逆天的黑科技

0 项奖励