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(来源:ZDnet,下同)首先是使用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——映射表通常保存在Cache当中(再一次:这点跟CPU当中的TLB很像),在Intel的第一第二代上,搭配了一个容量相对较小的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 470uFIntel 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。企业级SSD的讲究:防震加固PCB的几个小部件Intel SSD DC S3500的主控侧除了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 SSD DC S3500总拆解图看完拆解,接下来我们就开始准备测试了。
我们使用了一台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 12.8.0.1016驱动。使用的测试软件为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 Cache20MiB @ Core Speed
20路组关联
内存控制器每CPU集成四通道DDR3 1600
内存4GiB DDR3 1600 SDRAM x8
@ DDR3-1600
IO子系统
PCI ExpressCPU:40 Lanes PCI Express 3.0
PCH:8 Lanes PCI Express 2.0
SATASATA 6Gb/s x2
SATA 3Gb/s x4
存储子系统
SSDIntel SSD DC S3500 480GB
控制器Intel PC29AS21CA0
接口SATA 6Gb/s
软件环境
操作系统Windows Server 2012 Datacenter x64
驱动程序Intel Rapid Storage Technology 12.8.0.1016
测试软件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 470uFIntel 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。
Intel SSD DC S3500总拆解图经过实际检测,我们还发现了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的兴趣变得更大了。
Intel SSD DC S3500拥有比标称值高4.5倍的4KiB随机写入性能,只要你的操作是4KiB对齐的