存储器、固态缓存系统及缓存数据处理方法

文档序号:6340688阅读:149来源:国知局
专利名称:存储器、固态缓存系统及缓存数据处理方法
技术领域
本发明涉及一种数据存储技术领域,特别是涉及一种利用固态存储作为缓存的存 储器、数据缓存的固态缓存系统及缓存数据的数据处理方法。
背景技术
随着计算机存储技术的发展,由于传统的存储设备通过机械转动存储,无法突破 机械系统的性能瓶颈,使得传统的存储设备的性能无法获得提高,进而影响到整个计算机 的性能。固态存储器(Solid State Disk,SSD)是摒弃传统的磁介质,采用电子存储介质进 行数据存储和读取的一种技术。由于突破了传统机械硬盘的性能瓶颈,因而拥有极高的存 储性能,在一些军用系统、高性能计算研究领域有突出的应用表现,被认为是下一代存储行 业的技术革新,具有在存储行业领域内开拓新格局的潜力。固态存储包括基于RAM介质(内存介质)的固态存储和基于Flash介质的固态存 储。但由于对固态存储技术的稳定性的顾虑,以及缺乏对固态存储系统的体系、包括 硬件、软件和应用方面的研究,固态存储技术的应用一直处于相对简单的阶段,大多数情况 下,固态存储系统(如固态硬盘)被作为传统硬盘的直接高性能替代品,在这种情况下对固 态存储系统的不当使用,造成了性能,可靠性方面的问题,使得固态存储的潜能无法完全发 挥。近年来,各大传统存储厂家,开始对固态存储技术进行研究并推出应用固态存储 的系统,如Oracle和Sun Microsystems合作的Exadata系统,其是一种基于闪存(Flash) 的固态存储技术,透明化、动态化把经常访问的数据移到固态存储上,解决了数据库访问的 瓶颈。Dataram 2009年推出的kelaSAN存储优化器,采用固态硬盘做块层(BlockLevel) 动态缓存。中国专利申请200610107496. 8公开一种混合式存储设备,具有两个存储区域,即 盘和非易失性固态存储器。该盘和存储器各自具有盘高速缓存区域、系统区域、以及用户区 域。如果从主机设备传输数据,则对于第一超簇,将数据写入到可以高速存取的非易失性固 态存储器的高速缓存区域内。在如此写入数据时,将头移动到规定位置。将头移动到该位 置之后到达的任何数据被写入到高速缓存区域内。这些系统都是采用少量固态存储,以传统硬盘为主的混合存储系统(Hybrid StorageSystem)。这种分层的存储系统架构,在提高性能的同时,也较好地控制了成本。然而,现有技术也显示出固态存储技术的应用还处于初级阶段,缺乏关键技术,大 大限制了当前固态存储技术应用的深度和广度。具体表现在1)对固态存储的写操作没有很好实现优化。写操作的问题主要在于写放大 (Writeamplification)和块(Block)的不均衡磨损的问题,尤其是在频繁写小量数据的情 况下。
2)由于没有好的固态存储系统技术,固态存储的稳定性成为现有固态存储系统的 很大的弱点。现有技术的方案是通过使用写寿命较长的基于单级存储单元(SLC)闪存的固 态存储来减轻这个问题,或是通过大量使用NVRAM多一层缓存。这样做,不仅不能根本解决 固态存储系统的稳定性问题,也造成成本提高,严重影响了产品的性价比。

