拥抱闪存: 闪存技术详介及企业闪存解决方案部署
在过去25年间,CPU和基于硬盘的存储系统在性能上的差距以指数级逐年提高。为满足现如今对性能要求极高的应用程序的需要,IT专业人员采用了各种巧妙方法来弥补这一差距。这些方法包括使用数量有限、价格昂贵的高速缓存,以及使用各种RAID方案和智能固件等,不一而足。不过,尽管采用了这些改进措施,传统硬盘(HDD)存储系统仍难以满足现代应用程序对I/O性能的要求。
闪存可以消除所有传统硬盘存储系统中常见的旋转延迟和寻道延迟问题,从而提供出色的性能,这对于随机I/O尤其有效。在当今虚拟化应用程序环境中,I/O访问模式由于虚拟化的“混合作用”而变得更加随机。因此,闪存提供的出色性能意义重大。此外,闪存现在的购买价位比高速缓存便宜得多。因此,可以像部署传统硬盘存储一样,以超过高速缓存的容量来部署闪存。数据中心对闪存的使用越来越多,一些业内权威人士预计,规模经济最终会将闪存成本降低到与传统硬盘存储同样的级别,随着时间的推移,闪存将完全取代传统硬盘存储。
并非所有闪存驱动器均完全相同
虽然闪存能够取代数据中心的传统硬盘存储,但与磁介质相比,闪存实际上采用了不同的中硅或电子与非门,在性能、成本和数据保留特性上有很大不同,而这些因素可能会影响数据中心应用程序工作负载的经济性和运行状况。因此,在考虑采用闪存之前,有必要了解闪存技术的一些基本知识。
- 写耐用性:与传统硬盘存储上的磁介质不同,对于闪存,必须先擦除其中存储的数据,才能写入或“编程”新数据,这称为“编程-擦除”周期(PE/C)。闪存上与非门的PE/C最多约几千个,在经过最大周期数量后,闪存驱动器的性能和可靠性将大大下降,性能可能会降至原来的十分之一。闪存技术的这一特性限制了可以在闪存驱动器上执行的写操作数量。闪存的这一限制称为写耐用性,以每日驱动器完全写入次数(或每日驱动器填充次数)表示。
- 写悬崖:必须先擦除闪存驱动器中的与非门块才能将块写入,这一要求意味着闪存驱动器需要保留预先擦除的块,才能通过消除在每次按需执行擦除流程时可能发生的延迟来提高性能,即使写入较小的块也不例外。如果闪存驱动器中预先擦除的块不足,尤其是在驱动器已满的情况下或在持续的写密集型操作期间,可能会由于闪存驱动器尝试创建空闲的与非门块而产生较长时间(50毫秒以上)的延迟。闪存驱动器的这种写入性能降级称为写悬崖。
可以通过多种方法解决闪存驱动器的写耐用性和写悬崖问题,进而影响其成本和使用寿命。例如,要避免/延迟写悬崖,通常可过度配置用于内部事务处理的容量(增加每GB成本),以及使用称为“磨损均衡”的流程,将对同一个块的重复写入遍布到闪存上的多个新位置,以此确保驱动器受到均衡磨损(延长驱动器使用寿命)。
如今,市面上有三种基于写耐用性的常见企业级闪存驱动器。您对每项应用程序工作负载所选择的闪存驱动器可能会影响数据中心的经济性和运行状况。
- 读优化(RO)或多层单元(MLC)驱动器:此类驱动器针对读操作进行了优化。通常,MLC闪存驱动器的写耐用性为每日对驱动器填充1-3次。MLC闪存驱动器也是价格最低的企业级闪存驱动器。
- 写密集型(WI)或单层单元(SLC)驱动器:与RO驱动器相比,此类驱动器的写耐用性较高,并且过度配置程度通常更高。SLC闪存驱动器的写耐用性通常为每日对驱动器填充20到30次。写耐用性越高,成本就越高;因此,SLC是最昂贵、最可靠的企业级闪存驱动器。
- 混用(MU)或企业级MLC (eMLC)驱动器:这两种类型的驱动器尝试从写耐用性和成本角度上,兼顾SLC驱动器和MLC驱动器各自的优势。MU驱动器的典型写耐用性为每日对驱动器填充5到10次。
在企业IT解决方案中部署闪存
如图1所示,可以在IT解决方案的各个层使用闪存来改进应用程序I/O性能。当然,与任何其他技术一样,没有一种方法能适于所有使用情形,您必须对适当的应用程序使用适当的闪存,才能使您的数据中心实现闪存的经济和运行优势。
将闪存用作存储阵列中的高速缓存
最早采用闪存的方式之一是将闪存用作存储阵列中的第二层高速缓存。这样做的目的是在基于DRAM的系统高速缓存和速度较慢的硬盘之间放入一个较快的介质。借助将闪存驱动器用作第二级高速缓存的巧妙方法,阵列软件能够得到增强。通过将常用数据移至闪存高速缓存,能够减少从传统硬盘读取数据的需要,这可以缩短延迟,从而大大提升应用程序的性能。
此方法将存储控制器高速缓存层与闪存相结合,从而扩展了高速缓存层,提高了性能,但这需要经过一个使用工作负载热点来填充高速缓存的预热阶段,并且常常伴有缺陷,例如在整个周末执行备份作业后,周一早上的响应时间会较长。
将闪存用作存储阵列中的多个层
在过去几年中,闪存价格大幅下降,每GB闪存的价格接近于15K RPM传统硬盘的价格。因此,现在可以将多种类型的闪存驱动器部署为阵列中的多个存储层。通过此战略,客户能够部署更大容量的闪存。与智能分层功能相结合,此战略能够将闪存优势扩大到更大比例的已部署容量。虽然此方法能够混合传统硬盘和不同类型的闪存驱动器,进而将闪存优势扩大到更大比例的已部署容量,但其有效性完全取决于阵列软件分层功能的成熟度和灵活性。
用于应用程序加速的服务器连接闪存
此方法旨在将闪存优势扩展到应用程序。PCI总线的访问速度高于符合行业标准的磁盘驱动器接口(例如SAS或SATA)。因此,为提高服务器上运行的应用程序的性能,此方法将闪存驱动器直接置于高速PCI总线上,并提供智能软件,使服务器将闪存用作服务器内存高速缓存的扩展。
虽然此方法可大大提高目标工作负载的性能,使驻留在服务器中的闪存形成孤岛。因此,此类优势适于在特定物理服务器上运行的应用程序,当虚拟数据中心的应用程序工作负载从一个物理服务器移至另一服务器时,此类优势将失效。
全闪存阵列
此方法旨在完全消除传统硬盘并提供基于全闪存驱动器的存储系统,藉此来颠覆传统存储阵列市场。阵列硬件有现成产品或可以定制,只需使用定制阵列固件和软件即可利用先前讨论的闪存驱动器特性。 虽然此方法可显著、持续地提高在连接的服务器场上运行的所有工作负载的性能,但目前其成本极高,并且可能缺乏诸如高可用性和数据保护等企业级功能。现在,值得花大价钱购买此类阵列来处理的工作负载很少。
采用闪存时的考虑事项
在企业中采用闪存的主要驱动因素是提高应用程序性能。电子闪存驱动器的速度在本质上应比机械硬盘高一个数量级。而在另一方面,其企业级功能的成本较高并且不够成熟,这是阻碍企业快速采用闪存驱动器的主要因素。因此,请务必了解您的企业目标,以确定是否应将闪存引入到您的数据中心以及以何种方式引入。下面列出的考虑事项应能帮助您制定符合自身需要的战略。
- 工作负载特性:数据中心的每项应用程序工作负载都具有不同的I/O特性,例如,不同应用程序具有不同的读/写比率和不同的I/O模式(连续或随机)。要选择能够优化数据中心存储TCO的闪存战略,了解数据中心应用程序工作负载的I/O特性非常重要。对于具有随机I/O模式的读密集型应用程序,闪存比传统硬盘存储更加经济实惠,而对于主要具有连续I/O模式的写密集型应用程序,传统硬盘存储的TCO会更低。此外,了解应用程序的I/O特性还能帮助您选择适当的闪存(SLC、MLC、eMLC),从而最大限度降低成本并减少操作中断情形。
- 企业级功能:闪存具有独特的特性,但终究只是一种存储介质。虽然利用闪存特性很重要,但部署闪存不能以牺牲高可用性、快照、复制、成熟的策略驱动型分层和管理集成功能为代价。请注意,完全专注于技术层面的闪存解决方案可能不具有强大的企业级存储平台所提供的功能。
- 解决方案的设计方法:闪存可以部署在企业IT解决方案的各个层(图1),因此,在每一层管理、运行和保护闪存投资变得越来越重要。全方位使用闪存的解决方案将提供更大的TCO和ROI优势。此类闪存解决方案非常灵活,可引入到企业内的任一层,同时极为智能,可通过在每一层集成其功能来扩大闪存优势。例如,此类闪存解决方案以智能方式集成基于主机的闪存功能(例如高速缓存),使之很好地与基于阵列的闪存功能(例如高速缓存、分层、快照和复制)配合工作,从而优化您在企业内各个层的闪存投资,并降低存储TCO。
结论
闪存是近期最令人激动的企业存储发展成果之一。这项技术有可能带来巨大的性能和经济优势。此外,闪存驱动器的成本预计将不断降低,结合这两项因素考虑,采用闪存设备势在必行。不过,与任何一项极具潜力的新技术一样,要增加实现潜在优势的可能性,应提高对于优势和限制的了解并以明智的方式进行部署。
戴尔是多元化信息技术解决方案提供商,拥有广泛的产品组合,可满足现代数据中心的所有需求。戴尔的FluidData Architecture可自动、智能地优化数据中心。Fluid Data Architecture集成了一流的技术,将服务器、存储和网络整合在一起,能够以适当的成本在适当的时间将适当的数据放置到适当的位置。闪存是这一体系结构中不可或缺的一部分。