一种集群数据的存储方法

文档序号:9551411阅读:373来源:国知局
一种集群数据的存储方法
【技术领域】
[0001]本发明涉及数据存储技术,特别是涉及一种集群数据的存储方法。
【背景技术】
[0002]目前,大规模的集群文件系统能提供PB级甚至是EB级的海量数据存储,存储空间不再是存储技术的瓶颈。但是,提供PB级和EB级存储的基本采用的SATA(1T/2T/4T)硬盘,采用此类硬盘的存储系统,虽然在容量上很客观,但是在性能上不尽人意。针对该情况,出现了闪存阵列技术,其提供的存储空间虽然小了,但是,服务器中的存储端将不存在带宽瓶颈,加上网络采用10GE或PCIE,网络带宽也将不会是瓶颈。但是,采用闪存的固态硬盘(SSD)容量小、价格高,所以单位容量的SSD存储利用率异常重要。有鉴于此,在闪存阵列中,提供高效的在线重复数据删除技术非常重要。
[0003]重复数据删除简称数据消重,可以在源端(客户端)或者目标端(服务端)进行,目前系统要么单独在源端,要么单独在目的端进行消重。源端消重在数据源进行,如此会占用大量源端系统资源。目标端消重发生在目标端,数据在传输到目标端再进行消重,它不会占用源端系统资源,但占用大量网络带宽。
[0004]由此可见,现有的数据消重方案存在占用大量源端系统资源或网络资源的问题。

【发明内容】

[0005]有鉴于此,本发明的主要目的在于提供一种集群数据的存储方法,可以有效提高集群存储端的利用率,同时可减少源端系统资源和网络资源的开销。
[0006]为了达到上述目的,本发明提出的技术方案为:
[0007]—种集群数据的存储方法,包括:
[0008]a、对于当前待写入集群文件的每个数据块,客户端确定集群存储服务器中是否已保存与该数据块内容相同的物理块文件,如果是,则执行步骤b,否则,则执行步骤c ;
[0009]b、将已保存的所述物理块文件的路径信息,分别增加到所述客户端和所述集群存储服务器的相应逻辑文件元数据中,并将已保存的所述物理块文件的引用计数器加1 ;退出所述方法;
[0010]c、所述客户端触发在本客户端和所述集群存储服务器中分别保存所述数据块,并将所述数据块对应的物理块文件的路径信息,增加到所述客户端和所述集群存储服务器中对应的逻辑文件元数据中,将所述物理块文件的引用计数器加1。
[0011 ] 综上所述,本发明提出的一种集群数据的存储方法,通过在进行数据存储时,避免对相同数据块进行重复存储,来达到消除重复数据的目的,以提高存储利用率,同时可以有效减少客户端资源和网络资源的开销。
【附图说明】
[0012]图1为本发明实施例一的方法流程示意图。
【具体实施方式】
[0013]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
[0014]本发明的核心思想是:客户端在向服务器端存储数据时,需要先确定待保存的数据是否已保存于服务器中,如果已有,则不需要再触发服务器进行数据的保存,而只需在相应的逻辑文件元数据中增加该已有物理块文件的地址信息即可。如此,可以有效避免相同的数据块对物理存储空间的重复使用,以及在集群服务器和客户端之间的重复传输,从而可以在提高集群服务器中存储端的利用率的同时,减少客户端资源和网络资源的开销。
[0015]图1为本发明实施例一的流程示意图,如图1所示,该实施例所实现的集群数据的存储方法主要包括:
[0016]步骤101、对于当前待写入集群文件的每个数据块,客户端确定集群存储服务器中是否已保存与该数据块内容相同的物理块文件,如果是,则执行步骤102,否则,则执行步骤103。
[0017]本步骤,用于在进行数据块存储时先确定此前该数据块是否已经保存过,如果已保存,则不需要再进行存储,如果没有保存过,则需要对其执行物理上的存储,这样,在存储环节即可避免客户端和集群存储服务器对相同内容的数据块进行多次重复地物理存储,从而可以提高存储资源利用率,并且可以避免相同内容的数据块在网络上的多次重复传输。
[0018]这里需要说明的是,和现有系统一样,集群文件系统中的文件,由逻辑文件和一个或多个物理块文件组成。物理块文件用于保存数据块,其存放路径由逻辑文件对应的元数据信息指出。系统中定义了多种物理块文件的长度,如64k、32k等。
[0019]较佳地,步骤101中可以采用下述方法来确定集群存储服务器中是否已保存与该数据块内容相同的物理块文件:
[0020]步骤al、所述客户端为所述数据块生成相应的校验码M,判断所述校验码Μ是否存在于当前保存的所述集群存储服务器中的校验码集合中,如果是,则确定所述集群存储服务器中已保存与所述数据块内容相同的物理块文件,结束所述步骤101,否则,执行步骤
3-2 ο
[0021]本方法中,将依据数据块的校验码来确定是否已保存相同的数据块。这里,为了减少网络资源的开销,客户端需要先在本地已保存的校验码中查询是否有相同的校码,如果有,则基于本地客户端的校码码信息即可确定已保存与所述数据块内容相同的物理块文件,否则,需要执行步骤a2,将数据块的校验码Μ发送给集群存储服务器,由集群存储服务器进行判断。
[0022]在实际应用中,客户端开机初始化时可以从集群存储服务器中获取已保存数据块的校验码信息。
[0023]步骤a2、所述客户端将所述校验码Μ发送给所述集群存储服务器。
[0024]步骤a3、所述集群存储服务器判断所述校验码是否存在于当前存储的相同大小的所有数据块的校验码中,并将所述判断结果通知给所述客户端。
[0025]步骤a4、如果所述判断结果为存在相同校验码,则所述客户端确定所述集群存储服务器中已保存与所述数据块内容相同的物理块文件,否则,确定所述集群存储服务器中未保存与所述数据块内容相同的物理块文件。
[0026]步骤102、将已保存的所述物理块文件的路径信息,分别增加到所述客户端和所述集群存储服务器的相应逻辑文件元数据中,并将已保存的所述物理块文件的引用计数器加1 ;退出所述方法。
[0027]本步骤,用于在确定出已保存相同内容的数据块时,对相应的逻辑文件元数据进行更新。这里,不需要再为该数据块建物理块文件,而是将已保存的相同内容数据块的地址信息增加到当前待保存的数据块所属文件的逻辑文件元数据中即可,即只需要进行逻辑文件的更新,使逻辑文件直接链接到已有物理块文件上。这样,通过在数据存储环节确保只为相同内容的多个数据块只创建一个物理块文件,可以有效提高存储空间的利用率,节省客户端与服务器之间的数据传输开销。
[0028]这里需要说明的是,每个物理块文件都会有一个引用计数器,该引用计数器用于指示该数据块被逻辑文件元数据关联的次数,因此,这里,在对逻辑文件元数据进行更新后,同时需要将相应的引用计数器加1。
[0029]步骤103、所述客户端触发在本客户端和所述集群存储服务器中分别保存所述数据块,并将所述数据块对应的物理块文件的路径信息,增
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1