DoSTOR存储分析 7月28日,直到最近,人们传统上还认为单层单元(SLC)技术是唯一适合企业级固态驱动器(SSD)的NAND闪存类型。这个情况已经有所改变。受益于记忆体技术、控制器技术的进步和SSD厂商的努力,多层单元(MLC)也开始进入企业级领域,而且仍然保持着相对于SLC SSD的成本优势。
大体上,SLC闪存要比MLC贵许多,不过它可以提供更好的耐受性(可靠性)和性能。不过事情没有这么简单。
这两种技术基本的比较方面是耐受性、性能和价格。
耐受性
耐受性通常用一个媒介类型在发生故障前所能支持的写入数量来表示。通常,SLC NAND可以承受10万次写入,而MLC只能支持1万次写入。不过,这种比较没有考虑到SSD驱动器、控制器和阵列厂商在NAND可靠性上所实施的改进。
Texas Memory Systems销售工程和消费者支持总监Jamon Bowen表示:"头号问题是耐受性。我们没有办法让MLC完全赶上SLC,不过我们有办法改进MLC,使MLC也适用于一些企业级应用。"该公司从上世纪70年代开始就销售基于DRAM(动态随机存取记忆体)的SSD并于2007年推出基于SLC闪存的SSD。
厂商们使用各种技术–一些是通用的,一些是专有的–来弥补MLC相对于SLC闪存在可靠性上的差距。这些例子包括用损耗平衡(或写入平衡)技术来均匀分布写入,使用DRAM高速缓存或写入聚合,最小化写入偏差,过量配置容量,改善错误纠正代码(ECC),或使用数据压缩等技术来减少需要写入到闪存记忆体的数据量。大部分这些技术可以用于SLC和/或MLC驱动器,不过它们在MLC领域中的使用越来越普遍。
一些SSD厂商使用专有技术来缓解MLC闪存在耐受性上的瓶颈。例如,STEC在它的MLC SSD上使用一种名为"CellCare"的NAND管理技术。STEC同时还使用被称作"闪存元素安全阵列"(SAFE)的专有技术,该技术在SSD中增加用于恢复操作的校验码,减少主机所"看到"的错误率。
(STEC是企业级SSD市场上早期的领导者。该公司赢得过大多数主要的磁盘阵列厂商的订单。该公司有两个主要的SSD产品线:SAS/光纤通道型ZeusIOPS SSD和SATA型March 8 SSD。这两种SSD都有SLC版本,最近还推出了MLC版本。STEC技术营销副总裁Scott Stezer表示大约95%的企业级驱动器是SLC型设备。)
一些耐受性改善技术可以用软件实施,而另一些则要求更快更智能的控制器和固件。
耐受性问题上的一个不利因素:目前还没有衡量和规范耐受性的统一标准。
英特尔NAND解决方案集团营销总监Pete Hazen表示:"目前市场上关于耐受性问题的说法十分混乱。"不过,他指出像JEDEC(电子器件工程联合委员会)这样的组织已经在着手制定标准,以便让用户可以更容易地评估SSD的实施。网络存储行业协会(SNIA)固态存储行动(SSSI)小组也在致力于SSD标准的制定。
英特尔的Hazen表示:"你必须留意应用程序对耐受性的要求,然后观察SSD是否可以满足这些要求。然后,就是性价比的比较。"
性能
MLC的读取性能可以做到和SLC接近,但是MLC NAND在写入上的性能则不如SLC闪存。不过厂商们使用各种技术来改善MLC SSD的写入性能,尽管这里面要牺牲一些其他指标。
英特尔的Hazen表示:”你可以用更多通道来进行并行化,但是这会给能耗带来挑战。你可以在设备层面上使用同步操作,但是这会增加成本。”基本上,NAND层面上的SLC和MLC在写入性能上有两倍到三倍的差距。
在SSD层面上,性能主要依赖于控制器的实施、DRAM高速缓存以及其他因素,比如固件效率、将数据放在此前擦除过的块上的能力、过量配置以及读取/写入类型因素,比如数据传输大小和随机vs.顺序I/O。
价格
Texas Memory的Bowen表示:”MLC的潮流主要是受价格因素推动,而不是性能或耐受性特点。”
从每GB成本角度来说,虽然SSD定价波动比较厉害而且NAND层面上的SLC和MLC的价格差距在2008年曾达到4.5倍,不过基本上SLC和MLC是两倍到三倍的差距(部分要看MLC记忆体单元存储多少比特)。NAND层面上的定价很大程度上取决于供给需求因素和NAND光刻技术(芯片尺寸)。
不过,NAND层面上的价格差距并不一定反映阵列层面或SSD驱动器层面上的价格差距。一些厂商(比如Anobit、Nimbus等)声称SSD的价格接近于采用传统(旋转式)硬盘驱动器的高端RAID(独立磁盘冗余阵列)阵列的价格。
终端用户层面上的价格也很大程度上取决于其他因素,比如控制器的复杂性(智能性越高,成本越高)。
建议
STEC的Stezer表示:”价格通常是用户所关心的,这也就是我们为什么致力于MLC开发的原因。如果你的应用程序主要是读取操作,那么MLC是非常有效的解决方案。不过,如果你使用的是写入密集型的应用程序,我的建议是用SLC。”
Texas Memory的Bowen表示:”对MLC和SLC的比较应该注意应用程序的要求以及环境可以忍受的故障率。MLC不适合I/O密集型数据库,但是它可以用于可以承受更多故障的分布式应用程序。”
英特尔的Hazen表示:”当用户分析实际要求的时候,他们发现这些要求并没有他们所想的那么高。许多应用程序是读取密集型的,这非常适合于MLC SSD。这也就是为什么MLC在这些环境中取得如此大进展的缘故。”
对SLC和MLC的选择并不一定是非此即彼的选择。一个兴起中的趋势是将SLC和MLC SSD结合在一个分层体系中,就像我们对SAS和SATA驱动器所做的那样。