发明内容
本发明的目的在于提供一种存储器、固态缓存系统和缓存数据处理方法。其最大 幅度在存储系统中利用固态存储的优异性能。为实现本发明目的而提供的一种存储器,包括存储控制器,主存储器,还包括在所 述存储控制器和所述主存储器之间对数据进行缓存的固态缓存系统;所述固态缓存系统包括至少一以固态存储器作为缓存器的固态缓存器;固态缓存系统使用环型架构作为写缓存的架构,对缓存的数据块和相应的元数据 进行读写操作。较优地,所述固态缓存系统还包括统计模块,压缩模块,重组模块和刷新模块,其 中所述统计模块,用于在对缓存的数据块和相应的元数据进行读写操作时,对所述 固态缓存器缓存频率列表进行统计;所述压缩模块,用于在对缓存的数据块和相应的元数据进行读写操作时,对所述 固态缓存器的缓存的数据块数据进行压缩;所述重组模块,用于将所述固态缓存器的缓存数据重组到边界对齐;所述刷新模块,用于对元数据进行刷新;所述重组模块对所述压缩模块压缩后的数据或未压缩的数据进行重组,将缓存数 据重组到边界对齐,在每次积累到一个数据块时,再进行写操作;在所述重组模块对所述压缩模块的压缩数据进行重组的过程中,所述刷新模块对 对元数据进行刷新。为实现在发明目的还提供一种固态缓存系统,包括至少一以固态存储器作为缓存 器的固态缓存器;所述固态缓存系统使用环型架构作为写缓存的架构,对缓存的数据块和相应的元 数据进行读写操作。。为实现本发明目的,更进一步地,还提供一种固态存储的缓存数据处理方法,包括 存储控制器对主存储器读写数据时,利用固态缓存系统进行缓存的步骤;所述固态缓存系统包括至少一以固态存储器作为缓存器的固态缓存器;该固态缓存系统使用环型架构作为写缓存的架构,对缓存的数据块和相应的元数 据进行读写操作。较优地,所述使用环型架构作为写缓存架构,其写缓存的写入方式是完全顺序的, 即当一块数据写入一个新版本时,顺序写入一个新的版本,并在元数据内标识以前的版本 失效。较优地,所述对缓存的数据块和相应的元数据进行读写操作,包括如下步骤步骤Si,在固态缓存器中未写入数据块,或者固态缓存器中的数据已经读出并写入到主存储器时,将数据块存储位置相应的元数据的数据块存储标记标志为无效;步骤S2,在向固态缓存器中写入新数据块时,查找固态缓存器的新存储位置,判断 相应的新存储位置的元数据的数据块存储标记是否为无效;步骤S3,如果否,即数据块存储标记为有效,则转到步骤S2查找另一新的存储位 置;否则,即数据块存储标记为无效,则进入步骤S4 ;步骤S4,将新数据块写入相应的新存储位置,并将新数据块存储位置相应的元数 据的数据块存储标记改写为有效;步骤S5,遍历整个环型架构,对比判断新数据块数据和固态缓存器中所述数据块 中的所有相应数据块存储标记为有效的原存储数据是否相同;步骤S6,如果有固态缓存器中原存储数据与新数据块数据相同,则将新数据块的 相应数据块存储标记改写为无效,返回步骤S2 ;否则,进入步骤S7 ;步骤S7,遍历整个环型架构,查找是否存在数据块存储标记为无效,如果有,则返 回步骤S2;否则,进入步骤S8;步骤S8,将固态缓存器中的数据按环型架构写入主存储器,在每一数据块数据写 入主存储器成功后,将相应的数据块存储标记改写为无效;步骤S9,在固态缓存器中全部数据块数据写入到主存储器后,返回步骤S2,进行 下一次读写缓存。较优地,所述固态存储的缓存数据处理方法,还包括对固态缓存器的缓存频率列 表进行统计的步骤;对固态缓存器的缓存数据进行压缩的步骤;对压缩或未压缩的数据进行重组,将缓存数据重组到边界对齐,在每次积累到一 个数据块时,再进行写操作的步骤;在对压缩数据进行重组的过程中,对元数据进行刷新的步骤。较优地,所述压缩处理为利用冗余性化简的方法,通过LZO算法进行数据压缩。本发明的有益效果是本发明的存储器、固态缓存系统和缓存数据处理方法,其利 用固态存储作为存储的写操作缓存,最大幅度在存储器中利用固态存储的优异性能。


