全闪存是最好的吗?
过去三年以来,基于闪存的存储产品越来越多。目前已有用于服务器的PCIe卡和磁盘规格的产品、可安装在网络中的高速缓存设备、用于传统阵列架构的标准磁盘规格的固态硬盘、传统阵列前端的高速缓存,当然还有全闪存阵列。
没有一家存储阵列厂商不想参与“闪存革命”。这并不意外。因为考虑到在这个Web 2.0时代被存储、访问、移动和分析的数据以及日志数据设备的爆炸时代,闪存技术就像一个“天赐”之物。
但是,多样性也导致难于选择合适的闪存实施方案。每家厂商在这个有利可图的领域中群雄逐鹿,使情况愈加复杂,性能、耐用和某些方面经常被夸大。那么,不胜重负的存储经理人应该如何应对?这是一个可能需要广泛讨论的大题目,因此,我们将把焦点集中在全闪存阵列以及它们可能适合的应用需求的类型。我们将在以后的专栏里了解其它的产品替代方案和实施时的考虑因素。
全闪存阵列的QoS问题
最近我看到一些全闪存厂商的文章,声称保证应用的服务质量(quality of service,QoS)的唯一可行办法是使用全闪存阵列。论点是性能控制可以完全与容量级别无关,而且相关的应用绝不会对正在讨论的应用带来QoS问题。从计算机科学层面严格地来看,这个说法难以争辩。由于对任何部分的闪存进行访问都与其它事情无关,假设阵列用于应用的容量大小的设定是正确的,向应用提供的IOPS(或者吞吐量或者延时)将是一个常量。确实有一些假设认为,延时和性能经过一段时间仍维持不变,这在早期的闪存系统确实是一个问题,但是大多数产品已经解决了这个问题。由此看来,只有全闪存阵列才能提供不折不扣的QoS的说法是正确的。
然而,在大多数应用环境中,只要其设计从一开始就考虑QoS的需求,同时使用闪存和HDD的混合系统也可以提供极佳的QoS。需要注意的是,并非所有目前可供选择的混合系统都能做到这点。最佳的QoS控制是通过从设计伊始即考虑闪存和QoS的系统来实现的。仅仅添加闪存驱动器替换硬盘驱动器的系统则与此相反。精心设计的混合系统可以处理我们一般日常处理的80%以上的应用,因此它们可以成为全闪存阵列极佳的低成本替代方案。
当然,其它系统设计原则依旧适用。换句话说,如果在最佳状态下整体IOPS满足不了需求,你就不能把10个IO密集型应用作为虚拟机运行却期望每一个应用都获得可接受的QoS。这对全闪存阵列而言也是一样的。无论使用何种物理配置和介质,好的设计需要平衡应用的需求和阵列的性能。如果这些原则得到深思熟虑地运用,你可能就不需要全闪存阵列了。
重复数据删除技术能否带来价格的公平竞争?
有些全闪存阵列厂商声称他们的系统是精心设计的,例如,具有内置的重复数据删除技术,每GB容量的实际价格等于或者低于基于HDD的系统。他们的结论是:当你可以用同样的价格获得一套全闪存系统,为什么还要为混合系统操心呢?尽管据我目前所知,有些全闪存系统接近这个目标了,但是,即使把重复数据删除技术和压缩技术的假设计算进去,全HDD或者混合阵列仍然比全闪存阵列稍微便宜一些。当重复数据删除或压缩功能启用的时候,这些全闪存阵列的性能会被削弱;另外,如果因为性能而考虑使用全闪存阵列,那么其它的事情就不用再考虑了。还要注意的是阵列可提供的存储服务的类型和成熟度。正是这些特点使阵列物有所值。
很关键的一点是,你需要知道你的大部分工作负载都很适合混合系统。但是,某些应用程序在某些时候是需要全闪存阵列的。所以,现在就要预留全闪存阵列以用于这些特殊用途。通常,适用于全闪存阵列的应用程序需要持续的IOPS,所以任何时候都不能闲置或者降低对系统资源的需求。
很显然,闪存在未来将大行其道。有些人认为HDD会完全消失。即便这种情况真的出现,也不会很快发生。实际上,我们需要为可预见的将来明智地选择同时使用闪存和基于HDD的系统。