取消
搜索历史
热搜词
原创
活动
创新2.0
I T
产业
当前位置:首页 >互联网•IT > 存储 > 存储系统 > 正文
揭开EMC DSSD D5的神秘面纱
来源:高端存储知识  :西瓜哥 2016-02-24 09:36:32
今天看到EMC网站上已经给出了DSSD的产品定位蜘蛛图。EMC认为DSSD的时延和聚合性能最有优势,给了满分。DSSD D5作为第一代RSF(rack-scale ...

今天看到EMC网站上已经给出了DSSD的产品定位蜘蛛图。EMC认为DSSD的时延和聚合性能最有优势,给了满分。

\

DSSD D5作为第一代RSF(rack-scale flash)产品,是如何做到极致的时延和极高的性能的呢?而且还要保证企业级的可靠性,有别于其他NVMe PCIe SSD卡/盘?今天,我们从硬件和软件以及数据保护三个方面来揭开DSSD的神秘面纱。

\

先看一下D5的前视图。D5高5U,这也是D5名字的来源我们看到DSSD的LOGO下面就是一个控制模块(CM),CM下面是36个闪存模块(FM),FM下面是另外一个控制模块(CM)。D5现在支持半框配置(18个FM)或者全框(36个FM)两种配置。FM目前有2TB和4TB容量,未来会支持更大容量和3D TLC。每个FM上有512个NAND die。FM都是设计成双PCIe端口,这个也是区别普通NVMe SSD(一般是单端口)的一个重要的方面。FM是可以热插拔的。

\

我们再来看D5的后视图。最上面是4个PSU,PSU下面是第一个IO模块(IOM)。然后下面是5个风扇,风扇下面是另外一个IOM。每个IOM上面有4个12口的PCIe交换机。从相关的资料看,EMC明确提到FM是热插拔的FRU(Field Replaceable Unit),其他电源、风扇、CM、IOM只是FRU,没有提热插拔这个词。因此,西瓜哥推测,这个版本除了FM外,其他还不支持热插拔(现在普通存储的这些部件都支持热插拔,这有点不太符合常理,也许我推测不正确)。还有IOM上面有一个黄色的子卡,这个是服务模块(SM),上面有管理用的USB口和网口,SM和IOM是一个FRU。

\

DSSD和主机连接是PCIe的方式。这个业界没有标准,因此EMC自己开发了一块DSSD客户端卡(大家可以理解为和FC HBA类似的一个东西)。这块卡是两端口,需要插在服务器的PCIe 3.0 x4的插槽上,目前只支持Linux(必须是物理机,不能跑在Hypervisor上)。客户端卡连接D5目前通过EMC专用的铜缆连接,以后会支持AOC光缆。据说EMC把这种连接方式已经提交给了NVMe标准化组织,希望变成一个标准。还有一点要注意,客户端卡通过一个NTB(non-transparent bridge)来进行PCIe的地址翻译(地址表保存在CM里),这样就把各个主机做了隔离,避免相互影响。

\

DSSD客户端目前只能连接一个D5,而且要求必须同时连接到两个CM上。为了冗余,服务器可以插2块DSSD客户端卡。DSSD采用了多路径,而且两个路径都是active-active的,可以捆绑在一起,因此,除了负载均衡,性能也是翻倍的。

\

DSSD的FM前面说过,也是定制的,电源功耗高达60w,要比一般的PCIe闪存卡(受限于PCIe插槽,一般功耗只有25W)高得多,因此容量可以做得更大,性能也可以更高。

\

DSSD FM和其他采用SSD的存储最大的不同还在于把SSD里面很多功能放到CM上实现,做成全局的。也就是FM里面只有最基本的ECC和Vaulting掉电保护功能,其他的垃圾收集,FTL等等全部放到CM里实现。这个思路和我们以前讲的SDF(软件定义闪存)很类似,全局的FTL和GC,其效率必定更好,性能也更好。毕竟SSD里面ASIC的CPU的处理能力和内存都是有限的。

\

每个IOM有48口对外连接主机,对内有36口连接FM。也就是说带宽是有收敛的。48口其实是4个12口的PCIe交换机组成(图中写的是Hub,西瓜哥怀疑写错了)。这个也是没有办法,现在48口的PCIe交换芯片好像还没有吧。

\

DSSD的CM也是采用X86架构,上面运行的软件叫Flood,洪水啊,O(∩_∩)O哈哈~。全局的垃圾收集和FTL,还有立体RAID都是CM来实现。特别要注意的是,CM上面并没有数据的Cache,这个和传统存储的思路是完全不同的。CM接受主机写过来的数据只是为了做RAID计算。主机的数据是通过PCIe的多播技术直接写到CM上,采用DMA的方式。也就是数据的路径是不经过CM的,这也是保证做到如此低时延和高性能的原因。看到这里,大家是不是觉得有点像软件定义存储那样控制平面和数据平面分离的赶脚?

\

D5采用了无源的中置背板的设计方式,就像很多数通设备或者刀片服务器一样。

\

NVMe存储协议是未来存储的发展方向,EMC估计2年内很多AFA产品都迁移到这个技术,但EMC说现在DSSD已经实现了业内三个第一:第一个共享的NVMe存储平台,第一个从用户空间直接可以访问,第一个支持多路径链路聚合、热插拔、透明的切换和恢复。

\

看完硬件,我们来揭秘一下软件Flood。Flood包括客户端的驱动/API,还有CM上的各种功能,都叫FLOOD。

\

其实DSSD实际上是一个对象存储。通过API,可以支持很多对象,如卷(类似根目录),目录,key-value,块和文件。

\

支持块设备的方式,可以用API,也可以用DSSD的块设备驱动。用API时延可用做到100us,如果用块驱动(好处是应用可以不修改),虽然需要OS内核参与,但还是跳过很多层次,时延可做到120us,也就是只多了20us。

\

最后我们来揭秘一下DSSD的数据保护技术。EMC一共列出了12点,我们挑几个大家不常见的来展开说明一下。

\

一个是PCIe多播写。主机写数据的时候,同时写到三个位置,一份到CM的DRAM里用做RAID计算,两份到不同的FM的DRAM里。由于CM和FM里面都有DRAM,因此写的速度是很快的。注意不是直接写到flash die上。其实同时写到两个FM,主要也是为了可靠性,因为系统采用立体RAID,不是两副本的方式,落盘时数据应该会重组的,因为还有RAID的计算值。

\

CM可以直接实现闪存的物理控制。主要是NAND随着使用时间的增长,其保持电子的能力就下降,因此电压也会下降。如果不能调整传感器的检测值,那么数值都读不出来了。而CM通过自动的闪存物理控制,提高电压的敏感度,这样就可以延长NAND的寿命。

\

垃圾收集由于是全局的,因此可以根据应用特点,在空间和时间上进行优化,比如只回收有用的数据,热点数据常回收,非热点数据就不用老回收了,目标就是减少写放大,延长闪存寿命。当然,热点和非热点区域经常要对调一下,这样磨损会比较均衡。

\

大家记得主机数据用多播的方式写到CM和两个FM的DRAM里,就告诉主机写完了。因为FM里面有数据的Cache,因此,需要掉电保护。CM里面的数据虽然不需要保护,但元数据如FTL肯定也是要的。

\

因为FTL是全局的,因为,DSSD实现的是动态的超供,灵活动态的超供的空间可以提高性能和在FM重构时使用。

\

当FM模块故障更换后,DSSD自动重构数据并写到新的FM上。这个过程叫Resilvering(西瓜哥暂时没有找到合适的翻译,叫重新银化?)。这个术语其实是从ZFS的Z-RAID来的,大家知道DSSD的创始人就是ZFS的发明者,因此,用这个术语或者部分ZFS的技术应该是理所当然的了。

\

最后再提一下DSSD的专利技术多维/Cubic RAID。目前版本实现了两维,据说以后会做三维。从相关资料看,应该是用软件来计算校验P和Q的值,毕竟现在新的CPU指令计算RAID 6的值还是很快的。

\

【学习心得】

1、DSSD是一种全新的存储形态,很多技术是以前我们没有碰到过的。比如NVMeF,跨设备的DMA(但不是RDMA),PCIe多播等等,我们要用全新的视野来看这个产品。

2、DSSD的优点明显,缺点也很明显。目前它和高端存储定位和场景都是很不同的,未来也许会融合,但目前还不会正面冲突,这个和AFA不同。DSSD需要物理服务器,需要跑Linux,需要有PCIe 3.0的插槽(很多刀片服务器就用不了),需要应用利用API做开发(块设备驱动的方式和特定应用的Plug-in除外)。因此,我们说它是一个性能大“怪”兽,不能用通用存储的标准来看它。

3、以前WIKIBON把DSSD也看成SERVER SAN的范畴,但西瓜哥学习完技术原理后,觉得DSSD不应该是。因为其没有利用标准的服务器+软件的方式来构建存储产品,而是全新的定制的硬件形态,我觉得可以叫SERVER SAN。

4、NVMe作为一种新技术引入到共享存储里面来,DSSD的实现思路和架构值得后进入的厂商借鉴。EMC目前已经把DSSD的硬件连接规范和API提交给相应组织,也希望成为业界的标准。

5、从上周的调查看,有18%的调查者反映目前的AFA满足不了性能要求,需要DSSD,这个比例还是蛮高的。DSSD会不会像XtremIO一样,成为一个明星产品,还得看EMC配套的销售策略了。

编辑:Xanthe
关键字:     EMC       
活动 直播间  | CIO智行社

分享到微信 ×

打开微信,点击底部的“发现”,
使用“扫一扫”即可将网页分享至朋友圈。