破解PCIe SSD进化:从踩坑到解决方案
PCIe闪存相对SAS、SATASSD的优势
当我们在十几年前开始使用U盘时,只看到它的便携与易用,估计很少有人还意识到闪存蕴藏着巨大的性能潜力。
今天,包括PCIeSSD在内的闪存存储在企业级应用中的普及,归根结底要归功于半导体技术的发展。一方面,CPU性能越来越快,而发展缓慢的硬盘越发显得跟不上;另一方面,以NAND闪存为代表的半导体存储容量密度增大,而且越来越便宜。当那个拐点的时间到来,人们发现用小小的SSD能顶上几十甚至上百块硬盘的性能。
在企业级SSD发展初期,更多的应用形式是安装在EMC等存储系统厂商的阵列中,替代磁盘的SASSDD;或者服务器里面使用的SATASSD。它们能够与传统硬盘控制器良好兼容,但当时主流的SATA和SAS接口带宽只有3Gb/s或者6Gb/s(300-600MB/s),如今12Gb/sSAS还没有普及,而x8PCIe 2.0的理论带宽已经达到4GB/s,PCIe3.0更是翻了一倍。
此外,针对传统硬盘设计的SAS控制器自身也存在性能瓶颈,那么“有路何须搭桥”?直接将闪存做到PCIe卡上显然速度和延时都会更好,服务器的存储架构也变得更加简单,甚至实际量产的成本都会降低。
这就是今天PCIeSSD越发流行的原因。
产品架构之间的PK
PCIe SSD从架构设计方面来区分,包括FPGA/ASIC原生控制器方案和SASIOC转接SAS/SATA SSD模块几种方式。
SAS转接方案:尽管笔者一直不看好SAS转接方案的长远发展,但兼容性好和成熟的架构是它最大的优势。产品形态就是把SAS控制器连接的多个SSD盘RAID0做在一张PCIe卡上,因此他们的Firmware(固件)和主机端驱动与SASHBA基本通用,兼容绝大多数的服务器、各种操作系统版本都没有问题。
SAS转接方案的PCIeSSD现在很少宣传其性能,毕竟这方面对比原生PCIe闪存控制器没有优势。不过,如今几乎所有PCIe闪存卡的性能对企业级客户都不是问题(这也是我们把兼容性和可靠性放在前面讲的原因),因此目前市面上OracleExadata数据库一体机就用的SAS转接PCIeSSD,最近还有国内云和恩墨用EMCScaleIO分布式SAN软件搭建的Oracle预集成系统。
总的来说,SAS转接PCIe SSD的多芯片控制方案从效率、成本上都不占优。因此我们几乎只看到LSI这一家先天有利的厂商(该部门如今已卖给希捷)在该领域表现尚可,Intel搞了一段过渡的SSD910今年也推出自有ASIC控制器的NVMe产品了。
FPGA/ASIC原生方案:FPGA(现场可编程门阵列)的特点是设计灵活性强,在现有的芯片上通过不同的软件(Firmware)就可以定义出差异化的闪存卡(盘),并且易于升级。这种低门槛方案非常适合中小规模的厂商。FPGA芯片的缺点是封装尺寸和发热量比ASIC较大,数量达到一定规模后成本不如ASIC。代表厂商是PCIe闪存卡领域的先行者,被SanDisk收购的Fusion-io,被HGST收购的Virident,以及国内的Memblaze和Shannon宝存科技等。
图1:曾经是PCIeSSD单卡容量之冠的Fusion-ioioScale 3.2TB。当年它从Facebook走出,带有为互联网行业定制,高性价比的特点。令人可喜的是,今年全球率先达到单卡6.4TB容量的宝存科技是一家国内厂商。
当PCIe闪存卡向着的容量越来越大、性能越来越高的方向发展,单卡的功耗就容易超过普通PCIe插槽的25W限制。像SFF-8639尺寸的2.5英寸驱动器形式,插在服务器的前端密度更大,还要注意散热的问题。这时功能相对固定,但功耗较低的ASIC就体现出价值了。但设计出一颗优秀的ASIC,仅仅是流片成功都要付出巨大的成本。目前比较多见的原生PCIeSSDASIC有被芯片厂商PMC收购的IDT产品线,曾用于美光(Micron)的卡和盘;再有就是Intel和三星这样的巨头;我差点忘了Marvell和SandForce(几经转手被希捷收购),尽管后者的原生PCIeSSD控制器应该还不能量产出货,但价格和对技术门槛要求低向来是他们的优势。
NVMe横空出世
NVM Express(NVMe)是一种为企业级、客户端系统所用的PCIExpressSSD而专门设计的高性能、可扩展主机控制接口。它由Intel等十几个发起成员公司领导,以及数十个成员组成的行业联盟共同开发。
NVMe主要解决的问题,或者说好处主要包括以下几点
(1)
(2)
(3)
更多背景资料参见:
NVMe:PCIeSSD标准不断完善,直指Fusion-io
IDF2013:NVMExpress目标SAN共享存储
除了性能考虑、驱动层面对热插拔更好的支持之外,如果各家的PCIe SSD都同样使用操作系统自带的驱动,无疑对用户是个好事情——至少能减少许多测试和验证工作。但另一方面,SSD个性化的增强功能,目前主要是状态监控,乃至于进一步增值的缓存软件、RAID支持等都可能要依赖厂商专门的驱动。如果是带来同质化的结果,最后拼供应链和成本,这个市场剩下的估计只有三星、美光等NAND闪存厂商和Intel这样的业界巨头。
NVMe最初是在Fusion-io一家独大的情况下出现。到了如今PCIeSSD百花齐放的时代,NVMe产品也接近成熟,但由于各家厂商的利益不一致,对NVMe支持的力度也不尽相同。
有几位业内朋友的观点可以作为参考:“美国人和国内对于NVMe的态度、普及时间上有些差距。美国人觉得NVMe没有那么快成熟,而且热插拔没有行业标准,暂时还不可靠,产品之间不兼容。感觉国内几大家都已经要扑上去了。”
“注意各家的驱动不兼容。都不是用的原始驱动,因为性能不够。而且目前价格可真不便宜。
“某国外服务器厂商对NVMe的支持,推迟到2015年下半年,可能仍会延期。因性价比还不如任何一家‘非标准’的PCIeSSD。”
接下篇:二、用户最该关注兼容性、稳定性、性能和服务