存储专栏:Host-Based和Device-Based闪存卡走向融合

黄亮 发表于:14年11月27日 11:46 [原创] 存储在线

  • 分享:
[导读]我昨天在《FPGA搞不定LDPC?分布式ECC助阵SSD》一文中抛出了“砖”之后,果真引到了“玉”。一位来自Fusion-io的朋友站出来说:“我们现在的LDPC是FPGA的。”

我昨天在《FPGA搞不定LDPC?分布式ECC助阵SSD》一文中抛出了“砖”之后,果真引到了“玉”。

一位来自Fusion-io的朋友站出来说:“我们现在的LDPC是FPGA的。”

另一位朋友则表示:“LDPC用软件实现就可以了,放硬件里不费事么?FPGA中的core就可以处理LDPC了。”

我们再看看昨天那几位大牛后来怎么说。

J君:“至于FPGA内能否放入大逻辑面积的纠错控制器(如BCH72bit,LDPC等),那要看你用什么FPGA。”

F君:“现在的FPGA有能实现BCH72带宽3GB/s的吗?

原来的Flash出错概率低,可以很多通道共享一个ECC引擎,现在不行了,需要更多引擎。

比如原来的数据带宽是3GB/s,但因为出错概率低,可能ECC达到500MB/s的纠错带宽就行了。”

L君:“不能用硬盘那套LDPC来套用到SSD,第一是信道模型不同,第二是出错BER和纠错要求不一样,第三是带宽和性能差了1-2个数量级。

所以现在是ECC带宽限制SSD带宽。

提高ECC带宽主要有集中思路,硬件上就是

1. 提升ECC硬件芯片频率;

2. 提升译码并行度,增大矩阵计算量64*64 –128*128等;

3. 针对LDPC算法和计算逻辑进行深度优化,译码QoS,负载均衡调度等。高性能LDPC本身就是并行分布式的,放不同逻辑上面做还是由于性能高后逻辑资源不够。

软件层面考虑,就是和FTL深度整合了,后期用容量换性能,要求弹性FTL,占用户存储空间,不过这个相当复杂,涉及用户数据搬移,以及非结构化FTL,没见真正做出来。”

S君:“是说FTL在host端么?我认为这是趋势。”

L君:“其实并不一定是在host,SSD主控本身功能做强也能实现弹性FTL,不过要加CPU,纯FPGA搞不定。

如果算法全做host,对硬件控制器公司就是灾难。

按照这种做法,就是白牌服务器的做法。用户直接找个代工厂,用标准解决方案就行,SSD只提供读写擦,ECC三种基本功能,其它全软件做。”

P君:“要把一些CPU计算放进ASIC里面。”

L君:“没错,要跟CPU抢业务才能提高门槛,学术性讲就是降低CPU负载。”

S君:“我的观点是充分利用CPU,以后多路服务器CPU的能力根本用不完,内存都可能爆过外设。尽量去用CPU而不是降低CPU使用。

将FTL放到host,还可以绑定应用,使得用户程序更快。”

Q君:“有点软件定义闪存的概念。”

看着看着,以我的水平根本插不上嘴,剩下的只会叫好了。于是就干脆把以上的讨论分享给大家。

翻了翻之前写过的东西,我在上一次讨论Host-based与Device-based之争时,就提出过“越接近CPU越有利于软件定义”。

所谓软件定义闪存,之前我也看到百度提出过这个概念,不过那个还不属于通用的商业产品。具体到PCIeSSD上,偏“软”的——即Host-Based架构的代表Fusion-io,支持Atomic-write(原子写,参考《十亿IOPS不是梦?Fusion-io闪存API另类分析》一文);后来还推出那个专门针对MySQL数据库优化,压缩并且还提高性能的文件系统(见下图)。


回到今天的主题,在《破解PCIeSSD进化:从踩坑到解决方案》一文中,笔者并没有讨论Host-Based和Device-Based。当时不是没考虑过这一点,但对于普通用户来说,这个架构差异对实际使用体验的直接影响并不是很大。但对于业内专业人士则不同了,比如在本月16日举行的《存储技术之巅》第一次线下交流活动中,大家就展开了热烈的讨论。

在本文的标题之前,似乎应该加个定语“使用FPGA主控的PCIeSSD”,因为目前ASIC控制器的卡,以PMC/IDT系和Intel为主基本都是Device-Based,不存在与Host-Based两条技术路线之争。

 

