一种固态盘存储系统的动态数据压缩方法

文档序号:9371862阅读:327来源:国知局
一种固态盘存储系统的动态数据压缩方法
【技术领域】
[0001]本发明涉及计算机存储领域,尤其是涉及一种固态盘存储系统的动态数据压缩方法。
【背景技术】
[0002]作为一种主流的存储介质,磁盘已经广泛应用于个人电脑和企业级数据存储等领域,但是其机械特性限制了其读写性能的快速提升,基于磁盘的存储设备渐渐成为存储系统的性能“墙”。目前,基于闪存的固态盘已成为磁盘的有力替代品,并且得到了学术界和工业界的广泛关注。和磁盘相比,基于闪存的固态盘是一种半导体存储介质,没有机械部件,具有经久耐用、防震抗摔、无噪音、功耗低、工作温度范围大、随机小读性能高等优点;但是固态盘的容量价格比低,而且存在随机小写性能低、写前必须擦除和介质擦除次数有限等缺点。
[0003]基于闪存的固态盘包含3种基本操作:读、写和擦除。读和写都以页为单位进行操作;擦除以块为单位进行操作。一个块(块大小通常是128?256KB) —般包含64个页(页大小通常是2?4KB)。擦除操作的处理时间比读写操作处理时间大若干个数量级。如果某个页已经存储有效数据就无法对该页进行覆盖写操作,而是将原数据页的数据置为无效,将新数据写入到其他空闲页中。随着系统的运行,固态盘中的空闲块越来越少,无效数据页越来越多,因此需要擦除这些包含无效数据页的非空闲块以获得新的空闲块,该操作称为“垃圾回收”。固态盘的垃圾回收过程是:首先选取待回收的块,将该块的有效数据页复制到空闲块中,更新地址映射信息,然后擦除待回收块并将其加入空闲块列表中。这个垃圾回收的过程会消耗较多的时间。而且,当固态盘中的某个芯片正在处理垃圾回收操作时无法同时处理来自用户的读写请求,此时该芯片接收到的读写请求都将被挂起,直到垃圾回收操作完成才能被处理。因此,垃圾回收操作的效率直接影响了固态盘存储系统的性能,这个问题已成为存储研究的热点之一。
[0004]数据压缩技术是指缩减数据量,用比源数据少的数据位表示信息的过程。该技术按照一定算法或规则对源数据进行重新组织,减少冗余数据和所需要的存储空间,提高数据的传输、存储和处理效率。在数字信息化高速发展的今天,数据压缩技术已经成为一项关键的通用技术。
[0005]不同的压缩算法对同一种数据源有不同的压缩比和压缩速率,一般来说,压缩比越高,消耗的系统资源(比如CPU、内存)越多、压缩速率越慢;不同的数据源对于同一种压缩算法也有不同的压缩比和压缩速率。
[0006]相比于传统的机械磁盘,固态盘具有性能优势,在商业应用中得到越来越广泛的应用。为了满足海量数据应用和各种层次的可靠性需求,基于固态盘的存储系统也被越来越多广泛的应用。但是,基于固态盘的存储系统所固有的写放大问题、有限的擦除次数、读写速度不对称等特性对固态盘存储系统的性能带来的负面影响显得越来越不容忽视。C.Li, P.Shilan, F.Douglis, H.Shim, and S.Smaldone.Nitro:A capacity-optimizedSSD cache for primary storage.Proceedings of 2014USENIX Annual TechnicalConference.Philadelphia, PA,USA,2014.

【发明内容】

[0007]本发明的目的是针对现有的固态盘存储系统存在的上述不足,提供一种固态盘存储系统的动态数据压缩方法,用于在不影响存储系统对外服务性能的前提下,提升固态盘存储系统的空间利用率和可靠性。
[0008]本发明包括以下步骤:
[0009](I)请求类型判断步骤,具体过程如下:
[0010]从上层获得请求,判断该请求是否是写请求,若是,则转步骤(2),否则转步骤
(3);
[0011](2)数据的压缩写入步骤,具体过程如下:
[0012](2.1)负载监测模块从系统提供的接口获取系统当前的负载情况(即系统每秒处理的读写请求的个数);按照一定的权重比,运算得到一个衡量系统当前负载情况的数值,并将该数值保存在负载状态变量中;转过程(2.2);
[0013]在步骤(2)第(2.1)过程中,所述获取当前系统资源的使用情况,主要包括系统的内存资源和CPU资源的使用率、网络端口的延时情况等参数;
[0014](2.2)负载监测模块判断负载状态变量的值是否高于系统设定的高阈值,若是,则转过程(2.3),否则判断负载状态变量的值是否低于系统设定的低阈值,若是,则转过程(2.4),否则转过程(2.5);
[0015](2.3)数据压缩模块采用低压缩率的压缩算法对写入数据进行压缩,在压缩位图表中将压缩标记值设置为低压缩,转过程(2.6);
[0016](2.4)数据压缩模块采用高压缩率的压缩算法对写入数据进行压缩,在压缩位图表中将压缩标记值设置为高压缩,转过程(2.6);
[0017](2.5)数据压缩模块采用中压缩率的压缩算法对写入数据进行压缩,在压缩位图表中将压缩标记值设置为中压缩,转过程(2.6);
[0018](2.6)数据压缩模块将压缩后的数据写入固态盘设备,写请求完成,转步骤(I);
[0019](3)数据的解压缩读取步骤,具体过程如下:
[0020](3.1)数据解压缩模块从固态盘设备读取数据,从压缩位图表读取读请求地址对应的压缩标记值,判断压缩标记值是否为高压缩,若是,则转过程(3.2),否则判断压缩标记值是否为低压缩,若是,则转过程(3.3),否则转过程(3.4);
[0021](3.2)采用高压缩率的解压缩算法对读取的数据进行解压缩,转过程(3.5);
[0022](3.3)采用低压缩率的解压缩算法对读取的数据进行解压缩,转过程(3.5);
[0023](3.4)采用中压缩率的解压缩算法对读取的数据进行解压缩,转过程(3.5);
[0024](3.5)返回解压缩后的数据,读请求完成,转步骤⑴。
[0025]本发明的固态盘阵列上设置负载监测模块、数据压缩模块和数据解压缩模块,包括请求类型判断步骤、数据的压缩写入步骤和数据的解压缩读取步骤。
[0026]在本发明中,动态数据压缩方法通过实时监测系统的负载变化和资源使用率,根据系统当前的负载情况动态地选择合适的压缩算法对数据进行压缩,在不影响系统对外服务质量的前提下,获得最大的数据压缩比,从而提高固态盘存储系统的性能和可靠性。
[0027]本发明根据系统当前的负载情况动态地选择不同压缩率的数据压缩算法,充分利用系统资源,在不影响系统对外服务质量的前提下,尽可能最大化地压缩写入的数据,减少数据对固态盘存储系统的写入操作,从而缓解固态盘读写性能不对称的问题,同时提升固态盘的空间利用率和可靠性。
【附图说明】
[0028]图1为本发明的示意图;
[0029]图2为本发明数据的压缩写入步骤的示意图;
[0030]图3为本发明数据的解压缩读取步骤的示意图。
【具体实施方式】
[0031]以下实施例将结合附图对本发明作进一步说明。
[0032]本发明实施例包括以下步骤:
[0033](I)请求类型判断步骤,具体过程如下:
[0034]从上层获得请求,判断该请求是否是写请求,若是,则转步骤(2),否则转步骤
(3);
[0035](2)数据的压缩
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1