【发明内容】
有鉴于此,本发明提供了一种数据存储方法、装置和系统,在满足性能需要的前提下,提高可运营性及降低成本。
具体技术方案如下:
本发明提供了一种数据存储的方法,部署的数据存储系统包括硬盘驱动器HDD和固态硬盘SSD;所述方法包括:
收集所述HDD和SSD上各数据文件的访问频率信息,依据访问频率信息将各数据文件分为冷数据和热数据;
调度热数据到SSD以及调度冷数据到HDD。
根据本发明一优选实施方式,所述HDD的总存储容量大于所述SSD的总存储容量。
根据本发明一优选实施方式,所述HDD与所述SSD的总存储容量比例约为8:2。
根据本发明一优选实施方式,所述依据访问频率信息将各数据文件分为冷数据和热数据包括:
依据访问频率信息对各数据文件进行排序,将排在前M个的数据文件确定为热数据,所述前M个数据文件的大小小于或等于所述SDD的总存储容量。
根据本发明一优选实施方式,所述调度热数据到SSD以及调度冷数据到HDD包括:
按照一定的顺序对当前存储在HDD上的热数据进行调度,将被调度的数据文件转存到当前具有足够存储空间的SSD;以及,
按照一定的顺序对当前存储在SSD上的冷数据进行调度,将被调度的数据文件转存到当前具有足够存储空间的HDD。
根据本发明一优选实施方式,所述一定的顺序包括:
按照随机挑选出的顺序,按照所在HDD或SSD编号的顺序或者按照访问频率的顺序。
根据本发明一优选实施方式,在将被调度的数据文件转存到SSD上时,优选转存到当前负载最小的SSD上;
在将被调度的数据文件转存到HDD上时,优先转存到当前负载最小的HDD上。
本发明提供了一种数据存储的装置,该装置应用于部署了HDD和SSD的数据存储系统,所述装置包括:
收集单元,用于收集所述HDD和SSD上各数据文件的访问频率信息;
判别单元,用于依据访问频率信息将所述各数据文件分为冷数据和热数据;
调度单元,用于调度热数据到SSD以及调度冷数据到HDD。
根据本发明一优选实施方式,所述判别单元,具体用于依据访问频率信息对所述各数据文件进行排序,将排在前M个的数据文件确定为热数据,所述前M个数据文件的大小小于或等于所述SDD的总存储容量。
根据本发明一优选实施方式,所述调度单元,具体用于按照一定的顺序对当前存储在HDD上的热数据进行调度,将被调度的数据文件转存到当前具有足够存储空间的SSD;以及,
按照一定的顺序对当前存储在SSD上的冷数据进行调度,将被调度的数据文件转存到当前具有足够存储空间的HDD。
根据本发明一优选实施方式,所述一定的顺序包括:
按照随机挑选出的顺序,按照所在HDD或SSD编号的顺序或者按照访问频率的顺序。
根据本发明一优选实施方式,所述调度单元在将被调度的数据文件转存到SSD上时,优选转存到当前负载最小的SSD上;在将被调度的数据文件转存到HDD上时,优先转存到当前负载最小的HDD上。
本发明提供了一种数据存储系统,所述数据存储系统中部署了HDD和SSD,还包括监控调度中心;
所述监控调度中心包括上述的装置。
根据本发明一优选实施方式,所述HDD的总存储容量大于所述SSD的总存储容量。
根据本发明一优选实施方式,所述HDD与所述SSD的总存储容量比例约为8:2。
由以上技术方案可以看出,本发明采用HDD和SSD的异构存储方式,依据数据文件的访问频率信息,将数据文件在HDD和SSD上进行调度,能够在满足性能需要的前提下,提高可运营性及降低成本。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
本发明的核心思想在于,在集群中部署HDD和SSD,采用异构存储的方式将数据文件存储在HDD和SSD上,在HDD和SDD构成的数据存储系统中还包括监控调度中心,如图3中所示。其中监控调度中心负责调度数据文件存储在HDD或SSD上。具体的存储方法结合实图4所示的流程进行描述。
图4为本发明实施例提供的数据存储方法流程图,如图4中所示,该方法可以包括以下流程:
在401中,预先为HBase集群部署数据存储系统,该数据存储系统中包括HDD和SSD。其中可以设置HDD的总存储容量大于SSD的总存储容量。根据80/20定律可知,通常80%的访问流量实际仅访问其中20%的数据,基于该定律,优选设置HDD与SSD的存储容量比例为8:2。但HDD和SDD总的存储容量需要满足HBase集群的业务需求。
该401是预先执行的,下述的步骤是数据存储系统中的监控调度中心周期性执行的。另外,上述SDD和HDD的数量可以根据具体的业务需求、企业的财力状况等因素进行扩展和调整。
在402中,监控调度中心周期性收集各数据文件的访问频率信息,将各数据文件分为冷数据和热数据。
对于初始状态下,将各数据文件进行存储时,可以随机存储于SSD或HDD上;也可以按顺序优选存储于SSD上,SSD上满了以后再存储于HDD上;还可以按照数据文件的类型结合经验,将某些访问频率可能较高的类型的数据文件存储于SSD上。
这里的数据文件可以以数据块为单元,即收集各数据块的访问频率信息,将访问频率高的数据块判定为热数据,将访问频率低的数据块判定为冷数据。
这里的访问频率信息可以采用QPS(Query Per Second,每秒查询率)。一种优选的实施方式,依据QPS将各数据文件进行排序,将排在前M个的数据文件确定为热数据,M为正整数,该M个数据文件的大小小于或等于SDD的存储容量。
如果数据文件以固定大小的数据块为单元,则可以将QPS排在前M%的数据块确定为热数据,
其中m:n为HDD与SSD的存储容量比例。
假设存在20个数据块,如果HDD和SDD的存储容量比值为8:2,则依据QPS进行排序后,可以将排在前4个的数据块确定为热数据。例如表1中所示:
表1
数据块编号 |
QPS |
冷热属性 |
#1 |
3 |
冷 |
#2 |
5 |
冷 |
#3 |
183 |
热 |
#4 |
10 |
冷 |
#5 |
200 |
热 |
#6 |
15 |
冷 |
#7 |
21 |
冷 |
#8 |
13 |
冷 |
#9 |
1 |
冷 |
#10 |
355 |
热 |
#11 |
18 |
冷 |
#12 |
21 |
冷 |
#13 |
21 |
冷 |
#14 |
254 |
热 |
#15 |
17 |
冷 |
#16 |
18 |
冷 |
#17 |
44 |
冷 |
#18 |
5 |
冷 |
#19 |
80 |
冷 |
#20 |
11 |
冷 |
在403中,调度热数据到SSD,调度冷数据到HDD。
在判别出冷、热数据后,可能存在以下几种情况:
1)数据文件是冷数据且当前存储于HDD;
2)数据文件是热数据且当前存储于SSD;
3)数据文件是热数据且当前存储于HDD;
4)数据文件是冷数据且当前存储于SSD。
对于第1)和第2)种情况的数据文件无需进行调度,需要进行调度的是第3)和第4)种情况。
对于第3)种情况的数据文件,可以按照一定顺序逐一进行调度,将被调度的数据文件转移存储到当前具有足够存储空间的SSD,优选地,可以优先存储到当前负载最小的SSD上。其中按照一定顺序可以是按照随机挑选出来的顺序、按照所在HDD编号的顺序、按照访问频率的顺序等等。
对于第4)种情况的数据文件,类似地,也可以按照一定顺序逐一进行调度,将被调度的数据文件转移存储到当前具有足够存储空间的HDD上,优选地,可以优先存储到当前负载最小的HDD上。其中按照一定顺序可以是按照随机挑选出来的顺序、按照所在SSD编号的顺序、按照访问频率的顺序等等。
表1中的数据进行上述调度之后的存储结果可以如图5中所示,这样QPS较高的数据文件存储于SSD上,QPS较低的数据文件存储于HDD上,从而尽可能的保证QPS较高的数据文件的性能需求。
图6为本发明实施例提供的装置结构图,该装置设置于数据存储系统的监控调度中心中,如图6中所示,该装置可以包括:收集单元01、判别单元02和调度单元03。
其中收集单元01负责收集HDD和SSD上各数据文件的访问频率信息,该收集可以是周期性的。这里的访问频率信息可以采用QPS。
判别单元02负责依据访问频率信息将各数据文件分为冷数据和热数据。一种优选的实施方式,依据QPS将各数据文件进行排序,将排在前M个的数据文件确定为热数据,M为正整数,该M个数据文件的大小小于或等于SDD的存储容量。
在判别单元02判别出冷热数据后,调度单元03负责调度热数据到SSD以及调度冷数据到HDD。具体地,可以按照一定的顺序对当前存储在HDD上的热数据进行调度,将被调度的数据文件转存到当前具有足够存储空间的SSD;按照一定的顺序对当前存储在SSD上的冷数据进行调度,将被调度的数据文件转存到当前具有足够存储空间的HDD。
其中,一定的顺序可以包括:按照随机挑选出的顺序,按照所在HDD或SSD编号的顺序或者按照访问频率的顺序等。另外,调度单元03在将被调度的数据文件转存到SSD上时,优选转存到当前负载最小的SSD上;在将被调度的数据文件转存到HDD上时,优先转存到当前负载最小的HDD上。
需要说明的是,本发明实施例提供的上述方法、装置和系统并不局限于HBase集群,也可以应用于其他数据库类型的集群。
由于一般SSD和HDD的价格比例为10:1,性能比例为30:1,那么按照本发明实施例所提供的方法、装置和系统进行数据存储能够保证性能较高的同时,价格大幅降低。将几种数据存储方案的价格和性能状况进行比较,如表2中所示。
表2
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。