要改善物理服务器或虚拟服务器应用的I/O性能,一个重要因素就是缩短I/O发起者与目标存储之间的延时。延时是应用程序性能的顽固之敌,有着简单的算术关系:随着时延增加,性能降低。
延时与下面几个因素直接相关,我们一同来看看。
· 距离延迟,这受限于光的速度
· 存储协议延迟,如TCP/IP,FCP,iSCSI,FCoE、 AoE、 SCSI、 SATA、 SAS等
· I/O 处理步骤延迟,这是由于I/O处理路径需要经过从应用到目标存储,包括PCIe、 SAS、 SATA、 FC等类型的存储控制器
· 切换延迟
· 争用延迟
· 存储的读写延迟 (这项对于旋转介质相对较高) 延迟是添加剂。关于降低延迟和提高 I/O 性能的传统观点是消除或尽可能多地减轻相关因素。
· 减轻距离延迟:通过使目标存储尽可能接近 I/O 发起者
· 缓解存储协议延迟:通过使用需要处理或转换最少的协议
· 缓和 I/O 处理延迟:通过移除I/O处理路径上的某些步骤或控制器
· 避免切换延迟:不经过任何切换
· 减少争用延迟:通过限制I/O 必须经过的共享交换结构 PICe闪存卡 读/写延迟是存储管理员最关注并着力解决的,尽管它只是延迟全图中的一部分。
减轻这部分的延迟在今天看来是比较简单容易办到的,使用基于闪存的存储驱动器。支持SATA, SAS, FC或FcoE接口类型的闪存驱动器(又名固态硬盘或SSD)直接安装在服务器内,对减缓上边提到的其他类型延迟效果并不明显。
另一方面,PCIe闪存卡也确实减轻了那些延迟,因为它们是直接嵌入PCIe通道,而不是通过PCIe连接到外部的SAS,SATA或FC存储控制器。它们几乎不需要从应用到达目标存储路径的步骤。它们没有对交换的竞争。他们唯一的竞争来自于PCIe通道上的其他设备。
PCIe闪存驱动器对于减轻或消除所有延迟因素的能力,使得它很容易能提高应用的I/O性能。
随着NAND非模的继续下降,PCIe闪存卡的可扩展性一直稳步上升。今天,大容量的PCIe闪存卡可从3.2TB到4.8TB。一台具备四个PCIe插槽的服务器可拥有高达19.2TB的高性能低延迟的闪存。随着NAND发展到19nm和20nm以及3-D,容量会继续扩大。
这使近年来PCIe闪存卡如何占据服务器端闪存变得容易理解。然而,没有一种技术是完美的,PCIe闪存卡也不例外,它有很大的限制。那些PCIe闪存卡安装在物理服务器内部,它们只是本地存储。如果要在多个服务器上共享,它们需要特定软件将其虚拟化并转换成共享存储。这就增加了延迟并降低了I/O性能。增加的延迟量依赖于服务器的网络互连和TCP/IP。另一个针对虚拟化/共享的PCIe闪存卡的降低延迟的方法就是将数据复制到不同物理服务器上的闪存卡里。数据复制导致PCIe闪存卡容量至少增加了一倍(产生更多成本)。
还有就是服务器中的PCIe插槽有限,通常介于二至八个(根据不同厂商,可能会有更多,但也多不了太多)。那些PCIe插槽被用于众多不同的适配器,比如以太网卡,光纤卡等,使得可用于PCIe闪存卡的数目大大受限。刀片服务器和双服务器有着更严重的PCIe插槽受限和尺寸受限。
过去几年,或许PCIe闪存卡的最大问题一直是存在大量专有的软件驱动。每家厂商都有自己的驱动程序,API和软件。使用多家厂商的PCIe闪存卡甚至是交换机、第三方缓存软件而变得困难。
然而,业内人士已经走到一起来解决这个问题。主要的市场领导者(英特尔,戴尔,闪迪SanDisk,EMC,NetApp,三星,美光,安华/LSI,希捷,PMC,甲骨文,思科,西数/日立等)共同组织了以NVM Express(NVMe)来标准化PCIe闪存卡/SSD和API。所有供应商和其他大多数的PCIe闪存卡厂商都承诺将致力于NVMe。假以时日,这个问题将得以解决。
为应用很多用户需要的特性和功能,如提高可用性和正常运行时间共享,服务器虚拟化需要额外的存储。利用PCIe闪存卡和共享存储则需要额外的软件。该软件可能是直写式高速缓存软件(又名读缓存)或回写缓存。两者都会增加延迟以及许可和操作成本。
直写式高速缓存是最常见的。它将所有写操作都送到共享存储,并将访问频繁的读数据放入PCIe闪存卡中缓存。直写式高速缓存不会加速写I/O。但它能加快读I/O操作。回写式缓存每次在数据被确认写入时只将数据保留在PCIe闪存卡中。当初始写操作被确认写入后,写数据也被复制到共享存储。回写式缓存确实能加速写操作,但也加快了闪存的磨损。
内存闪存型存储
内存闪存型存储通过将闪存直接插到DIMM插槽,而使它距离应用的I/O更近。而这也使闪存看起来像DDR3内存一样。在DIMM通道上导致减速的因素更少,如I/ O集线器(最近纳入了英特尔最新的至强芯片组),PCIe控制器或存储控制器都可畅通无碍。DIMM通道上无需管理同其它设备的I/O竞争,而在PCIe通道上却必须协调。应用与内存存储之间的距离已不能再短,因为它已驻留在内存通道。内存闪存的平均写延迟可以小于5微秒,而PCIe闪存卡是这个数字的两到三倍。读延迟则基本相当。
但是,内存闪存型存储的真正性能优势是延迟的一致性。内存闪存存储具有很低的延迟变化率,而PCIe闪存卡的延迟变化率被证明要大得多。一个金融服务公司的测试结果显示,PCIe闪存卡的延迟变化率超过内存闪存三个数量级(1000倍以上)。
这可不是小事。
具有高分页比而又内容受限的应用将会得益于连续一致的低延迟。这类应用程序中有内存数据库,高频交易,衍生品交易,布莱克斯科尔斯建模,BGM/LIBOR建模,石油和天然气储层建模,地震资料解释,流体学模拟,湍流模型,三维建模,动画渲染,CGI,蛋白质-基因组匹配等。
虽然DIMM插槽比较有限,但19纳米的NAND非模可以打造200或400 GB的内存闪存。正如PCIe闪存卡将受益于更小的NAND非模以及3D NAND,内存闪存也一样。
服务器DIMM插槽就是更好的事例。虽然服务器的PCIe插槽有限,DIMM插槽却多得多。举个例子,以Intel最新的四插槽(4颗至强E7-4890)主板为例,有96个DIMM插槽,或每CPU插槽24个DIMM。
假设每CPU至少有两个DIMM插槽用于SDRAM,那么一共留下88个DIMM插槽可供内存闪存使用,约35.2 TB的极速闪存存储。
就像PCIe闪存卡,内存闪存存储也有其不足之处。目前只有一家供应商(Diablo Technologies),并且它通过闪迪Sandisk公司出售其内存闪存。
闪迪的智能存储将Diablo的技术与自身的Guardian软件相搭配,以提高闪存的性能,增强NAND耐受性,减少写入放大,并提供卓越的检纠错功能。合并后的产品以ULLtraDIMM进行销售。
预计其他厂商将迅速进入内存闪存市场。但在那以前,经济规律的稀缺法则意味着内存闪存的每GB价格将比PCIe闪存卡更高。
IBM在其System X服务器中是eXFlash技术的早期OEM。IBM MSRP显示每GB容量内存闪存比PCIe闪存卡有大约3倍到4倍的溢价。
小结:如同所有的技术对比,哪一个更加胜出,它取决于具体情况。当应用程序对延迟的一致性要求高,并且这是很重要的,那么内存闪存更具优势。当应用程序内存受限或服务器插槽紧张(PCIe插槽少,刀片服务器等),内存闪存再次具有优势。而另一方面,当技术成熟度,产业标准化,厂商选择以及成本是重要因素,则PCIe闪存卡拥有优势。