CN110244904A - 一种数据存储系统、方法及装置 - Google Patents
一种数据存储系统、方法及装置 Download PDFInfo
- Publication number
- CN110244904A CN110244904A CN201810193323.5A CN201810193323A CN110244904A CN 110244904 A CN110244904 A CN 110244904A CN 201810193323 A CN201810193323 A CN 201810193323A CN 110244904 A CN110244904 A CN 110244904A
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- slice
- node
- memory node
- 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
- 238000013500 data storage Methods 0.000 title claims abstract description 53
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000003860 storage Methods 0.000 claims abstract description 867
- 238000007726 management method Methods 0.000 claims description 127
- 238000012545 processing Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 8
- 238000000151 deposition Methods 0.000 claims description 5
- 230000009467 reduction Effects 0.000 claims description 5
- 238000000547 structure data Methods 0.000 claims 2
- 230000005540 biological transmission Effects 0.000 abstract description 38
- 238000005516 engineering process Methods 0.000 description 14
- 238000009826 distribution Methods 0.000 description 8
- 238000012360 testing method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000012806 monitoring device Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000012163 sequencing technique Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种数据存储系统、方法及装置,其中存储系统中包括存储节点,各存储节点之间通过SAS网络连接,目标存储节点,用于获取待存储数据,对待存储数据进行切片处理得到切片数据;确定用于存储所得到的切片数据的第一类存储节点,并获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置,将所得到的切片数据通过SAS网络写入所获取的第一类存储位置。通过本发明实施例提供的技术方案,将待存储数据进行切片处理后,目标存储节点可以分别将切片处理所得到的切片数据直接写入对应的存储位置,这样,避免了因为数据传输而导致的传输延迟,进而提高了数据存储效率。
Description
技术领域
本发明涉及数据存储技术领域,特别是涉及一种数据存储系统、方法及装置。
背景技术
随着计算机应用规模越来越大,对存储空间的需求也与日俱增,由此出现了基于云存储技术的云存储系统,相对于传统存储系统,云存储系统具有可扩展性,并且提高了存储的效率。
云存储系统所包括的各存储节点均具备两种类型的网口:业务网口和数据网口,业务网口用于接收所需存储的数据,比如,在监控网络中各监控设备的录像数据;数据网口用于存储系统中的各设备之间的数据传输。并且,无论是业务网口还是数据网口,均采用电口连接,其中,电口可以是普通的网线接口或者同轴电缆接口,并且可以根据需求选用百兆以太网电口、千兆以太网电口等。
云存储系统中的一台存储节点S通过业务网口接收需要存储的数据后,考虑到负载均衡等因素,可以将一部分数据存储在本地,然后将其他数据通过数据网口发送至其他存储节点进行存储。
上述存储节点S将其本地的数据存储到其他的存储节点时,需先将存储节点S本地的数据通过网络传输至其他存储节点,然后由其他存储节点将所接收到的数据写入其他存储节点的本地存储。虽然应用上述方式存储节点S能够将其本地的数据存储至其他存储节点,但是由于上述存储过程中存储节点S需要通过数据网口,也就是电口,将其本地的数据的传输至其他存储节点,这一过程存在数据延迟,导致数据存储效率低。
发明内容
本发明实施例的目的在于提供一种数据存储系统、方法及装置,以解决数据传输延迟,导致数据存储效率低的问题。具体技术方案如下:
第一方面,本发明实施例提供了一种数据存储系统,所述存储系统包括至少两个存储节点,各存储节点之间通过SAS网络连接,目标存储节点为获取待存储数据的存储节点;
目标存储节点,用于获取待存储数据,对所述待存储数据进行切片处理得到切片数据;确定用于存储所得到的切片数据的第一类存储节点,并获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置,将所得到的切片数据通过所述SAS网络写入所获取的第一类存储位置。
可选地,所述目标存储节点,获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置,包括:
所述目标存储节点,用于向所确定的第一类存储节点发送第一存储请求;接收所确定的第一类存储节点发送的第一类存储位置,所述第一类存储位置为:所确定的第一类存储节点所分配的用于存储切片数据的位置。
可选地,所述目标存储节点,用于确定用于存储所得到的切片数据的第一类存储节点,包括:
所述目标存储节点,用于根据以下信息中的至少一种,确定用于存储所得到的切片数据的第一类存储节点:
已被所述目标存储节点分配过的存储节点;
所述存储系统中各存储节点的存活状态;
所述存储系统中各存储节点的剩余存储空间;
所述存储系统中各存储节点的负载压力。
可选地,所述存储系统还包括管理节点;
所述目标存储节点,用于生成所得到的每一切片数据的存储索引,其中,一个切片数据的存储索引记录包括:该切片数据与该切片数据对应的第一类存储位置的对应关系和待存储数据与该待存储数据经切片处理得到的各切片数据的对应关系;将所生成的存储索引发送至所述管理节点;
所述管理节点,用于接收并存储所述目标存储节点发送的存储索引。
可选地,所述管理节点,还用于接收目标客户端针对待读取数据的读取请求,并从所述存储系统包括的存储节点中选择存储节点,作为第二类存储节点;根据本地存储的存储索引,确定所述待读取数据对应的切片数据以及各个切片数据的第二类存储位置,并将所述第二类存储位置发送至所述第二类存储节点;
所述第二类存储节点,用于接收所述管理节点发送的所述第二类存储位置,从所述第二类存储位置中读取切片数据,将所读取到的切片数据进行还原处理,得到所述待读取数据,并将所述待读取数据发送至所述目标客户端。
可选地,所述管理节点,用于获得故障存储节点的故障位置中所存储数据的数据量,根据所述数据量,从所述存储系统包括的存储节点中选择用于重构所述故障位置所存储数据的存储节点,作为第三类存储节点;
所述第三类存储节点,用于对所述故障位置所存储的数据进行重构,得到重构数据,为所述重构数据分配存储位置,并将所述重构数据写入所分配的存储位置。
可选地,所述管理节点,具体用于获取故障存储节点中的故障位置;根据本地的存储索引,确定所述故障位置对应存储的数据,以及所述故障位置所存储的数据对应的切片数据,并获得所确定的各切片数据对应的存储位置,将所获得的存储位置发送至第三类存储节点,所述第三类存储节点为:根据所述故障位置所存储数据的数据量从所述存储系统包括的存储节点中所选择的用于重构所述故障位置所存储数据的存储节点;
所述第三类存储节点,用于接收所述管理节点发送的存储位置,从所接收到的存储位置中读取对应的切片数据,将所读取到的切片数据进行重构处理,得到重构数据,为所述重构数据分配存储位置,并将所述重构数据写入所分配的存储位置。
第二方面,本发明实施例提供了一种数据存储系统,所述存储系统包括:切片服务器、至少两个存储节点,各存储节点之间通过SAS网络连接;
所述切片服务器,用于获取待存储数据,对所述待存储数据进行切片处理,得到切片数据;从所述至少两个存储节点中确定接收切片数据的目标存储节点,将所得到的切片数据发送至所述目标存储节点;
所述目标存储节点,用于接收所述切片服务器发送的切片数据,确定用于存储切片数据的第一类存储节点,并获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置,将所得到的切片数据通过所述SAS网络写入所获取的第一类存储位置。
可选地,所述目标存储节点,获取所确定第一类存储节点中用于存储切片数据的第一类存储位置,包括:
所述目标存储节点,用于向所确定的第一类存储节点发送第一存储请求;接收所确定的第一类存储节点发送的第一类存储位置,所述第一类存储位置为:所确定的第一类存储节点所分配的用于存储切片数据的位置。
可选地,所述目标存储节点,用于确定用于存储切片数据的第一类存储节点,包括:
所述目标存储节点,用于根据以下信息中的至少一种,确定用于存储切片数据的第一类存储节点:
已被所述目标存储节点分配过的存储节点;
所述存储系统中各存储节点的存活状态;
所述存储系统中各存储节点的剩余存储空间;
所述存储系统中各存储节点的负载压力。
可选地,所述存储系统还包括管理节点;
所述目标存储节点,用于生成所得到的每一切片数据的存储索引,其中,一个切片数据的存储索引记录包括该切片数据与该切片数据对应的第一类存储位置的对应关系和待存储数据与该待存储数据经切片处理得到的各切片数据的对应关系;将所生成的存储索引发送至所述管理节点;
所述管理节点,用于接收并存储所述目标存储节点发送的存储索引。
可选地,所述管理节点,还用于接收目标客户端针对待读取数据的读取请求,并从所述存储系统包括的存储节点中选择存储节点,作为第二类存储节点;根据本地存储的存储索引,确定所述待读取数据对应的切片数据以及各个切片数据的第二类存储位置,并将所述第二类存储位置发送至所述第二类存储节点;
所述第二类存储节点,用于接收所述管理节点发送的所述第二类存储位置,从所述第二类存储位置中读取切片数据,将所读取到的切片数据进行还原处理,得到所述待读取数据,并将所述待读取数据发送至所述目标客户端。
可选地,所述管理节点,用于获得故障存储节点的故障位置中所存储数据的数据量,根据所述数据量,从所述存储系统包括的存储节点中选择用于重构所述故障位置所存储数据的存储节点,作为第三类存储节点;
所述第三类存储节点,用于对所述故障位置所存储的数据进行重构,得到重构数据,为所述重构数据分配存储位置,并将所述重构数据写入所分配的存储位置。
可选地,所述管理节点,具体用于获取故障存储节点中的故障位置;根据本地的存储索引,确定所述故障位置对应存储的数据,以及所述故障位置所存储的数据对应的切片数据,并获得所确定的各切片数据对应的存储位置,将所获得的存储位置发送至第三类存储节点,所述第三类存储节点为:根据所述故障位置所存储数据的数据量从所述存储系统包括的存储节点中所选择的用于重构所述故障位置所存储数据的存储节点;
所述第三类存储节点,用于接收所述管理节点发送的存储位置,从所接收到的存储位置中读取对应的切片数据,将所读取到的切片数据进行重构处理,得到重构数据,为所述重构数据分配存储位置,并将所述重构数据写入所分配的存储位置。
可选地,所述存储系统还包括管理节点;
所述切片服务器,从所述至少两个存储节点中确定接收切片数据的目标存储节点,包括:
所述切片服务器,用于向所述管理节点发送第二存储请求;
所述管理节点,用于接收所述切片服务器发送的所述第二存储请求,从所述存储系统所包括的存储节点中确定目标存储节点,并将所确定的目标存储节点的标识发送至所述切片服务器;
所述切片服务器,用于接收所述管理节点发送的标识,并确定所述标识对应的目标存储节点。
可选地,所述管理节点,从所述存储系统所包括的存储节点中确定目标存储节点,包括:
所述管理节点,用于根据以下信息中的至少一种,从所述存储系统所包括的存储节点中确定目标存储节点:
已被所述管理节点分配过的存储节点;
所述存储系统中各存储节点的存活状态;
所述存储系统中各存储节点的剩余存储空间;
所述存储系统中各存储节点的负载压力。
第三方面,本发明实施例提供了一种数据存储方法,应用于存储系统中的目标存储节点,所述存储系统包括至少两个存储节点,各存储节点之间通过SAS网络连接,所述目标存储节点为存在待存储数据的存储节点;
所述方法包括:
获取待存储数据;
对所述待存储数据进行切片处理,得到切片数据;
确定用于存储所得到的切片数据的第一类存储节点;
获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置;
将所得到的切片数据通过所述SAS网络写入所获取的第一类存储位置。
可选地,所述获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置的步骤,包括:
向所确定的第一类存储节点发送第一存储请求;
接收所确定的第一类存储节点发送的第一类存储位置,所述第一类存储位置为:所确定的第一类存储节点所分配的用于存储切片数据的位置。
可选地,所述确定用于存储所得到的切片数据的第一类存储节点的步骤,包括:
根据以下信息中的至少一种,确定用于存储所得到的切片数据的第一类存储节点:
已被所述目标存储节点分配过的存储节点;
所述存储系统中各存储节点的存活状态;
所述存储系统中各存储节点的剩余存储空间;
所述存储系统中各存储节点的负载压力。
可选地,所述存储系统还包括管理节点;所述将所得到的切片数据通过所述SAS网络写入所获取的第一类存储位置的步骤之后,还包括:
生成所得到的每一切片数据的存储索引,其中,一个切片数据的存储索引记录包括:该切片数据与该切片数据对应的第一类存储位置的对应关系和待存储数据与该待存储数据经切片处理得到的各切片数据的对应关系;
将所生成的存储索引发送至所述管理节点。
第四方面,本发明实施例提供了一种数据存储方法,应用于存储系统中的目标存储节点,所述存储系统包括:至少两个存储节点、切片服务器,各存储节点之间通过SAS网络连接,所述目标存储节点为:所述存储系统所包括的存储节点中接收切片数据的存储节点;
所述方法包括:
接收所述切片服务器发送的切片数据,所述切片数据为:所述切片服务器对待存储数据进行切片处理得到的数据;
确定用于存储切片数据的第一类存储节点;
获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置;
将所得到的切片数据通过所述SAS网络写入所获取的第一类存储位置。
可选地,所述获取所确定第一类存储节点中用于存储切片数据的第一类存储位置的步骤,包括:
向所确定的第一类存储节点发送第一存储请求;
接收所确定的第一类存储节点发送的第一类存储位置,所述第一类存储位置为:所确定的第一类存储节点所分配的用于存储切片数据的位置。
可选地,所述确定用于存储切片数据的第一类存储节点的步骤,包括:
根据以下信息中的至少一种,确定用于存储切片数据的第一类存储节点:
已被所述目标存储节点分配过的存储节点;
所述存储系统中各存储节点的存活状态;
所述存储系统中各存储节点的剩余存储空间;
所述存储系统中各存储节点的负载压力。
可选地,所述存储系统还包括管理节点;
所述将所得到的切片数据通过所述SAS网络写入所获取的第一类存储位置的步骤之后,还包括:
生成所得到的每一切片数据的存储索引,其中,一个切片数据的存储索引记录包括:该切片数据与该切片数据对应的第一类存储位置的对应关系和待存储数据与该待存储数据经切片处理得到的各切片数据的对应关系;
将所生成的存储索引发送至所述管理节点。
第五方面,本发明实施例提供了一种数据存储装置,应用于存储系统中的目标存储节点,所述存储系统包括至少两个存储节点,各存储节点之间通过SAS网络连接,所述目标存储节点为存在待存储数据的存储节点;
所述装置包括:
第一获取模块,用于获取待存储数据;
切片处理模块,用于对所述待存储数据进行切片处理,得到切片数据;
第一确定模块,用于确定用于存储所得到的切片数据的第一类存储节点;
第二获取模块,用于获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置;
第一写入模块,用于将所得到的切片数据通过所述SAS网络写入所获取的第一类存储位置。
可选地,所述第二获取模块包括:
第一发送子模块,用于向所确定的第一类存储节点发送第一存储请求;
第一接收子模块,用于接收所确定的第一类存储节点发送的第一类存储位置,所述第一类存储位置为:所确定的第一类存储节点所分配的用于存储切片数据的位置。
可选地,所述第一确定模块具体用于:
根据以下信息中的至少一种,确定用于存储所得到的切片数据的第一类存储节点:
已被所述目标存储节点分配过的存储节点;
所述存储系统中各存储节点的存活状态;
所述存储系统中各存储节点的剩余存储空间;
所述存储系统中各存储节点的负载压力。
可选地,所述存储系统还包括管理节点;
所述装置还包括:
第一生成模块,用于生成所得到的每一切片数据的存储索引,其中,一个切片数据的存储索引记录包括:该切片数据与该切片数据对应的第一类存储位置的对应关系和待存储数据与该待存储数据经切片处理得到的各切片数据的对应关系;
第一发送模块,用于将所生成的存储索引发送至所述管理节点。
第六方面,本发明实施例提供了一种数据存储装置,应用于存储系统中的目标存储节点,所述存储系统包括:至少两个存储节点、切片服务器,各存储节点之间通过SAS网络连接,所述目标存储节点为:所述存储系统所包括的存储节点中接收切片数据的存储节点;
所述装置包括:
接收模块,用于接收所述切片服务器发送的切片数据,所述切片数据为:所述切片服务器对待存储数据进行切片处理得到的数据;
第二确定模块,用于确定用于存储切片数据的第一类存储节点;
第三获取模块,用于获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置;
第二写入模块,用于将所得到的切片数据通过所述SAS网络写入所获取的第一类存储位置。
可选地,所述第三获取模块包括:
第二发送子模块,用于向所确定的第一类存储节点发送第一存储请求;
第二接收子模块,用于接收所确定的第一类存储节点发送的第一类存储位置,所述第一类存储位置为:所确定的第一类存储节点所分配的用于存储切片数据的位置。
可选地,所述第二确定模块具体用于:
根据以下信息中的至少一种,确定用于存储切片数据的第一类存储节点:
已被所述目标存储节点分配过的存储节点;
所述存储系统中各存储节点的存活状态;
所述存储系统中各存储节点的剩余存储空间;
所述存储系统中各存储节点的负载压力。
可选地,所述存储系统还包括管理节点;
所述装置还包括:
第二生成模块,用于生成所得到的每一切片数据的存储索引,其中,一个切片数据的存储索引记录包括:该切片数据与该切片数据对应的第一类存储位置的对应关系和待存储数据与该待存储数据经切片处理得到的各切片数据的对应关系;
第二发送模块,用于将所生成的存储索引发送至所述管理节点。
第七方面,本发明实施例提供了一种电子设备,包括处理器和存储器;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述的一种数据存储方法步骤。
第八方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的一种数据存储方法步骤。
本发明实施例提供的技术方案中,存储系统中包括至少两个存储节点,各存储节点之间通过SAS网络连接,目标存储节点用于获取待存储数据,对待存储数据进行切片处理得到切片数据;确定用于存储所得到的切片数据的第一类存储节点,并获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置,将所得到的切片数据通过SAS网络写入所获取的第一类存储位置。通过本发明实施例提供的技术方案,将待存储数据进行切片处理后,目标存储节点可以分别将切片处理所得到的切片数据直接写入对应的存储位置,这样,避免了因为数据传输而导致的传输延迟,进而提高了数据存储效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据存储系统的第一种结构示意图;
图2为本发明实施例提供的一种数据存储系统的第二种结构示意图;
图3为本发明实施例提供的一种数据存储方法的第一种流程图;
图4为本发明实施例提供的一种数据存储方法的第二种流程图;
图5为本发明实施例提供的一种数据存储装置的第一种结构示意图;
图6为本发明实施例提供的一种数据存储装置的第二种结构示意图;
图7为本发明实施例提供的一种电子设备的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了避免因为数据传输而导致的传输延迟,进而可以提高数据存储效率,本发明实施例提供了一种数据存储系统、方法及装置,其中,该存储系统包括至少两个存储节点,各存储节点之间通过SAS网络连接,目标存储节点为获取待存储数据的存储节点;
目标存储节点,用于获取待存储数据,对待存储数据进行切片处理得到切片数据;确定用于存储所得到的切片数据的第一类存储节点,并获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置,将所得到的切片数据通过SAS网络写入所获取的第一类存储位置。
通过本发明实施例提供的技术方案,将待存储数据进行切片处理后,目标存储节点可以分别将切片处理所得到的切片数据直接写入对应的存储位置,这样,避免了因为数据传输而导致的传输延迟,进而提高了数据存储效率。
下面首先对本发明实施例提供的一种数据存储系统进行介绍。
本发明实施例提供的一种数据存储系统,如图1所示,该存储系统100包括:至少两个存储节点110,各存储节点110之间通过SAS网络连接,目标存储节点为获取待存储数据的存储节点;
目标存储节点,用于获取待存储数据,对待存储数据进行切片处理得到切片数据;确定用于存储所得到的切片数据的第一类存储节点,并获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置,将所得到的切片数据通过SAS网络写入所获取的第一类存储位置。
下面对存储系统100和目标存储节点分别进行介绍。
一、存储系统100
存储系统100中可以包括:至少两个存储节点110。
对于存储系统100中所包括的存储节点,每一存储节点中可以包括多个硬盘,硬盘用来存储相应的数据。数据在存储节点中进行存储时,该存储节点可以将数据分别存储在不同的硬盘中,还可以将数据存储在同一硬盘中。
存储系统100中的各存储节点之间是互联的,互联的方式可以是通过SAS网络互联,每一存储节点均至少包括SAS接口。
其中,SAS(Serial Attached SCSI)即为串行连接SCSI接口,其中,SCSI(SmallComputer System Interface)即为小型计算机系统接口,是一种通用接口标准,例如,SCSI可以是用于计算机和硬盘、软驱、光驱、打印机、扫描仪等设备之间的接口标准。
各存储节点通过SAS网络连接的方式可以是以SAS交换机的方式进行连接,存储系统中每一存储节点均与SAS交换机相连接,这样,各存储节点便通过SAS交换机相互连接。当然,存储节点可以是通过各自的SAS接口与SAS交换机相连接的。
存储系统100中的存储节点通过SAS网络连接的情况下,存储节点相互之间是可见的,即对于每一个存储节点来说,都可以看到存储系统100中其他存储节点所包括的硬盘。也就是说,每一个存储节点均可以看到存储系统100的所有硬盘,每一存储节点可以将数据直接写入可看到的硬盘上,也可以从可看到的硬盘上读取数据。
例如,存储系统中包括存储节点A、存储节点B和存储节点C,并且,存储节点A、存储节点B和存储节点C之间通过SAS网络连接,存储节点A包括硬盘A1、硬盘A2,存储节点B包括硬盘B1、硬盘B2,存储节点C包括硬盘C1、硬盘C2,那么,对于存储节点A来说,可以看到硬盘B1、硬盘B2、硬盘C1和硬盘C2,可以将数据直接写入到硬盘B1、硬盘B2、硬盘C1和硬盘C2中的任一个硬盘中,也可以从硬盘B1、硬盘B2、硬盘C1和硬盘C2中读取各自所存储的数据。
在存储系统100中各存储节点之间通过SAS网络的方式连接,存储节点之间可以进行读写操作,进而可以解决存储节点之间写互斥的问题。
二、目标存储节点
目标存储节点,用于获取待存储数据,对待存储数据进行切片处理得到切片数据;确定用于存储所得到的切片数据的第一类存储节点,并获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置,将所得到的切片数据通过SAS网络写入所获取的第一类存储位置。
下面对目标存储节点所执行的各步骤分布进行说明。
第一步骤,获取待存储数据。
其中,目标存储节点获取待存储数据的方式可以是:目标存储节点接收存储系统中接入节点发送的待存储数据。其中,接入节点与存储系统100外部的客户端相连接,用于接收客户端发送的数据,例如,接入节点可以与监控设备相连接,用于接收监控设备发送的视频数据。
一种实现方式,存储系统中的接入节点用于接收客户端发送的待存储数据,接入节点在接收到待存储数据后,可以将待存储数据发送给存储节点,该存储节点即为目标存储节点。其中,接入节点可以通过预设的策略从至少两个存储节点中选择一个用于接收待存储数据的目标存储节点。
其中,接入节点接收待存储数据以及目标存储节点接收接入节点发送的待存储数据均可以通过业务网口实现,业务网口用于接收业务数据,业务数据可以是来自于存储系统外部的待存储数据。
例如,业务数据可以是监控设备的视频数据,监控设备将视频数据通过业务网口发送至存储系统中的接入节点,此时,视频数据即为待存储数据,接入节点再将所接收到的视频数据通过自身的业务网口发送至目标存储节点,这样,目标存储节点便可以获取到待存储的视频数据。
第二步骤,目标存储节点在获取待存储数据后,对待存储数据进行切片处理得到切片数据。
第一种实施方式,目标存储节点可以通过纠删码技术(Erasure Coding,简称EC)对数据进行切片处理。
通过纠删码技术可以对待存储数据进行切片处理,可以得到预设数量N个数据片,并且,根据所得到的N个数据片,进一步地可以得到相应的预设数量M个检验片。由数据片与检验片之和M+N,即为所得到的切片数据的数量。其中,N和M可以是由纠删码的类型所决定的。
例如,RS(Reed-Solomon)码是存储系统较为常用的一种纠删码,RS码所对应的N为5,M为3,利用RS码对待存储数据进行切片处理,可以得到5个数据片,3个检验片,最后所得到的切片数据为8个。
对于利用纠删码技术进行切片,所得到的M个校验片可以起到容错的作用。在所得到的M+N个切片数据中,当其中存在错误的切片数据的数量小于或者等于M个时,均可以通过纠删码技术中的重构算法将N个数据片进行恢复。因此,通过纠删码技术可以对切片数据起到容错的作用,提高了数据存储的可靠性。
例如,通过纠删码技术进行切片所得到的切片数据包括5个数据片和3个校验片,其中,5个数据片分别为:数据片A、数据片B、数据片C、数据片D、数据片E,3个校验片分别为:检验片A、检验片B、检验片C。当数据片A、数据片B和校验片A出现错误时,可以通过纠删码技术中的重构算法将数据片A、数据片B、数据片C、数据片D、数据片E进行恢复。
当然,目标存储节点在进行切片处理的方式不仅限于上述实施方式中的纠删码技术,还可以是其他方式的切片处理,在此不做限定。
第三步骤,确定用于存储所得到切片数据的第一类存储节点,并获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置。
其中,目标存储节点可以根据切片数据的数量以及各切片数据的数据量,进而确定用于存储切片数据的第一类存储节点,并且,获取到所确定的第一类存储节点中用于存储切片数据的第一类存储位置。
目标存储节点在确定第一类存储节点时,首先,可以确定第一类存储节点的数量,其中,确定第一类存储节点的数量的方式可以有多种方式:
第一种方式,可以确定第一类存储节点的数量与切片数据的数量相同,例如,当目标存储节点所得到的切片数据是8个时,则确定的第一类存储节点的数量也是8个。
在该第一种方式中,可以认为,一个切片数据对应一个第一类存储节点,即所确定出的每一个第一类存储节点中仅存储一个切片数据。
例如,目标存储节点所得到的切片数据包括:切片数据A、切片数据B和切片数据C,所确定的用于存储切片数据的3个第一类存储节点分别为:第一类存储节点1、第一类存储节点2和第一类存储节点3,并且,目标存储节点将切片数据A分配给第一类存储节点1,将切片数据B分配给第一类存储节点2,将切片数据C分配给第一类存储节点3,那么,第一类存储节点1存储切片数据A,第一类存储节点2存储切片数据B,第一类存储节点3存储切片数据C。
第二种方式,可以确定第一类存储节点的数量小于切片数据的数量,这种方式中,所确定出的第一类存储节点中的至少一个第一类存储节点需要存储多于一个的切片数据。其中,需要存储多于一个的切片数据的第一类存储节点可以根据各存储节点的存储状态所确定。存储状态可以包括存储节点的剩余存储空间、负载压力等。
例如,切片数据的数量为4个,而所确定的第一类存储节点的数量为3个,分别为:第一类存储节点1、第一类存储节点2和第一类存储节点3,而3个第一类存储节点中,相比于第一类存储节点2和第一类存储节点3,第一类存储节点1的剩余存储空间更大,并且负载压力更小,因此,可以确定第一类存储节点1存储其中的2个切片数据。
在目标存储节点确定第一类存储节点的数量之后,可以根据预设的策略从存储系统100中选取所确定数量的存储节点,所选取的存储节点即为第一类存储节点。根据预设的策略选取存储节点的方式在下面的第四种实施方式中进行详细介绍,在此不再详述。
另外,在选取第一类存储节点时,还可以考虑切片数据的数据量,所选取的第一类存储节点的剩余存储空间至少大于对应存储的切片数据的数据量。
目标存储节点在确定出第一类存储节点之后,可以获取所确定第一类存储节点中用于存储切片数据的第一类存储位置。
其中,存储位置可以是存储节点中的硬盘,不同的存储位置即为不同的硬盘。当然,当每个硬盘中有多个分区时,存储位置还可以是具体指存储节点中硬盘的分区。
例如,存储节点中包括硬盘1和硬盘2,数据存储在硬盘1中,此时,数据的存储位置可以是指硬盘1;而当硬盘1包括分区1和分区2,数据具体存储在硬盘1的分区1中,此时,数据的存储位置是指硬盘1的分区1。
存储节点中可以包括多个硬盘,并且,每个硬盘的存储状态是不一样的,因此,在确定第一类存储节点之后,可以根据第一类存储节点中硬盘的存储状态,选取用于存储切片数据的硬盘,即为第一类存储位置。
其中,硬盘的存储状态可以是剩余存储空间、负载压力等,在选取用于存储切片数据的硬盘时,可以仅根据其中的一种存储状态进行选取,还可以结合硬盘的多种存储状态进行选取。
例如,仅根据剩余存储空间,从第一类存储节点中选取剩余存储空间最大的硬盘,作为存储切片数据的硬盘。同时考虑剩余存储空间和负载压力的情况下,可以从第一类存储节点中选取剩余存储空间最大、负载压力最小的硬盘,作为存储切片数据的硬盘。
另外,第一类存储节点中用于存储切片数据的第一类存储位置可以由第一类存储节点自身进行确定,还可以由目标存储节点指定再向对应的第一类存储节点申请。该部分在下面的第二种实施方式和第三种实施方式中进行详细介绍,在此不再详述。
第四步骤,将所得到的切片数据通过SAS网络写入所获取的第一类存储位置。
在该存储系统100中,各存储节点之间可以是通过SAS网络相连接的。因此,目标存储节点可以知道存储系统100中其他各存储节点中的存储位置,目标存储节点可以从其他各存储节点中读取相应的数据,还可以将数据写入其他各存储节点中的存储位置。
因此,目标存储节点在获取到切片数据以及各切片数据对应的第一类存储位置后,可以直接将切片数据写入对应的第一类存储位置。
例如,目标存储节点得到切片数据A,并且确定该切片数据A对应存储在第一类存储节点A的第一类存储位置A,则目标存储节点可以通过SAS网络,将切片数据A直接写入第一类存储节点A的第一类存储位置A中。
本发明实施例提供的技术方案中,存储系统中包括至少两个存储节点,各存储节点之间通过SAS网络连接,目标存储节点用于获取待存储数据,对待存储数据进行切片处理得到切片数据;确定用于存储所得到的切片数据的第一类存储节点,并获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置,将所得到的切片数据通过SAS网络写入所获取的第一类存储位置。通过本发明实施例提供的技术方案,将待存储数据进行切片处理后,目标存储节点可以分别将切片处理所得到的切片数据直接写入对应的存储位置,这样,避免了因为数据传输而导致的传输延迟,进而提高了数据存储效率。
第二种实施方式,第一类存储位置可以由第一类存储节点自身所确定。
目标存储节点在确定第一类存储节点之后,目标存储节点可以向所确定的第一类存储节点发送第一存储请求。第一类存储节点接收到第一存储请求后,可以根据第一存储请求分配对应的存储位置,该存储位置即为第一类存储位置,第一类存储节点再将所分配的第一类存储位置发送至目标存储节点。
目标存储节点发送的第一存储请求中可以包括待存储的切片数据的数据类型、数据量、数据标识等信息中的任一种或多种。
其中,数据类型可以包括视频数据、图像数据等类型;数据量反映出切片数据所占存储空间的大小,存储节点根据切片数据的数据量分配相应的存储空间;数据标识可以用来对切片数据进行校验,以确保切片数据写入到正确的存储位置。
第三种实施方式,目标存储节点,可以用于根据以下信息中的至少一种,确定用于存储所得到切片数据的第一类存储节点:已被目标存储节点分配过的存储节点、存储系统中各存储节点的存活状态、存储系统中各存储节点的剩余存储空间、存储系统中各存储节点的负载压力。
下面对上述四种所根据的信息分别进行介绍。
一、目标存储节点确定第一类存储节点的依据为:已被目标存储节点分配过的存储节点。
目标存储节点可以记录每一次所确定的第一类存储节点的标识。
第一种实现方式,为集中策略,即,目标存储节点在确定第一类存储节点时,可以选取与上一次所确定的第一类存储节点相同的存储节点。
例如,存储系统100中包括:存储节点1、存储节点2、存储节点3、存储节点4、存储节点5,目标存储节点所记录的上一次所确定的第一类存储节点为存储节点1和存储节点2,那么,目标存储节点在本次确定第一类存储节点时,仍然选取存储节点1和存储节点2作为第一类存储节点。
当然,当上一次所确定出的第一类存储节点出现故障、存储空间已满等情况时,则不能再将上一次所确定出的第一类存储节点再作为第一类存储节点,而可以通过目标存储节点确定第一类存储节点的其他依据重新确定第一类存储节点。
第二种实现方式,为分散策略,即,目标存储节点在确定第一类存储节点时,可以选取与之前所确定的第一类存储节点不同的存储节点。可以分为两种情况:第一种情况,可以选取与上一次所确定的第一类存储节点不同的存储节点;第二种情况,可以选取与之前多次所确定的第一类存储节点不同的存储节点。
下面就上述两种情况分别进行说明介绍:
第一种情况,目标存储节点在确定第一类存储节点时,可以选取与上一次所确定的第一类存储节点不同的存储节点;也就是说,所确定的第一类存储节点只要与上一次所确定的第一类存储节点不同即可。
例如,存储系统100中包括:存储节点1、存储节点2、存储节点3、存储节点4、存储节点5,目标存储节点所记录的上一次所确定的存储节点为存储节点1和存储节点2,那么,目标存储节点在本次确定第一类存储节点时,可以从存储节点3、存储节点4以及存储节点5中选取存储节点作为第一类存储节点。
第二种情况,目标存储节点在确定第一类存储节点时,可以选取与之前多次所确定的第一类存储节点不同的存储节点。其中,之前多次的次数可以是自定义设定的。
在上述实现方式的基础上,再进一步地,为了使得切片数据在存储系统100所包含的存储节点中的存储是分散的,目标存储节点在确定第一类存储节点时可以采用轮转策略。
可以预先设定针对存储系统100所包含各存储节点的标识排序表,该标识排序表中记录存储系统100所包含的存储节点所对应标识的排序,排序的规则可以自定义设定;目标存储节点在每一次确定第一类存储节点时,均可以按照该标识排序表进行分配,每一次所确定的第一类存储节点的标识为:上一次所确定的第一类存储节点所对应标识在该标识排序表中的下一标识。
当然,当所确定的第一类存储节点的剩余存储空间不足以存储切片数据时,可以重新确定第一类存储节点。
二、目标存储节点确定第一类存储节点的依据为:存储系统中各存储节点的存活状态。
其中,存储节点的存活状态为:存储节点的故障状态或者完好状态。
存储节点可以定时向目标存储节点上报各自的存活状态,对于目标存储节点来说,也可以实时了解各存储节点的存活状态。这样,目标存储节点在确定第一类存储节点时,可以及时地排除故障的存储节点,而仅从完好的存储节点中确定目标存储节点。这样,可以提高切片数据存储的效率。
三、目标存储节点确定第一类存储节点的依据为:存储系统中各存储节点的剩余存储空间。
可以针对各存储节点的剩余存储空间进行排序,对于剩余存储空间较大的存储节点,可以优先将其确定为第一类存储节点。这样,目标存储节点可以在每进行一次第一类存储节点的确定之后,对各存储节点的剩余存储空间的排序进行更新,所得到的新的剩余存储空间排序可以作为下一次确定第一类存储节点的依据。这样,可以均衡存储系统100中的各存储节点的剩余存储空间。
四、目标存储节点确定第一类存储节点的依据为:存储系统中各存储节点的负载压力。
可以针对存储系统100中所包含的各存储节点的负载压力进行排序,对于负载压力小的存储节点,可以优先将其确定为第一类存储节点。这样,目标存储节点可以在每进行一次第一类存储节点的确定之后,对各存储节点的负载压力排序进行更新,所得到的新的负载压力排序可以作为下一次确定第一类存储节点的依据。这样,可以均衡存储系统100中的各存储节点的负载压力。
当然,对于上述四种信息,可以分别单独地作为目标存储节点确定第一类存储节点的依据,还可以将任意两种、三种或者四种组合作为目标存储节点确定第一类存储节点的依据。在此不做限定。
第四种实施方式,存储系统中还可以包括管理节点,其中,存储系统中的管理节点可以是一个,还可以是多个。在存储系统中包括多个管理节点的情况下,多个管理节点的集合即为一个管理集群,因此,可以认为,存储系统中包括管理集群,管理集群中包括多个管理节点。
下面对该第四种实施方式中的目标存储节点和管理节点分别进行介绍。
一、目标存储节点
在上述图1对应的实施例的基础上,该实施方式中,目标存储节点在对待存储数据进行切片处理得到各切片数据之后,可以记录所得到的各切片数据与该待存储数据之间的对应关系,该对应关系即为一个切片数据的存储索引。
例如,目标存储节点将数据A经过切片处理得到的切片数据包括:切片数据1、切片数据2和切片数据3,则目标存储节点记录的对应关系包括:数据A与切片数据1对应,数据A与切片数据2对应,数据A与切片数据3对应。
目标存储节点在将所接收到的切片数据通过SAS网络分别写入对应的第一类存储位置后,可以记录每一切片数据与该切片数据所存储的第一类存储位置的对应关系,该对应关系也为一个切片数据的存储索引。
例如,目标存储节点所得到的切片数据包括:切片数据A、切片数据B和切片数据C,其中,切片数据A的存储索引1为切片数据A对应于存储位置A,切片数据B的存储索引2为切片数据B对应于存储位置B,切片数据C的存储索引3为切片数据C对应于存储位置C,那么,目标存储节点所生成的存储索引包括存储索引1、存储索引2和存储索引3。
这样,目标存储节点所生成的存储索引包括:该目标存储节点所得到的每一切片数据各自对应的存储索引。
二、管理节点
存储系统中包括管理集群时,可以从管理集群中根据预设的策略选取一个管理节点,用于接收并存储目标存储节点发送的存储索引。
其中,预设的策略可以为根据以下信息中的至少一种,确定用于接收并存储目标存储节点发送的存储索引的管理节点:已分配过的管理节点、管理集群中各管理节点的存活状态、管理集群中各管理节点的负载压力。
用于确定管理节点的策略与上述第三种实施方式中确定第一类存储节点的策略类似,可以对应参考上述第三种实施方式中的依据一、依据二和依据四,在此不再赘述。
在该第四种实施方式,管理节点可以通过所存储的存储索引,更准确快速地查询在存储系统中存储各切片数据的存储位置,进而可以提高数据处理效率。
第五种实施方式,在上述第四种实施方式的基础上,下面对该实施方式中的管理节点和第二类存储节点分别进行介绍。
一、管理节点
管理节点还可以用于接收目标客户端针对待读取数据的读取请求。
其中,目标客户端可以是存储系统外部的、发送读取请求的设备,例如,计算机、手机、平板等客户端设备。待读取数据可以是该存储系统中所存储的数据。
管理节点选取第二类存储节点可以是根据预设的策略,一种实现方式,可以根据以下信息中的至少一种,从存储系统所包括的存储节点中选择第二类存储节点:已被管理节点分配过的存储节点、存储系统中各存储节点的存活状态、存储系统中各存储节点的剩余存储空间、存储系统中各存储节点的负载压力。
管理节点选取第二类存储节点的策略与上述第三种实施方式中确定第一类存储节点的策略类似,可以对应参考上述第三种实施方式中的依据一、依据二、依据三和依据四,在此不再赘述。
管理节点可以根据本地存储的存储索引,确定待读取数据对应的切片数据以及各个切片数据的第二类存储位置。
例如,管理节点根据本地存储的存储索引,可以查询得到待读取数据的切片数据包括:切片数据A、切片数据B、切片数据C,并且可以查询得到各切片数据对应存储的存储位置:切片数据A存储在存储位置A、切片数据B存储在存储位置B、切片数据C存储在存储位置C,那么,存储位置A、存储位置B和存储位置C为第二类存储位置。
二、第二类存储节点
因为存储系统100中所包括的存储节点之间通过SAS网络相连接,因此,第二类存储节点可以从存储系统中其他的存储节点中读取数据。由此,在该实施方式中,第二类存储节点在接收到管理节点发送的第二类存储位置后,可以从第二类存储位置中读取各自存储的切片数据。
例如,管理节点发送的第二类存储位置包括存储位置A、存储位置B和存储位置C,其中,存储位置A中存储切片数据A,存储位置B中存储切片数据B,存储位置C中存储切片数据C,那么,对于第二类存储节点来说,分别从存储位置A中读取切片数据A,从存储位置B中读取切片数据B,从存储位置C中读取切片数据C。
第二类存储节点可以将所读取到的切片数据进行数据还原处理,进而得到目标客户端所需的待读取数据。
其中,第二类存储节点进行数据还原处理可以是通过纠删码技术,通过纠删码技术,第二类存储节点所读取到的切片数据的数量可以是N+M,其中,N为数据片的数量,M为校验片的数量。
当然,第二类存储节点所读取到的切片数据的数量可以小于N+M、且大于或等于N,因为纠删码技术自身的容错特性可以将切片数据恢复到N+M个,再进行数据还原处理,得到待读取数据。
第六种实施方式,在上述第四种实施方式的基础上,下面对该实施方式中的管理节点和第三类存储节点分别进行介绍。
一、管理节点
管理节点可以对存储系统100中所包括的存储节点进行统筹管理,可以实时获取各存储节点的状态信息,其中,存储节点的状态信息可以包括:存储节点的故障信息、剩余存储空间信息、存储节点所包括的硬盘状态信息等信息中的至少一种。
获取存储节点的状态信息的方式可以有多种:
第一种获取方式,可以是各存储节点主动将自身的状态信息发送给管理节点,其中,存储节点可以根据预设的频率发送,预设的频率可以是自定义的,例如,为了保证管理节点获取到的各存储节点的状态信息是具有实时性的,可以将发送的频率设置的高一些;另外,存储节点在发生故障、存储已满等突发状况时,可以立刻将突发状况的信息发送至管理节点。
第二种获取方式,可以是管理节点主动从存储系统中的各存储节点获取各存储节点的状态信息。
当然,管理节点获取存储节点的状态信息的方式不仅限于上述两种,还可以包括其他获取方式,在此不做限定。
根据上述中的任一种获取方式,管理节点可以获取到故障存储节点的故障信息,当然,在该实施方式中,存储节点故障可以是存储节点中的存储位置故障,进而导致存储位置中所存储的数据损坏而不能读取。
其中,故障信息可以包括故障位置中所存储数据的数据量,当然,故障信息还可以包括以下信息中的至少一种:故障位置中所存储数据的数据类型、数据标识信息等。
一种实现方式,管理节点获取故障存储节点中的故障位置;根据本地的存储索引,确定故障位置对应存储的数据,以及故障位置所存储的数据对应的切片数据,并获得所确定的各切片数据对应的存储位置,将所获得的存储位置发送至第三类存储节点。
具体地,管理节点获取的故障位置可以是:发生故障的故障存储节点识别到故障位置后,再将所识别的故障位置上报给管理节点。管理节点在获取到故障位置后,根据本地存储的存储索引中的切片数据与该切片数据对应的第一类存储位置的对应关系,可以确定故障位置对应存储的数据;再根据存储索引中的待存储数据与该待存储数据经切片处理得到的各切片数据的对应关系,进而可以确定出故障位置所存储的数据对应的切片数据;最后再根据存储索引中的切片数据与该切片数据对应的第一类存储位置的对应关系,可以获得所确定的各切片数据对应的存储位置。将所确定的存储位置发送至第三类存储节点。
管理节点可以根据故障位置所存储数据的数据量,从存储系统所包括的存储节点中选择第三类存储节点,选择第三类存储节点可以是根据预设的策略,一种实现方式,可以根据以下信息中的至少一种,从存储系统所包括的存储节点中选择第三类存储节点:已被管理节点分配过的存储节点、存储系统中各存储节点的存活状态、存储系统中各存储节点的剩余存储空间、存储系统中各存储节点的负载压力。
管理节点选取第三类存储节点的策略与上述第三种实施方式中确定第一类存储节点的策略类似,可以对应参考上述第三种实施方式中的依据一、依据二、依据三和依据四,在此不再赘述。
当然,所选取的第三类存储节点可以对数据进行重构处理,重构处理的方式可以是纠删码技术。
二、第三类存储节点
为了恢复故障位置中所存储数据,第三类存储节点可以对故障位置中所存储数据进行重构处理,重构处理的一种实现方式,可以是通过纠删码技术对故障位置中所存储数据进行重构处理,进而可以得到重构数据,所得到的重构数据即为故障位置中所存储的原始数据。
例如,故障位置中所存储的数据为数据A,在通过纠删码技术进行重构处理所得到的重构数据,即为数据A。
一种实现方式,第三类存储节点接收管理节点发送的存储位置,从所接收到的存储位置中读取对应的切片数据,将所读取到的切片数据进行重构处理,得到重构数据。
在第三类存储节点得到重构数据之后,可以为重构数据分配对应的存储位置。其中,第一种分配方式,第三类存储节点所分配的存储位置为一个存储节点中的一个存储位置,这样就可以将重构数据直接存储至所分配的存储位置。当然,所分配的存储位置的剩余存储空间大于重构数据的数据量。
例如,第三类存储节点所得到的重构数据为数据A,且数据A的数据量为10M,那么,第三类存储节点可以为数据A分配一个存储位置,该存储位置的剩余空间大于10M,这样,可以将数据A直接写入该存储位置。
第二种分配方式,可以为重构数据分配多个存储位置,即对重构数据进行分片存储。这种分配方式中,可以先对重构数据进行切片处理,得到切片数据,进而将各切片数据分别写入所分配的存储位置中。当然,第三类存储节点进行切片处理的方式可以是通过纠删码技术进行切片。
当然,对于上述两种分配方式,为重构数据所分配的存储位置既可以是第三类存储节点自身的硬盘,还可以是存储系统100中其他存储节点中的硬盘。在此不作限定。
通过该第六种实施方式,即使存储系统所包括存储节点中的存储位置故障,也可以将故障位置中的数据进行恢复重建,重建数据后存储至其他未故障的硬盘中。这样,避免了因为存储位置故障而导致数据丢失的问题,进而可以提高所存储数据的可靠性。
本发明实施例提供的一种数据存储系统,如图2所示,该存储系统100包括:切片服务器120、至少两个存储节点110,各存储节点110之间通过SAS网络连接;
切片服务器120,用于获取待存储数据,对待存储数据进行切片处理,得到切片数据;从至少两个存储节点中确定接收切片数据的目标存储节点,将所得到的切片数据发送至目标存储节点;
目标存储节点,用于接收切片服务器120发送的切片数据,确定用于存储切片数据的第一类存储节点,并获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置,将所得到的切片数据通过SAS网络写入所获取的第一类存储位置。
其中,本实施例中目标存储节点所得到的切片数据是由切片服务器120发送的,目标存储节点在接收到切片数据之后,所执行的操作与图1对应的实施例中目标存储节点所执行的操作相同,具体可以参见上述图1所对应的实施例中目标存储节点的说明部分,在此不再赘述。
针对于切片服务器120
切片服务器120,用于获取待存储数据,对待存储数据进行切片处理,得到切片数据;从至少两个存储节点中确定接收切片数据的目标存储节点,将所得到的切片数据发送至目标存储节点。
下面对切片服务器120所执行的各步骤分别进行说明。
第一步骤,获取待存储数据,对待存储数据进行切片处理,得到切片数据。
该步骤可以参见上述图1对应的实施例中目标存储节点用于获取待存储数据,对待存储数据进行切片处理,得到切片数据的说明,在此不再赘述。
第二步骤,从至少两个存储节点中确定接收切片数据的目标存储节点,将所得到的切片数据发送至目标存储节点。
第七种实施方式中,切片数据在对待存储数据进行切片处理得到切片数据之后,切片服务器120可以向管理节点发送第二存储请求,第二存储请求是切片服务器120向管理节点请求分配存储节点的请求。第二存储请求中可以携带切片数据的相关信息,例如,切片服务器120所得到的切片数据的数量、切片数据的大小等。
管理节点接收切片服务器120发送的第二存储请求,根据第二存储请求从存储系统所包括的存储节点中确定目标存储节点。
一种实现方式,管理节点可以根据以下信息中的至少一种,从存储系统所包括的存储节点中确定目标存储节点:已被管理节点分配过的存储节点;存储系统中各存储节点的存活状态;存储系统中各存储节点的剩余存储空间;存储系统中各存储节点的负载压力。
该实现方式与上述第三种实施方式中确定第一类存储节点的策略类似,可以对应参考上述第三种实施方式中的依据一、依据二、依据三和依据四,在此不再赘述。
管理节点在确定出目标存储节点后,将所确定的目标存储节点的标识发送至切片服务器120。其中,标识可以是IP(Internet Protocol,互联网协议)地址、MAC(MediaAccess Control,媒体访问控制)地址、编码等。
切片服务器120在接收到管理节点发送的标识后,便可以确定出标识所对应的目标存储节点,将所得到的切片数据发送至目标存储节点
通过本发明实施例提供的技术方案,将待存储数据进行切片处理后,目标存储节点可以分别将切片处理所得到的切片数据直接写入对应的存储位置,这样,避免了因为数据传输而导致的传输延迟,进而提高了数据存储效率。
第八种实施方式中,目标存储节点,获取所确定第一类存储节点中用于存储切片数据的第一类存储位置,可以包括:
目标存储节点,用于向所确定的第一类存储节点发送第一存储请求;接收所确定的第一类存储节点发送的第一类存储位置,第一类存储位置为:所确定的第一类存储节点所分配的用于存储切片数据的位置。
本实施例中的该第八种实施方式与上述第二种实施方式相同,可以参见上述第二种实施方式,在此不再赘述。
第九种实施方式中,目标存储节点,用于确定用于存储切片数据的第一类存储节点,可以包括:
目标存储节点,用于根据以下信息中的至少一种,确定用于存储切片数据的第一类存储节点:已被目标存储节点分配过的存储节点;存储系统中各存储节点的存活状态;存储系统中各存储节点的剩余存储空间;存储系统中各存储节点的负载压力。
本实施例中的该第九种实施方式与上述第三种实施方式相同,可以参见上述第三种实施方式,在此不再赘述。
第十种实施方式中,存储系统还包括管理节点;目标存储节点,用于生成所得到的每一切片数据的存储索引,其中,一个切片数据的存储索引记录包括该切片数据与该切片数据对应的第一类存储位置的对应关系和该待存储数据待存储数据与经切片处理得到的各切片数据的对应关系;将所生成的存储索引发送至管理节点;
管理节点,用于接收并存储目标存储节点发送的存储索引。
本实施例中的该第十种实施方式与上述第四种实施方式相同,可以参见上述第四种实施方式,在此不再赘述。
第十一种实施方式中,在上述第十种实施方式的基础上,管理节点,还用于接收目标客户端针对待读取数据的读取请求,并从存储系统包括的存储节点中选择存储节点,作为第二类存储节点;根据本地存储的存储索引,确定待读取数据对应的切片数据以及各个切片数据的第二类存储位置,并将第二类存储位置发送至第二类存储节点;
第二类存储节点,用于接收管理节点发送的第二类存储位置,从第二类存储位置中读取切片数据,将所读取到的切片数据进行还原处理,得到待读取数据,并将待读取数据发送至目标客户端。
本实施例中的该第十一种实施方式与上述第五种实施方式相同,可以参见上述第五种实施方式,在此不再赘述。
第十二种实施方式中,在上述第十种实施方式的基础上,管理节点,用于获得故障存储节点的故障位置中所存储数据的数据量,根据数据量,从存储系统包括的存储节点中选择用于重构故障位置所存储数据的存储节点,作为第三类存储节点;
第三类存储节点,用于对故障位置所存储的数据进行重构,得到重构数据,为重构数据分配存储位置,并将重构数据写入所分配的存储位置。
本实施例中的该第十二种实施方式与上述第六种实施方式相同,可以参见上述第六种实施方式,在此不再赘述。
第十三种实施方式中,在上述第十二种实施方式的基础上,管理节点,具体用于获取故障存储节点中的故障位置;根据本地的存储索引,确定所述故障位置对应存储的数据,以及所述故障位置所存储的数据对应的切片数据,并获得所确定的各切片数据对应的存储位置,将所获得的存储位置发送至第三类存储节点,所述第三类存储节点为:根据所述故障位置所存储数据的数据量从所述存储系统包括的存储节点中所选择的用于重构所述故障位置所存储数据的存储节点;
第三类存储节点,用于接收管理节点发送的存储位置,从所接收到的存储位置中读取对应的切片数据,将所读取到的切片数据进行重构处理,得到重构数据,为重构数据分配存储位置,并将重构数据写入所分配的存储位置。
本实施例中的该第十三种实施方式与上述第六种实施方式中的一种实现方式相同,可以参见上述第六种实施方式中的一种实现方式,在此不再赘述。
通过本发明实施例提供的技术方案,将待存储数据进行切片处理后,目标存储节点可以分别将切片处理所得到的切片数据直接写入对应的存储位置,这样,避免了因为数据传输而导致的传输延迟,进而提高了数据存储效率。
相应于上述图1对应的系统实施例,本发明实施例还提供一种数据存储方法,应用于存储系统中的目标存储节点,存储系统包括至少两个存储节点,各存储节点之间通过SAS网络连接,目标存储节点为存在待存储数据的存储节点;
如图3所示,该方法包括如下步骤:
S301,获取待存储数据;
S302,对待存储数据进行切片处理,得到切片数据;
S303,确定用于存储所得到的切片数据的第一类存储节点;
S304,获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置;
S305,将所得到的切片数据通过SAS网络写入所获取的第一类存储位置。
可选地,一种实施方式中,获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置(S304)的步骤,可以包括如下步骤:
向所确定的第一类存储节点发送第一存储请求;
接收所确定的第一类存储节点发送的第一类存储位置,第一类存储位置为:所确定的第一类存储节点所分配的用于存储切片数据的位置。
可选地,一种实施方式中,确定用于存储所得到的切片数据的第一类存储节点(S303)的步骤,可以包括如下步骤:
根据以下信息中的至少一种,确定用于存储所得到的切片数据的第一类存储节点:
已被目标存储节点分配过的存储节点;
存储系统中各存储节点的存活状态;
存储系统中各存储节点的剩余存储空间;
存储系统中各存储节点的负载压力。
可选地,一种实施方式中,存储系统还可以包括管理节点;
将所得到的切片数据通过SAS网络写入所获取的第一类存储位置(S305)的步骤之后,还可以包括如下步骤:
生成所得到的每一切片数据的存储索引,其中,一个切片数据的存储索引记录包括该切片数据与该切片数据对应的第一类存储位置的对应关系和待存储数据与该待存储数据经切片处理得到的各切片数据的对应关系;
将所生成的存储索引发送至管理节点。
通过本发明实施例提供的技术方案,将待存储数据进行切片处理后,目标存储节点可以分别将切片处理所得到的切片数据直接写入对应的存储位置,这样,避免了因为数据传输而导致的传输延迟,进而提高了数据存储效率。
相应于上述图2对应的系统实施例,本发明实施例还提供一种数据存储方法,应用于存储系统中的目标存储节点,存储系统包括:至少两个存储节点、切片服务器,各存储节点之间通过SAS网络连接,目标存储节点为:存储系统所包括的存储节点中接收切片数据的存储节点;
如图4所示,该方法包括如下步骤:
S401,接收切片服务器发送的切片数据,切片数据为:切片服务器对待存储数据进行切片处理得到的数据;
S402,确定用于存储切片数据的第一类存储节点;
S403,获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置;
S404,将所得到的切片数据通过SAS网络写入所获取的第一类存储位置。
可选地,一种实施方式中,获取所确定第一类存储节点中用于存储切片数据的第一类存储位置(S403)的步骤,可以包括如下步骤:
向所确定的第一类存储节点发送第一存储请求;
接收所确定的第一类存储节点发送的第一类存储位置,第一类存储位置为:所确定的第一类存储节点所分配的用于存储切片数据的位置。
可选地,一种实施方式中,确定用于存储切片数据的第一类存储节点(S402)的步骤,可以包括如下步骤:
根据以下信息中的至少一种,确定用于存储切片数据的第一类存储节点:
已被目标存储节点分配过的存储节点;
存储系统中各存储节点的存活状态;
存储系统中各存储节点的剩余存储空间;
存储系统中各存储节点的负载压力。
可选地,一种实施方式中,存储系统还包括管理节点;
将所得到的切片数据通过SAS网络写入所获取的第一类存储位置(S404)的步骤之后,还可以包括如下步骤:
生成所得到的每一切片数据的存储索引,其中,一个切片数据的存储索引记录包括该切片数据与该切片数据对应的第一类存储位置的对应关系和待存储数据与该待存储数据经切片处理得到的各切片数据的对应关系;
将所生成的存储索引发送至管理节点。
通过本发明实施例提供的技术方案,将待存储数据进行切片处理后,目标存储节点可以分别将切片处理所得到的切片数据直接写入对应的存储位置,这样,避免了因为数据传输而导致的传输延迟,进而提高了数据存储效率。
相应于上述图3对应的方法实施例,本发明实施例还提供一种数据存储装置,应用于存储系统中的目标存储节点,存储系统包括至少两个存储节点,各存储节点之间通过SAS网络连接,目标存储节点为存在待存储数据的存储节点;
如图5所示,该装置包括:
第一获取模块510,用于获取待存储数据;
切片处理模块520,用于对待存储数据进行切片处理,得到切片数据;
第一确定模块530,用于确定用于存储所得到的切片数据的第一类存储节点;
第二获取模块540,用于获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置;
第一写入模块550,用于将所得到的切片数据通过SAS网络写入所获取的第一类存储位置。
可选地,一种实施方式中,第二获取模块540可以包括:
第一发送子模块,用于向所确定的第一类存储节点发送第一存储请求;
第一接收子模块,用于接收所确定的第一类存储节点发送的第一类存储位置,第一类存储位置为:所确定的第一类存储节点所分配的用于存储切片数据的位置。
可选地,一种实施方式中,第一确定模块530具体用于:
根据以下信息中的至少一种,确定用于存储所得到的切片数据的第一类存储节点:
已被目标存储节点分配过的存储节点;
存储系统中各存储节点的存活状态;
存储系统中各存储节点的剩余存储空间;
存储系统中各存储节点的负载压力。
可选地,一种实施方式中,存储系统还可以包括管理节点;装置还可以包括:
第一生成模块,用于生成所得到的每一切片数据的存储索引,其中,一个切片数据的存储索引记录包括该切片数据与该切片数据对应的第一类存储位置的对应关系和待存储数据与该待存储数据经切片处理得到的各切片数据的对应关系;
第一发送模块,用于将所生成的存储索引发送至管理节点。
通过本发明实施例提供的技术方案,将待存储数据进行切片处理后,目标存储节点可以分别将切片处理所得到的切片数据直接写入对应的存储位置,这样,避免了因为数据传输而导致的传输延迟,进而提高了数据存储效率。
相应于上述图4对应的方法实施例,本发明实施例还提供一种数据存储装置,应用于存储系统中的目标存储节点,存储系统包括:至少两个存储节点、切片服务器,各存储节点之间通过SAS网络连接,目标存储节点为:存储系统所包括的存储节点中接收切片数据的存储节点;
如图6所示,该装置包括:
接收模块610,用于接收切片服务器发送的切片数据,切片数据为:切片服务器对待存储数据进行切片处理得到的数据;
第二确定模块620,用于确定用于存储切片数据的第一类存储节点;
第三获取模块630,用于获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置;
第二写入模块640,用于将所得到的切片数据通过SAS网络写入所获取的第一类存储位置。
可选地,一种实施方式中,第三获取模块630可以包括:
第二发送子模块,用于向所确定的第一类存储节点发送第一存储请求;
第二接收子模块,用于接收所确定的第一类存储节点发送的第一类存储位置,第一类存储位置为:所确定的第一类存储节点所分配的用于存储切片数据的位置。
可选地,一种实施方式中,第二确定模块620具体用于:
根据以下信息中的至少一种,确定用于存储切片数据的第一类存储节点:
已被目标存储节点分配过的存储节点;
存储系统中各存储节点的存活状态;
存储系统中各存储节点的剩余存储空间;
存储系统中各存储节点的负载压力。
可选地,一种实施方式中,存储系统还可以包括管理节点;装置还可以包括:
第二生成模块,用于生成所得到的每一切片数据的存储索引,其中,一个切片数据的存储索引记录包括该切片数据与该切片数据对应的第一类存储位置的对应关系和待存储数据与该待存储数据经切片处理得到的各切片数据的对应关系;
第二发送模块,用于将所生成的存储索引发送至管理节点。
通过本发明实施例提供的技术方案,将待存储数据进行切片处理后,目标存储节点可以分别将切片处理所得到的切片数据直接写入对应的存储位置,这样,避免了因为数据传输而导致的传输延迟,进而提高了数据存储效率。
本发明实施例还提供了一种电子设备,如图7所示,包括处理器710和存储器720;
存储器720,用于存放计算机程序;
处理器710,用于执行存储器720上所存放的程序时,实现如下步骤:
获取待存储数据;
对待存储数据进行切片处理,得到切片数据;
确定用于存储所得到的切片数据的第一类存储节点;
获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置;
将所得到的切片数据通过SAS网络写入所获取的第一类存储位置。
通过本发明实施例提供的技术方案,将待存储数据进行切片处理后,目标存储节点可以分别将切片处理所得到的切片数据直接写入对应的存储位置,这样,避免了因为数据传输而导致的传输延迟,进而提高了数据存储效率。
当然,本发明实施例提供的一种电子设备还可以执行上述实施例中任一所述的一种数据存储方法。具体见图3以及图3所对应的实施例,这里不再赘述。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述图3以及图3所对应的实施例中任一所述的一种数据存储方法。
本发明实施例还提供一种电子设备,可以实现如下步骤:
接收切片服务器发送的切片数据,切片数据为:切片服务器对待存储数据进行切片处理得到的数据;
确定用于存储切片数据的第一类存储节点;
获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置;
将所得到的切片数据通过SAS网络写入所获取的第一类存储位置。
通过本发明实施例提供的技术方案,将待存储数据进行切片处理后,目标存储节点可以分别将切片处理所得到的切片数据直接写入对应的存储位置,这样,避免了因为数据传输而导致的传输延迟,进而提高了数据存储效率。
当然,本发明实施例提供的一种电子设备还可以执行上述实施例中任一所述的一种数据存储方法。具体见图4以及图4所对应的实施例,这里不再赘述。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述图4以及图4所对应的实施例中任一所述的一种数据存储方法。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例、装置实施例而言,由于其基本相似于系统实施例,所以描述的比较简单,相关之处参见系统实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (36)
1.一种数据存储系统,其特征在于,所述存储系统包括至少两个存储节点,各存储节点之间通过SAS网络连接,目标存储节点为获取待存储数据的存储节点;
目标存储节点,用于获取待存储数据,对所述待存储数据进行切片处理得到切片数据;确定用于存储所得到的切片数据的第一类存储节点,并获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置,将所得到的切片数据通过所述SAS网络写入所获取的第一类存储位置。
2.根据权利要求1所述的存储系统,其特征在于,所述目标存储节点,获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置,包括:
所述目标存储节点,用于向所确定的第一类存储节点发送第一存储请求;接收所确定的第一类存储节点发送的第一类存储位置,所述第一类存储位置为:所确定的第一类存储节点所分配的用于存储切片数据的位置。
3.根据权利要求1所述的存储系统,其特征在于,所述目标存储节点,用于确定用于存储所得到的切片数据的第一类存储节点,包括:
所述目标存储节点,用于根据以下信息中的至少一种,确定用于存储所得到的切片数据的第一类存储节点:
已被所述目标存储节点分配过的存储节点;
所述存储系统中各存储节点的存活状态;
所述存储系统中各存储节点的剩余存储空间;
所述存储系统中各存储节点的负载压力。
4.根据权利要求1所述的存储系统,其特征在于,所述存储系统还包括管理节点;
所述目标存储节点,用于生成所得到的每一切片数据的存储索引,其中,一个切片数据的存储索引记录包括:该切片数据与该切片数据对应的第一类存储位置的对应关系和待存储数据与该待存储数据经切片处理得到的各切片数据的对应关系;将所生成的存储索引发送至所述管理节点;
所述管理节点,用于接收并存储所述目标存储节点发送的存储索引。
5.根据权利要求4所述的存储系统,其特征在于,
所述管理节点,还用于接收目标客户端针对待读取数据的读取请求,并从所述存储系统包括的存储节点中选择存储节点,作为第二类存储节点;根据本地存储的存储索引,确定所述待读取数据对应的切片数据以及各个切片数据的第二类存储位置,并将所述第二类存储位置发送至所述第二类存储节点;
所述第二类存储节点,用于接收所述管理节点发送的所述第二类存储位置,从所述第二类存储位置中读取切片数据,将所读取到的切片数据进行还原处理,得到所述待读取数据,并将所述待读取数据发送至所述目标客户端。
6.根据权利要求4所述的存储系统,其特征在于,
所述管理节点,用于获得故障存储节点的故障位置中所存储数据的数据量,根据所述数据量,从所述存储系统包括的存储节点中选择用于重构所述故障位置所存储数据的存储节点,作为第三类存储节点;
所述第三类存储节点,用于对所述故障位置所存储的数据进行重构,得到重构数据,为所述重构数据分配存储位置,并将所述重构数据写入所分配的存储位置。
7.根据权利要求6所述的存储系统,其特征在于,
所述管理节点,具体用于获取故障存储节点中的故障位置;根据本地的存储索引,确定所述故障位置对应存储的数据,以及所述故障位置所存储的数据对应的切片数据,并获得所确定的各切片数据对应的存储位置,将所获得的存储位置发送至第三类存储节点,所述第三类存储节点为:根据所述故障位置所存储数据的数据量从所述存储系统包括的存储节点中所选择的用于重构所述故障位置所存储数据的存储节点;
所述第三类存储节点,用于接收所述管理节点发送的存储位置,从所接收到的存储位置中读取对应的切片数据,将所读取到的切片数据进行重构处理,得到重构数据,为所述重构数据分配存储位置,并将所述重构数据写入所分配的存储位置。
8.一种数据存储系统,其特征在于,所述存储系统包括:切片服务器、至少两个存储节点,各存储节点之间通过SAS网络连接;
所述切片服务器,用于获取待存储数据,对所述待存储数据进行切片处理,得到切片数据;从所述至少两个存储节点中确定接收切片数据的目标存储节点,将所得到的切片数据发送至所述目标存储节点;
所述目标存储节点,用于接收所述切片服务器发送的切片数据,确定用于存储切片数据的第一类存储节点,并获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置,将所得到的切片数据通过所述SAS网络写入所获取的第一类存储位置。
9.根据权利要求8所述的存储系统,其特征在于,所述目标存储节点,获取所确定第一类存储节点中用于存储切片数据的第一类存储位置,包括:
所述目标存储节点,用于向所确定的第一类存储节点发送第一存储请求;接收所确定的第一类存储节点发送的第一类存储位置,所述第一类存储位置为:所确定的第一类存储节点所分配的用于存储切片数据的位置。
10.根据权利要求8所述的存储系统,其特征在于,所述目标存储节点,用于确定用于存储切片数据的第一类存储节点,包括:
所述目标存储节点,用于根据以下信息中的至少一种,确定用于存储切片数据的第一类存储节点:
已被所述目标存储节点分配过的存储节点;
所述存储系统中各存储节点的存活状态;
所述存储系统中各存储节点的剩余存储空间;
所述存储系统中各存储节点的负载压力。
11.根据权利要求8所述的存储系统,其特征在于,所述存储系统还包括管理节点;
所述目标存储节点,用于生成所得到的每一切片数据的存储索引,其中,一个切片数据的存储索引记录包括:该切片数据与该切片数据对应的第一类存储位置的对应关系和待存储数据与该待存储数据经切片处理得到的各切片数据的对应关系;将所生成的存储索引发送至所述管理节点;
所述管理节点,用于接收并存储所述目标存储节点发送的存储索引。
12.根据权利要求11所述的存储系统,其特征在于,
所述管理节点,还用于接收目标客户端针对待读取数据的读取请求,并从所述存储系统包括的存储节点中选择存储节点,作为第二类存储节点;根据本地存储的存储索引,确定所述待读取数据对应的切片数据以及各个切片数据的第二类存储位置,并将所述第二类存储位置发送至所述第二类存储节点;
所述第二类存储节点,用于接收所述管理节点发送的所述第二类存储位置,从所述第二类存储位置中读取切片数据,将所读取到的切片数据进行还原处理,得到所述待读取数据,并将所述待读取数据发送至所述目标客户端。
13.根据权利要求11所述的存储系统,其特征在于,
所述管理节点,用于获得故障存储节点的故障位置中所存储数据的数据量,根据所述数据量,从所述存储系统包括的存储节点中选择用于重构所述故障位置所存储数据的存储节点,作为第三类存储节点;
所述第三类存储节点,用于对所述故障位置所存储的数据进行重构,得到重构数据,为所述重构数据分配存储位置,并将所述重构数据写入所分配的存储位置。
14.根据权利要求13所述的存储系统,其特征在于,
所述管理节点,具体用于获取故障存储节点中的故障位置;根据本地的存储索引,确定所述故障位置对应存储的数据,以及所述故障位置所存储的数据对应的切片数据,并获得所确定的各切片数据对应的存储位置,将所获得的存储位置发送至第三类存储节点,所述第三类存储节点为:根据所述故障位置所存储数据的数据量从所述存储系统包括的存储节点中所选择的用于重构所述故障位置所存储数据的存储节点;
所述第三类存储节点,用于接收所述管理节点发送的存储位置,从所接收到的存储位置中读取对应的切片数据,将所读取到的切片数据进行重构处理,得到重构数据,为所述重构数据分配存储位置,并将所述重构数据写入所分配的存储位置。
15.根据权利要求8所述的存储系统,其特征在于,所述存储系统还包括管理节点;
所述切片服务器,从所述至少两个存储节点中确定接收切片数据的目标存储节点,包括:
所述切片服务器,用于向所述管理节点发送第二存储请求;
所述管理节点,用于接收所述切片服务器发送的所述第二存储请求,从所述存储系统所包括的存储节点中确定目标存储节点,并将所确定的目标存储节点的标识发送至所述切片服务器;
所述切片服务器,用于接收所述管理节点发送的标识,并确定所述标识对应的目标存储节点。
16.根据权利要求15所述的存储系统,其特征在于,所述管理节点,从所述存储系统所包括的存储节点中确定目标存储节点,包括:
所述管理节点,用于根据以下信息中的至少一种,从所述存储系统所包括的存储节点中确定目标存储节点:
已被所述管理节点分配过的存储节点;
所述存储系统中各存储节点的存活状态;
所述存储系统中各存储节点的剩余存储空间;
所述存储系统中各存储节点的负载压力。
17.一种数据存储方法,其特征在于,应用于存储系统中的目标存储节点,所述存储系统包括至少两个存储节点,各存储节点之间通过SAS网络连接,所述目标存储节点为存在待存储数据的存储节点;
所述方法包括:
获取待存储数据;
对所述待存储数据进行切片处理,得到切片数据;
确定用于存储所得到的切片数据的第一类存储节点;
获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置;
将所得到的切片数据通过所述SAS网络写入所获取的第一类存储位置。
18.根据权利要求17所述的方法,其特征在于,所述获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置的步骤,包括:
向所确定的第一类存储节点发送第一存储请求;
接收所确定的第一类存储节点发送的第一类存储位置,所述第一类存储位置为:所确定的第一类存储节点所分配的用于存储切片数据的位置。
19.根据权利要求17所述的方法,其特征在于,所述确定用于存储所得到的切片数据的第一类存储节点的步骤,包括:
根据以下信息中的至少一种,确定用于存储所得到的切片数据的第一类存储节点:
已被所述目标存储节点分配过的存储节点;
所述存储系统中各存储节点的存活状态;
所述存储系统中各存储节点的剩余存储空间;
所述存储系统中各存储节点的负载压力。
20.根据权利要求17所述的方法,其特征在于,所述存储系统还包括管理节点;
所述将所得到的切片数据通过所述SAS网络写入所获取的第一类存储位置的步骤之后,还包括:
生成所得到的每一切片数据的存储索引,其中,一个切片数据的存储索引记录包括:该切片数据与该切片数据对应的第一类存储位置的对应关系和待存储数据与该待存储数据经切片处理得到的各切片数据的对应关系;
将所生成的存储索引发送至所述管理节点。
21.一种数据存储方法,其特征在于,应用于存储系统中的目标存储节点,所述存储系统包括:至少两个存储节点、切片服务器,各存储节点之间通过SAS网络连接,所述目标存储节点为:所述存储系统所包括的存储节点中接收切片数据的存储节点;
所述方法包括:
接收所述切片服务器发送的切片数据,所述切片数据为:所述切片服务器对待存储数据进行切片处理得到的数据;
确定用于存储切片数据的第一类存储节点;
获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置;
将所得到的切片数据通过所述SAS网络写入所获取的第一类存储位置。
22.根据权利要求21所述的方法,其特征在于,所述获取所确定第一类存储节点中用于存储切片数据的第一类存储位置的步骤,包括:
向所确定的第一类存储节点发送第一存储请求;
接收所确定的第一类存储节点发送的第一类存储位置,所述第一类存储位置为:所确定的第一类存储节点所分配的用于存储切片数据的位置。
23.根据权利要求21所述的方法,其特征在于,所述确定用于存储切片数据的第一类存储节点的步骤,包括:
根据以下信息中的至少一种,确定用于存储切片数据的第一类存储节点:
已被所述目标存储节点分配过的存储节点;
所述存储系统中各存储节点的存活状态;
所述存储系统中各存储节点的剩余存储空间;
所述存储系统中各存储节点的负载压力。
24.根据权利要求21所述的方法,其特征在于,所述存储系统还包括管理节点;
所述将所得到的切片数据通过所述SAS网络写入所获取的第一类存储位置的步骤之后,还包括:
生成所得到的每一切片数据的存储索引,其中,一个切片数据的存储索引记录包括:该切片数据与该切片数据对应的第一类存储位置的对应关系和待存储数据与该待存储数据经切片处理得到的各切片数据的对应关系;
将所生成的存储索引发送至所述管理节点。
25.一种数据存储装置,其特征在于,应用于存储系统中的目标存储节点,所述存储系统包括至少两个存储节点,各存储节点之间通过SAS网络连接,所述目标存储节点为存在待存储数据的存储节点;
所述装置包括:
第一获取模块,用于获取待存储数据;
切片处理模块,用于对所述待存储数据进行切片处理,得到切片数据;
第一确定模块,用于确定用于存储所得到的切片数据的第一类存储节点;
第二获取模块,用于获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置;
第一写入模块,用于将所得到的切片数据通过所述SAS网络写入所获取的第一类存储位置。
26.根据权利要求25所述的装置,其特征在于,所述第二获取模块包括:
第一发送子模块,用于向所确定的第一类存储节点发送第一存储请求;
第一接收子模块,用于接收所确定的第一类存储节点发送的第一类存储位置,所述第一类存储位置为:所确定的第一类存储节点所分配的用于存储切片数据的位置。
27.根据权利要求25所述的装置,其特征在于,所述第一确定模块具体用于:
根据以下信息中的至少一种,确定用于存储所得到的切片数据的第一类存储节点:
已被所述目标存储节点分配过的存储节点;
所述存储系统中各存储节点的存活状态;
所述存储系统中各存储节点的剩余存储空间;
所述存储系统中各存储节点的负载压力。
28.根据权利要求25所述的装置,其特征在于,所述存储系统还包括管理节点;
所述装置还包括:
第一生成模块,用于生成所得到的每一切片数据的存储索引,其中,一个切片数据的存储索引记录包括:该切片数据与该切片数据对应的第一类存储位置的对应关系和待存储数据与该待存储数据经切片处理得到的各切片数据的对应关系;
第一发送模块,用于将所生成的存储索引发送至所述管理节点。
29.一种数据存储装置,其特征在于,应用于存储系统中的目标存储节点,所述存储系统包括:至少两个存储节点、切片服务器,各存储节点之间通过SAS网络连接,所述目标存储节点为:所述存储系统所包括的存储节点中接收切片数据的存储节点;
所述装置包括:
接收模块,用于接收所述切片服务器发送的切片数据,所述切片数据为:所述切片服务器对待存储数据进行切片处理得到的数据;
第二确定模块,用于确定用于存储切片数据的第一类存储节点;
第三获取模块,用于获取所确定的第一类存储节点中用于存储切片数据的第一类存储位置;
第二写入模块,用于将所得到的切片数据通过所述SAS网络写入所获取的第一类存储位置。
30.根据权利要求29所述的装置,其特征在于,所述第三获取模块包括:
第二发送子模块,用于向所确定的第一类存储节点发送第一存储请求;
第二接收子模块,用于接收所确定的第一类存储节点发送的第一类存储位置,所述第一类存储位置为:所确定的第一类存储节点所分配的用于存储切片数据的位置。
31.根据权利要求29所述的装置,其特征在于,所述第二确定模块具体用于:
根据以下信息中的至少一种,确定用于存储切片数据的第一类存储节点:
已被所述目标存储节点分配过的存储节点;
所述存储系统中各存储节点的存活状态;
所述存储系统中各存储节点的剩余存储空间;
所述存储系统中各存储节点的负载压力。
32.根据权利要求29所述的装置,其特征在于,所述存储系统还包括管理节点;
所述装置还包括:
第二生成模块,用于生成所得到的每一切片数据的存储索引,其中,一个切片数据的存储索引记录包括:该切片数据与该切片数据对应的第一类存储位置的对应关系和待存储数据与该待存储数据经切片处理得到的各切片数据的对应关系;
第二发送模块,用于将所生成的存储索引发送至所述管理节点。
33.一种电子设备,其特征在于,包括处理器和存储器;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求17-20任一所述的方法步骤。
34.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求17-20任一所述的方法步骤。
35.一种电子设备,其特征在于,包括处理器和存储器;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求21-24任一所述的方法步骤。
36.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求21-24任一所述的方法步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810193323.5A CN110244904B (zh) | 2018-03-09 | 2018-03-09 | 一种数据存储系统、方法及装置 |
PCT/CN2019/075696 WO2019170004A1 (zh) | 2018-03-09 | 2019-02-21 | 一种数据存储系统、方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810193323.5A CN110244904B (zh) | 2018-03-09 | 2018-03-09 | 一种数据存储系统、方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110244904A true CN110244904A (zh) | 2019-09-17 |
CN110244904B CN110244904B (zh) | 2020-08-28 |
Family
ID=67845508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810193323.5A Active CN110244904B (zh) | 2018-03-09 | 2018-03-09 | 一种数据存储系统、方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110244904B (zh) |
WO (1) | WO2019170004A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111404980A (zh) * | 2019-09-29 | 2020-07-10 | 杭州海康威视系统技术有限公司 | 一种数据存储方法及一种对象存储系统 |
CN111399761A (zh) * | 2019-11-19 | 2020-07-10 | 杭州海康威视系统技术有限公司 | 存储资源分配方法、装置及设备、存储介质 |
CN112486421A (zh) * | 2020-12-16 | 2021-03-12 | 上海达梦数据库有限公司 | 一种数据存储方法、装置、电子设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050289386A1 (en) * | 2004-06-24 | 2005-12-29 | Dell Products L.P. | Redundant cluster network |
KR20060068083A (ko) * | 2004-12-15 | 2006-06-21 | 한국정보보호진흥원 | 분산 저장장치 기반 침입 탐지 시스템 및 방법 |
CN102279777A (zh) * | 2011-08-18 | 2011-12-14 | 成都市华为赛门铁克科技有限公司 | 数据冗余处理方法、装置和分布式存储系统 |
CN102663005A (zh) * | 2012-03-19 | 2012-09-12 | 杭州海康威视系统技术有限公司 | 基于云计算的海量视频文件存储系统、分析方法及其系统 |
CN102752402A (zh) * | 2012-07-20 | 2012-10-24 | 广东威创视讯科技股份有限公司 | 一种云存储方法及系统 |
CN105138280A (zh) * | 2015-07-31 | 2015-12-09 | 成都华为技术有限公司 | 数据写入方法、装置及系统 |
CN105659213A (zh) * | 2013-10-18 | 2016-06-08 | 日立数据系统工程英国有限公司 | 无共享分布式存储系统中的目标驱动独立数据完整性和冗余恢复 |
CN105872031A (zh) * | 2016-03-26 | 2016-08-17 | 天津书生云科技有限公司 | 存储系统 |
CN206178763U (zh) * | 2016-08-31 | 2017-05-17 | 金友兵 | 一种具有高可用性的数据存储装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8140625B2 (en) * | 2007-02-20 | 2012-03-20 | Nec Laboratories America, Inc. | Method for operating a fixed prefix peer to peer network |
CN105025053A (zh) * | 2014-04-24 | 2015-11-04 | 苏宁云商集团股份有限公司 | 基于云存储技术的分布式文件的上传方法及其系统 |
CN106657356A (zh) * | 2016-12-29 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种云存储系统的数据写入方法、装置及云存储系统 |
-
2018
- 2018-03-09 CN CN201810193323.5A patent/CN110244904B/zh active Active
-
2019
- 2019-02-21 WO PCT/CN2019/075696 patent/WO2019170004A1/zh active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050289386A1 (en) * | 2004-06-24 | 2005-12-29 | Dell Products L.P. | Redundant cluster network |
KR20060068083A (ko) * | 2004-12-15 | 2006-06-21 | 한국정보보호진흥원 | 분산 저장장치 기반 침입 탐지 시스템 및 방법 |
CN102279777A (zh) * | 2011-08-18 | 2011-12-14 | 成都市华为赛门铁克科技有限公司 | 数据冗余处理方法、装置和分布式存储系统 |
CN102663005A (zh) * | 2012-03-19 | 2012-09-12 | 杭州海康威视系统技术有限公司 | 基于云计算的海量视频文件存储系统、分析方法及其系统 |
CN102752402A (zh) * | 2012-07-20 | 2012-10-24 | 广东威创视讯科技股份有限公司 | 一种云存储方法及系统 |
CN105659213A (zh) * | 2013-10-18 | 2016-06-08 | 日立数据系统工程英国有限公司 | 无共享分布式存储系统中的目标驱动独立数据完整性和冗余恢复 |
CN105138280A (zh) * | 2015-07-31 | 2015-12-09 | 成都华为技术有限公司 | 数据写入方法、装置及系统 |
CN105872031A (zh) * | 2016-03-26 | 2016-08-17 | 天津书生云科技有限公司 | 存储系统 |
CN206178763U (zh) * | 2016-08-31 | 2017-05-17 | 金友兵 | 一种具有高可用性的数据存储装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111404980A (zh) * | 2019-09-29 | 2020-07-10 | 杭州海康威视系统技术有限公司 | 一种数据存储方法及一种对象存储系统 |
CN111399761A (zh) * | 2019-11-19 | 2020-07-10 | 杭州海康威视系统技术有限公司 | 存储资源分配方法、装置及设备、存储介质 |
CN112486421A (zh) * | 2020-12-16 | 2021-03-12 | 上海达梦数据库有限公司 | 一种数据存储方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110244904B (zh) | 2020-08-28 |
WO2019170004A1 (zh) | 2019-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20010042222A1 (en) | System and method for reconstructing data associated with protected storage volume stored in multiple modules of back-up mass data storage facility | |
US11394777B2 (en) | Reliable data storage for decentralized computer systems | |
CN108780386A (zh) | 一种数据存储的方法、装置和系统 | |
CN110244904A (zh) | 一种数据存储系统、方法及装置 | |
CN103051681B (zh) | 一种面向分布式文件系统的协作式日志系统 | |
CN106844108B (zh) | 一种数据存储方法、服务器以及存储系统 | |
US7555558B1 (en) | Method and system for fault-tolerant transfer of files across a network | |
CN104079438B (zh) | Dns域名管理系统和方法 | |
CN106126374B (zh) | 数据写入方法、数据读取方法及装置 | |
CN102349047A (zh) | 数据插入系统 | |
CN103067525A (zh) | 一种基于特征码的云存储数据备份方法 | |
CN103631666A (zh) | 数据冗余容错的适配管理设备、服务设备、系统及方法 | |
CN102088490A (zh) | 数据存储方法、设备和系统 | |
CN109495540A (zh) | 一种数据处理的方法、装置、终端设备及存储介质 | |
CN107272669B (zh) | 一种机载故障管理系统 | |
CN108512753B (zh) | 一种集群文件系统中消息传输的方法及装置 | |
CN103856511B (zh) | 数据包上传方法、客户端、节点、信息服务器及系统 | |
CN108418859A (zh) | 写数据的方法和装置 | |
CN108574705A (zh) | 一种容器间的通信方法、装置及系统 | |
CN105573872B (zh) | 数据存储系统的硬盘维护方法和装置 | |
CN111435286B (zh) | 一种数据存储方法、装置和系统 | |
US8977595B1 (en) | Message-recovery file log locating and monitoring | |
CN104679893A (zh) | 一种基于大数据的信息检索方法 | |
CN108063779A (zh) | 一种云存储和本地存储实现同步的方法和系统 | |
JP2012089049A (ja) | 計算機システム及びサーバ |
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 |