服务器SSD不一定非得是PCIe

我在研究服务器SSD(固态驱动器)使用的过程中同用户和厂商都进行了对话,我发现大多数人认为服务器SSD必须是Fusion-IO、美光、Virident或LSI这样的厂商制造出来的超高性能SLC(单层单元)PCIe闪存卡。虽然人们大部分知道主流的SAS或SATA接口SSD是2.5英寸格式,但是他们看起来认为这些设备只适合于笔记本电脑或发烧友的台式机。

当然,市场上大部分SATA SSD不太符合数据中心使用的严格要求,但是在低成本SSD和计算中心和不计成本的PCIe卡中间有几个步骤。大多数人担心如果在磁盘阵列或服务器中配置SSD的话,在某个时点上这些设备会耗尽工作寿命并丢失所有数据。

我认为部分的问题是现在我们在数据中心中使用的不是慢慢损耗的设备。现在的峰装饰硬盘驱动器不是以可预见的方式损耗的——它们就是随机地发生故障——大部分存储系统将磁盘驱动器视作二进制设备,也就是要么正常工作,要么完全不能工作。因此,当一个设备有前置放大器故障的时候,它锁连接的RAID(独立磁盘冗余阵列)控制器就宣布该驱动器是坏的并停止使用该驱动器。

SSD的写入损耗并不是不可预见的,它是一个相对来说可以很好理解的过程。SSD中的闪存得到了很好的编程并可以擦写足够的次数,直到该闪存所在的错误阵列无法再让闪存控制器纠正错误。这种损耗并不是马上发生在整个SSD上,而是一个闪存页面一个闪存页面的发生。最终,这个SSD没有足够的空余闪存,同时SSD不再接受写入。

大部分闪存控制器都会谨慎地跟踪它们已经在它们所管理的每个页面上过度写入了多少次。通过智能诊断系统的扩展,闪存控制器可以将写入耐用性情况汇报给存储系统。如果我可以知道这个闪存损耗会在多少周或多少个月后给我带来麻烦,那么我只要在这个损耗率达到80%或90%的时候替换SSD就可以了。

RAID控制器可以发送一个信息说SSD 14已经达到了最高耐用度,需要新的或空闲的SSD并将RAID集重新构建到新的存储。如果这个SSD被用作读取高速缓存,不包含独一无二的数据,那么这个替换就更容易了。

由于MLC(多层单元)SSD(这种SSD可能只有5000次编程擦写周期的耐用性)通常成本只有eMLC或SLC SSD的十分之一。我们也许可以将MLC SSD看作是数据中心的消耗性设备。虽然我们也许无法预测一个MLC SSD是否可以工作18个月或5年,但是购买三个MLC SSD并根据需要替换它们也比购买1个SLC SSD更便宜。

当然,这不是数据中心购买设备的方式——我们根据未来峰值需要的预测来购买设备,然后还要乘上我们感觉需要保证存储正常运行的系数。个人而言,我会乘以π。因此,如果一个设备可能需要10TB的存储,我们要确保这个项目的预算可以达到30TB,这样我们在未来就不会因为存储短缺而烦恼了。

当然,在数据中心中引入消耗性设备的概念可能更适合那些需要更换接近工作寿命的服务器SSD的人。不过在我们未来拥有极好的非易失性记忆体之前,它还不失为避免高额资本支出并同时获得高性能的一种方法。

你们中一些人可能会担心有人会从你们丢弃的SSD中恢复敏感的公司数据。虽然这种顾虑是有道理的话,你可以对旧的损耗的SSD进行物理破坏。如果你可以将iPad破坏成彻底的垃圾,那你也可以对美光P400 RealSSD这么做。