基于异构存储的数据分布方法、装置、电子设备和介质与流程

文档序号:29514662发布日期:2022-04-06 20:46阅读:96来源:国知局
基于异构存储的数据分布方法、装置、电子设备和介质与流程

1.本公开涉及异构存储技术领域,尤其涉及一种基于异构存储的数据分布方法、装置、电子设备和存储介质。


背景技术:

2.由于传统的采用单一存储介质的分布式文件系统收到设备带宽和存储容量的限制,渐渐成为上层计算框架的性能瓶颈。因此出现了基于多层存储介质的分布式异构存储技术,以解决传统分布式文件系统中设备带宽和存储容量的问题。
3.数据布局是分布式文件系统中影响数据访问性能的一大重要因素,而传统的数据局部方法由于只考虑了文件热度,即文件的访问频率,将访问热度高的文件放在了传输速度快,时延较低的高层存储设备上,但是由于未考虑到存储设备和文件本身的特性,导致数据布局不够合理。
4.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现要素:

5.本公开的目的在于提供一种基于异构存储的数据分布方法、装置、存储介质及电子设备,至少在一定程度上克服由于相关技术中异构存储设备中数据分布不合理的问题。
6.本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
7.根据本公开的一个方面,提供一种基于异构存储的数据分布方法,包括:基于异构的多层存储设备的设备负载率,确定每层所述存储设备中文件块的迁移概率,所述迁移概率包括向上层提升的提升概率和/或向下层淘汰的淘汰概率;基于所述迁移概率分别计算目标存储设备层迁移文件块与目标存储设备层之间的亲和度,以及所述迁移文件块的迁移成本;在基于所述亲和度和所述迁移成本确定具有正向的迁移收益时,基于所述迁移概率触发所述迁移文件块的迁移操作。
8.在一个实施例中,所述基于所述迁移概率分别计算迁移文件块与目标存储设备层之间的亲和度,以及所述迁移文件块的迁移成本,具体包括:基于所述迁移文件块的大小、所述目标存储设备层对所述迁移文件块的读写操作,确定占用的所述目标存储设备层的带宽;预测所述迁移文件块的热度值;基于所述迁移概率、所述带宽、所述热度值和所述目标存储设备层的标识参数,确定所述亲和度;基于所述迁移概率、所述迁移文件块的大小、所述带宽和所述热度值,确定所述迁移成本。
9.在一个实施例中,所述基于所述迁移概率、所述带宽、所述热度值和所述目标存储设备层的标识参数,确定所述亲和度,具体包括:基于第一公式,计算所述亲和度,所述第一公式为:
10.f=p
·
bandwidth(size,r/w)
·
[popularity()+α
·
tier(id)],
[0011]
其中,p为所述迁移概率,bandwidth(size,r/w)为所述带宽, popularity()为所述热度值,tier(id)为所述目标存储设备层的标识参数,α为第一调节参数。
[0012]
在一个实施例中,所述基于所述迁移概率、所述迁移文件块的大小、所述带宽和所述热度值,确定所述迁移成本,具体包括:基于第二公式,计算所述迁移成本,所述第二公式为:
[0013][0014]
其中,p为所述迁移概率,size为所述迁移文件块的大小, bandwidth(size,r/w)为所述带宽,popularity()为所述热度值,β为第二调节参数,γ为第三调节参数。
[0015]
在一个实施例中,所述预测所述迁移文件块的热度值,具体包括:采集预设的滑动窗口内所述迁移文件块的访问时间戳信息;基于所述访问时间戳信息的数量和所述滑动窗口的长度,预测所述迁移文件块的热度值。
[0016]
在一个实施例中,所述基于异构的多层存储设备的设备负载率,确定每层所述存储设备中文件块的迁移概率,具体包括:检测每层所述存储设备的io负载率和存储负载量,将所述io负载率和存储负载量中的一个确定为每层所述存储设备的设备负载率;在指定所述存储设备作为所述目标存储设备层时,基于指定所述存储设备的设备负载率计算待提升的所述迁移文件块提升至所述目标存储设备层的提升概率;基于所述提升概率计算待淘汰的所述迁移文件块从所述目标存储设备层淘汰的淘汰概率。
[0017]
在一个实施例中,所述基于指定所述存储设备的设备负载率计算待提升的所述迁移文件块提升至所述目标存储设备层的提升概率,具体包括:基于第三公式,计算所述提升概率,所述第三公式为:
[0018][0019]
其中,u为所述设备负载率,k为自定义参数。
[0020]
在一个实施例中,所述在基于所述亲和度和所述迁移成本确定具有正向的迁移收益时,基于所述迁移概率触发所述迁移文件块的迁移操作,具体包括:在检测到所述亲和度和所述迁移成本之间的差值大于0时,确定具有所述正向的迁移收益;随机生成大于或等于0,并小于或等于1的迁移参数,在所述迁移参数小于所述迁移概率时,执行所述迁移操作。
[0021]
在一个实施例中,所述迁移文件块包括待提升文件块和待淘汰文件块,所述基于所述迁移概率触发所述迁移文件块的迁移操作,具体还包括:在基于所述提升概率触发所述待提升文件块的迁移操作时,对所述待提升文件块执行锁定操作,将所述待提升文件块复制至上层的所述目标存储设备层,对原始的所述待提升文件块解锁并删除;在基于所述淘汰概率触发所述待淘汰文件块的迁移操作时,对所述待淘汰文件块执行锁定操作,将所述待淘汰文件块复制至下层的所述目标存储设备层,对原始的所述待淘汰文件块解锁并删除。
[0022]
在一个实施例中,所述异构的多层存储设备自上至下依次包括内存磁盘、nvme硬盘、固态硬盘和机械硬盘。
[0023]
根据本公开的另一个方面,提供一种基于异构存储的数据分布装置,包括:确定模块,用于基于异构的多层存储设备的设备负载率,确定每层所述存储设备中文件块的迁移
概率,所述迁移概率包括向上层提升的提升概率和/或向下层淘汰的淘汰概率;计算模块,用于基于所述迁移概率分别计算迁移文件块与目标存储设备层之间的亲和度,以及所述迁移文件块的迁移成本;迁移模块,用于在基于所述亲和度和所述迁移成本确定具有正向的迁移收益时,基于所述迁移概率触发所述迁移文件块的迁移操作。
[0024]
根据本公开的再一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;所述处理器配置为经由执行所述可执行指令来执行上述的基于异构存储的数据分布方法。
[0025]
根据本公开的又一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的基于异构存储的数据分布方法。
[0026]
本公开的实施例所提供的基于异构存储的数据分布方法,通过计算每层负载设备,即设备层的设备负载率,确定待迁移的迁移文件块提升至上层或淘汰至下层的概率,即迁移概率,在考虑到存储设备的特性和文件本身的特性的基础上,通过迁移概率得到目标存储设备层迁移文件块与目标存储设备层之间的亲和度和迁移成本,进一步在基于亲和度和迁移成本确定迁移操作具有正向的迁移收益时,即基于迁移概率触发迁移文件块的迁移操作,一方面,能够提升数据布局的合理性,另一方面,基于迁移概率确定是否迁移的方式实现了分散式迁移操作,分散式迁移操作能够降低对系统的影响,通过进一步以迁移文件块为单位检测是否执行迁移操作,实现了数据文件分散式的迁移操作,分散式迁移操作适于保证数据块的正常服务,进而能够降低对上层应用的影响。
[0027]
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
[0028]
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0029]
图1示出本公开实施例中一种异构存储设备的四层结构示意图;
[0030]
图2示出本公开实施例中一种基于异构存储的数据分布方法流程图;
[0031]
图3示出本公开实施例中另一种基于异构存储的数据分布方法流程图;
[0032]
图4示出本公开实施例中再一种基于异构存储的数据分布方法流程图;
[0033]
图5示出本公开实施例中又一种基于异构存储的数据分布方案的系统框架示意图;
[0034]
图6示出本公开实施例中又一种基于异构存储的数据分布方法流程图;
[0035]
图7示出本公开实施例中一种基于异构存储的数据分布装置示意图;
[0036]
图8示出本公开实施例中一种计算机设备的结构框图。
具体实施方式
[0037]
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加
全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
[0038]
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
[0039]
本技术提供的方案,一方面,能够提升数据布局的合理性,另一方面,基于迁移概率确定是否迁移的方式实现了分散式迁移操作,分散式迁移操作能够降低对系统的影响,通过进一步以迁移文件块为单位检测是否执行迁移操作,实现了数据文件分散式的迁移操作,分散式迁移操作适于保证数据块的正常服务,进而能够降低对上层应用的影响
[0040]
为了便于理解,下面首先对本技术涉及到的名词(缩写词)进行解释。
[0041]
为了了解异构存储策略和hadoop(分布式存储系统)归档存储,对不同存储的性能特点进行比较。
[0042]
硬盘驱动器(hdd)是hadoop的标准磁盘存储设备,可以提供相当高的吞吐量并且价格便宜。高吞吐量是批量数据处理的理想选择。但是,磁盘离可能在任意时间失败。
[0043]
固态硬盘(ssd)提供计告的吞吐量和每秒i/o,但它比磁盘存储设备贵数倍。与磁盘一样,ssd设备具有中的故障率,并且可能在任意时间失败。
[0044]
而目前主流的ssd大致有两种接口,分别是m.2和sata两种类型。 sata接口的ssd执行的ahci协议标准,是目前较为成熟、常见的ssd 接口。m.2接口分为nvme协议以及ahci协议,根据协议不同m.2接口的ssd在性能上也会有着一些差异,nvme协议最高理论速度为 32gbps。
[0045]
基于ram的存储为所有类型的工作提供了极高的性能,但是其非常昂贵。ram不提供持久存储,因为一切都存储在内存中。
[0046]
下面,将结合附图及实施例对本示例实施方式中的基于异构存储的数据分布方法的各个步骤进行更详细的说明。
[0047]
如图1所示,异构的多层存储设备自上至下依次包括内存磁盘102、 nvme硬盘104、固态硬盘106和机械硬盘108。
[0048]
其中,在四层架构中,数据迁移至少存在以下6种可能的路径,即内存磁盘102到nvm104、nvm104到内存102、从nvm104到ssd106、从ssd106到nvm104、从ssd106到机械硬盘108、从机械硬盘108到ssd106。在不同存储层之间迁移数据,存在一些差别。
[0049]
具体地,当数据a被访问时,首先检查其来源,并判断其是否值得提升,如果数据a来自内存磁盘102,则无需提升,如果数据a来自nvm 硬盘104,则提升过程为2,并且按概率引发过程1淘汰上层设备中价值最低的文件块b,本公开限制淘汰过程只能由提升过程直接引发。
[0050]
图2示出本公开实施例中一种基于异构存储的数据分布方法流程图。
[0051]
如图2所示,根据本公开的一个实施例的基于异构存储的数据分布方法,包括以下步骤:
[0052]
步骤s202,基于异构的多层存储设备的设备负载率,确定每层存储设备中文件块
的迁移概率。
[0053]
其中,如图1所示,迁移概率包括向上层提升的提升概率,向下层淘汰的淘汰概率,上层包括相邻的上层和相隔的上层,下层包括相邻的下层和相隔的下层。
[0054]
步骤s204,基于迁移概率分别计算迁移文件块与目标存储设备层之间的亲和度,以及迁移文件块的迁移成本。
[0055]
相关技术中,在各层存储设备间进行数据布局时,主要考虑了文件热度,即文件的访问频率,并将热度高的文件放在较高层的存储设备中,将热度较低的文件放在较低层的存储设备。
[0056]
本公开能够在考虑到文件热度预测值的基础上兼顾到了存储设备的特性和文件本身的特性,并分别从数据文件和存储设备两个角度出发,分析其对数据传输的影响,在此基础上,得到迁移文件块与目标存储设备层之间的亲和度和迁移成本,亲和度越高,表明该迁移文件块与待迁移至的设备层之间的适配性越好,迁移成本越低,表明迁移操作的可行性越高。
[0057]
其中,迁移操作可以只包括向上层的提升操作,只包括向下层的淘汰操作,或同时包括向上层的提升操作和向下层的淘汰操作。
[0058]
因此提升操作对应于待提升文件块和目标提升设备层之间的亲和度,以及提升成本,淘汰操作对应于待淘汰文件块和目标淘汰的设备层之间的亲和度,以及淘汰成本。
[0059]
步骤s206,在基于亲和度和迁移成本确定具有正向的迁移收益时,基于迁移概率触发迁移文件块的迁移操作。
[0060]
在该实施例中,通过计算每层负载设备,即设备层的设备负载率,确定待迁移的迁移文件块提升至上层或淘汰至下层的概率,即迁移概率,在考虑到存储设备的特性和文件本身的特性的基础上,通过迁移概率得到迁移文件块与目标存储设备层之间的亲和度和迁移成本,进一步在基于亲和度和迁移成本确定迁移操作具有正向的迁移收益时,即基于迁移概率触发迁移文件块的迁移操作,一方面,能够提升数据布局的合理性,另一方面,基于迁移概率确定是否迁移的方式实现了分散式迁移操作,分散式迁移操作能够降低对系统的影响,通过进一步以迁移文件块为单位检测是否执行迁移操作,实现了数据文件分散式的迁移操作,分散式迁移操作适于保证数据块的正常服务,进而能够降低对上层应用的影响。
[0061]
如图3所示,在一个实施例中,步骤s204中,基于迁移概率分别计算迁移文件块与目标存储设备层之间的亲和度,以及迁移文件块的迁移成本的一种具体实现方式,包括:
[0062]
步骤s302,基于迁移文件块的大小、目标存储设备层对迁移文件块的读写操作,确定占用的目标存储设备层的带宽。
[0063]
具体的,从文件角度出发,由于几乎所有存储设备的顺序读写速度都远远高于随机读写速度,以及在进行小文件的读写需要更加频繁地更新文件目录和文件控制块,加重了设备控制器的处理负担等因素的影响,文件尺寸对存储设备读写速度的影响是最大,文件尺寸越小,读写速度越慢,文件尺寸越大,读写速度越快,对于同一存储设备和同样的文件体积总量,少量的大文件的读写速度一般高于大量的小文件。
[0064]
基于上述因素,通过在亲和度的计算中,引入迁移文件块的大小和目标存储设备层对迁移文件块的读写操作和目标存储设备层的带宽之间的关系,提升了数据迁移操作的可靠性和合理性。
[0065]
步骤s304,预测迁移文件块的热度值。
[0066]
具体地,针对同一层存储设备中的不同文件,其被访问的特征也不同,这种不同的访问特征被称为文件热度不均衡,文件热度的不均衡体现在空间不均衡和时间不均衡两方面,空间不均衡即不同文件之间访问频率的差异,是较为固定的。而时间分布不均衡是同一文件或相关的一些文件从写入后被访问频率的变化,其分布往往没有固定形式。显然,文件热度的时间分布对异构存储设备的数据布局是很重要的。因此通过兼顾上述因素执行迁移文件块的热度值的预测,能够在一定程度上提前预知哪些文件的热度将升高,就可以提前将其调入高层的存储设备。
[0067]
步骤s306,基于迁移概率、带宽、热度值和目标存储设备层的标识参数,确定亲和度。
[0068]
步骤s308,基于迁移概率、迁移文件块的大小、带宽和热度值,确定迁移成本。
[0069]
在该实施例中,通过在文件和设备之间的亲和度以及迁移成本时,综合考虑数据文件和存储设备的特性,包括文件的大小、热度和存储设备的带宽、负载,分别分析其对数据传输的影响,用以选择提升过程中需要提升的数据块,以及淘汰过程中需要迁移的数据块,并进一步通过计算需要提升的数据块与目标层的存储设备之间的亲和度,以及提升成本,以及需要淘汰的数据块与目标层的存储设备之间的亲和度,以及淘汰成本,基于上述计算结果指导异构存储的数据布局,实现了迁移操作的价值优化。
[0070]
在一个实施例中,步骤s306中,基于迁移概率、带宽、热度值和目标存储设备层的标识参数,确定亲和度,具体包括:
[0071]
基于第一公式,计算亲和度,第一公式为:
[0072]
f=p
·
bandwidth(size,r/w)
·
[popularity()+α
·
tier(id)](1)
[0073]
其中,p为迁移概率,size为文件块的大小,r/w为目标存储设备层对迁移文件块的读写操作,bandwidth(size,r/w)为带宽,popularity()为热度值,tier(id)为目标存储设备层的标识参数,α为第一调节参数。
[0074]
具体地,上述的带宽bandwidth(size,r/w)也可以理解为是带宽与文件大小和读写操作的关系函数,popularity()是文件访问频率,即为热度值,id代表文件块,tier()函数表示文件块所在的存储层次,在最底层时,记为0,增加一层则依次加1。
[0075]
具体地,在迁移概率为提升概率p
p
时,第一公式为:
[0076]fp
=p
p
·
bandwidth(size,r/w)
·
[popularity()+α
·
tier(id)](2)
[0077]
具体地,在迁移概率为提升概率pe时,第一公式为:
[0078]
fe=pe·
bandwidth(size,r/w)
·
[popularity()+α
·
tier(id)](3)
[0079]
在一个实施例中,基于迁移概率、迁移文件块的大小、带宽和热度值,确定迁移成本,具体包括:基于第二公式,计算迁移成本,第二公式为:
[0080][0081]
其中,p为迁移概率,size为迁移文件块的大小,bandwidth(size,r/w)为带宽,popularity()为热度值,β为第二调节参数,γ为第三调节参数。
[0082]
在异构存储系统方面,如果文件块被传输,则存储设备的io带宽有一部分会被占用,导致其它文件块的传输受到一定程度的影响,而文件块对带宽的占用与其体积有关,因
此io带宽的占用是迁移成本的一部分。
[0083]
而对文件块本身来说,由于传输期间无法对外提供服务,导致热度较高的文件块可能会遇到多次请求,热度较低的文件块可能迁移完成后都没有访问请求,因此文件的热度值也是迁移成本的一大因素。
[0084]
另外,数据迁移的持续时间即文件块体积与传输速率的比值也是迁移成本的一个因素。
[0085]
因为数据迁移分为提升和淘汰两个过程,而两者对应不同的发生概率,所以在计算迁移成本时要分别计算。因此具体地迁移成本的公式如下式(5) 和(6)所示,其中公式(5)为提升成本,公式(6)为淘汰成本。
[0086][0087][0088]
其中β是第二参数,γ是第三参数,均为缩放因子,β用于将迁移成本调节到可以与文件设备亲和度相比较的数值,γ用于将文件块热度调节到可以与带宽相比较的数值。
[0089]
在一个实施例中,预测迁移文件块的热度值,具体包括:采集预设的滑动窗口内迁移文件块的访问时间戳信息;基于访问时间戳信息的数量和滑动窗口的长度,预测迁移文件块的热度值。
[0090]
具体地,本公开的热度值预测方案,在进行访问频率统计时,通过利用滑动窗口机制,窗口内存放的是该文件最近的访问时间戳记录,用窗口内记录个数除以窗口两端访问记录的时间差,作为预测的访问频率。具体公式为:
[0091][0092]
其中,n为访问时间戳信息的数量,t
max
为滑动窗口的终点,t
min
为滑动窗口的起点。
[0093]
如图4所示,在一个实施例中,步骤s202中,基于异构的多层存储设备的设备负载率,确定每层存储设备中文件块的迁移概率,具体包括:
[0094]
步骤s402,检测每层存储设备的io负载率和存储负载量,将io负载率和存储负载量中的一个确定为每层存储设备的设备负载率。
[0095]
存储设备的负载水平是影响其性能发挥的十分重要的因素。当设备负载水平达到一定程度,可能会导致带宽急剧下降甚至无法正常工作。一般来说,对于存储设备,负载包括存储负载和io负载两方面。
[0096]
存储负载比较简单,即该设备已用容量与总容量的比值,如公式(8) 所示:
[0097][0098]
对于io负载本公开采用一个标准化处理指标,即存储设备实际发生 io操作时间与总时间的比值,如果公式(9)所示:
[0099][0100]
该指标代表io设备的利用率,利用率并非越高越好,过高的利用率会导致过高的
时延。当io负载较高时,io队列会积累大量io操作,导致io操作的平均等待时间大大增加,从而影响上层应用的数据吞吐量或响应时间。
[0101]
因为存储负载和io负载的量化形式都是百分比的形式,取值范围相同,所以本公开利用两者中较大者代表设备的负载水平,结合概率迁移的方法能够能存储负载和io负载维持在合理的水平上。
[0102]
将io负载率和存储负载量中的一个确定为任一层存储设备的设备负载率,具体为:
[0103]
u=max(storageload,ioload)(10)
[0104]
即设备负载率由存储负载和io负载中的最大值表示。
[0105]
步骤s404,在指定存储设备作为目标存储设备层时,基于指定存储设备的设备负载率计算待提升的迁移文件块提升至目标存储设备层的提升概率。
[0106]
在一个实施例中,基于设备负载率计算待提升的迁移文件块提升至任一层存储设备的提升概率,具体包括:
[0107]
基于第三公式,计算提升概率,第三公式为:
[0108][0109]
其中,u为设备负载率,k为自定义参数。
[0110]
步骤s406,基于提升概率计算待淘汰的迁移文件块从目标存储设备层淘汰的淘汰概率。
[0111]
具体地,计算方式如公式(12)所示。
[0112]
p
p
=1-pe(12)
[0113]
首先,公式(11)表示设备负载率由存储负载和io负载的最大值表示。其中存储负载即该设备存储容量占用率,io负载即io占用率。其次,公式(12)为淘汰概率的函数形式,其中k为使用者自行定义的参数。最后,公式(12)为提升概率的函数形式,即1减淘汰概率。通过调整k值,可以控制负载平衡时的设备负载率水平。
[0114]
在该实施例中,每次数据迁移都要消耗一定的时间和系统资源,同时在此期间数据的对外服务会受到影响,而且各数据块迁移时间越集中影响越严重。为了解决这一问题,本公开中提出了概率迁移的数据迁移方法,即按照特定的概率决定是否迁移文件块。这样,实际发生的数据迁移量可以得到有效的抑制。相比传统的高低水位法,数据迁移的时间也更加分散。提升概率和淘汰概率必须满足以下几个条件:
[0115]
(1)当设备负载率为0时,提升概率必须为1,而淘汰概率必须为0。
[0116]
(2)当设备负载率为1时,提升概率必须为0,而淘汰概率必须为1。
[0117]
(3)存在一个设备负载率值,当达到此值时,提升概率和淘汰概率相等。
[0118]
(4)该值可以由使用者根据需要自行设定。
[0119]
另外,本领域的技术人员还能够理解的是,对于最底层的存储设备中的文件块,其淘汰概率为0,对于最上层的存储设备中的文件块,其提升概率为0。
[0120]
在一个实施例中,在基于亲和度和迁移成本确定具有正向的迁移收益时,基于迁移概率触发迁移文件块的迁移操作,具体包括:在检测到亲和度和迁移成本之间的差值大于0时,确定具有正向的迁移收益;随机生成大于或等于0,并小于或等于1的迁移参数,在迁
移参数小于迁移概率时,执行迁移操作。
[0121]
在该实施例中,如果亲和度大于迁移成本,则表明是有益的迁移,此时通过随机生成迁移参数,如果迁移参数小于迁移概率,则触发执行迁移操作,以保证迁移操作的可靠性。
[0122]
在一个实施例中,迁移文件块包括待提升文件块和待淘汰文件块,基于迁移概率触发迁移文件块的迁移操作,具体还包括:在基于提升概率触发待提升文件块的迁移操作时,对待提升文件块执行锁定操作,将待提升文件块复制至上层的目标存储设备层,对原始的待提升文件块解锁并删除;在基于淘汰概率触发待淘汰文件块的迁移操作时,对待淘汰文件块执行锁定操作,将待淘汰文件块复制至下层的目标存储设备层,对原始的待淘汰文件块解锁并删除。
[0123]
如图5所示,本公开中的基于异构存储的数据分布方案可以基于以下四个模块执行:文件访问频率预测模块502、设备负载监测模块504、亲和度计算模块506和数据迁移模块508。
[0124]
本公开可以在分布式文件系统alluxio的基础上开发,存储节点内部使用异构的存储系统,分为内存层,即内存磁盘102,nvm硬盘层104、固态硬盘层106和机械硬盘层108。
[0125]
通过监控存储节点的负载状态、存储数据的访问频率等特征的变化,根据发明设计的算法调整数据在存储层次间的布局。
[0126]
文件访问频率预测模块502用于:对各个文件在接下来一段时间的访问频率进行预测,并将其作为文件设备亲和度计算的一个因素。
[0127]
具体地,通过使用滑动窗口机制进行数据的更新,对于某个文件,每当其被访问时,则会记录当前的时间戳,利用窗口头端和末端的时间戳,以及窗口内的记录个数,计算出一个文件访问频率的预测值。每隔一段时间重新计算。并且为了保证线程安全,文件访问频率预测结果存储在一个 concunrrenthashmap容器中。
[0128]
设备负载监测模块504用于:在计算文件设备亲和度时,考虑了存储设备的动态负载水平,对系统运行过程中各个存储设备的负载水平进行监测,主要包括对存储负载和io负载对两种负载进行分别监测。
[0129]
首先,对于存储负载的监测,在本公开中,可以先利用“du”命令获取该目录当前的大小,然后与预先配置的该存储层的大小相比,得到存储负载率。
[0130]
其次,对于io负载的监测,在本公开中,使用“iostat”命令获取各存储设备的监控数据,再从中提取出利用率的数值。最后用两种负载的最大值来代表该设备的负载。
[0131]
上述的文件访问频率预测模块和设备负载监测模块,是用于分别获取数据文件和存储设备的动态特征,其他的静态特征如文件大小、设备带宽等,不需要随时更新,因此可以在计算时直接获取。
[0132]
将亲和度计算模块506作为alluxio系统的文件块淘汰策略实现。亲和度计算模块506用于:当存储节点中的某个文件块被访问时,会通过文件块淘汰策略进行筛选,从而触发亲和度计算。
[0133]
亲和度计算模块从前期准备的各个数据源中获取数据,按照之前所定义的亲和度函数,计算出该文件块对于当前设备和相邻存储层设备的亲和度,并且存储concunrrenthashmap容器中,等待取用。
[0134]
数据迁移模块508用于:在得到各个文件块和设备的亲和度数值后,就可以以此为依据进行文件块迁移判断和执行。
[0135]
首先,数据迁移模块选出要迁移的文件块对:第一个是要提升层次的文件块,即刚刚被访问的文件块,第二个是上层存储设备中亲和度最低的文件块。
[0136]
然后按照前面定义的迁移成本和迁移收益,计算出迁移收益,当迁移收益大于0时,按照迁移概率触发文件块迁移。迁移过程中为了保证一致性,要先对该文件块加锁阻塞访问,再将该文件块复制到目标存储层,然后删除原文件块并解除锁。元数据的修改由分布式文件系统alluxio负责。
[0137]
具体实施过程如图6所示。
[0138]
如图6所示,根据本公开的一个实施例的基于异构存储的数据分布方法,包括:
[0139]
步骤s602,响应于文件访问请求,确定访问请求对应的文件块a。
[0140]
步骤s604,分别获得该文件块a的预测热度值、目标存储设备层的设备负载率、以及文件块a和目标存储设备层的静态特征。
[0141]
步骤s606,基于上述数据计算文件块a和设备之间的亲和度。
[0142]
步骤s608,获取目标存储设备层中的淘汰文件块b。
[0143]
并基于对应数据计算文件块b和设备之间的亲和度。
[0144]
步骤s610,分别计算文件块a和文件块b的迁移成本。
[0145]
步骤s612,在基于亲和度和迁移成本确定文件块a的迁移收益大于 0时,基于提升概率确定是否提升文件块a,若“是”,进入步骤s614,若“否”,结束流程。
[0146]
步骤s614,提升文件块a。
[0147]
步骤s616,在基于亲和度和迁移成本确定文件块b的迁移收益大于 0时,基于淘汰概率确定是否淘汰文件块b,若“是”,进入步骤s618,若“否”,结束流程。
[0148]
步骤s618,淘汰文件块b。
[0149]
步骤s620,锁定文件块并复制到目标存储设备层。
[0150]
步骤s622,删除原文件块并解锁锁定的文件块。
[0151]
需要注意的是,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
[0152]
下面参照图7来描述根据本公开的实施方式的基于异构存储的数据分布装置700。图7所示的基于异构存储的数据分布装置700仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0153]
基于异构存储的数据分布装置700以硬件模块的形式表现。基于异构存储的数据分布装置700的组件可以包括但不限于:确定模块702,用于基于异构的多层存储设备的设备负载率,确定每层存储设备中文件块的迁移概率,迁移概率包括向上层提升的提升概率和/或向下层淘汰的淘汰概率;计算模块704,用于基于迁移概率分别计算迁移文件块与目标存储设备层之间的亲和度,以及迁移文件块的迁移成本;迁移模块706,用于在基于亲和度和迁移成本确定具有正向的迁移收益时,基于迁移概率触发迁移文件块的迁移操作。
[0154]
下面参照图8来描述根据本公开的这种实施方式的电子设备800。图 8显示的电子设备800仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0155]
如图8所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810) 的总线830。
[0156]
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元 810可以执行如图2中所示的步骤s202至步骤s206所描述的方案。
[0157]
存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(rom)8203。
[0158]
存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0159]
总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
[0160]
电子设备800也可以与一个或多个外部设备870(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备800 交互的设备通信,和/或与使得该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口850进行。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(lan),广域网 (wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器860 通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
[0161]
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd
‑ꢀ
rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者电子设备等)执行根据本公开实施方式的方法。
[0162]
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
[0163]
根据本公开的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0164]
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0165]
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0166]
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
[0167]
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如 java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0168]
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0169]
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
[0170]
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd
‑ꢀ
rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者电子设备等)执行根据本公开实施方式的方法。
[0171]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的
权利要求指出。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1