CN109857710A - 文件存储方法及终端设备 - Google Patents
文件存储方法及终端设备 Download PDFInfo
- Publication number
- CN109857710A CN109857710A CN201910008544.5A CN201910008544A CN109857710A CN 109857710 A CN109857710 A CN 109857710A CN 201910008544 A CN201910008544 A CN 201910008544A CN 109857710 A CN109857710 A CN 109857710A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- memory
- fragment
- target storage
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 239000012634 fragment Substances 0.000 claims abstract description 183
- 238000003860 storage Methods 0.000 claims abstract description 172
- 238000012856 packing Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 14
- 238000009826 distribution Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 10
- 238000000151 deposition Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 10
- 238000004883 computer application Methods 0.000 abstract description 2
- 238000007726 management method Methods 0.000 description 11
- 238000013500 data storage Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000014759 maintenance of location Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000003595 mist Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明适用于计算机应用技术领域,提供了一种文件存储方法、终端设备及计算机可读存储介质,包括:获取待存储文件,将所述待存储文件进行基于纠删码的冗余分片,得到至少一个分片数据,获取网络中每个存储节点的运行数据,根据所述运行数据确定用于存储所述分片数据的目标存储节点,并将所述分片数据发送至所述目标存储节点。通过将待存储文件进行基于纠删码的冗余分片,得到分片数据,将分片数据发送至对应的存储节点进行存储,降低了大文件存储的占用空间,从而节省费用和存储代价。
Description
技术领域
本发明属于计算机应用技术领域,尤其涉及一种文件存储方法、终端设备及计算机可读存储介质。
背景技术
随着云计算和大数据技术的快速兴起,云存储作为一种新型的存储模式应运而生,其在科学计算和商业计算等大规模数据存储领域发挥着重要的作用,并受到企业界和学术界的广泛关注。云文件***是云存储***的重要组成部分,为云存储***提供底层的存储支撑,负责对数据进行有效、可靠的存储来保证数据的可用性,进一步保证存储***的可靠性和稳定性。
然而随着存储需求的不断壮大,用户需要存储的文件的占用存储空间越来越大,例如目前医疗行业中电子胶片和影像图片的文件大小过于庞大,而现有的云存储方式不能满足大文件的数据存储和共享需求,存储和处理数据的代价较大。
发明内容
有鉴于此,本发明实施例提供了一种文件存储方法、终端设备及计算机可读存储介质,以解决现有技术中不能满足大文件的数据存储和共享需求,存储和处理数据的代价较大的问题。
本发明实施例的第一方面提供了一种文件存储方法,包括:
获取待存储文件;
将所述待存储文件进行基于纠删码的冗余分片,得到至少一个分片数据;
获取网络中每个存储节点的运行数据,根据所述运行数据确定用于存储所述分片数据的目标存储节点,并将所述分片数据发送至所述目标存储节点。
本发明实施例的第二方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取待存储文件;
将所述待存储文件进行基于纠删码的冗余分片,得到至少一个分片数据;
获取网络中每个存储节点的运行数据,根据所述运行数据确定用于存储所述分片数据的目标存储节点,并将所述分片数据发送至所述目标存储节点。
本发明实施例的第三方面提供了一种终端设备,包括:
获取单元,用于获取待存储文件;
分片单元,用于将所述待存储文件进行基于纠删码的冗余分片,得到至少一个分片数据;
存储单元,用于获取网络中每个存储节点的运行数据,根据所述运行数据确定用于存储所述分片数据的目标存储节点,并将所述分片数据发送至所述目标存储节点。
本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
本发明实施例与现有技术相比存在的有益效果是:
本发明实施例通过获取待存储文件,将所述待存储文件进行基于纠删码的冗余分片,得到至少一个分片数据,获取网络中每个存储节点的运行数据,根据所述运行数据确定用于存储所述分片数据的目标存储节点,并将所述分片数据发送至所述目标存储节点。通过将待存储文件进行基于纠删码的冗余分片,得到分片数据,将分片数据发送至对应的存储节点进行存储,降低了大文件存储的占用空间,从而节省费用和存储代价。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的文件存储方法的流程图;
图2是本发明实施例二提供的文件存储方法的流程图;
图3是本发明实施例三提供的终端设备的示意图;
图4是本发明实施例四提供的终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
参见图1,图1是本发明实施例一提供的文件存储方法的流程图。本实施例中文件存储方法的执行主体为终端。终端包括但不限于智能手机、平板电脑、可穿戴设备等移动终端,还可以是台式电脑等。如图所示的文件存储方法可以包括以下步骤:
S101:获取待存储文件。
随着网格计算、物联网以及云计算等技术的快速兴起,数据正在以前所未有的速度进行增长和累积,面对如此大规模的数据,如何进行海量数据的存储和处理给存储***带来新的挑战。在分布式存储***发展的基础上,云存储以其低成本、高效率、良好扩展性和高可靠性等特点,迅速成为海量数据存储研究关注的热点。
云存储是继云计算之后兴起的一种互联网技术,它通过虚拟化技术把实实在在存在的大量的物理存储设备连接到一起,而这些设备就好似若隐若现地存在于一团云雾中一般,它们为了实现存储服务而协同运行,最终实现向用户提供存储服务的目的。当云计算***因需处理海量数据而具备了雄厚的存储能力之后,它就俨然已经转换成了云存储***。用户利用云存储***可以在任意时间的地点在云上存取数据,方便而又快捷。
传统的单云存储仅仅依赖于一个云存储服务提供商,为了避免厂商锁定问题和提高可用性,多云存储的概念问世并吸引了越来越多的目光和关注。多云存储是同时使用多个云服务,用户的数据被按照一定的分布策略冗余的存储在多个云上。由于不同的云存储服务提供商都有其各自的特点和优势,所有多云存储可以利用不同的云服务基础设施来满足用户需求的多样性。多云存储不仅可以避免厂商锁定问题,还可以减少由于云存储组件失效(失效可能来自于硬件、软件、设备)引起的服务中断或数据丢失问题。所以,与传统的单云存储对比起来多云存储可以提高数据的可用性和容错性。
在本方案中,可以通过数据所有者将待存储的存储文件发送至存储节点中,也可以是从数据所有者处获取需要存储的待存储文件。本实施例中的待存储文件所具有的特点是该文件的文件包较大,如果将该文件存储在一个存储节点中,则会占用该存储节点较多的存储空间,因此,本方案中将待存储文件进行分片,得到至少一个分片数据,用以将这些分片数据进行分片存储,降低存储节点存储数据的压力。
S102:将所述待存储文件进行基于纠删码的冗余分片,得到至少一个分片数据。
纠删码冗余技术具有较强的容错能力和高空间利用率等优势,通过纠删码,可以将n份原始文件块,增加m份校验块,如果要还原原始文件,只需要通过将m+n份中的任意n份数据块。纠删码包括编码和解码两个类似的过程,编码过程将原始的n份增加到n+m,全部的数据块存在不同的存储节点中,若节点中数据块丢失的份数小于m,那么还是可以通过剩余的数据块恢复出来。
本实施例中,用一个四元组(n,k,m,r)来表示纠删码,其中k用于表示编码前原始数据对象分割成的数据块数,m用于表示编码后生成的编码块的数目,n用于表示编码后总的数据块数,r用于表示一个大于等于k的整数。纠删码将一个数据对象分为k个块,用集合表示为F=(F1、F2、…、Fk)。编码后,生成m个编码块,加上原始k个数据块,共产生n个数据块,用集合表示为E=(E1、E2、…、En)。其中,集合F与集合E中的数据块大小相同。在读取数据时,***只需读取n块数据块中的任意k块就可以修复出原始数据,当***中失效的块数不超过m块时,可以通过剩余的有效块修复失效节点。
具体的,本方案中的编码使用过程为:
1)将待存文件数据分为k个分片;
2)将k个分片进行冗余编码,生成n(n>k)个冗余分片,并且将它们分别存储在不同的服务器节点上;
3)当用户访问或者修复数据时,从n个分片中选取t(k≤m<n)个有效分片,从每个分片上下载Q比例的存储量来进行译码,恢复原文件数据。
可选的,给定n个数据块分别为:d1、d2、…、dn,根据n个数据块生成m个校验块,分别为c1、c2、…、cm。对于任意的n和m,从n个原始数据块和m个校验块中任取n块就能解码出原始数据,即最多容忍m个数据块或者校验块同时丢失。
S103:获取网络中每个存储节点的运行数据,根据所述运行数据确定用于存储所述分片数据的目标存储节点,并将所述分片数据发送至所述目标存储节点。
在得到至少一个分片数据之后,将这些分片数据分别存储于网络中的存储节点中。具体的存储方式可以是获取网络中每个存储节点的运行数,根据运行数确定用于存储该分片数据的目标存储节点,然后将这些分片数据一一存储至目标存储节点中。
具体的,由于网络中的每个存储节点的运行情况都可能不一样,有的存储节点中可能存储有较多的数据,或者其正在处理的数据较多,再将大量的分片数据送入该存储节点中,可能影响该存储节点的数据处理效率,也会导致在读取分片数据时影响读取效率。因此,我们通过获取每个存储节点的运行数据,根据运行数据来衡量每个存储节点当前的数据存储量。
需要说明的是,本方案中的分片数据可以有一个,也可以有至少两个,分片数据的数量越多,则说明每个分片数据的大小越小,对应的可存储的存储节点则可能更多一些。但是网络中存储节点的数量有限,为了保证分片数据的数量较多的情况下,每个分片数据都能有对应的存储节点来存储,本实施例中可以在一个存储节点中存储一个,或者至少两个分片数据。
除此之外,还可以是设定每个存储节点周期性的向管理节点汇报自己当前、或者一段时间之内可以接收存储的分片数据的大小,由管理节点根据每个分片数据发送的可存储数据大小,再根据每个分片数据的大小进行分发,这样便可以完全符合每个存储节点的存储需求,也不会导致数据负载过重。
上述方案,通过获取待存储文件,将所述待存储文件进行基于纠删码的冗余分片,得到至少一个分片数据,获取网络中每个存储节点的运行数据,根据所述运行数据确定用于存储所述分片数据的目标存储节点,并将所述分片数据发送至所述目标存储节点。通过将待存储文件进行基于纠删码的冗余分片,得到分片数据,将分片数据发送至对应的存储节点进行存储,降低了大文件存储的占用空间,从而节省费用和存储代价。
参见图2,图2是本发明实施例二提供的文件存储方法的流程图。本实施例中文件存储方法的执行主体为终端。终端包括但不限于智能手机、平板电脑、可穿戴设备等移动终端,还可以是台式电脑等。如图所示的文件存储方法可以包括以下步骤:
S201:获取待存储文件。
在本实施例中S201与图1对应的实施例中S101的实现方式完全相同,具体可参考图1对应的实施例中的S101的相关描述,在此不再赘述。
S202:将所述待存储文件进行基于纠删码的冗余分片,得到至少一个分片数据。
通过纠删码将数据分割成多个数据块,扩展、编码然后存储在不同的位置。纠删码技术中的参数可表示成(k,n,b,r)的形式。其中,k表示某一文件开始被切分成的数量,b表示的是进行切分之后每一数据块大小,n为某一文件采用纠删码技术计算之后全部数据块的数量,r为整数且大于等于k。纠删码技术中,首先把文件切分为多个数据块并对这些数据块实施特定规则的编码运算的操作,就会产生出一个或以上的校验块,然后将校验块和数据块一起全部都分布到云中的不同节点上。当用户要访问文件或是要恢复文件时,***从n个数据块里面获得任意的k个可用的就可以来开始解码过程。
S203:获取网络中每个所述存储节点的运行数据。
由于网络中的每个存储节点的运行情况都可能不一样,有的存储节点中可能存储有较多的数据,或者其正在处理的数据较多,再将大量的分片数据送入该存储节点中,可能影响该存储节点的数据处理效率,也会导致在读取分片数据时影响读取效率。因此,我们通过获取每个存储节点的运行数据,根据运行数据来衡量每个存储节点当前的数据存储量。具体的,在本实施例中,存储节点的运行数据包括但不限于每个存储节点在每一时刻的CPU利用率、当前内存使用量、当前磁盘读写速度、当前网络带宽等数据,此处不做限定。
S204:根据所述运行数据计算每个所述存储节点的数据存储系数。
在获取到每个存储节点的运行数据之后,我们可以根据运行数据来衡量每个存储节点当前的运行情况。为了更加精确的衡量每个存储节点的运行情况,我们对每个存储节点的运行情况进行量化,根据运行数据计算每个存储节点的数据存储系数。
根据公式i∈{1,2,3,4}计算每个存储节点的数据存储系数;其中,A用于表示存储节点的节点标识,ωi用于表示CPU、内存、磁盘以及网络的运行数据的权重,Curri(A)用于表示存储节点的当前CPU利用率、当前内存使用量、当前磁盘读写速度、当前网络带宽;Origi(A)用于表示存储节点的最大CPU处理速率、内存容量、磁盘最大读写速度、网络最大带宽。
需要说明的是,在上述公式中,Curri(A)用于表示存储节点的当前运行数据,即所采集到的存储节点的运行数据,其中可以包括但不限于当前CPU利用率、当前内存使用量、当前磁盘读写速度、当前网络带宽;Origi(A)用于表示存储节点的最大运行数据,即存储节点的硬件参数或者最大运行参数,其中包括但不限于最大CPU处理速率、内存容量、磁盘最大读写速度、网络最大带宽;ωi用于表示CPU、内存、磁盘以及网络的运行数据的权重,这些权重可以根据管理者或者每个存储节点的使用情况进行设定,此处不做限定。
S205:根据每个所述存储节点的所述数据存储系数,确定每个所述分片数据所对应的目标存储节点,以及每个所述分片数据的数据标识所对应的目标存储节点的节点标识。
在计算得到每个存储节点的数据存储系数之后,数据存储系数越大,表示该存储节点具有较强的数据存储能力,其所能存储的数据量则越大,相反的,若数据存储系数越小,则表示对应的存储节点只能存储数据量较小的分片数据。基于此,本实施例中根据每个存储节点的数据存储系数,确定每个分片数据所对应的目标存储节点。
具体的,我们根据数据存储系数的大小,按照由小到大的顺序对数据存储系数对应的存储节点进行排序,并根据每个分片数据的数据量的由大到小的顺序,将分片数据和存储节点一一对应。在本实施例中,分片数据和存储节点分别尤其数据标识和节点标识,在本方案中,通过存储节点的节点标识和分片数据的数据标识来确定每个分片数据对应的存储节点,即每个分片数据的数据标识所对应的目标存储节点的节点标识。
进一步的,在步骤S205之后,还可以包括步骤S2051~S2052:
S2051:获取所述目标存储节点发送的存储地址;所述存储地址用于表示所述分片数据在所述目标存储节点中存放的位置。
在存储节点获取到待存储的分片数据之后,将该分片数据存储至本地。在实际应用中,每个存储节点中可能有多个存储区域用于存储数据,数据所有者在将分片数据发送至存储节点之后,并不能确定该分片数据的存储位置。因为在本方案中,存储节点在存储完毕分片数据之后,向数据所有者的终端发送存储该分片数据的存储地址,以便于数据所有者可以随时查看该分片数据,或者可以根据该存储地址对数据的存储情况进行检验,防止存储节点对该分片数据自行删除或者篡改。
S2052:根据所述分片数据的数据标识、所述存储节点的节点标识以及所述分片数据在所述目标存储节点中的存储地址,生成数据索引;所述数据索引用于从所述目标存储节点中提取所述分片数据。
数据所有者的终端在接收到目标存储节点发送的存储地址之后,根据分片数据的数据标识、存储节点的节点标识以及分片数据在目标存储节点中的存储地址,生成数据索引,以便于从目标存储节点中查看、提取分片数据。数据所有者还可以根据该数据索引对数据的存储情况进行检验,防止存储节点对该分片数据自行删除或者篡改。
S206:将所述分片数据发送至所述分片数据的数据标识所对应的节点标识的目标存储节点。
在确定每个分片数据对应的目标存储节点之后,将该分片数据发送至对应的目标存储节点。在本实施例中,每个分片数据对应有数据标识,每个存储节点也有对应的节点标识。具体的,在确定每个分片数据对应的目标存储节点之后,将该分片数据的数据标识与该目标存储节点的节点标识一一对应或者关联起来,发送至管理节点或者数据所有者的终端设备,由管理节点或者数据所有者的终端设备根据关联起来的数据标识和节点数据标识将每个分片数据发送至对应的目标存储节点。
进一步的,在步骤S202之后,还可以包括步骤S207~S209:
S207:根据预设的加密方式对所述分片数据进行加密,得到加密的分片数据。
在得到至少一个分片数据之后,为了保证分片数据的安全性,还可以通过预设的加密方式对该分片数据进行加密,得到加密的分片数据。
具体的,在对分片数据进行加密时,每个数据所有者都可以有一个私钥,通过数据所有者的私钥,对该分片数据进行加密,并将加密之后的分片数据存储至存储节点中。
可选的,还可以根据每个分片数据中的数据内容随机生成给一个数据摘要,作为密钥,来对该分片数据进行加密。而该数据摘要作为的密钥只能是管理节点或者数据所有者所有。其中,管理节点是用来管理所有存储节点的节点,管理节点不需要存储数据,其权限最高。
进一步的,由于存储节点可能会对所存储的数据进行权限之外的删除或者修改,而影响分片数据的安全性和私密性,甚至影响管理节点或者数据所有者针对该分片数据的数据处理过程和处理结果,因此,可以通过将每个分片数据的摘要存储至管理节点或者数据所有者的终端,用于随时对存储节点所存储的分片数据的完整性发起验证,以保证数据存储的完整性和安全性。
S208:获取网络中每个存储节点的运行数据,根据所述运行数据确定用来存储所述加密的分片数据的目标存储节点。
由于网络中的每个存储节点的运行情况都可能不一样,有的存储节点中可能存储有较多的数据,或者其正在处理的数据较多,再将大量的分片数据送入该存储节点中,可能影响该存储节点的数据处理效率,也会导致在读取分片数据时影响读取效率。因此,我们通过获取每个存储节点的运行数据,根据运行数据来衡量每个存储节点当前的数据可存储量。
在确定每个存储节点当前的数据可存储量之后,可以将数据可存储量按照由高到低的顺序来存储对应大小的加密之后的分片数据。具体的,加密分片数据的大小可以是相同的,也可以是不同的。当加密分片数据的大小相同时,可以根据分片大小数量的不同,在数据可存储量较大的情况下,可以存储数量较多的加密分片数据,比如两个或者两个以上;当加密分片数据的大小不同时,可以根据按照由大到小的顺序对加密分片数据进行排序,根据加密分片数据大小由大到小的顺序,以及存储节点的数据可存储量有大到小的顺序,对每个加密分片数据安排对应的存储节点进行对应的数据存储,以保证数据可存储量较大的存储节点可以用来存储数据量较大的加密分片数据,进而保证网络中每个节点的负载均衡,保证每个存储节点都能在正常存储数据的情况下,以最高效的状态运行。
S209:将所述加密的分片数据发送至所述目标存储节点。
在确定每个加密的分片数据对应的目标存储节点之后,将该加密的分片数据发送至对应的目标存储节点。在本实施例中,每个分片数据对应有数据标识,在将分片数据进行加密之后,所得到的加密分片数据也同样带有加密数据标识,用于对不同的加密分片数据进行标识。同时在本实施例中,每个存储节点也有对应的节点标识。具体的,在确定每个加密的分片数据对应的目标存储节点之后,将该加密分片数据的加密数据标识与该目标存储节点的节点标识一一对应或者关联起来,发送至管理节点或者数据所有者的终端设备,由管理节点或者数据所有者的终端设备根据关联起来的加密数据标识和节点数据标识将每个加密的分片数据发送至对应的目标存储节点。
进一步的,在步骤S206之后,还可以包括:
获取终端设备发送的数据请求信息;
解析所述数据请求信息,得到所述终端设备所请求的数据的数据标识;
根据所述数据标识,确定所述数据标识对应的数据索引;
根据所述数据索引,向存储所述数据索引对应的数据的存储节点发送数据分发指令;所述数据分发指令中包括所述终端设备的设备标识,用于所述存储节点将所述数据索引对应的数据发送至所述终端设备。
具体的,数据所有者终端在将分片数据发送至存储节点,并根据存储该分片数据的位置生成数据索引之后,可能随时会接收到数据请求者的终端设备发送的数据请求信息,在数据所有者终端接收到数据请求信息之后,通过对数据请求信息进行解析,得到数据请求者的终端设备所请求的数据的数据标识,再根据该数据标识,确定数据标识对应的数据索引,即确定存储该数据标识对应的数据的存储节点及其存储位置。通过数据索引,向存储该数据索引对应的数据的存储节点发送数据分发指令,以通过该数据分发指令通知存储节点向数据请求者终端通知分发数据的信息。其中,数据分发指令中包括数据请求者的终端设备的设备标识,其设备标识可以是设备的互联网协议地址地址等信息,用于唯一确定接收该数据标识对应的数据的终端设备,此处不做限定。
上述方案,通过获取待存储文件,将所述待存储文件进行基于纠删码的冗余分片,得到至少一个分片数据,获取网络中每个存储节点的运行数据,根据所述运行数据确定用于存储所述分片数据的目标存储节点,并将所述分片数据发送至所述目标存储节点。通过将待存储文件进行基于纠删码的冗余分片,得到分片数据,对分片数据进行加密,得到每个分片数据对应的加密数据,将加密数据发送至分片标识对应的存储节点进行存储,降低了大文件存储的占用空间,从而节省费用和存储代价。
参见图3,图3是本发明实施例三提供的一种终端设备的示意图。终端设备包括的各单元用于执行图1~图2对应的实施例中的各步骤。具体请参阅图1~图2各自对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。本实施例的终端设备300包括:
获取单元301,用于获取待存储文件;
分片单元302,用于将所述待存储文件进行基于纠删码的冗余分片,得到至少一个分片数据;
存储单元303,用于获取网络中每个存储节点的运行数据,根据所述运行数据确定用于存储所述分片数据的目标存储节点,并将所述分片数据发送至所述目标存储节点。
进一步的,所述存储单元303可以包括:
运行数据获取单元,用于获取网络中每个所述存储节点的运行数据;
计算单元,用于根据所述运行数据计算每个所述存储节点的数据存储系数;
匹配单元,用于根据每个所述存储节点的所述数据存储系数,确定每个所述分片数据所对应的目标存储节点,以及每个所述分片数据的数据标识所对应的目标存储节点的节点标识;
发送单元,用于将所述分片数据发送至所述分片数据的数据标识所对应的节点标识的目标存储节点。
进一步的,所述终端设备还可以包括:
地址获取单元,用于获取所述目标存储节点发送的存储地址;所述存储地址用于表示所述分片数据在所述目标存储节点中存放的位置;
索引生成单元,用于根据所述分片数据的数据标识、所述存储节点的节点标识以及所述分片数据在所述目标存储节点中的存储地址,生成数据索引;所述数据索引用于从所述目标存储节点中提取所述分片数据。
所述运行数据包括所述目标存储节点的中央处理器CPU、内存、磁盘以及网络的运行数据;
所述根据所述运行数据计算每个所述存储节点的数据存储系数,包括:
根据公式i∈{1,2,3,4}计算每个所述存储节点的数据存储系数;其中,A用于表示存储节点的节点标识,ωi用于表示CPU、内存、磁盘以及网络的运行数据的权重,Curri(A)用于表示存储节点的当前CPU利用率、当前内存使用量、当前磁盘读写速度、当前网络带宽;Origi(A)用于表示存储节点的最大CPU处理速率、内存容量、磁盘最大读写速度、网络最大带宽。
进一步的,所述终端设备还可以包括:
加密单元,用于根据预设的加密方式对所述分片数据进行加密,得到加密的分片数据;
加密存储单元,用于获取网络中每个存储节点的运行数据,根据所述运行数据确定用来存储所述加密的分片数据的目标存储节点;
加密发送单元,用于将所述加密的分片数据发送至所述目标存储节点。
上述方案,通过获取待存储文件,将所述待存储文件进行基于纠删码的冗余分片,得到至少一个分片数据,获取网络中每个存储节点的运行数据,根据所述运行数据确定用于存储所述分片数据的目标存储节点,并将所述分片数据发送至所述目标存储节点。通过将待存储文件进行基于纠删码的冗余分片,得到分片数据,对分片数据进行加密,得到每个分片数据对应的加密数据,将加密数据发送至分片标识对应的存储节点进行存储,降低了大文件存储的占用空间,从而节省费用和存储代价。
图4是本发明实施例四提供的终端设备的示意图。如图4所示,该实施例的终端设备4包括:处理器40、存储器41以及存储在所述存储器41中并可在所述处理器40上运行的计算机程序42。所述处理器40执行所述计算机程序42时实现上述各个文件存储方法实施例中的步骤,例如图1所示的步骤101至103。或者,所述处理器40执行所述计算机程序42时实现上述各装置实施例中各模块/单元的功能,例如图3所示单元301至303的功能。
示例性的,所述计算机程序42可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器41中,并由所述处理器40执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序42在所述终端设备4中的执行过程。
所述终端设备4可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器40、存储器41。本领域技术人员可以理解,图4仅仅是终端设备4的示例,并不构成对终端设备4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器40可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器41可以是所述终端设备4的内部存储单元,例如终端设备4的硬盘或内存。所述存储器41也可以是所述终端设备4的外部存储设备,例如所述终端设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card,FC)等。进一步地,所述存储器41还可以既包括所述终端设备4的内部存储单元也包括外部存储设备。所述存储器41用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器41还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述***中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种文件存储方法,其特征在于,包括:
获取待存储文件;
将所述待存储文件进行基于纠删码的冗余分片,得到至少一个分片数据;
获取网络中每个存储节点的运行数据,根据所述运行数据确定用于存储所述分片数据的目标存储节点,并将所述分片数据发送至所述目标存储节点。
2.如权利要求1所述的文件存储方法,其特征在于,所述获取网络中每个存储节点的运行数据,根据所述运行数据确定用于存储所述分片数据的目标存储节点,并将所述分片数据发送至所述目标存储节点,包括:
获取网络中每个所述存储节点的运行数据;
根据所述运行数据计算每个所述存储节点的数据存储系数;
根据每个所述存储节点的所述数据存储系数,确定每个所述分片数据所对应的目标存储节点,以及每个所述分片数据的数据标识所对应的目标存储节点的节点标识;
将所述分片数据发送至所述分片数据的数据标识所对应的节点标识的目标存储节点。
3.如权利要求2所述的文件存储方法,其特征在于,所述将所述分片数据发送至所述分片数据的数据标识所对应的节点标识的目标存储节点之后,还包括:
获取所述目标存储节点发送的存储地址;所述存储地址用于表示所述分片数据在所述目标存储节点中存放的位置;
根据所述分片数据的数据标识、所述存储节点的节点标识以及所述分片数据在所述目标存储节点中的存储地址,生成数据索引;所述数据索引用于从所述目标存储节点中提取所述分片数据。
4.如权利要求2所述的文件存储方法,其特征在于,所述运行数据包括所述目标存储节点的中央处理器CPU、内存、磁盘以及网络的运行数据;
所述根据所述运行数据计算每个所述存储节点的数据存储系数,包括:
根据公式i∈{1,2,3,4}计算每个所述存储节点的数据存储系数;其中,A用于表示存储节点的节点标识,ωi用于表示CPU、内存、磁盘以及网络的运行数据的权重,Curri(A)用于表示存储节点的当前CPU利用率、当前内存使用量、当前磁盘读写速度、当前网络带宽;Origi(A)用于表示存储节点的最大CPU处理速率、内存容量、磁盘最大读写速度、网络最大带宽。
5.如权利要求1-4任一项所述的文件存储方法,其特征在于,所述将所述待存储文件进行基于纠删码的冗余分片,得到至少一个分片数据之后,包括:
根据预设的加密方式对所述分片数据进行加密,得到加密的分片数据;
获取网络中每个存储节点的运行数据,根据所述运行数据确定用来存储所述加密的分片数据的目标存储节点;
将所述加密的分片数据发送至所述目标存储节点。
6.如权利要求3所述的文件存储方法,其特征在于,所述将所述分片数据发送至所述分片数据的数据标识所对应的节点标识的目标存储节点之后,还包括:
获取终端设备发送的数据请求信息;
解析所述数据请求信息,得到所述终端设备所请求的数据的数据标识;
根据所述数据标识,确定所述数据标识对应的数据索引;
根据所述数据索引,向存储所述数据索引对应的数据的存储节点发送数据分发指令;所述数据分发指令中包括所述终端设备的设备标识,用于所述存储节点将所述数据索引对应的数据发送至所述终端设备。
7.一种终端设备,其特征在于,包括存储器以及处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现如下步骤:
获取待存储文件;
将所述待存储文件进行基于纠删码的冗余分片,得到至少一个分片数据;
获取网络中每个存储节点的运行数据,根据所述运行数据确定用于存储所述分片数据的目标存储节点,并将所述分片数据发送至所述目标存储节点。
8.如权利要求7所述的终端设备,其特征在于,所述获取网络中每个存储节点的运行数据,根据所述运行数据确定用于存储所述分片数据的目标存储节点,并将所述分片数据发送至所述目标存储节点,包括:
获取网络中每个所述存储节点的运行数据;
根据所述运行数据计算每个所述存储节点的数据存储系数;
根据每个所述存储节点的所述数据存储系数,确定每个所述分片数据所对应的目标存储节点,以及每个所述分片数据的数据标识所对应的目标存储节点的节点标识;
将所述分片数据发送至所述分片数据的数据标识所对应的节点标识的目标存储节点。
9.一种终端设备,其特征在于,包括:
获取单元,用于获取待存储文件;
分片单元,用于将所述待存储文件进行基于纠删码的冗余分片,得到至少一个分片数据;
存储单元,用于获取网络中每个存储节点的运行数据,根据所述运行数据确定用于存储所述分片数据的目标存储节点,并将所述分片数据发送至所述目标存储节点。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910008544.5A CN109857710B (zh) | 2019-01-04 | 2019-01-04 | 文件存储方法及终端设备 |
PCT/CN2019/091527 WO2020140394A1 (zh) | 2019-01-04 | 2019-06-17 | 文件存储方法及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910008544.5A CN109857710B (zh) | 2019-01-04 | 2019-01-04 | 文件存储方法及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109857710A true CN109857710A (zh) | 2019-06-07 |
CN109857710B CN109857710B (zh) | 2023-10-27 |
Family
ID=66893943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910008544.5A Active CN109857710B (zh) | 2019-01-04 | 2019-01-04 | 文件存储方法及终端设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109857710B (zh) |
WO (1) | WO2020140394A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110381061A (zh) * | 2019-07-19 | 2019-10-25 | 广东省新一代通信与网络创新研究院 | 文件的多云存储方法、下载方法、装置及存储介质 |
CN110781510A (zh) * | 2020-01-02 | 2020-02-11 | 广州欧赛斯信息科技有限公司 | 应用于学分银行***的数据分片加密方法、装置及服务器 |
CN111061357A (zh) * | 2019-12-13 | 2020-04-24 | 北京奇艺世纪科技有限公司 | 节能方法、装置、电子设备及存储介质 |
CN111291414A (zh) * | 2020-03-11 | 2020-06-16 | 深圳市网心科技有限公司 | 数据存储方法及装置、计算机装置及存储介质 |
WO2020140394A1 (zh) * | 2019-01-04 | 2020-07-09 | 平安科技(深圳)有限公司 | 文件存储方法及终端设备 |
CN111835848A (zh) * | 2020-07-10 | 2020-10-27 | 北京字节跳动网络技术有限公司 | 数据分片方法、装置、电子设备及计算机可读介质 |
CN112328550A (zh) * | 2020-11-03 | 2021-02-05 | 深圳壹账通智能科技有限公司 | 一种分布式文件***架构下的文件管理方法及装置 |
CN113485637A (zh) * | 2021-05-11 | 2021-10-08 | 广州炒米信息科技有限公司 | 数据存储方法、装置及计算机设备 |
CN113726832A (zh) * | 2020-05-26 | 2021-11-30 | 杭州海康存储科技有限公司 | 分布式存储***的数据存储方法、装置、***及设备 |
CN117950600A (zh) * | 2024-03-27 | 2024-04-30 | 广东力创信息技术有限公司 | 一种数据存储方法以及相关装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115129506A (zh) * | 2021-03-24 | 2022-09-30 | 华为技术有限公司 | 一种数据传输的***、方法以及网络设备 |
CN113407492B (zh) * | 2021-06-18 | 2024-03-26 | 中国人民银行清算总中心 | 文件分片存储、分片文件重组方法及装置、文件保护*** |
CN117648057A (zh) * | 2024-01-29 | 2024-03-05 | 瑞达可信安全技术(广州)有限公司 | 一种基于分布式存储的数据安全管理方法及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105100146A (zh) * | 2014-05-07 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 数据存储方法、装置及*** |
CN106686095A (zh) * | 2016-12-30 | 2017-05-17 | 郑州云海信息技术有限公司 | 一种基于纠删码技术的数据存储方法及装置 |
JP2018173802A (ja) * | 2017-03-31 | 2018-11-08 | 日本電気株式会社 | ストレージシステム、データソート方法及びプログラム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9201733B2 (en) * | 2013-03-13 | 2015-12-01 | Futurewei Technologies, Inc. | Systems and methods for data repair |
CN106909470A (zh) * | 2017-01-20 | 2017-06-30 | 深圳市中博科创信息技术有限公司 | 基于纠删码的分布式文件***存储方法及装置 |
CN109857710B (zh) * | 2019-01-04 | 2023-10-27 | 平安科技(深圳)有限公司 | 文件存储方法及终端设备 |
-
2019
- 2019-01-04 CN CN201910008544.5A patent/CN109857710B/zh active Active
- 2019-06-17 WO PCT/CN2019/091527 patent/WO2020140394A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105100146A (zh) * | 2014-05-07 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 数据存储方法、装置及*** |
CN106686095A (zh) * | 2016-12-30 | 2017-05-17 | 郑州云海信息技术有限公司 | 一种基于纠删码技术的数据存储方法及装置 |
JP2018173802A (ja) * | 2017-03-31 | 2018-11-08 | 日本電気株式会社 | ストレージシステム、データソート方法及びプログラム |
Non-Patent Citations (1)
Title |
---|
查显月;冯钧;冯读庆;唐志贤;: "基于云存储的冗余分片自适应分发策略", 计算机与现代化, no. 01 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020140394A1 (zh) * | 2019-01-04 | 2020-07-09 | 平安科技(深圳)有限公司 | 文件存储方法及终端设备 |
WO2021012602A1 (zh) * | 2019-07-19 | 2021-01-28 | 广东省新一代通信与网络创新研究院 | 文件的多云存储方法、下载方法、装置及存储介质 |
CN110381061A (zh) * | 2019-07-19 | 2019-10-25 | 广东省新一代通信与网络创新研究院 | 文件的多云存储方法、下载方法、装置及存储介质 |
CN111061357A (zh) * | 2019-12-13 | 2020-04-24 | 北京奇艺世纪科技有限公司 | 节能方法、装置、电子设备及存储介质 |
CN110781510A (zh) * | 2020-01-02 | 2020-02-11 | 广州欧赛斯信息科技有限公司 | 应用于学分银行***的数据分片加密方法、装置及服务器 |
CN111291414A (zh) * | 2020-03-11 | 2020-06-16 | 深圳市网心科技有限公司 | 数据存储方法及装置、计算机装置及存储介质 |
CN113726832A (zh) * | 2020-05-26 | 2021-11-30 | 杭州海康存储科技有限公司 | 分布式存储***的数据存储方法、装置、***及设备 |
CN113726832B (zh) * | 2020-05-26 | 2024-03-05 | 杭州海康存储科技有限公司 | 分布式存储***的数据存储方法、装置、***及设备 |
CN111835848A (zh) * | 2020-07-10 | 2020-10-27 | 北京字节跳动网络技术有限公司 | 数据分片方法、装置、电子设备及计算机可读介质 |
CN111835848B (zh) * | 2020-07-10 | 2022-08-23 | 北京字节跳动网络技术有限公司 | 数据分片方法、装置、电子设备及计算机可读介质 |
CN112328550A (zh) * | 2020-11-03 | 2021-02-05 | 深圳壹账通智能科技有限公司 | 一种分布式文件***架构下的文件管理方法及装置 |
CN113485637A (zh) * | 2021-05-11 | 2021-10-08 | 广州炒米信息科技有限公司 | 数据存储方法、装置及计算机设备 |
CN117950600A (zh) * | 2024-03-27 | 2024-04-30 | 广东力创信息技术有限公司 | 一种数据存储方法以及相关装置 |
CN117950600B (zh) * | 2024-03-27 | 2024-06-04 | 广东力创信息技术有限公司 | 一种数据存储方法以及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109857710B (zh) | 2023-10-27 |
WO2020140394A1 (zh) | 2020-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109857710A (zh) | 文件存储方法及终端设备 | |
US10387382B2 (en) | Estimating a number of entries in a dispersed hierarchical index | |
JP6716727B2 (ja) | ストリーミングデータ分散処理方法及び装置 | |
Lin et al. | QoS-aware data replication for data-intensive applications in cloud computing systems | |
CN109889505A (zh) | 数据持有性验证方法及终端设备 | |
CA2836026C (en) | Reference count propagation | |
US20190122186A1 (en) | Hierarchical Network System, And Node And Program Used In Same | |
CN102651775B (zh) | 基于云计算的多租户共享对象管理的方法、设备及*** | |
CN112860695B (zh) | 监控数据查询方法、装置、设备、存储介质及程序产品 | |
CN107450855B (zh) | 一种用于分布式存储的模型可变的数据分布方法及*** | |
CN102523290B (zh) | 数据的处理方法、设备和*** | |
US20190034123A1 (en) | Hierarchical event tree | |
CN113687964B (zh) | 数据处理方法、装置、电子设备、存储介质及程序产品 | |
CN103067525A (zh) | 一种基于特征码的云存储数据备份方法 | |
CN104348624A (zh) | 一种哈希认证可信度的方法和装置 | |
CN109597903A (zh) | 图像文件处理装置和方法、文件存储***及存储介质 | |
CN107276914B (zh) | 基于cmdb的自助资源分配调度的方法 | |
CN104008100B (zh) | 集群环境并发处理方法 | |
CN107818106A (zh) | 一种大数据离线计算数据质量校验方法和装置 | |
CN116842012A (zh) | 一种Redis集群的分片存储方法、装置、设备及存储介质 | |
CN116610731A (zh) | 一种大数据分布式存储方法、装置、电子设备及存储介质 | |
CN109981726A (zh) | 一种存储节点的分配方法、服务器及*** | |
US20190056997A1 (en) | Chaining computes in a distributed computing system | |
Saenko et al. | Towards resilient and efficient big data storage: evaluating a siem repository based on hdfs | |
US10334045B2 (en) | Indicating multiple encoding schemes in a dispersed storage network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |