混合式Flash储存阵列正在兴起
固态储存2.0:SSD+硬碟──混合式Flash储存阵列正在兴起
为了兼顾效能与成本,同时使用SSD与传统硬碟的混合储存架构,是当前IT环境最合理的做法,在储存设备中混用小比例的SSD,即足以因应一小部份关键应用的高I/O需求,其余应用可透过传统硬碟来提供储存服务
固态储存的热潮无法抵挡,现在的重点早已不是要不要导入Flash固态储存,而是在于要以什么样的型式来应用Flash储存。
Flash记忆体的应用型态可以有这3种组合:
1. 100%使用Flash记忆体,完全舍弃机械式硬碟。
2. 完全不使用Flash记忆体,100%使用机械式硬碟。
3. 混合使用Flash记忆体与传统机械式硬碟。
现在几乎已经没有人会完全否定Flash记忆体的价值,或多或少都会认为有使用Flash记忆体的必要性,剩下的选择就是(1)或(3),“全快闪(All Flash)”还是“混合使用Flash与硬碟”哪一种架构更合乎企业需求。
凭藉着超凡的效能表现,纯粹由Flash记忆体构成的全快闪阵列,是近来企业储存应用中最受瞩目的一个产品领域,几乎成了Flash储存热潮的代名词。
仅仅几年以前,多数人都认为全快闪阵列仍是一种过于昂贵、可望而不可及的产品,效能数据虽然令人炫目,但成本高昂缺乏实际导入的诱因。不过随着Flash记忆体成本以每年降低20%的比例持续下降,压缩、重复资料删除等技术的应用也有效提高了全快闪阵列的空间利用效率,大幅改善了企业对全快闪阵列的接受程度,甚至连“全固态储存的资料中心”,似乎也不再是可望而不可及的梦想。
全面固态储存化的障碍
尽管全快闪架构的声势铺天盖地,Flash储存应用的成熟度与接受度也有了大幅提高,但由于种种先天、后天障碍的存在,“全面固态储存化”的理想依旧不可能在近期内实现,甚至可能永远不会到来。
企业储存应用首要的四大课题,是效能、规模、可靠性与经济性。
Flash阵列能满足高效能需求固然无庸置疑,储存规模目前也已不是问题,一些高阶储存产品甚至能支援多达数千台SSD的全快闪组态,但经济性仍一直是Flash储存应用的最大争议,另外Flash记忆体写入寿命限制所产生的可靠性与系统维护疑虑,目前也还有一些问题尚未完全解决。
●与硬碟间的成本差距难以拉近
如果Flash记忆体和硬碟一样便宜,又没有寿命与可靠性疑虑,那么我们就可放心地全面以Flash取代硬碟了,可惜的是,现实并非如此理想。
固然Flash记忆体的成本虽然一直下降,但硬碟的成本同样也在下降,两者之间的单位容量成本仍持续维持10、20倍以上的差距,迄今还远远没有达到可无视这个价格差距,全面采用Flash记忆体的时候。
就3、5年内的可见未来而言,MLC Flash SSD的成本,可能会降低到与低容量的1万转、1.5万转高转速硬碟接近的层次,但与大容量低转速硬碟(7200转或更低)相比,价格差距仍没有大幅拉近的可能。
所以我们可以预期,SSD近期内应该就会完全取代“高转速硬碟”,但在可见的未来,尚没有取代“全部硬碟”的可能性。
●SSD写入负载均衡的副作用
为因应NAND Flash记忆体写入寿命有限的问题,现在的企业级SSD或Flash阵列都采用了写入负载均衡机制,将写入负载分散由阵列中的全部SSD、或SSD中的全部Flash记忆体颗粒来共同承担,藉此抑制个别Flash记忆体的过度磨耗,再搭配预留高比例未使用备用区块的超额容量配置(over-provisioning),从而达到延长寿命的目的,但这却也连带出现意想之外的副作用。
写入寿命固定的SSD,将随着写入寿命的损耗以可预期的型式逐渐失效,在使用写入负载均衡的情况下,同一系统中的全部SSD是将会同步地一起损耗与老化,很可能会同时到达寿命而一起失效,为了避免阵列资料损毁,必须在SSD到达写入寿命末期时及时替换,但问题在于:由于各SSD将会同时进入写入寿命末期,所以到时必须一次更换整个阵列全部十几台或数十台SSD,这不仅会给维护成本将带来很大压力,很可能还会出现需要进行资料迁移的问题。
反之,硬碟由于是随机性的失效,就机率来说,多台硬碟同时失效的情况反倒不那样容易出现,出现损坏时大多是个别1、2台硬碟的问题,只更换1、2台硬碟对企业来说,便容易的多,不会给营运成本或系统服务带来太大冲击。
●应用面向狭窄与管理孤岛
由于单位容量成本依旧相当高昂,全快闪阵列都是诉求给那些高I/O需求的关键应用,如VDI、高交易资料库等使用,而非诉求作为企业任何应用都可普遍使用的储存设备。SSD相对昂贵的单位容量成本,先天便决定了全快闪阵列不是任何应用都可随意使用的一项设备,也不可能完全取代企业机房中既有的传统磁碟阵列。
对企业来说,即使导入了全快闪阵列,整个机房中会实际使用全快闪阵列的应用也只占很小一部分,用户还是需要传统硬碟式磁碟阵列,来满足非关键应用的一般储存需求,这也让全快闪阵列成了机房中专供少数应用使用的“孤岛”,管理既不与其他储存设备兼容,储存资源也无法与其他储存设备共享。
●并非任何情境都有效能优势
高效能是SSD最大优势,却并非任何存取情境中都拥有远超硬碟的高效能,随机I/O效能确实远超硬碟,但循序I/O就没有这样大的优势,尤其是循序写入的效能,相对于机械式硬碟更没有优势可言。对于循序存取居多的环境,使用SSD便太昂贵了。
●缺少足够的进阶资料服务应用
除了提供储存空间外,企业级储存设备还必须提供各式各样的资料服务功能,如快照、Clone、同步/非同步远端复制、加密、一写多读(WORM)等等,还需提供搭配前端VMware、Oracle等主要应用程式平台的附属支援功能,来因应资料保护、法规遵循与测试开发等非线上存取类型的需求。
现有的传统磁碟阵列产品经过多年发展后,资料服务软体功能都已十分成熟、完整,相较下,历史短暂、这几年才兴起的全快闪阵列就非如此,资料服务功能的完整性仍无法与传统磁碟阵列相比,某些全快闪阵列甚至完全没有提供资料服务功能。导入全快闪阵列的企业,或者只能暂时放弃在全快闪阵列上使用部份资料服务,或者就是得搭配第三方产品来提供类似的功能。
混合架构兴起--按需配置储存资源
既然全快闪架构在成本、寿命与资料服务方面仍未臻理想,而传统磁碟阵列亦有随机I/O效能低落的先天缺陷,那么显而易见的解决办法,便是结合SSD与硬碟两者,这也是混合式阵列产品兴起的初衷。
混合式阵列是一种“按需配置”原则的应用-依前端应用的I/O需求特性,分别给予不同性质的储存资源,低延迟、高随机性的I/O需求,给予SSD的资源;只需要储存空间、对效能没有特别要求的I/O需求,则给予硬碟的资源。
实际环境中通常只有一小部份应用,会需要低延迟、高随机效能的I/O服务,如果不分应用紧要与否、一律给予SSD资源,显然不合成本效益。
但传统的全硬碟配置也已不敷使用,传统硬碟虽然足以应付一般应用,但受先天架构所限,必须透过组成大规模阵列的笨拙方式,才能拼凑出关键应用所需的高随机I/O效能,为了一小部份关键应用的高I/O需求,往往必须耗费数十台甚至上百台硬碟组成阵列,即便满足了I/O效能,却也耗费了大量空间与电力,显然也不是合乎效益的做法。
因此为了兼顾效能与成本,同时使用SSD与传统硬碟的混合储存架构,才是当前IT环境最合理的做法,在储存设备中混用小比例的SSD,即足以因应一小部份关键应用的高I/O需求,其余应用则透过传统硬碟来提供储存服务。
两种混合式架构--自动分层与快取
同时混用SSD与硬碟的混合式储存产品,可以依Flash装置在系统中所处的地位与作用,分为自动分层式与快取式两种型态。
就硬体组成来看,自动分层式与快取式的混合架构产品大致是一样的,都是在储存设备机箱中同时混插了SSD与硬碟,区别在于SSD在整个系统中扮演的是什么角色-是作为与硬碟并列的另一个储存层 ?还是作为介于硬碟与DRAM之间的辅助快取记忆体 ?
两种架构最大差别在于:自动分层架构中的SSD,是和硬碟一样可供Volume与LUN使用的空间;快取架构中的SSD,则是独立于Volume与LUN之外,专门做为读取快取或写入缓冲区的独立空间。
●分层式的混合式架构
也就是将SSD作为与硬碟并列的储存层,构成一个独立的RAID群组,与硬碟构成的RAID群组共同组成具有不同效能-成本特性的数个储存分层,然后让系统建立跨储存层的Volume或LUN,再透过自动分层功能,视各资料区块的存取频繁程度定期执行迁移作业,将存取频繁的“热资料”迁移到高速的SSD层,其他很少存取的“冷资料”迁移到低速大容量的硬碟层,从而达到按需分配储存资源的效果。
●Flash快取式的混合架构
透过大容量的SSD作为辅助DRAM快取记忆体的第二层快取记忆体,藉由SSD的空间来大幅扩大快取记忆体容量,藉此减少存取底层硬碟的机率。
即使是当前最高阶的储存设备,一般最多也只提供1、2TB等级的DRAM快取记忆体,由于成本高昂,实际环境中的DRAM快取配置容量,往往远低于前述数字。
而藉由SSD所建立的辅助快取记忆体,即使是中低阶储存设备,也轻易地拥有数百GB甚至数TB的快取记忆体空间,尽管SSD的效能远不如DRAM,不过SSD快取能够以量取胜,透过增大快取容量来达到提高快取命中率的目的。
目前的Flash快取技术又可分为“读快取”与“读+写快取”两种类型,大多数Flash快取都是只对读取I/O作用的“读快取”类型,少数则是同时支援读取快取与写入缓冲的“读+写快取”类型,可同时对读取与写入I/O提供作用。
理论上,在读快取运作下,存取较频繁、读取机率最高的资料会被快取到快取区内。
写入快取则能透过SSD缓冲区先行承接所有写入I/O,写入I/O所代表的新增资料或资料异动,也都是最需要优先处理的资料区块。因此透过SSD快取亦能达到储存资源按需分配的效果,藉由快取让SSD空间优先用于那些最紧要的I/O要求。
●自动分层vs.快取
有少数储存产品可同时支援分层与快取两种Flash应用,如EMC的VNX,不过多数产品都只提供其中一种,所以用户必须从中选择一种适合自己的架构。
无论哪一种架构,基本原则都是在于透过高速的SSD来提供“效能”,并搭配大容量低成本的硬碟来提供“容量”,最终目的同样都是透过结合SSD与传统硬碟两种储存装置,来达到兼顾成本与效能的目的。
不过由于两种架构使用SSD的方式不同,因而特性也有异。
以自动分层技术来说,加速的效果很明确,只要热资料被搬移到SSD层,就能享有SSD的高效能。缺点则是反应周期较长,无法即时回应系统存取行为的变化,大多数自动分层储存技术都是以24小时为作业周期,也就是每隔24小时,才会针对系统存取行为重新分配、迁移各资料区块所处的储存分层,然后I/O加速才会生效。另外自动分层技术的政策设定也相对比较复杂。
快取则有截然不同的特性,快取几乎不需要任何政策设定,完全依靠快取演算法来运作,用户没有什么管理负担。快取的反应速度也远高比自动分层技术,以读取快取来说,只要资料被读取过一次、在快取演算法运作下若资料被快取到SSD快取区,后续读取I/O如果命中快取,便可发挥快取加速的效果,最快只需要间隔1个I/O循环就能回应系统存取行为的变化。如果是写入快取,则是由SSD快取区直接承接写入I/O,可即时发挥SSD的高速效益。
但读取快取能否发挥加速效果,完全视快取是否命中而定,加速效果较不明确,不同前端应用形态与存取行为,所得到的快取命中效果,差异非常大,某些情况下几乎很难有快取命中,此时读取快取便无法发挥I/O加速效果。而就写入快取来说,效果则会受可用缓冲空间大小的影响,当SSD写入缓冲区被填满后,便需进行费时的资料区块抹写作业,才能承载新资料的写入。
总的来看,自动分层技术在任何存取形态下,都能发挥加速I/O的作用,但运作反应比较慢,当资料存取频繁程度的冷热发生变化时,得等到每24小时一次的重新迁移资料区块分层的时间周期到来后,才会更动资料区块的分层,从而达到加速I/O的效果。
至于SSD快取虽然有着可即时反应的优势,但对加速I/O的效用,会随着存取形态的不同而有很大差异。读取快取完全依靠命中快取来达到I/O加速效果,在某些环境下(如大区块资料连续存取),几乎很难有快取命中,连带也无法产生I/O加速效果。因此Flash记忆体快取应用能发挥加速效果的场合,是有限制的,通常是小区块存取为主的环境。写入快取由于是依靠SSD缓冲区来承接所有写入I/O,如果遭遇SSD不擅长的存取情境,例如循序的写入I/O或SSD缓冲区遭到填满时,就无法发挥I/O加速效果。
另一方面,虽然许多SSD快取功能都只提供读取快取功能,而不支援写入快取功能,所以只有读取作业能得到快取的助益,写入作业则否。不过在一个读、写混合的存取环境中,若能透过Flash快取记忆体加速读取效能,则底层磁碟的负担减轻,能释出更多磁碟资源给写入作业使用,连带也能一定程度改善写入效能(读取作业被导向到Flash快取记忆体装置承担,底层磁碟只需负担写入作业即可)。