CN101853303B - 一种基于语义智能存储方法及系统 - Google Patents
一种基于语义智能存储方法及系统 Download PDFInfo
- Publication number
- CN101853303B CN101853303B CN2010101902137A CN201010190213A CN101853303B CN 101853303 B CN101853303 B CN 101853303B CN 2010101902137 A CN2010101902137 A CN 2010101902137A CN 201010190213 A CN201010190213 A CN 201010190213A CN 101853303 B CN101853303 B CN 101853303B
- Authority
- CN
- China
- Prior art keywords
- hot
- zone
- data block
- file system
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供的一种基于语义智能存储方法及系统,所述方法包括:将文件系统的语义信息嵌入磁盘控制器中;将所述文件系统的逻辑分区划分成多个热区;所述磁盘控制器利用所述文件系统的语义信息,动态推断所述磁盘控制器上各个数据块的类型和状态;根据数据块的类型和状态,将所述磁盘控制器上的数据块分为活跃的数据块和死亡的数据块;统计每个热区中活跃的数据块的个数,计算每个热区的活跃等级;根据每个热区的活跃等级,对文件系统中的文件进行预取。实施本发明,优化了Cache的预取和替换策略,最终提升存储系统的性能。
Description
技术领域
本发明涉及一种存储系统技术,尤其涉及一种基于语义智能存储方法及系统。
背景技术
在现有的存储系统技术中,面临的最大挑战就是存储系统和软件层(例如,文件系统和数据库系统)之间狭窄的接口。现有的存储系统对外展示了一个简单的基于块的接口,例如SCSI(小型计算机系统接口,Small Computer SystemInterface),这个接口提取了一些线性排列的块设备呈现给客户端。文件系统执行读块或者写块命令到这个线性的地址空间。这种接口的设计是为了服务当时很简单的存储系统,很适合简单的抽象的线性地址空间。但是,现有的存储系统已经变得非常庞大和复杂,需要在多个方面进行大范围的优化来提升性能。例如,磁盘阵列系统,使用RAID(Redundant Array of Independent Disk,独立冗余磁盘阵列)技术将多个独立的磁盘组织成一个逻辑盘,提供更大的存储容量;通过数据分条(Data Striping)和交叉存取(Decluster)技术有效地提高了I/O系统的性能,改善了I/O系统的数据传输率;通过保存冗余的数据校验信息提高了存储系统的可靠性。RAID技术使存储系统可以在不丢失数据或中断服务的情况下恢复已出现的磁盘错误。这些复杂的功能的实现都需要获得存储系统中大量重要的低级别的信息,例如,磁盘的故障恢复边界和逻辑块到物理块精确的映射信息。
虽然存储系统变得越来越复杂化和智能化,但是基于块存储的接口仍然没有改变,这是由于当今有大量的存储产品是基于块存储的接口,文件系统不能够通过这个接口获得和控制低级别的块布局的详细信息,存储系统也仅仅只能通过这个接口观察到读块和写块的原始数据流,这些数据流并没有包含任何有意义的语义信息。需要关心的语义信息是具体文件中包含的逻辑块组的信息,数据块的类型(例如,数据或者元数据),块的活跃信息,等等这些信息都是通过现有的存储系统无法获得的。
对于这个问题一个解决方案是:简单的改变存储系统的接口。发明人在实施本发明的过程中,发现现有技术至少具有如下缺点:
改变存储系统的接口蕴藏着极大的危险,需要工业界的广泛认可,并且在已经存在的软件结构上进行剧变。
发明内容
本发明实施例所要解决的技术问题是:文件系统不能够通过存储系统接口获得和控制低级别的块布局的详细信息,存储系统也仅仅只能通过存储系统接口观察到读块和写块的原始数据流,造成预取和替换数据极为不便,存储系统性能降低。
为解决上述技术问题,本发明提供的一种基于语义智能存储方法,包括:
将文件系统的语义信息嵌入磁盘控制器中;
将所述文件系统的逻辑分区划分成多个热区;
所述磁盘控制器利用所述文件系统的语义信息,动态推断所述磁盘控制器上各个数据块的类型和状态;
根据数据块的类型和状态,将所述磁盘控制器上的数据块分为活跃的数据块和死亡的数据块;
统计每个热区中活跃的数据块的个数,计算每个热区的活跃等级;
根据每个热区的活跃等级,对文件系统中的文件进行预取。
本发明还提供了一种基于语义智能存储系统,包括:文件系统、磁盘控制器和高速缓冲存储器;
所述高速缓冲存储器将所述文件系统的语义信息嵌入到所述磁盘控制器中;
所述高速缓冲存储器将所述文件系统的逻辑分区被划分成多个热区;
所述磁盘控制器利用所述文件系统的语义信息,动态推断所述磁盘控制器上各个数据块的类型和状态;
所述高速缓冲存储器根据数据块的类型和状态,将所述磁盘控制器上的数据块分为活跃的数据块和死亡的数据块;
所述高速缓冲存储器将统计每个热区中活跃的数据块的个数,计算每个热区的活跃等级;
所述磁盘控制器根据每个热区的活跃等级,对文件系统中的文件进行预取。
实施本发明,有如下有益效果:
本发明在不改变现有的基于块存储的SCSI接口的条件下,将语义信息嵌入到磁盘控制器中,使磁盘根据已有的语义信息结合动态推断的技术确定磁盘上的数据块类型和状态信息,最终利用这些语义信息建立一种新型的存储系统——语义智能存储系统。基于语义Cache的语义智能存储方法也正是利用了语义信息,优化了Cache的预取和替换策略,最终提升存储系统的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的基于语义智能存储方法第一实施例的流程示意图;
图2是本发明提供的基于语义智能存储方法第二实施例的流程示意图;
图3为本发明提供的基于语义智能存储方法对热区进行划分的示意图;
图4是本发明提供的基于语义智能存储方法第五实施例的流程示意图;
图5是本发明提供的基于语义智能存储方法中建立退火模型的示意图;
图6是本发明提供的基于语义智能存储系统第一实施例的结构示意图:
图7是本发明提供的基于语义智能存储系统第二实施例的流程示意图;
图8是本发明提供的基于语义智能存储系统第三实施例的流程示意图;
图9是本发明提供的基于语义智能存储系统第四实施例的流程示意图。
具体实施方式
本发明所要解决的技术问题在于现有技术中,文件系统不能够通过存储系统接口获得和控制低级别的块布局的详细信息,存储系统也仅仅只能通过存储系统接口观察到读块和写块的原始数据流,造成预取和替换数据极为不便,存储系统性能降低。
针对上述现有技术的不足,提供一种基于语义智能存储方法,参见图1,本发明提供的基于语义智能存储方法第一实施例的流程如下:
步骤100,将文件系统的语义信息嵌入磁盘控制器中;
步骤101,将所述文件系统的逻辑分区划分成多个热区;
步骤102,所述磁盘控制器利用所述文件系统的语义信息,动态推断所述磁盘控制器上各个数据块的类型和状态;
步骤103,根据数据块的类型和状态,将所述磁盘控制器上的数据块分为活跃的数据块和死亡的数据块;
步骤104,统计每个热区中活跃的数据块的个数,计算每个热区的活跃等级;
步骤105,根据每个热区的活跃等级,对文件系统中的文件进行预取。
本发明在不改变现有的基于块存储的SCSI接口的条件下,将语义信息嵌入到磁盘控制器中,使磁盘根据已有的语义信息结合动态推断的技术确定磁盘上的数据块类型和状态信息,基于语义Cache的语义智能存储方法也正是利用了语义信息,优化了Cache的预取和替换策略,最终提升存储系统的性能。
参见图2,为本发明提供的基于语义智能存储方法第二实施例的流程示意图。
本实施例中,着重说明对文件系统的热区进行划分,如图3所示,并且计算每个热区的活跃等级的方法流程,如图2所示。
本发明实施例中,对文件系统的整个逻辑分区进行划分,默认以16个块组即2GB的大小作为一个热区(假设对象磁盘的存储空间大于2GB),每个热区根据热区的活跃度执行一种Cache的预取策略,当然这个热区的大小完全可以根据实际情况动态调整。
步骤200,计算文件系统的热区中数据块的活跃度;
具体的,首先扫描文件系统数据块中的位图块,对于位图块大小是4k的文件系统来说,一个位图块共有32768个位,每一位表示一个数据块,每个数据块的大小是4k,所以一个块组可以描述128M的大小,扫描每一个块组,对于数据块的活跃度划分以下8个等级:
活跃度8:在32768个块中,超过32768×7/8=30832个块被标记为活跃的,将该块组的活跃度设置为8;
活跃度7:在32768个块中,超过32768×3/4=24576个块被标记为活跃的,将该块组的活跃度设置为7;
活跃度6:在32768个块中,超过32768×5/8=20480个块被标记为活跃的,将该块组的活跃度设置为6;
活跃度5:在32768个块中,超过32768×1/2=16384个块被标记为活跃的,将该块组的活跃度设置为5;
活跃度4:在32768个块中,超过32768×3/8=12288个块被标记为活跃的,将该块组的活跃度设置为4;
活跃度3:在32768个块中,超过32768×1/4=8192个块被标记为活跃的,将该块组的活跃度设置为3;
活跃度2:在32768个块中,超过32768×1/8=4096个块被标记为活跃的,将该块组的活跃度设置为2;
活跃度1:在32768个位中,如果低于4096个活跃块,将该块组的活跃度设置为1;
步骤201,计算文件系统的热区的活跃等级;
为通过下列公式计算每个热区的活跃等级:
其中,Hotlife表示一个热区的活跃度,参数i是数据块的计数值,取值范围为[0,GroupNum],参数GroupLife是一个数据块的活跃度,取值范围为[1,N],N为自然数,参数GroupNum是一个热区里包含的数据块的个数。
热区的活跃等级可以很好的反映磁盘上数据的布局以及应用程序对磁盘上数据的使用情况。
步骤202,在通过公式计算每个热区的活跃等级后,再通过以下公式计算预取权值P:
P∝HotLife*α
参数HotLife为热区的活跃等级,参数a为热区的影响因子。
对于同一个热区由于特殊的应用采用不同的预取算法,需要通过实际采用的预取算法来确定a的值,最终影响预取权值P。对于同一个热区如果采用同一种预取算法,a的值可以认定为1,在规定的预取参数的范围内,预取权值P和活跃度HotLife就是一个简单的正比关系。
对于同一热区在不改变预取算法的前提下,通过修改预取相关参数进行大量实验后,对预取权值P的选取给出以下参考标准:
当6≤P≤8,此时可以推断该热区的数据块活跃度最高,可以大幅度的增加后继的预取窗口的大小,使预取窗口很快逼近Cache的最大预取窗口ra_pages,大幅度的预取数据。在这个活跃度最高等级的热区中,即使偶尔出现一部分随机读的干扰,只要热区的活跃等级没有下降,仍然不需要改变原有的预取策略,因为通常情况下,对于大块的连续文件还是需要进行大量的顺序操作,对于大块的连续文件进行随机操作非常少见。对于这个最高等级的热区,比较适合需要大量的数据传输,如Ftp服务。
当4≤P<6,此时可以推断该热区的活跃度比较高,可以适当的增加预取窗口的大小,大胆的进行预取,对于这个次高等级的热区比较适合流媒体的在线传输,当然为了提高性能,可以使用为流媒体优化的特定Cache算法,替换原有的Cache算法。
当2≤P<4,此时可以推断该热区活跃度不高,采用原有的Cache算法,平缓的进行预取可以达到平均的最佳性能。
当P<2,此时可以推断该热区的活跃度很低,比较适合随机读,关闭异步预取功能。这种低活跃度的热区比较适合数据库的随机查询,此时可以使用数据库系统特有的Cache缓存策略替换原有的Cache缓存策略,最终得到最佳的系统性能。
下面介绍本发明提供的基于语义智能存储方法第三实施例。
本实施例中,着重说明对文件系统中的文件进行预取的方法。
需要说明的是,现有技术中的磁盘I/O由两个基本步骤构成:首先,硬盘接到相应的指令开始磁头从当前磁道移动到数据所在的磁道,这个过程所用的平均时间称为平均寻道时间。其次,磁头移动到指定的磁道后,还需要多少平均时间等待目标数据块转动到磁头位置,这段平均时间成为平均潜伏时间;最后,进行实际的数据读取和传输,期间可能需要步入多个相邻的磁道。相应的有两个操作时间:平均访问时间和数据传输时间,近似等于持续数据传输率与I/O大小的乘积,其中传输率的均值可达80MB/s。在一个I/O周期中,只有数据传输时间才是硬盘的有效利用时间。最新硬盘的平均访问时间可以达到8ms。
对一个I/O密集型的应用,如果一个被异步预取的页面被命中,通常意味着节省了一次磁盘I/O,假设所避免的延迟时间为5ms;另一方面,一个不被命中的预读页面所耗费的额外数据传输时间约为4KB/80MB/s=0.05ms。单从这一点估算,预读命中率大于1%即可带来性能的提升,虽然不一定是最佳,但已经很合算。
针对以上的分析,本发明提供的基于语义智能存储方法中的预取方法是:在磁盘Cache可以根据块的状态信息,选择标记为活跃的块进行预取,这样可以大大提高Cache的命中率。例如,某一个磁道包含64个扇区,8个扇区组成一个数据块,假设8个数据块中有4个标记为活跃的,4个标记为死亡的,这个Cache一次只可以预取8个数据块,如果按照传统的预取策略,将整个磁道的8个数据块都预取进Cache,这无疑将浪费了宝贵的Cache资源。按照智能Cache的预取策略,仅仅会预取这8个块中的4个活跃块,同时可以在对相邻磁道进行预取,额外读入4个活跃的块,如果额外读入的4个活跃的块有一个被应用程序的请求命中,节省一次I/O,就可以节省4.95ms的时间,因此,智能Cache的预取策略无疑将大幅度的提高Cache的命中率,从而节省大量的I/O,使存储系统的性能得到提升。
以下介绍本发明提供的基于语义智能存储方法第四实施例。
本实施例着重说明对死亡的数据块的替换方法。
需要说明的是,数据块的生命周期就是指在文件系统中,从创建一个块到删除这个块的这段时间。在现有的文件系统中,通常会每隔30秒将Cache中的数据刷新到磁盘上。在语义Cache中,需要追踪每一个由于文件系统的删除操作而产生需要更新到磁盘的数据块。删除数据块的时间减去创建数据块的时间就可以得到一个数据块的生命周期。根据数据块的状态信息,如果在语义Cache中出现已经死亡的块,这些死亡的块是不应该停留在Cache中的,应该立刻被替换出去。传统Cache的LRU替换算法由于缺少语义信息,当Cache被填满的时候,会将所有的数据块包括已经死亡的块都刷新到磁盘。事实上,这些被标记为死亡的数据块是没有必要刷新到磁盘上的。
参见图4,为本发明实施例提供的基于语义智能存储方法第五实施例的流程示意图。
本实施例着重说明对数据块的跳步预取策略,如下:
步骤300,将文件系统的语义信息嵌入磁盘控制器中;
步骤301,所述磁盘控制器根据嵌入在其中的文件系统的语义信息,确定文件系统级的逻辑块和磁盘级的物理块之间的映射关系;
步骤302,通过查找所述文件系统级的逻辑块和磁盘级的物理块之间的映射关系,确定该文件系统中文件的逻辑数据块的组成和该文件实际在物理磁盘上存储的位置;
步骤303,磁盘控制器的高速缓冲存储器根据热区上的数据吞吐量确定预取策略;
步骤304,磁盘控制器的高速缓冲存储器对所述逻辑上连续但物理上不连续的文件进行跳步预取。
传统的Cache无法感知文件在磁盘上的数据布局,操作系统尽量保证在逻辑上连续的文件也连续的存储在磁盘中,但是这种保证并不是绝对的,例如,使用过一段时间的文件系统,向该文件系统上拷贝文件,如果当前的最大连续空闲块已经无法存储这个拷贝文件,操作系统就会将这个文件分成若干块存储在尽可能大的连续空闲空间内,对于这个文件在实际物理磁盘上的分布情况,传统的Cache是无法进行感知的,仍然会按照正常的预取算法进行预取,这样每次预取到存储这些文件块边界的时候,由于执行异步预取不会再命中属于这个文件的块,因而判定下一个操作为随机读,关闭异步预取的功能,执行同步预取。这样将极大的影响存储系统的性能。
在本发明提供的基于语义信息的智能存储系统中,由于嵌入在磁盘控制器里的文件系统的知识,磁盘了解所有文件的元数据信息,通过对应文件的inode节点的信息,磁盘知道这个文件由那些逻辑数据块组成,同时磁盘了解这个文件实际在物理磁盘上存储的位置。这样通过查找逻辑块和物理块的映射关系,磁盘的Cache可以执行一种跳部的预取策略,对那些逻辑上连续但物理上不连续的文件进行跳步预取,跳过离散的物理块边界,从第一个连续块跳到下一个连续块进行预取,依次类推。最终,通过智能的执行跳步预取策略改善存储系统的性能。
需要说明的是,传统的Cache预取策略对预取参数的选取是严格按照算法进行模式匹配的,虽然匹配的置信度有所提高,但是在某些情况下也显得不够灵活。例如,应用程序在一个热区上进行读操作,传统的Cache预取策略会对应用程序所请求的数据进行预取操作,如果预取的窗口中有一个数据块命中,预取的窗口就会增加两倍,同时采用异步预取;如果没有命中,进行同步预取并重新设置预取窗口。事实上,这种简单的将预取窗口扩大两倍的方法并不一定能够持续的增加I/O吞吐量,通过大量的实验发现,随着预取窗口的增加,I/O吞吐量并不像一条斜直线一样按正比增长,而呈现出一条凹凸不平的曲线,这说明最佳的预取参数并不在预取窗口最大的时候取得。因而,本发明提出通过周期性的采集热区上的I/O吞吐量,建立一个退火模型,如图5,退火模型最大的优势就是收敛于全局最优解,而全局最优解对应的预取参数就是这个热区上的最逼近最优解的一组预取参数。
因此,本发明提供的高速缓冲存储器根据热区上的数据吞吐量确定预取策略具体为:
周期性采集热区上的数据吞吐量,确定预取参数;
根据所述预取参数,对所述文件系统中的文件进行预取。
其中,所述周期性采集热区上的数据吞吐量,确定预取参数,具体为:
计算文件系统的多个接受概率P1,P2...Pk,其中K为自然数,P的计算公式如下:
统计计算所得的P1,P2...Pk,,选出其中的最大值;
根据所述最大值,计算对应文件系统的最好状态Xbest作为预取参数;
其中,Xold为文件系统的原始状态,Xnew为文件系统受到某种扰动而变化而成的新状态,E(Xold)为文件系统的原始能量,E(Xnew)为文件系统变化后的能量,T为由E(Xold)变化到E(Xnew)的时间。
预取参数的采样和修改算法如下:
根据Metropoils准则,周期性的采样不同数据块大小的I/O吞吐量,建立一个退火模型,X表示预读数据块的大小,E(X)表示采样的I/O吞吐量。扰动函数T(i)为基于不同大小数据块进行采样的I/O吞吐量之差的均方差的经验函数,算法的流程如下:
(1)根据热区模型计算出热区的活跃度,给出对应热区的标准预取参数X0作为初始解,假设Xbest为最优预取参数,令Xold=X0,并记录数据块X0对应的I/O吞吐量的函数值E(X0)。
(2)设置扰动函数的初始值T(i)=T0,迭代k次。
(3)Do while T(i)>Tmin
1)for i from 1 to k;
2)对当前最优解Xbest按照扰动函数T(i),产生一新的解Xnew。记录新的I/O采样函数值E(Xnew),并计算目标函数值的增量ΔE=E(Xnew)-E(Xbest),记录每次变化产生的增量ΔEi的值;
3)如果ΔEi<0,则Xbest=Xbest。否则,计算Pi=exp(-ΔEi/T(i)),记录Pi的值;
4)End for;
(4)i=i+1;
(5)End Do;
(6)通过以上步骤统计P1,P2...Pk选出最大值时,对应的Xbest作为最优解,计算结束。
通过模拟退火算法可以修正因为仅仅统计热区活跃度给出的预取标准参数,从而选择最优组合的预取参数,最大程度的发挥Cache的预取功能。
相应地,本发明还提供一种基于语义智能存储系统,参见图6,本发明提供的基于语义智能存储系统第一实施例的结构示意图:
本实施例一种基于语义智能存储系统,包括:文件系统1、磁盘控制器2和高速缓冲存储器3;
所述高速缓冲存储器3将所述文件系统的语义信息嵌入到所述磁盘控制器2中;
所述高速缓冲存储器3将所述文件系统1的逻辑分区被划分成多个热区;
所述磁盘控制器2利用所述文件系统的语义信息,动态推断所述磁盘控制器2上各个数据块的类型和状态;
所述高速缓冲存储器3根据数据块的类型和状态,将所述磁盘控制器2上的数据块分为活跃的数据块和死亡的数据块;
所述高速缓冲存储器3将统计每个热区中活跃的数据块的个数,计算每个热区的活跃等级;
所述高速缓冲存储器3根据每个热区的活跃等级,对文件系统1中的文件进行预取。
本发明在不改变现有的基于块存储的SCSI接口的条件下,将语义信息嵌入到磁盘控制器中,使磁盘根据已有的语义信息结合动态推断的技术确定磁盘上的数据块类型和状态信息,最终利用这些语义信息建立一种新型的存储系统——语义智能存储系统。基于语义Cache的语义智能存储方法也正是利用了语义信息,优化了Cache的预取和替换策略,最终提升存储系统的性能。
参见图7,为本发明提供的基于语义智能存储系统第二实施例的流程示意图。
本实施例中,着重说明对本发明提供的高速缓冲存储器对文件系统的热区进行划分后,计算数据块的活跃度和热区活跃等级的实施方式。
需要说明的是,本发明实施例中,对文件系统的整个逻辑分区进行划分,默认以16个块组即2GB的大小作为一个热区(假设对象磁盘的存储空间大于2GB),每个热区根据热区的活跃度执行一种Cache的预取策略,当然这个热区的大小完全可以根据实际情况动态调整。
本实施例中的高速缓冲存储器包括:
数据划分模块30,根据数据块的类型和状态,将所述磁盘控制器上的数据块分为活跃的数据块和死亡的数据块;
数据删除模块31,用于数据划分模块将所述磁盘控制器上的数据块分为活跃的数据块和死亡的数据块后,将所述死亡的数据块删除;
数据块活跃度计算模块32,用于将所述文件系统的逻辑分区进行划分后,计算每个热区的数据块的活跃度;
具体的,数据块活跃度计算模块32首先扫描文件系统数据块中的位图块,对于位图块大小是4k的文件系统来说,一个位图块共有32768个位,每一位表示一个数据块,每个数据块的大小是4k,所以一个块组可以描述128M的大小,扫描每一个块组,对于数据块的活跃度划分以下8个等级:
活跃度8:在32768个块中,超过32768×7/8=30832个块被标记为活跃的,将该块组的活跃度设置为8;
活跃度7:在32768个块中,超过32768×3/4=24576个块被标记为活跃的,将该块组的活跃度设置为7;
活跃度6:在32768个块中,超过32768×5/8=20480个块被标记为活跃的,将该块组的活跃度设置为6;
活跃度5:在32768个块中,超过32768×1/2=16384个块被标记为活跃的,将该块组的活跃度设置为5;
活跃度4:在32768个块中,超过32768×3/8=12288个块被标记为活跃的,将该块组的活跃度设置为4;
活跃度3:在32768个块中,超过32768×1/4=8192个块被标记为活跃的,将该块组的活跃度设置为3;
活跃度2:在32768个块中,超过32768×1/8=4096个块被标记为活跃的,将该块组的活跃度设置为2;
活跃度1:在32768个位中,如果低于4096个活跃块,将该块组的活跃度设置为1;
热区活跃等级计算模块33,用于通过下列公式计算每个热区的活跃等级:
其中,Hotlife表示一个热区的活跃度,参数i是数据块的计数值,取值范围为[0,GroupNum],参数GroupLife是一个数据块的活跃度,取值范围为[1,N],N为自然数,参数GroupNum是一个热区里包含的数据块的个数。
热区的活跃等级可以很好的反映磁盘上数据的布局以及应用程序对磁盘上数据的使用情况。
本发明实施例的高速缓冲存储器3还包括预取权值计算模块34,用于在通过公式计算每个热区的活跃等级后,再通过以下公式计算预取权值P:
P∝HotLife*α
参数HotLife为热区的活跃等级,参数a为热区的影响因子。
对于同一个热区由于特殊的应用采用不同的预取算法,需要通过实际采用的预取算法来确定a的值,最终影响预取权值P。对于同一个热区如果采用同一种预取算法,a的值可以认定为1,在规定的预取参数的范围内,预取权值P和活跃度HotLife就是一个简单的正比关系。
对于同一热区在不改变预取算法的前提下,通过修改预取相关参数进行大量实验后,对预取权值P的选取给出以下参考标准:
当6≤P≤8,此时可以推断该热区的数据块活跃度最高,可以大幅度的增加后继的预取窗口的大小,使预取窗口很快逼近Cache的最大预取窗口ra_pages,大幅度的预取数据。在这个活跃度最高等级的热区中,即使偶尔出现一部分随机读的干扰,只要热区的活跃等级没有下降,仍然不需要改变原有的预取策略,因为通常情况下,对于大块的连续文件还是需要进行大量的顺序操作,对于大块的连续文件进行随机操作非常少见。对于这个最高等级的热区,比较适合需要大量的数据传输,如Ftp服务。
当4≤P<6,此时可以推断该热区的活跃度比较高,可以适当的增加预取窗口的大小,大胆的进行预取,对于这个次高等级的热区比较适合流媒体的在线传输,当然为了提高性能,可以使用为流媒体优化的特定Cache算法,替换原有的Cache算法。
当2≤P<4,此时可以推断该热区活跃度不高,采用原有的Cache算法,平缓的进行预取可以达到平均的最佳性能。
当P<2,此时可以推断该热区的活跃度很低,比较适合随机读,关闭异步预取功能。这种低活跃度的热区比较适合数据库的随机查询,此时可以使用数据库系统特有的Cache缓存策略替换原有的Cache缓存策略,最终得到最佳的系统性能。
参见图8,为本发明实施例提供的基于语义智能存储系统第三实施例的结构示意图。
本实施例着重说明高速缓冲存储器对数据块的跳步预取策略,如下:
映射关系确定模块35,用于根据嵌入在其中的文件系统的语义信息,确定文件系统级的逻辑块和磁盘级的物理块之间的映射关系;
映射关系存储模块36,用于存储所述映射关系确定模块确定的文件系统级的逻辑块和磁盘级的物理块之间的映射关系。
位置确定模块37,用于通过查找所述映射关系存储模块中存储的文件系统级的逻辑块和磁盘级的物理块之间的映射关系,确定该文件系统中文件的逻辑数据块的组成和该文件实际在物理磁盘上存储的位置;
预取策略确定模块38,用于根据热区上的数据吞吐量确定预取策略;
预取模块39,用于根据所述预取策略确定模块对所述逻辑上连续但物理上不连续的文件进行跳步预取。
需要说明的是,传统的Cache无法感知文件在磁盘上的数据布局,操作系统尽量保证在逻辑上连续的文件也连续的存储在磁盘中,但是这种保证并不是绝对的,例如,使用过一段时间的文件系统,向该文件系统上拷贝文件,如果当前的最大连续空闲块已经无法存储这个拷贝文件,操作系统就会将这个文件分成若干块存储在尽可能大的连续空闲空间内,对于这个文件在实际物理磁盘上的分布情况,传统的Cache是无法进行感知的,仍然会按照正常的预取算法进行预取,这样每次预取到存储这些文件块边界的时候,由于执行异步预取不会再命中属于这个文件的块,因而判定下一个操作为随机读,关闭异步预取的功能,执行同步预取。这样将极大的影响存储系统的性能。
在本发明提供的基于语义信息的智能存储系统中,由于嵌入在磁盘控制器里的文件系统的知识,磁盘了解所有文件的元数据信息,通过对应文件的inode节点的信息,磁盘知道这个文件由那些逻辑数据块组成,同时磁盘了解这个文件实际在物理磁盘上存储的位置。这样通过查找逻辑块和物理块的映射关系,磁盘的Cache可以执行一种跳部的预取策略,对那些逻辑上连续但物理上不连续的文件进行跳步预取,跳过离散的物理块边界,从第一个连续块跳到下一个连续块进行预取,依次类推。最终,通过智能的执行跳步预取策略改善存储系统的性能。
需要说明的是,传统的Cache预取策略对预取参数的选取是严格按照算法进行模式匹配的,虽然匹配的置信度有所提高,但是在某些情况下也显得不够灵活。例如,应用程序在一个热区上进行读操作,传统的Cache预取策略会对应用程序所请求的数据进行预取操作,如果预取的窗口中有一个数据块命中,预取的窗口就会增加两倍,同时采用异步预取;如果没有命中,进行同步预取并重新设置预取窗口。事实上,这种简单的将预取窗口扩大两倍的方法并不一定能够持续的增加I/O吞吐量,通过大量的实验发现,随着预取窗口的增加,I/O吞吐量并不像一条斜直线一样按正比增长,而呈现出一条凹凸不平的曲线,这说明最佳的预取参数并不在预取窗口最大的时候取得。因而,本发明提出通过周期性的采集热区上的I/O吞吐量,建立一个退火模型,如图5,退火模型最大的优势就是收敛于全局最优解,而全局最优解对应的预取参数就是这个热区上的最逼近最优解的一组预取参数。
因此,本发明提供的高速缓冲存储器根据热区上的数据吞吐量确定预取策略具体为:
周期性采集热区上的数据吞吐量,确定预取参数;
根据所述预取参数,对所述文件系统中的文件进行预取。
参见图9,为本发明实施例提供的基于语义智能存储系统第四实施例的结构示意图。
本实施例着重说明预取策略确定模块的具体组成。
其包括:接受概率计算单元380和最大值选取单元381以及预取参数选择单元382;
所述概率计算单元380,用于计算文件系统的多个接受概率P1,P2...Pk,其中K为自然数,P的计算公式如下:
所述最大值选取单元381,用于统计计算所得的P1,P2...Pk,,选出其中的最大值;
预取参数选择单元382,用于根据所述最大值,计算对应文件系统的最好状态Xbest作为预取参数;
其中,Xold为文件系统的原始状态,Xnew为文件系统受到某种扰动而变化而成的新状态,E(Xold)为文件系统的原始能量,E(Xnew)为文件系统变化后的能量,T为由E(Xold)变化到E(Xnew)的时间。
预取参数的采样和修改算法如下:
根据Metropoils准则,周期性的采样不同数据块大小的I/O吞吐量,建立一个退火模型,X表示预读数据块的大小,E(X)表示采样的I/O吞吐量。扰动函数T(i)为基于不同大小数据块进行采样的I/O吞吐量之差的均方差的经验函数,算法的流程如下:
(1)根据热区模型计算出热区的活跃度,给出对应热区的标准预取参数X0作为初始解,假设Xbest为最优预取参数,令Xold=X0,并记录数据块X0对应的I/O吞吐量的函数值E(X0)。
(2)设置扰动函数的初始值T(i)=T0,迭代k次。
(3)Do while T(i)>Tmin
1)for i from 1 to k;
2)对当前最优解Xbest按照扰动函数T(i),产生一新的解Xnew。记录新的I/O采样函数值E(Xnew),并计算目标函数值的增量ΔE=E(Xnew)-E(Xbest),记录每次变化产生的增量ΔEi的值;
3)如果ΔEi<0,则Xbest=Xbest。否则,计算Pi=exp(-ΔEi/T(i)),记录Pi的值;
4)End for;
(4)i=i+1;
(5)End Do;
(6)通过以上步骤统计P1,P2...Pk选出最大值时,对应的Xbest作为最优解,计算结束。
通过模拟退火算法可以修正因为仅仅统计热区活跃度给出的预取标准参数,从而选择最优组合的预取参数,最大程度的发挥Cache的预取功能。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (7)
1.一种基于语义智能存储方法,其特征在于,包括:
将文件系统的语义信息嵌入磁盘控制器中;
将所述文件系统的逻辑分区划分成多个热区;
所述磁盘控制器利用所述文件系统的语义信息,动态推断所述磁盘控制器上各个数据块的类型和状态;
根据数据块的类型和状态,将所述磁盘控制器上的数据块分为活跃的数据块和死亡的数据块;
统计每个热区中活跃的数据块的个数,计算每个热区的活跃等级;
其中,所述计算每个热区的活跃等级为:通过下列公式计算每个热区的活跃等级:
其中,Hotlife表示一个热区的活跃等级,参数i是数据块的计数值,取值范围为[0,GroupNum],参数GroupLife是一个数据块的活跃度,取值范围为[1,N],N为自然数,参数GroupNum是一个热区里包含的数据块的个数;
在通过公式计算每个热区的活跃等级后,再通过以下公式计算预取权值P:
P∝HotLife*α
参数HotLife为热区的活跃等级,参数α为热区的影响因子,其根据所述热区所采用的预取算法确定;
根据每个热区的所述预取权值P,对文件系统中的文件进行预取。
2.如权利要求1所述的方法,其特征在于,在根据数据块的类型和状态,将所述磁盘控制器上的数据块分为活跃的数据块和死亡的数据块后,将所述死亡的数据块删除。
3.如权利要求2所述的方法,其特征在于,将文件系统的语义信息嵌入磁盘控制器中之后,还包括:
所述磁盘控制器根据嵌入在其中的文件系统的语义信息,确定文件系统级 的逻辑块和磁盘级的物理块之间的映射关系;
通过查找所述文件系统级的逻辑块和磁盘级的物理块之间的映射关系,确定该文件系统中文件的逻辑数据块的组成和该文件实际在物理磁盘上存储的位置;
高速缓冲存储器根据热区上的数据吞吐量确定预取策略;所述确定预取策略具体为:
周期性采集热区上的数据吞吐量,确定预取参数;
根据所述预取参数,确定对所述文件系统中的文件进行预取的预取策略;
所述周期性采集热区上的数据吞吐量,确定预取参数,具体为:
计算文件系统的多个接受概率P1,P2…Pk,其中K为自然数,P的计算公式如下:
统计计算所得的P1,P2…Pk,,选出其中的最大值;
根据所述最大值,计算对应文件系统的最好状态Xbest作为预取参数;
其中,Xold为文件系统的原始状态,Xnew为文件系统受到扰动而变化而成的新状态,E(Xold)为文件系统的原始能量,E(Xnew)为文件系统变化后的能量,T为由E(Xold)变化到E(Xnew)的时间;
则所述根据每个热区的所述预取权值P,对文件系统中的文件进行预取具体包括:
高速缓冲存储器对逻辑上连续但物理上不连续的文件进行跳步预取。
4.一种基于语义智能存储系统,其特征在于,包括:文件系统、磁盘控制器和高速缓冲存储器;
所述高速缓冲存储器将所述文件系统的语义信息嵌入到所述磁盘控制器中;
所述高速缓冲存储器将所述文件系统的逻辑分区被划分成多个热区;
所述磁盘控制器利用所述文件系统的语义信息,动态推断所述磁盘控制器上各个数据块的类型和状态;
所述高速缓冲存储器根据数据块的类型和状态,将所述磁盘控制器上的数据块分为活跃的数据块和死亡的数据块;
所述高速缓冲存储器将统计每个热区中活跃的数据块的个数,计算每个热区的活跃等级;其中,所述高速缓冲存储器还包括:
数据块活跃度计算模块,用于将所述文件系统的逻辑分区进行划分后,计算每个热区的数据块的活跃度;
热区活跃等级计算模块,用于通过下列公式计算每个热区的活跃等级:
其中,Hotlife表示一个热区的活跃等级,参数i是数据块的计数值,取值范围为[0,GroupNum],参数GroupLife是一个数据块的活跃度,取值范围为[1,N],N为自然数,参数GroupNum是一个热区里包含的数据块的个数;
所述高速缓冲存储器还包括:
预取权值计算模块,用于通过以下公式计算预取权值P:
P∝HotLife*α
参数HotLife为热区的活跃等级,参数α为热区的影响因子,其根据所述热区所采用的预取算法确定;
所述高速缓冲存储器根据每个热区的所述预取权值P,对文件系统中的文件进行预取。
5.如权利要求4所述的系统,其特征在于,所述高速缓冲存储器包括:
数据划分模块,根据数据块的类型和状态,将所述磁盘控制器上的数据块分为活跃的数据块和死亡的数据块;
数据删除模块,用于数据划分模块将所述磁盘控制器上的数据块分为活跃的数据块和死亡的数据块后,将所述死亡的数据块删除。
6.如权利要求5所述的系统,其特征在于,所述高速缓冲存储器包括:
映射关系确定模块,用于根据嵌入在其中的文件系统的语义信息,确定文件系统级的逻辑块和磁盘级的物理块之间的映射关系;
映射关系存储模块,用于存储所述映射关系确定模块确定的文件系统级的 逻辑块和磁盘级的物理块之间的映射关系。
7.如权利要求6所述的系统,其特征在于,所述高速缓冲存储器包括:
位置确定模块,用于通过查找所述映射关系存储模块中存储的文件系统级的逻辑块和磁盘级的物理块之间的映射关系,确定该文件系统中文件的逻辑数据块的组成和该文件实际在物理磁盘上存储的位置;
预取策略确定模块,用于根据热区上的数据吞吐量确定预取策略;
预取模块,用于根据所述预取策略确定模块对逻辑上连续但物理上不连续的文件进行跳步预取;
所述预取策略确定模块包括:
接受概率计算单元,用于计算文件系统的多个接受概率P1,P2…Pk,其中K为自然数,P的计算公式如下:
其中,Xold为文件系统的原始状态,Xnew为文件系统受到扰动而变化而成的新状态,E(Xold)为文件系统的原始能量,E(Xnew)为文件系统变化后的能量,T为由E(Xold)变化到E(Xnew)的时间;
最大值选取单元,用于统计所述接受概率计算单元计算所得的P1,P2…Pk,,选出其中的最大值;
预取参数选择单元,根据所述最大值,计算对应文件系统的最好状态Xbest作为预取参数;
则所述高速缓冲存储器根据每个热区的所述预取权值P,对文件系统中的文件进行预取,包括:
所述高速缓冲存储器根据每个热区的预取参数Xbest,对文件系统中的文件进行预取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101902137A CN101853303B (zh) | 2010-06-02 | 2010-06-02 | 一种基于语义智能存储方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101902137A CN101853303B (zh) | 2010-06-02 | 2010-06-02 | 一种基于语义智能存储方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101853303A CN101853303A (zh) | 2010-10-06 |
CN101853303B true CN101853303B (zh) | 2012-02-01 |
Family
ID=42804794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101902137A Expired - Fee Related CN101853303B (zh) | 2010-06-02 | 2010-06-02 | 一种基于语义智能存储方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101853303B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102033718B (zh) * | 2010-12-17 | 2013-06-19 | 曙光信息产业股份有限公司 | 一种可扩展的快速流检测方法 |
CN104714891B (zh) * | 2013-12-11 | 2017-12-15 | 华为技术有限公司 | 一种闪存数据管理方法及装置 |
CN109783398B (zh) * | 2019-01-18 | 2020-09-15 | 上海海事大学 | 一种基于相关感知页面级ftl固态硬盘性能优化方法 |
CN114968073A (zh) * | 2021-02-27 | 2022-08-30 | 华为技术有限公司 | 数据预取的方法、设备及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6412046B1 (en) * | 2000-05-01 | 2002-06-25 | Hewlett Packard Company | Verification of cache prefetch mechanism |
US6957305B2 (en) * | 2002-08-29 | 2005-10-18 | International Business Machines Corporation | Data streaming mechanism in a microprocessor |
CN100428193C (zh) * | 2004-02-07 | 2008-10-22 | 华为技术有限公司 | 一种在数据存储系统中预取数据的方法 |
TW200745847A (en) * | 2005-12-23 | 2007-12-16 | Koninkl Philips Electronics Nv | Apparatus and method for dynamic cache management |
-
2010
- 2010-06-02 CN CN2010101902137A patent/CN101853303B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101853303A (zh) | 2010-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102576293B (zh) | 固态存储设备和分层存储系统中的数据管理 | |
CN102023809B (zh) | 存储系统、从存储系统读取数据的方法及写入数据的方法 | |
CN103577338B (zh) | 一种回收垃圾数据的方法及存储设备 | |
Bostoen et al. | Power-reduction techniques for data-center storage systems | |
CN102349055B (zh) | 对存储在存储器上的文件的访问时间最优化 | |
CN106201916B (zh) | 一种面向ssd的非易失缓存方法 | |
CN103631536B (zh) | 一种利用ssd的无效数据优化raid5/6写性能的方法 | |
US20190138517A1 (en) | Hot-Spot Adaptive Garbage Collection | |
CN102667709A (zh) | 用于提供数据的长期存储的系统和方法 | |
CN105242871A (zh) | 一种数据写入方法及装置 | |
CN100501868C (zh) | 基于NAND Flash存储器文件系统的实现方法 | |
CN103049222A (zh) | 一种raid5的写io优化处理方法 | |
CN101853303B (zh) | 一种基于语义智能存储方法及系统 | |
CN102681791B (zh) | 一种集群存储系统的节能存储方法 | |
EP2671160A2 (en) | System, apparatus, and method supporting asymmetrical block-level redundant storage | |
CN101968755B (zh) | 一种自适应应用负载变化的快照生成方法 | |
CN104298610A (zh) | 资料储存系统及其管理方法 | |
CN101140586A (zh) | 嵌入式系统中NAND Flash存储器上建立文件系统的方法 | |
CN103530237A (zh) | 一种固态盘阵列的垃圾回收方法 | |
CN109710541B (zh) | 针对NAND Flash主控芯片Greedy垃圾回收的优化方法 | |
CN111984200A (zh) | 海量视频数据存储系统 | |
CN104778018A (zh) | 基于非对称混合型磁盘镜像的宽条带磁盘阵列及存储方法 | |
CN101140542A (zh) | 一种缩短写时拷贝快照写响应时间的方法 | |
CN100428193C (zh) | 一种在数据存储系统中预取数据的方法 | |
CN109284233A (zh) | 一种存储系统的垃圾回收方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120201 |