扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
【CBSi企业解决方案中心】我们知道在数年前,Intel英特尔开始使用三位数字如320、520、710、910来标识其固态硬盘产品线,这一点倒是与其处理器系列的命名有异曲同工之处。不过例外总是会出现,在上一年末,Intel推出了新定义的型号系列,从以往的三位数字变成了四位数字,首先推出的为SSD DC S3700,中央的DC是Datacenter数据中心的意思——在以往,消费类市场的3系5系跟企业级的7系和9系没有太明确的界限。
从印象上我们可以感受到更高数字系列的产品会更高端,然而其确实不是很清晰,因此我们可以看到很多企业用户在服务器上使用SSD 320。现在,企业级的固态硬盘产品将会和消费类的固态硬盘产品得到了明显的区分。除了DC系列之外,Intel还推出了Pro系列的固态硬盘产品,就是在同样的DC系列当中,还有S子系列和P子系列的划分。
Intel 7系固态硬盘的第一款产品SSD 710,7系是Intel的企业级固态硬盘产品线;710采用了25nm HET MLC,发布日期2011年Q3,代号Lyndonville
Intel SSD 910固态硬盘,是Intel的第一款PCI Express插卡式固态硬盘,25nm HET MLC,发布日期2012年Q2,代号Ramsdale
上一年年末推出的Intel SSD DC S3700采用的NAND为25nm HET MLC,和之前的SSD 710和SSD 910保持了一致,不过,在很多方面有些新的改进,其具有顶级的性能以及相符合的价格。遗憾的是,我们尚未能拿到测试样品。幸运的是,我们现在拿到了其兄弟版本:SSD DC S3500。不过,S3500并不是S3700的缩水版本,实际上,它和S3700具有截然不同的特性。
Intel SSD DC S3500固态硬盘,20nm MLC,发布日期2013年Q2,代号Wolfsville
首先,DC S3500采用的NAND颗粒明显不同,它基于普通的、不搭载HET技术的MLC芯片,并且,它采用了更进一步工艺的20nm芯片。HET(High Endurance Technology,高耐久技术)是Intel一套包含多种用来增强MLC芯片的耐久性的技术,这预示了S3500的定位和S3700很不相同。进一步地,我们知道随着工艺的提升,NAND芯片的P/E(擦写)次数会有所降低,S3500 20nm工艺的NAND芯片让耐久度进一步降低。
显然,S3500并不擅长写入,实际上,它是用来跟其它产品组成读写搭配的,如果你的应用读写比很高,写入的数据项相对较少的话,那么它只有S3700大约一半的价格将会提供很高的性价比。接下来我们会稍微详细地介绍Intel SSD DC S3500这款产品。
可以概括起来,Intel SSD DC S3500企业级固态硬盘有两个很鲜明的特点:20nm MLC芯片、Intel第三代主控,此外,还有一个不算非常突出的:完整的保护功能。它们对了解SSD DC S3500的特性表现非常重要,接下来我们将对它们进行分别介绍。
20nm MLC芯片:针对非写入密集应用
Intel SSD DC S3500上面使用的20nm MLC NAND颗粒,型号Intel 29F32B08MCMF2-ES
首先是使用了20nm MLC芯片,这很好理解,和前面说过的类似:由于采用了它而导致了耐久度的降低(特别地,S3500采用的是普通的MLC而不是Intel的HET MLC),P/E周期大约降低到了3000次;20nm MLC的优点则是新的工艺带来功耗和成本下降,因此我们可以看到,同等容量DC S3500要比DC S3700便宜不少。耐久度方面,作为对比,根据JESD218耐久度规范,800GB的S3700,耐久度为14.6PB,800GB的S3500只有450TB,而300GB的SSD 710耐久度也能达到1PB。显而易见,S3500并非面向高强度写入应用。
Intel第三代主控:解决延迟问题
在明白Intel的新主控带来的变化之前,我们得先复习一下SSD的存储原理。我们都知道,和HDD天生的不同,SSD的读写单位为页(Page),页的一般大小为4KiB或8KiB;HDD的读写单位为扇区(Sector),一般大小为512B或者4KiB。而在擦除NAND的时候,则使用块(Block)为单位,一个块一般包含着128或256个Pages;HDD则没有这个概念。对于Intel的25nm NAND来说,一次擦除就是2MiB(8KiB每页)。
OK,这就是在处理上SSD和HDD的根本不同,由此衍生出一大堆不同的性能差异来。通常,为了保持上层操作系统/文件系统的一致性,SSD通过主控来隐藏这个不同处理过程导致的区别,这个工作引入的就是FTL(Flash Translation Layer,闪存转换层),FTL将操作系统熟悉的LBA(Logical Block Address,逻辑块地址)转换到SSD的PBA(Physical Block Address,物理块地址)。LBA到PBA显然是一种映射,在HDD上,它是1:1对应关系,除了缺陷管理之外不会变更,而在SSD上,由于磨损平衡的关系,同一个LBA对应的PBA并不是固定不变的——这个映射表是动态变化的。显然,FTL的转换性能影响着SSD的性能,这也是我们关注SSD主控的原因之一。
按查找方式划分的数据结构。FTL就是在一个数据结构中进行查找或其它操作以维持一个LBA到PBA的映射关系
FTL维护着动态变化的映射关系,这个映射关系通常使用一个叫B-tree的数据结构来保存,这个数据结构保存在SSD上面,但是通常会保存在一个接近FTL主控的Cache当中以加快处理速度。注意B-tree的B是Balance,而不是Binary,前者是平衡多叉树,后者是二叉树。两者的区别在于,前者不限制二个分叉,因此,B-tree树的高度通常比后者的要低,操作效率更高。
B-tree示例,可以看出,B-tree是一个有序集合,查询从树根开始一直到某一结点;通过B-tree,FTL可以以最低O(log2N)的高效率进行LBA到PBA的映射查找
B-tree的如B+-tree、B*-tree、FD-tree等等改进型广泛应用于存储相关的产品当中,如在文件系统中的应用就非常多。类B-tree的一个重要的问题就是其查找性能良好,然而其分裂、插入结点的操作相对缓慢。在FTL进行读取操作时需要的就是对B-tree进行查找,而写入则需要进行分裂、插入;对SSD连续的写入可以让一个结点包含一大块地址来解决,而随机写入则只能让B-tree变大,这会带来很明显的延迟,因此SSD的随机写入性能通常都比读取要慢。
第一代Intel SSD主控:PC29AS21AA0,来自Intel SSD X25-E,Cache为16MiB DRAM
第二代Intel SSD主控:PC29AS21BA0,来自Intel SSD 710,Cache容量为64MiB DRAM
这个B-tree——映射表通常保存在接近FTL主控的Cache当中(再一次:这点跟CPU当中的TLB很像),在Intel的第一第二代FTL主控上,搭配了一个容量相对较小的Cache,分别为16MiB和64MiB。Intel引以为豪的是这个Cache完全不保存用户数据,而仅仅保存映射表,因此掉电保护只需要很小的电容就能做到。和其它SSD相对较小的Cache是Intel SSD的一个特点,不过它有一个问题:映射表无法完全载入Cache当中,此外,映射表也需要不停地进行压缩、重平衡,这种维护操作带来了进一步的延迟。
4KiB随机读取延迟对比:低队列深度下,SSD 710的延迟较低,然而随着队列深度增加,其延迟增长比SSD 520明显要快;SF2281主控内置SRAM,容量不明
4KiB随机写入延迟对比:在1队列深度下,SSD 710的延迟是SSD 520的1.55倍,在256下飙升到10.7倍;测试基于非对齐的重复数据,因此SF2281可以启动其硬件压缩引擎
按照映射表在DRAM Cache中缓冲的多寡来分的话,SSD可以分为DRAM完全缓冲、DRAM部分缓冲、DRAM完全不缓冲型,还有一种主机内存完全缓冲型(映射表保存在系统内存中,由驱动维护)。显然,Intel PC29AS21AA0和Intel PC29AS21BA0属于DRAM部分缓冲型,而SandForce SF2281则属于DRAM完全不缓冲型——不过SF2281内置SRAM进行了部分缓冲,两种方案可以看做有些相似。在上面的对比中我们可以看到,Intel的第二代主控延迟表现不甚理想,特别是4KiB随机写入,比SF2281要慢很多。需要说明的是,背后的因素有些复杂,在我们的例子当中,使用的测试数据是重复数据,因此在SF2281硬件压缩引擎的作用下,可以有充分的带宽去读取Flash芯片上的映射表。
第三代Intel SSD主控:PC29AS21CA0,来自Intel SSD DC S3500,Cache容量为1GiB DRAM
到了第三代主控,Intel使用了完全不同的做法:它取消B-tree数据结构使用了一种平面1:1映射表,并将其完全装载入新的1GiB的大容量DRAM当中,因此它不再需要动态维护B-tree。理论上,PC29AS21CA0的随机操作延迟特别是写入延迟因而会有很明显的降低,此外,延迟的不均衡性也会得到极大的消除。Intel宣称SSD DC S3500可以提供75K/11K的4K随机读写延迟,并且提供了一致性的IO延迟——也就是提供一致的IOPS,不会因为长时间的使用或者边界条件而导致很差的性能。
Intel SSD DC S3500的随机读写一致性,Intel保证提供在99.9%的情况下可以达到90%的读IOPS和75%的写入IOPS
完整的数据保护:面向数据中心
使用新的映射表架构的代价是需要针对1GiB容量的DRAM进行掉电保护,Intel的做法和此前没有什么不同,都是采用了大电容来进行保护,不过具体实现不太一样:
Intel SSD 710上的6个KEMET基美的T520系聚合钽贴片电容,规格为6V 470uF
Intel SSD DC S3500上具有两个35V 47uF的NCC(日本化工)Chemi-con KZH系列黑金刚铝电解电容
可见,不知为何,相比SSD 710,SSD DC S3500的储电能力有所下降,这样的变化一定有其原因。
除了掉电保护之外,SSD DC S3500还具有完整的端到端数据保护,包括SRAM Cache、DRAM Cache、Flash NAND等全部都具有ECC保护,并且S3500提供AES-256数据加密保护,而Intel SSD 710和Intel SSD 520都只支持AES-128。
概括
还有一些值得一提的要点是:新的控制器支持SATA 6Gb/s,提供7mm 2.5"和5mm 1.8"两种外形因子,可靠性为200万MTBF小时
看完对SSD DC S3500的特点介绍,我们接下来来实际看看这个产品的样子:
Intel SSD DC S3500只有这样的环保纸盒包装,没有零售版本
我很怀疑企业用户是否会需要背后那张SPEED DEMON贴纸,除了贴纸之外,S3500完全没有其它附件
Intel SSD DC S3500固态硬盘,7mm 2.5“外形因子
和一般固态硬盘稍微不太一样的是,它同时能接受+5V和+12V输入,额定电流分别为1.44A和0.6A,简单计算可以得到一样的标称功耗数值:7.2W
如果你想要拆解的话,需要把正面的贴纸掀起一角,这一点也和之前的型号不同
除了一个螺丝孔被遮住这一点之外,S3500的拆解丝毫不成问题:
拆开来首先看到的是非主控那一侧,此外,拆下来的盖子可以看到有塑料膜保护层,企业级产品还是讲究一点
这无主控的一面另有玄机:仔细观察,第二排最右一个NAND芯片与其他七片很不相同,它的型号为Intel 29F16B08LCMF2,其它为Intel 29F32B08MCMF2-ES。
除了FTL闪存转换层的改变之外,PC29AS21CA0还是Intel首个基于SATA 3.0的控制器,它支持SATA 6Gb/s速率,支持ATA8-ACS2和SCT指令集,支持SMART、NCQ和Trim。PC29AS21CA0是一个8通道的主控,之前的BA0、AA0均为10通道。它搭配了两块Micron的D9PCP DDR3-1600 ECC DRAM。
此外,跟另一面对比,SSD S3500主控这一面的NAND芯片也有玄机:第二排最后一个NAND与众不同,它的型号为Intel 29F64B08NCMF2-ES,其它为Intel 29F32B08MCMF2-ES,结合另一面,可以看到S3500总共用了14片32GiB的29F32B08MCMF2-ES、1片32GiB的29F64B08NCMF2-ES、1片16GiB的29F16B08LCMF2。总容量为528GiB,提供给用户的则是480GB,注意到GiB和GB的差异,有约15.3%的总容量用于存放映射表、ECC以及Over Provisioning和Wear Leveling。这样不对称的搭配有些诡异,它表明映射表可能是保存在固定的NAND芯片上面。
两个35V 47uF的NCC(日本化工)Chemi-con KZH系列黑金刚铝电解电容。
看完拆解,接下来我们就开始准备测试了。
我们使用了一台Intel Sandy Bridge-E + X79平台来进行测试,Sandy Bridge-E是Intel顶端的桌面平台(直到最近被Ivy Bridge-E替代)。平台采用Core i7 3960X处理器,主频3.33GHz,搭配的芯片组为Intel Patsburg,也就是PCH X79。CPU提供了40个PCI Express Gen3 Lanes,PCH额外提供了8个PCI Express Gen2 Lanes。PCH X79提供了6个SATA接口:2个SATA 6Gb/s、4个SATA 3Gb/s,Intel SSD DC S3500接在第二个SATA 6Gb/s接口上。测试使用的操作系统是Windows Server 2012 Datacenter,安装了最新的Intel Rapid Storage Technology enterprise 3.6.0.1093驱动。使用的测试软件为Iometer 1.1.0 rc1。
测试平台、测试环境
|
||||
测试分组 | ||||
类别 | Intel Sandy Bridge + X79测试平台 Intel Core i7 3960X 32GiB RAM |
|||
处理器子系统 | ||||
处理器 | Intel Core i7 3960X | |||
处理器架构 | Intel 32nm Sandy Bridge-E | |||
处理器封装 | 2011 FC-LGA 45.0 mm x 52.5 mm 2270M Transistor |
|||
处理器规格 | 六核 TDP: 130W |
|||
处理器指令集 | MMX,SSE(1,2,3,3S,4.1,4.2),EM64T,VT-x,AES,AVX | |||
L3 Cache | 20MiB @ Core Speed 20路组关联 |
|||
内存控制器 | 每CPU集成四通道DDR3-1600 | |||
内存 | 4GiB DDR3-1600 SDRAM x8 @ DDR3-1600 |
|||
IO子系统 | ||||
PCI Express | CPU:40 Lanes PCI Express 3.0 PCH:8 Lanes PCI Express 2.0 |
|||
SATA | SATA 6Gb/s x2 SATA 3Gb/s x4 |
|||
存储子系统 | ||||
SSD | Intel SSD DC S3500 480GB | |||
控制器 | Intel PC29AS21CA0 | |||
接口 | SATA 6Gb/s | |||
软件环境 | ||||
操作系统 | Windows Server 2012 Datacenter x64 | |||
驱动程序 | Intel Rapid Storage Technology enterprise 3.6.0.1093 | |||
测试软件 | Iometer 1.1.0 rc1 |
我们首先测试了Intel SSD DC S3500的基准性能指标,并对其延迟进行了重点测试,接着进行应用性能指标测试。测试结果与Intel SSD 710和SSD 520进行对比。最后,我们还进行了一些特别的测试。在阅读接下来的测试前,我们再来复习一下二进制词头:
IEC(International Electrotechnical Commission)在1998年提出了新的二进制词头,在通常的SI十进制词头后面增加了一个字母i,i表示的是binary,例如,1KiB=1024B,依次类推,这套记法被称为IEC 60027-2单位制,后来演变成ISO/IEC IEC 80000-13:2008规范。
在后面我们可以看到4KiB、1MiB等容量,有4KiB=4096B、1MiB=1024KiB=1048576B=1048.576KB=1.048576MB,请加以注意。
首先进行的是基准指标测试:4KiB和1MiB下的性能:
结果可能不令人惊讶,Intel SSD DC S3500提供了92.8K的4KiB连续读取IOps和84.3K的4KiB随机读取IOps,比Intel SSD 710分别要高108%和88.6%。
Intel SSD DC S3500的4KiB连续写入和随机写入可以达到约62.8K和63.7K,其中随机写入要比SSD 710高出很多,和默认的标称值11K也有明显的差距,这个是怎么回事呢?下一页我们再详细介绍。
使用1MiB的块大小,Intel SSD DC S3500可以获得546MiB/s的连续读取传输速率,注意MiB和MB的分别,换算过去可以达到572MB/s,很接近SATA 6Gb/s接口600MB/s的上限了。写入则大约在410MiB/s左右,峰值为423MiB/s。
前面说过,第三代Intel SSD主控采用了完全不同的FTL逻辑,因此其延迟会有提升,接下来我们就来看看这个提升:
相比710,S3500在32队列深度降低了47.2%的延迟,在256队列深度降低了46.8%的延迟;在256队列深度,S3500对比SSD 520也要低27%。
写入有两种情况:4KiB块对齐和不对齐,不对齐写入会有什么影响?这意味着4KiB的写入会跨越两个4KiB的Pages,这会很大地降低写入性能。根据测试,对齐和不对齐,S3500的延迟数值变化有5.9倍。不对齐写入,在高队列深度下,SSD S3500的延迟是SSD 520的3倍,改为对齐写入的话,延迟则反而只有SSD 520的42.8%(256队列深度);至于SSD 710的延迟……在256队列深度下达到了103ms,是S3500的25倍!
因此,根据对齐和不对齐,我们具有两个IOps曲线,4KiB对齐随机写入为63.7K IOps,4KiB不对齐随机写入为14.7K IOps,后者和标称的11K接近,因此我们知道了,Intel给出的标称值是不对齐情况下的。
重新做了一个包含对齐和不对齐的IOps图。现在很多HDD都已经迈向了4KiB扇区,而很多SSD也已经开始使用4KiB对齐读写作为指标,Intel应该顺应潮流才对。
我们的测试表明,Intel的第三代控制器具有着非凡的表现,在256队列深度下,读取延迟降低了46.8%,写入延迟降低了96.0%!在32队列深度下,读取延迟降低为47.1%,写入延迟降低为95.4%,效果显著,随机读写IOps也随着明显提升。
测试完基准性能指标之后,我们再来看看企业应用脚本下的性能:
文件服务器:17.4K IOps。
网站服务器: 25.6K IOps。
数据库服务器:23.6K IOps。
工作站:29.4K IOps。
对比使用第二代控制器的Intel SSD 710,Intel SSD DC S3500在各种应用中提升的幅度在1倍到3.8倍左右。
我们对Intel SSD DC S3500使用的电容比较在意,正好笔者手上有一个UNI-T UT61E万用表,于是就进行了一个额外的小测试:
电路板上的两个35V 47uF的NCC(日本化工)Chemi-con KZH系列黑金刚铝电解电容:
工作时电容上的电压高达33.29V,注意人体安全电压是36V,因此这个固态硬盘可不能随意乱碰!也因此SSD内部添加了塑料内衬以起保护作用。为何要浪费大量的PCB来添加DC-DC升压线路将电压从+5V/+12V升到33.29V,而不是使用Intel SSD 710上面的贴片方案呢?可能是为了维持PCB的电气性能。不过,尽管使用了较高的电压,不过其储存电量经过计算仍然不及SSD 710,这个应该就如前面所说的,第三代Intel控制器的映射表保存在特定的NAND芯片上,这个很可能跟S3500采用的非对称NAND芯片方案(14个32GiB芯片、1个64GiB、1个16GiB)有关——电容只需要对该NAND芯片供电即可。
Intel SSD 710上的6个KEMET基美的T520系聚合钽贴片电容,规格为6V 470uF
【CBSi企业解决方案中心】Intel SSDDC S3500采用了Intel的第三代SSD主控:PC29AS21CA0,其FTL映射表抛弃了以往的B-tree结构而转用1:1的平面结构,并通过高达1GiB的DDR3-1600 DRAM(较低容量的型号使用512MiB的DRAM)将整个映射表缓冲,从而达到了极为出色的随机访问性能,根据我们的测试,Intel SSD DC S3500 480GB在256队列深度下,读取延迟降低了46.8%,写入延迟降低了96.0%,它可以提供84.3K的4KiB随机读取IOps以及63.7K的4KiB随机写入IOps,远比基于第二代主控的Intel SSD 710要高。
第三代Intel SSD主控:PC29AS21CA0,来自Intel SSD DC S3500,Cache容量为1GiB DRAM
只是需要注意的是63.7K的4KiB随机写入数值需要4KiB块对齐,在不对齐的情况下,S3500只能达到14K的4KiB随机IOps。
经过实际检测,我们还发现了SSD DC S3500内部使用两个35V 47uF的电解电容,储存了高达33.29V的电压,这样的结构可能跟S3500采用的非对称NAND芯片方案(14个32GiB芯片、1个64GiB、1个16GiB)有关联。
Intel SSD DC S3500固态硬盘,20nm MLC,发布日期2013年Q2,代号Wolfsville
还有一项未来得及表现的是IOps稳定性,在我们的测试当中,Intel SSD DC S3500表现很稳定,包括SSD 710的固态硬盘在经过笔者的测试脚本测试数次之后,性能都有较明显的降低,S3500则没有。除了不太耐写之外,Intel SSD DC S3500是一个让人十分满意的产品,这让笔者对Intel SSD DC S3700的兴趣变得更大了。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。