SSD为存储系统提供了难以置信的性能,工业存储的性能比最快的机械硬盘还高出10倍。然而由于SSD的写性能会受到块擦除延时的影响,所以SSD通常作为读取设备。但这并不是说SSD对写性能没有提升,其实它会提升写性能,只是SSD的写性能只有读性能的一半。另外,SSD的写性能是逐渐下降的,这也是它的一个性能问题。
SSD技术限定了写操作的生命周期(读操作不会影响SSD产品的生命周期和可靠性)。SSD芯片使用“单元”来记录数据位。当这些单元被写入、擦除或重新写入时,这些操作都将逐渐降低单元的性能。在经历了一定数量的程序周期/擦除周期后,一个单元将会损坏从而无法再被使用。控制器会记录这些损坏的单元,从而避免这些坏块再被使用,这和它们对传统硬盘坏块所做的一样。单元损坏后,SSD的容量会减小,直到它必须被替换掉。IT管理者为SSD投入了很大的花费,所以他们希望采取一些方法来保证SSD的最大使用寿命。SSD厂商会提供保修服务,有一些厂商甚至会额外提供20%的存储容量来抵消损坏单元所造成的影响。
SSD在制造上主要有三种技术:多层单元(MLS)、增强型多层单元(eMLC)和单层单元(SLC)。MLC是面向个人消费者的产品,因为它的制造成本和价格都是最低的,理所当然它的使用寿命也是最短的。MLC芯片的写操作为3000-10000次。与MLC相对,企业级SSD通常使用SLC技术,SLC可以支持100000次写操作。另一个选项是eMLC,它同时吸取了MLC和SLC的优点,它支持20000-30000次写操作,但价格却低于SLC。总而言之,你愿意花费多少,你就能得到多少。
尽管厂商试图通过写缓存和顺序写来减轻这些问题,但如果IT管理者能够聪明的部署SSD,就能够最大程度的得到SSD的使用寿命。以下是一些好的方法:
第1步:了解应用程序的使用数据特征。
大部分组织都不了解自己的应用程序使用数据的特征。常见的方法是简单的部署最昂贵的HDD硬盘,并且超额提供给应用程序。这很简单,也能良好的工作,但它却使容量管理效率低下,并且带来了不必要的开支。大部分的存储厂商提供性能监测工具来了解实际的I/O使用情况。系统级的性能特性可能可以良好的划分SSD所占存储的比例来满足性能需求,但它们无法对SSD设备的使用寿命提供任何有用的信息。使用寿命是SSD总体拥有成本(TCO)的一个重要组成部分。通过实验来了解应用程序性能需求是以最低TCO来得到足够性能的唯一途径。
第2步:将应用程序以读I/O的密集程度分类。
在了解了对指定应用程序的I/O特征需求后,下一步就要将读密集型应用程序和SSD的读取性能关联起来。尽管这些数字看起来很枯燥,但利用它们来做出决定是非常科学的。只有少数应用程序是只读的应用程序,毫无疑问SSD是它们的最好选择。大部分的应用程序是有读写需求的,而这个读写的比例是我们用以分类的标准。读操作比例高的应用更能从SSD得到好处,并且副作用很少。
但问题来了,并非所有读I/O任务都是相等的(事实上我们在谈论读操作时,输入(O)比输入(I)要多)。I/O分为随机I/O、顺序I/O和递归 I/O,性能监测工具无法告诉你它们的类别。随机I/O在SSD能容纳所有数据时不会成为一个问题。顺序I/O不会通过SSD而得到好处,除非所有数据都存放在SSD中。并且顺序I/O的应用通常是批处理的,而且只是偶尔运行。如果这些应用没有大量的突发I/O并且对时间要求不是很严格,将它们放置在 SSD中从经济角度来说并不划算。对递归读I/O的应用部署SSD是一条黄金准则,这并不需要人们在做出这个决定之前去做过多的理解。
第3步:合理的分配SSD存储。
有了上面的数据和预测,存储管理者需要最大化的使用昂贵而有限的资源。他们需要精确提供性能最好的SSD资源。关键应用并不一定对性能有高要求,所以仅仅因为它们很重要而提供最昂贵的的存储是一种对资源的误用。
第4步:不要把成本看得比业务价值还重要。
由于IT部门要承担存储的TCO,所以很容易出现仅仅通过成本来做出是否部署的决定。然而,如果一个应用程序需要SSD级的性能,那么即使它不符合SSD使用寿命的黄金准则,它也应该被部署SSD。将业务价值看作TCO的一部分会快速的改变其计算方法。