图1是本发明存储器结构示意图;图2是本发明固态缓存系统结构示意图;图3是本发明固态缓存系统的环型架构示意图;图4是本发明缓存数据处理方法示意图;图5是图4中对缓存的数据块和相应的元数据进行读写操作的流程图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明的存储器、固态缓存系统和缓存数据处理方法进行进一步详细说明。应当理解,此处 所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。如图1所示,作为一种可实施方式,为本发明实施例的存储器1,包括存储控制器2,主存储器4,以及在存储控制器2和主存储器4之间对数据进行缓存的固态缓存系统3, 如图2所示,所述固态缓存系统3包括至少一以固态存储器作为缓存器的固态缓存器31。存储控制器2对主存储器4读写(I/O)数据时,在和主存储器4之间,首先利用固 态缓存系统3进行缓存读写,本发明实施例的固态缓存系统3利用以至少一个固态存储器 组成的固态缓存器31进行缓存,其性能优势将大幅度提高系统的性能。本发明的固态缓存系统3,根据固态存储的特性中写操作以顺序写为主,数据 更新使用在不同位置的重写(Out-of-place Write)的特点,如图3所示,使用环型架构 (RingBuffer)作为写缓存的架构,对缓存的数据块和相应的元数据(Meta Data)进行读写 操作。作为一种可实施方式,本发明的固态缓存系统3,所述使用环型架构作为写缓存架 构,其写缓存的写入方式是完全顺序的,即当一块数据写入一个新版本时,并不覆盖以前的 版本,而是顺序写入一个新的版本,并在元数据内标识以前的版本失效。所述元数据是描写固态缓存器31缓存的数据对应最终写入主存储器4的数据的 映射的现状的数据。这样,由于固态缓存系统写缓存的环型架构,当数据回转一圈,需要被清除,为以 后写的数据让开空间,如果需要清除的数据是一个已经失效的旧版本,就不需要写到固态 缓存器上,而可以直接清除,在同时如果读缓存中有同样数据,也同时需要被标识为无效。 如此这样使对固态缓存器31的访问最小化。写缓存的顺序写是为了提高对固态缓存器31的写操作的性能,并提高固态缓存 器31的使用寿命,通过的方式是减少固态缓存器的写操作中的拷贝操作。较佳地,所述固态缓存系统3还包括统计模块32,用于在对缓存的数据块和相应 的元数据(Meta Data)进行读写操作时,对固态缓存器31缓存频率列表进行统计。本发明扩充和发展现有的缓存技术,根据固态存储的特性的考虑,对固态缓存器 31缓存频率(Frequency)列表的统计。作为一种可实施方式,本发明的统计模块32,利用2个以上的位(Bit)来存储固态 缓存器31的缓存频率,并对缓存频率列表进行统计。缓存列表统计有多种方式,作为一种可实施方式,本发明利用2个以上的位(Bit) 来存储固态缓存器31的缓存频率,并对缓存频率列表进行统计,将缓存频率高的数据优先 写入磁盘。从而可以顾及固态存储的特性,更能提高固态存储的性能和可靠性,提高缓存的 击中率(Hit Rate),从而减少固态存储缓存的写操作的数据量和次数,提高缓存的性能和 固态存储的使用寿命。进一步地,本发明的固态缓存系统还包括压缩模块33,用于在对缓存的数据块和 相应的元数据(Meta Data)进行读写操作时,对固态缓存器31的缓存的数据块数据进行压缩。为了减少对固态缓存器写的次数和数据量,压缩模块33对固态缓存器31的缓存 的数据块数据进行实时压缩,较佳地,本发明的压缩模块33,根据不同数据载荷的压缩效率 和速度,动态地满足固态缓存在不同数据载荷下动态压缩。更佳地,进一步地,作为一种可实施方式,本发明的压缩模块33,利用冗余性化简 (Redundancy Reduction)方法对数据进行压缩处理。
7
较佳地,作为一种可实施方式,本发明压缩模块33使用LZO算法进行数据压缩。LZO算法属于字典基础模式的无失真压缩算法,字典基础模式的无失真压缩算法, 是采用跟统计模式完全不同的方式来进行数据压缩,这种类型的算法并非利用不同长度的 位元数来代表每一个字符,也不需要预先估计每一个字符出现的概率,而是对于不同长度 的字符串都统一采用一种记号来表示,而这种记号就类似字典内的索引。更进一步地,本发明的固态缓存系统还包括重组模块34,用于将固态缓存器31的 缓存数据重组到边界对齐。由于对固态缓存器31的固态存储随机小量数据的写操作,会造成写放大,会使固 态缓存器的寿命降低等严重的问题,因此,如图3所示,本发明重组模块34将压缩后的固态 缓存器31的缓存数据重组到边界对齐,然后才进行顺序写操作。基于固态存储的特性,数据写操作如果是顺序操作,而且在数据块的开始和结束 和块(block)或其他固态存储系统要求的数据块大小的边界都对齐,将对固态存储具有很 好的写操作性能,能够延长存储系统的寿命。然而,由于存储系统写入数据块大小不定,尤 其经过压缩模块33压缩以后,数据块的大小就更无法预测,因此,本发明重组模块34对压 缩模块33压缩后(或未压缩的)数据进行重组,将缓存数据重组到边界对齐,在每次积累 到一个数据块时,再进行写操作。更佳地,本发明的固态缓存系统还包括刷新模块35,用于对元数据进行刷新。在重组模块34对压缩模块33的压缩数据进行重组的过程中,刷新模块35对对元 数据进行刷新,以反映数据的重组,从而可以恢复数据。相应地,如图4所示,本发明还提供一种固态存储的缓存数据处理方法,其包括存 储控制器2对主存储器4读写(I/O)数据时,利用固态缓存系统3进行缓存的步骤。所述固态缓存系统3包括至少一以固态存储器作为缓存器的固态缓存器31。该固态缓存系统3使用环型架构(Ring Buffer)作为写缓存的架构,对缓存的数 据块和相应的元数据(Meta Data)进行读写操作。较佳地,作为一种可实施方式,所述使用环型架构作为写缓存架构,其写缓存的写 入方式是完全顺序的,即当一块数据写入一个新版本时,并不覆盖以前的版本,而是顺序写 入一个新的版本,并在元数据内标识以前的版本失效。较佳地,作为一种可实施方式,所述对缓存的数据块和相应的元数据进行读写操 作,如图5所示,包括如下步骤步骤Si,在固态缓存器31中未写入数据块,或者固态缓存器31中的数据已经读 出并写入到主存储器4时,将数据块存储位置相应的元数据的数据块存储标记标志为无效 (Invalid);步骤S2,在向固态缓存器31中写入新数据块时,查找固态缓存器31的新存储位 置,判断相应的新存储位置的元数据的数据块存储标记是否为无效;步骤S3,如果否,即数据块存储标记为有效,则转到步骤S2查找另一新的存储位 置;否则,即数据块存储标记为无效,则进入步骤S4 ;步骤S4,将新数据块写入相应的新存储位置,并将新数据块存储位置相应的元数 据的数据块存储标记改写为有效(Valid);步骤S5,遍历整个环型架构,对比判断新数据块数据和固态缓存器31中所述数据
8块中的所有相应数据块存储标记为有效(Valid)的原存储数据是否相同;步骤S6,如果有固态缓存器31中原存储数据与新数据块数据相同,则将新数据块 的相应数据块存储标记改写为无效(invalid),返回步骤S2 ;否则,进入步骤S7 ;步骤S7,遍历整个环型架构,查找是否存在数据块存储标记为无效(invalid),如 果有,则返回步骤S2 ;否则,进入步骤S8 ;步骤S8,将固态缓存器31中的数据按环型架构写入主存储器4,在每一数据块数 据写入主存储器成功后,将相应的数据块存储标记改写为无效(invalid);步骤S9,在固态缓存器31中全部数据块数据(即全部缓存数据)写入到主存储器 后,返回步骤S2,进行下一次读写缓存。通过利用环型架构,对元数据进行写操作,有效地结合固态缓存器31的特点,保 证了缓存读写的效率。较佳地,本发明的固态存储的缓存数据处理方法,还包括对固态缓存器的缓存频 率列表进行统计的步骤。作为一种可实施方式,本发明的固态存储的缓存数据处理方法,利用2个以上的 位(Bit)来存储固态缓存器的缓存频率,并对缓存频率列表进行统计。进一步地,本发明的固态存储的缓存数据处理方法,还包括在对缓存的数据块和 相应的元数据(Meta Data)进行读写操作时,对固态缓存器的缓存的数据块数据进行压缩 的步骤。作为一种可实施方式,本发明的缓存数据处理方法,利用冗余性化简 (RedundancyReduction)方法对固态缓存器的缓存数据进行压缩处理。作为一种可实施方式,本发明的压缩处理,使用LZO算法进行数据压缩。LZO算法它属于字典基础模式的无失真压缩算法。字典基础模式的无失真压缩算 法,是采用跟统计模式完全不同的方式来进行数据压缩,这种类型的算法并非利用不同长 度的位元数来代表每一个字符,也不需要预先估计每一个字符出现的概率,而是对于不同 长度的字符串都统一采用一种记号来表示,而这种记号就类似字典内的索引。更进一步地,本发明的固态存储的缓存数据处理方法,还包括对压缩或未压缩的 数据进行重组,将缓存数据重组到边界对齐,在每次积累到一个数据块时,再进行写操作的 步骤。更佳地,本发明的固态存储的缓存数据处理方法,还包括在对压缩数据进行重组 的过程中,对元数据进行刷新的步骤。本发明实施例的数据处理方法和固态缓存系统,利用固态存储作为存储系统的写 操作缓存,最大幅度在存储系统中利用固态存储的优异性能。最后应当说明的是,很显然,本领域的技术人员可以对本发明进行各种改动和变 型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要 求及其等同技术的范围之内,则本发明也意图包含这些改动和变型。
权利要求
1.一种存储器,包括存储控制器,主存储器,其特征在于,还包括在所述存储控制器和 所述主存储器之间对数据进行缓存的固态缓存系统;所述固态缓存系统包括至少一以固态存储器作为缓存器的固态缓存器; 固态缓存系统使用环型架构作为写缓存的架构,对缓存的数据块和相应的元数据进行 读写操作。
2.根据权利要求1所述的存储器,其特征在于,还包括统计模块,压缩模块,重组模块 和刷新模块,其中所述统计模块,用于在对缓存的数据块和相应的元数据进行读写操作时,对所述固态 缓存器缓存频率列表进行统计;所述压缩模块,用于在对缓存的数据块和相应的元数据进行读写操作时,对所述固态 缓存器的缓存的数据块数据进行压缩;所述重组模块,用于将所述固态缓存器的缓存数据重组到边界对齐; 所述刷新模块,用于对元数据进行刷新;所述重组模块对所述压缩模块压缩后的数据或未压缩的数据进行重组,将缓存数据重 组到边界对齐,在每次积累到一个数据块时,再进行写操作;在所述重组模块对所述压缩模块的压缩数据进行重组的过程中,所述刷新模块对对元 数据进行刷新。
3.一种固态缓存系统,其特征在于,包括至少一以固态存储器作为缓存器的固态缓存器;所述固态缓存系统使用环型架构作为写缓存的架构,对缓存的数据块和相应的元数据 进行读写操作。
4.根据权利要求3所述的固态缓存系统,其特征在于,还包括统计模块,压缩模块,重 组模块和刷新模块,其中所述统计模块,用于在对缓存的数据块和相应的元数据进行读写操作时,对所述固态 缓存器缓存频率列表进行统计;所述压缩模块,用于在对缓存的数据块和相应的元数据进行读写操作时,对所述固态 缓存器的缓存数据进行压缩;所述重组模块,用于将所述固态缓存器的缓存数据重组到边界对齐; 所述刷新模块,用于对元数据进行刷新;所述重组模块对所述压缩模块压缩后的数据或未压缩的数据进行重组,将缓存数据重 组到边界对齐,在每次积累到一个数据块时,再进行写操作;在所述重组模块对所述压缩模块的压缩数据进行重组的过程中,所述刷新模块对对元 数据进行刷新。
5.根据权利要求4所述的缓存数据处理方法,其特征在于,所述压缩为利用冗余性化 简的方法,通过LZO算法进行数据压缩。
6.一种固态存储的缓存数据处理方法,其特征在于,包括存储控制器对主存储器读写 数据时,利用固态缓存系统进行缓存的步骤;所述固态缓存系统包括至少一以固态存储器作为缓存器的固态缓存器; 该固态缓存系统使用环型架构作为写缓存的架构,对缓存的数据块和相应的元数据进行读写操作。
7.根据权利要求6所述的固态存储的缓存数据处理方法,其特征在于,所述使用环型 架构作为写缓存架构,其写缓存的写入方式是完全顺序的,即当一块数据写入一个新版本 时,顺序写入一个新的版本,并在元数据内标识以前的版本失效。
8.根据权利要求6或7所述的固态存储的缓存数据处理方法,其特征在于,所述对缓存 的数据块和相应的元数据进行读写操作,包括如下步骤步骤Si,在固态缓存器中未写入数据块,或者固态缓存器中的数据已经读出并写入到 主存储器时,将数据块存储位置相应的元数据的数据块存储标记标志为无效;步骤S2,在向固态缓存器中写入新数据块时,查找固态缓存器的新存储位置,判断相应 的新存储位置的元数据的数据块存储标记是否为无效;步骤S3,如果否,即数据块存储标记为有效,则转到步骤S2查找另一新的存储位置;否 则,即数据块存储标记为无效,则进入步骤S4 ;步骤S4,将新数据块写入相应的新存储位置,并将新数据块存储位置相应的元数据的 数据块存储标记改写为有效;步骤S5,遍历整个环型架构,对比判断新数据块数据和固态缓存器中所述数据块中的 所有相应数据块存储标记为有效的原存储数据是否相同;步骤S6,如果有固态缓存器中原存储数据与新数据块数据相同,则将新数据块的相应 数据块存储标记改写为无效,返回步骤S2 ;否则,进入步骤S7 ;步骤S7,遍历整个环型架构,查找是否存在数据块存储标记为无效,如果有,则返回步 骤S2 ;否则,进入步骤S8 ;步骤S8,将固态缓存器中的数据按环型架构写入主存储器,在每一数据块数据写入主 存储器成功后,将相应的数据块存储标记改写为无效;步骤S9,在固态缓存器中全部数据块数据写入到主存储器后,返回步骤S2,进行下一 次读写缓存。
9.根据权利要求6或7所述的固态存储的缓存数据处理方法,其特征在于,还包括对固 态缓存器的缓存频率列表进行统计的步骤;对固态缓存器的缓存数据进行压缩的步骤;对压缩或未压缩的数据进行重组,将缓存数据重组到边界对齐,在每次积累到一个数 据块时,再进行写操作的步骤;在对压缩数据进行重组的过程中,对对元数据进行刷新的步骤。
10.根据权利要求9所述的缓存数据处理方法,其特征在于,所述压缩处理为利用冗余 性化简的方法,通过LZO算法进行数据压缩。
全文摘要
本发明公开一种存储器、固态缓存系统和缓存数据处理方法。该存储器包括存储控制器,主存储器,在所述存储控制器和所述主存储器之间对数据进行缓存的固态缓存系统;所述固态缓存系统包括至少一以固态存储器作为缓存器的固态缓存器;固态缓存系统使用环型架构作为写缓存的架构,对缓存的数据块和相应的元数据进行读写操作。其最大幅度在存储系统中利用固态存储的优异性能。
文档编号G06F12/08GK102147768SQ20101061459
公开日2011年8月10日 申请日期2010年12月30日 优先权日2010年5月21日
发明者刘虹越, 杨越, 王旭光 申请人:苏州捷泰科信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1