所谓Host-Based,即SSD的FTL——包括地址转换/块分配(通常所说的LBA)、磨损平衡和垃圾回收在OS驱动层实现。

而Device-Based则利用卡上FPGA控制器的处理资源来实现FTL,操作系统上安装的驱动应该不包含这部分工作。

在国内最早宣传Device-Based PCIeSSD的大约就是Memblaze,下面我们也来看看另外一家Shannon宝存科技是如何来对比二者的。


Host-Based的缺点是需要PCIeSSD容量1/1000的内存来放元数据,比如6.4TB的卡大约就是6.4GB,这一点上Device-Based完胜。那么容量、效率和灵活性这几点,我觉得可以归结为一点——Device-Based卡上的FPGA需要干更多工作,功耗和发热也许会大些?另外可能会受其处理能力的限制。

Device-Based温度会不会更高?

关于这个问题,我曾听说国外一家大品牌PCIeSSD的工作温度能达到90多摄氏度(注:应该不是Device-Based架构,这里指主控散热片表面温度),也就是说没有必然性?

但到了SFF-8639和NVMe时代之后,FPGA的处理性能和散热确实成为不可忽视的因素了(至少在Device-Based卡上如此),因此我们看到了PMCASIC主控的PBlaze4。

Host-Based能否实现NVMe?

由于NVMe在操作系统中集成标准驱动,那么Host-Based在驱动中实现FTL这种方式还可行吗?宝存表示他们有“曲线救国”的方法,具体还不方便透露。据我所知,NVMe也允许个性化驱动,比如像希捷/LSINytro那样的方案,SAS控制器也是能够支持NVMe的。

RAID如何实现?

为了让PCIeSSD像硬盘那样支持RAID保护,Memblaze和宝存分别提出了自己的方案。


上图来自宝存在Flash Memory Summit2014上的演讲《Buildingefficient RAID-5 systems across SSDs at the FTLLayer》,我们看到这个跨盘的RAID还带有硬件加速,可能是使用FPGA的加速单元来做RAID5 XOR计算吧。

另一方面,我听说Memblaze的RAID实现有点类似于Linux下的LVM(镜像)?而且他们这款产品(应该还是FPGA)已经带有一些Host-Based的色彩了。

不知大家有没有Host-Based和Device-Based向融合发展的感觉?

提起HostRAID,笔者又想起了自己在10年前踩过的坑。

2003年,Adaptec在Ultra320SCSI上引入HostRAID0/1的支持,无需硬件RAID卡就能做简单的阵列级别。我当时推荐销售在2个客户的机器上用29320卡分别做的RAID0和1,结果在Windows下都出现了死机的问题,经过反复排查才发现是卡的问题——确切说应该是当时HostRAID驱动还不成熟。

注意:Adaptec要支持那个HostRAID就不能使用普通的SCSI驱动,而LSI的SCSI卡(53C1020/1030)同样的功能则对驱动程序透明。他们2个真的有点像今天的Host-Based和Device-Based,虽说做RAID0/1对CPU等资源的占用基本可以忽略不计。

还是那句话,稳定的产品不是测出来的,但也少不了测试。

我又班门弄斧地写了以上这些,不专业之处还望大家多指正。

本文出自黄亮的微信公众号,企业存储技术(微信号:huangliang_storage),欢迎大家关注! 

[责任编辑:黄亮]
在本月16日举行的《存储技术之巅》第一次线下交流活动中,精通Oracle的女神Lunar和Greenliant绿芯科技VP李炫辉先生,分别带来了“Oracle在非传统存储上的应用交流”和“闪存技术及市场发展趋势”这2个分享主题。数据库方面我不专业,因此就班门弄斧分享点闪存方面的收获和心得。本文是第一篇,后面计划还有2个小的话题。
官方微信
weixin
精彩专题更多
华为OceanStor V3系列存储系统是面向企业级应用的新一代统一存储产品。在功能、性能、效率、可靠性和易用性上都达到业界领先水平,很好的满足了大型数据库OLTP/OLAP、文件共享、云计算等各种应用下的数据存储需求。
12月15日,中国闪存联盟成立,同时IBM Flash System卓越中心正式启动
DOIT、DOSTOR、易会移动客户端播报中国存储峰会盛况。
 

公司简介 | 媒体优势 | 广告服务 | 客户寄语 | DOIT历程 | 诚聘英才 | 联系我们 | 会员注册 | 订阅中心

Copyright © 2013 DOIT Media, All rights Reserved.