CN117891409A - 分布式存储系统数据管理方法、装置、设备及存储介质 - Google Patents
分布式存储系统数据管理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117891409A CN117891409A CN202410282404.8A CN202410282404A CN117891409A CN 117891409 A CN117891409 A CN 117891409A CN 202410282404 A CN202410282404 A CN 202410282404A CN 117891409 A CN117891409 A CN 117891409A
- Authority
- CN
- China
- Prior art keywords
- data
- target
- storage
- metadata
- storage area
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000013523 data management Methods 0.000 title claims abstract description 24
- 238000007726 management method Methods 0.000 claims abstract description 210
- 230000011218 segmentation Effects 0.000 claims abstract description 13
- 230000004044 response Effects 0.000 claims abstract description 11
- 230000015654 memory Effects 0.000 claims description 110
- 238000013507 mapping Methods 0.000 claims description 62
- 238000013500 data storage Methods 0.000 claims description 54
- 238000004422 calculation algorithm Methods 0.000 claims description 23
- 238000012544 monitoring process Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 13
- 230000002457 bidirectional effect Effects 0.000 claims description 10
- 230000008569 process Effects 0.000 abstract description 16
- 238000010586 diagram Methods 0.000 description 27
- 238000004891 communication Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 13
- 239000010410 layer Substances 0.000 description 11
- 230000008901 benefit Effects 0.000 description 5
- 239000007787 solid Substances 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000010076 replication Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 241000533950 Leucojum Species 0.000 description 1
- 108091081062 Repeated sequence (DNA) Proteins 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001568 sexual effect Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种分布式存储系统数据管理方法、装置、设备及存储介质,方法包括:将文件服务器的逻辑卷拆分为多个逻辑分段;逻辑分段由管理服务器进行控制;管理服务器中包括至少一个第一存储区域;生成至少一个第一存储区域对应的第一标识,并为每个第一标识分配关联的第二存储区域;响应针对逻辑分段的多个数据的写入请求,生成预写日志,预写日志包括多个数据和多个写入操作。在所有第一标识中获取目标第一标识,确定目标第一标识关联的目标第二存储区域,并将多个数据存储到所述目标第二存储区域。在将多个数据存储后,根据预写日志,生成多个数据的元数据。本发明可以减少存储数据时的元数据操作,提高存储过程的输入输出效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种分布式存储系统数据管理方法、装置、电子设备及计算机可读存储介质。
背景技术
分布式存储中包括两类数据。一类是元数据,具有指示数据的存储位置等功能。另一类是对用户真正可见的数据,如图片、文档、视频等。当需要对特定数据进行操作时,需要先获取该数据的元数据,再基于元数据查询到特定数据。
目前,在将数据存储到磁盘后,都需要同时将该数据的元数据存储到磁盘上。即存储一个数据,同时需要将对应的元数据也进行存储。
但是目前的方案,存储数据的同时存储数据的元数据,会导致输入输出操作开销较大,降低存储系统的输入输出效率。
发明内容
本发明实施例提供一种分布式存储系统数据管理方法、装置、电子设备及可读存储介质,以解决现有技术中存储数据的同时存储数据的元数据导致存储系统的输入输出效率较低的问题。
第一方面,本发明实施例提供一种分布式存储系统数据管理方法,应用于文件服务器,方法包括:
将所述文件服务器的逻辑卷拆分为多个逻辑分段;所述逻辑分段由管理服务器进行控制;所述管理服务器中包括至少一个第一存储区域;
生成所述至少一个第一存储区域对应的第一标识,并为每个所述第一标识分配关联的第二存储区域;所述第二存储区域位于存储服务器中;
响应针对所述逻辑分段的多个数据的写入请求,生成预写日志;所述预写日志包括所述多个数据和多个写入操作;所述预写日志存储于所述第一存储区域中;
在所有第一标识中获取目标第一标识,确定所述目标第一标识关联的目标第二存储区域,并将所述多个数据存储到所述目标第二存储区域;
在将所述多个数据存储后,根据所述预写日志,生成所述多个数据的元数据;所述元数据中包括目标第一标识和数据存储地址,所述元数据存储在所述管理服务器中。
可选的,根据所述预写日志,生成所述多个数据的元数据的步骤之后,还包括:
向所述管理服务器发出元数据请求,并获取所述管理服务器返回的所述元数据;
根据所述元数据中的所述目标第一标识,确定所述目标第一标识关联的所述目标第二存储区域;
基于所述元数据中的所述数据存储地址,从所述目标第二存储区域中读取数据。
可选的,基于所述元数据中的所述数据存储地址,从所述目标第二存储区域中读取数据的步骤之后,还包括:
将所述元数据中的所述目标第一标识和所述数据存储地址存储在所述文件服务器的存储器中。
可选的,所述管理服务器有多个;将所述文件服务器的逻辑卷拆分为多个逻辑分段的步骤,包括:
通过一致性哈希算法,构建哈希环形空间;
将所述文件服务器的逻辑卷的地址空间映射到所述哈希环形空间,并在所述哈希环形空间上设置所述管理服务器对应的节点;
通过所述管理服务器对应的节点,将所述哈希环形空间进行拆分以将所述文件服务器的逻辑卷拆分为多个逻辑分段。
可选的,在所有第一标识中获取目标第一标识,确定所述目标第一标识关联的目标第二存储区域,并将所述多个数据存储到所述目标第二存储区域的步骤之前,还包括:
基于预设存储容量对所述存储服务器管理的磁盘进行划分,以在所述磁盘中确定至少一个第二存储区域。
可选的,在所有第一标识中获取目标第一标识,确定所述目标第一标识关联的目标第二存储区域,并将所述多个数据存储到所述目标第二存储区域的步骤,包括:
在所有第一标识中获取目标第一标识,确定所述目标第一标识关联的目标第二存储区域;
基于所述多个数据中的每个数据,生成预设第一数量的数据副本;
将所述预设第一数量的数据副本,存储到所述目标第二存储区域。
可选的,在所有第一标识中获取目标第一标识,确定所述目标第一标识关联的目标第二存储区域,并将所述多个数据存储到所述目标第二存储区域的步骤,包括:
在所有第一标识中获取目标第一标识,确定所述目标第一标识关联的目标第二存储区域;
将所述多个数据中的每个数据划分为预设第二数量的数据条带,并基于所述预设第二数量的数据条带,运算得到预设第三数量的数据校验条带;
将所述预设第二数量的数据条带和所述预设第三数量的数据校验条带,存储在所述目标第二存储区域。
可选的,所述方法还包括:
将所述文件服务器的运行数据发送到预先设置的监控器;
其中,所述监控器用于根据所述文件服务器的运行数据,对所述文件服务器的运行状态进行监控,并在所述运行数据达到预设运行数据条件的情况下,执行对应的监控操作。
可选的,根据所述预写日志,生成所述多个数据的元数据的步骤之后,还包括:
响应针对所述逻辑分段的更新数据的写入请求,生成所述更新数据对应的预写日志,以及根据所述预写日志生成所述更新数据对应的元数据;
将所述预写日志和所述元数据存储到所述管理服务器;所述管理服务器用于在确定所述多个数据中至少一个数据与所述更新数据相同的情况下,删除所述至少一个数据对应的元数据。
可选的,将所述预写日志和所述元数据存储到所述管理服务器的步骤之后,还包括:
向所述管理服务器发送元数据请求,并获取所述管理服务器返回的所述元数据;所述管理服务器用于将所述元数据加载到所述管理服务器的内存中,以使得所述管理服务器在所述内存中对所述元数据进行读写操作并向所述管理服务器返回所述元数据。
可选的,所述管理服务器还用于:
构建双向链表;所述双向链表用于记录所述内存中多个元数据的顺序;
当对所述多个元数据中的目标元数据进行访问后,将所述目标元数据在所述双向链表中的位置移动至所述双向链表的前端;
在所述内存的空间占用达到预设占用条件的情况下,将所述双向链表的末端对应的元数据从所述内存中删除,并将所述末端对应的元数据存储到所述内存之外的其他存储器中。
可选的,生成所述至少一个第一存储区域对应的第一标识的步骤,包括:
基于所述至少一个第一存储区域,确定每个所述第一存储区域对应的管理服务器;
获取每个所述第一存储区域对应的管理服务器的标识,以及获取当前的时间戳;
根据所述当前的时间戳和每个所述第一存储区域对应的管理服务器的标识,生成所述至少一个第一存储区域分别对应的第一标识。
可选的,并为每个所述第一标识分配关联的第二存储区域的步骤,包括:
通过预设的数据分布算法,建立每个所述第一标识到存储服务器之间的第一映射关系;
基于所述第一映射关系,确定所述第一标识对应的目标存储服务器;
建立所述第一标识与所述目标存储服务器的第二存储区域之间的第二映射关系,以为每个所述第一标识分配关联的第二存储区域;所述目标存储服务器的第二存储区域位于所述目标存储服务器管理的磁盘中。
可选的,建立所述第一标识与所述目标存储服务器的第二存储区域之间的第二映射关系,以为每个所述第一标识分配关联的第二存储区域的步骤之后,还包括:
将所述第一标识与所述目标存储服务器的第二存储区域之间的第二映射关系,存储在所述目标存储服务器的所述磁盘中;
其中,所述目标存储服务器用于根据所述第一标识和所述第二映射关系查找对应的第二存储区域;所述目标存储服务器还用于在启动时将存储的所述第二映射关系加载到所述目标存储服务器的内存中。
可选的,所述第一存储区域和所述目标第二存储区域的空间大小一致;所述数据存储地址为偏移地址;基于所述元数据中的所述数据存储地址,从所述目标第二存储区域中读取数据的步骤,包括:
基于所述元数据中的所述偏移地址,在所述目标第二存储区域中确定所述偏移地址对应的目标存储位置;
基于所述目标存储位置,读取数据。
可选的,所述数据存储地址为偏移地址;基于所述元数据中的所述数据存储地址,从所述目标第二存储区域中读取数据的步骤,包括:
基于所述元数据中的所述偏移地址、所述第一存储区域的空间大小和所述目标第二存储区域的空间大小,运算得到更新的存储地址;
基于所述更新的存储地址,在所述目标第二存储区域中确定所述更新的存储地址对应的目标存储位置;
基于所述目标存储位置,读取数据。
可选的,根据所述预写日志,生成所述多个数据的元数据的步骤之后,还包括:
在所述元数据和所述预写日志存在差异的情况下,扫描所述管理服务器中预设第四数量的第一存储区域;
根据所述预设第四数量的第一存储区域中记录的预写日志,对所述元数据进行更新。
第二方面,本发明实施例提供一种分布式存储系统数据管理装置,应用于文件服务器,方法包括:
文件服务模块,用于将所述文件服务器的逻辑卷拆分为多个逻辑分段;所述逻辑分段由管理服务器进行控制;所述管理服务器中包括至少一个第一存储区域;
区域标识模块,用于生成所述至少一个第一存储区域对应的第一标识,并为每个所述第一标识分配关联的第二存储区域;所述第二存储区域位于存储服务器中;
日志生成模块,用于响应针对所述逻辑分段的多个数据的写入请求,生成预写日志;所述预写日志包括所述多个数据和多个写入操作;所述预写日志存储于所述第一存储区域中;
数据操作模块,用于在所有第一标识中获取目标第一标识,确定所述目标第一标识关联的目标第二存储区域,并将所述多个数据存储到所述目标第二存储区域;
元数据模块,用于在将所述多个数据存储后,根据所述预写日志,生成所述多个数据的元数据;所述元数据中包括目标第一标识和数据存储地址,所述元数据存储在所述管理服务器中。
可选的,装置还包括:
元数据请求模块,用于向所述管理服务器发出元数据请求,并获取所述管理服务器返回的所述元数据;
目标第二模块,用于根据所述元数据中的所述目标第一标识,确定所述目标第一标识关联的所述目标第二存储区域;
目标读取模块,用于基于所述元数据中的所述数据存储地址,从所述目标第二存储区域中读取数据。
可选的,装置还包括:
元数据存储模块,用于将所述元数据中的所述目标第一标识和所述数据存储地址存储在所述文件服务器的存储器中。
可选的,所述管理服务器有多个;文件服务模块包括:
哈希子模块,用于通过一致性哈希算法,构建哈希环形空间;
空间映射子模块,用于将所述文件服务器的逻辑卷的地址空间映射到所述哈希环形空间,并在所述哈希环形空间上设置所述管理服务器对应的节点;
节点分段子模块,用于通过所述管理服务器对应的节点,将所述哈希环形空间进行拆分以将所述文件服务器的逻辑卷拆分为多个逻辑分段。
可选的,装置还包括:
磁盘划分模块,用于基于预设存储容量对所述存储服务器管理的磁盘进行划分,以在所述磁盘中确定至少一个第二存储区域。
可选的,数据操作模块包括:
第一标识子模块,用于在所有第一标识中获取目标第一标识,确定所述目标第一标识关联的目标第二存储区域;
副本子模块,用于基于所述多个数据中的每个数据,生成预设第一数量的数据副本;
副本存储子模块,用于将所述预设第一数量的数据副本,存储到所述目标第二存储区域。
可选的,数据操作模块包括:
标识获取子模块,用于在所有第一标识中获取目标第一标识,确定所述目标第一标识关联的目标第二存储区域;
数据条带子模块,用于将所述多个数据中的每个数据划分为预设第二数量的数据条带,并基于所述预设第二数量的数据条带,运算得到预设第三数量的数据校验条带;
条带存储子模块,用于将所述预设第二数量的数据条带和所述预设第三数量的数据校验条带,存储在所述目标第二存储区域。
可选的,所述方法还包括:
监控模块,用于将所述文件服务器的运行数据发送到预先设置的监控器;
其中,所述监控器用于根据所述文件服务器的运行数据,对所述文件服务器的运行状态进行监控,并在所述运行数据达到预设运行数据条件的情况下,执行对应的监控操作。
可选的,装置还包括:
更新写入模块,用于响应针对所述逻辑分段的更新数据的写入请求,生成所述更新数据对应的预写日志,以及根据所述预写日志生成所述更新数据对应的元数据;
数据判断模块,用于将所述预写日志和所述元数据存储到所述管理服务器;所述管理服务器用于在确定所述多个数据中至少一个数据与所述更新数据相同的情况下,删除所述至少一个数据对应的元数据。
可选的,装置包括:
元数据加载模块,用于向所述管理服务器发送元数据请求,并获取所述管理服务器返回的所述元数据;所述管理服务器用于将所述元数据加载到所述管理服务器的内存中,以使得所述管理服务器在所述内存中对所述元数据进行读写操作并向所述管理服务器返回所述元数据。
可选的,管理服务器还用于:
构建双向链表;所述双向链表用于记录所述内存中多个元数据的顺序;
当对所述多个元数据中的目标元数据进行访问后,将所述目标元数据在所述双向链表中的位置移动至所述双向链表的前端;
在所述内存的空间占用达到预设占用条件的情况下,将所述双向链表的末端对应的元数据从所述内存中删除,并将所述末端对应的元数据存储到所述内存之外的其他存储器中。
可选的,区域标识模块包括:
对应管理子模块,用于基于所述至少一个第一存储区域,确定每个所述第一存储区域对应的管理服务器;
时间戳子模块,用于获取每个所述第一存储区域对应的管理服务器的标识,以及获取当前的时间戳;
标识生成子模块,用于根据所述当前的时间戳和每个所述第一存储区域对应的管理服务器的标识,生成所述至少一个第一存储区域分别对应的第一标识。
可选的,区域标识模块包括:
第一映射子模块,用于通过预设的数据分布算法,建立每个所述第一标识到存储服务器之间的第一映射关系;
第二映射子模块,用于基于所述第一映射关系,确定所述第一标识对应的目标存储服务器;
第二分配子模块,用于建立所述第一标识与所述目标存储服务器的第二存储区域之间的第二映射关系,以为每个所述第一标识分配关联的第二存储区域;所述目标存储服务器的第二存储区域位于所述目标存储服务器管理的磁盘中。
可选的,装置包括:
映射存储模块,用于将所述第一标识与所述目标存储服务器的第二存储区域之间的第二映射关系,存储在所述目标存储服务器的所述磁盘中;
其中,所述目标存储服务器用于根据所述第一标识和所述第二映射关系查找对应的第二存储区域;所述目标存储服务器还用于在启动时将存储的所述第二映射关系加载到所述目标存储服务器的内存中。
可选的,所述第一存储区域和所述目标第二存储区域的空间大小一致;所述数据存储地址为偏移地址;目标读取模块,包括:
第一偏移子模块,用于基于所述元数据中的所述偏移地址,在所述目标第二存储区域中确定所述偏移地址对应的目标存储位置;
第一读取子模块,用于基于所述目标存储位置,读取数据。
可选的,所述数据存储地址为偏移地址;目标读取模块,包括:
第二偏移子模块,用于基于所述元数据中的所述偏移地址、所述第一存储区域的空间大小和所述目标第二存储区域的空间大小,运算得到更新的存储地址;
第二读取子模块,用于基于所述更新的存储地址,在所述目标第二存储区域中确定所述更新的存储地址对应的目标存储位置;
基于所述目标存储位置,读取数据。
可选的,装置还包括:
差异扫描模块,用于在所述元数据和所述预写日志存在差异的情况下,扫描所述管理服务器中预设第四数量的第一存储区域;
元数据更新模块,用于根据所述预设第四数量的第一存储区域中记录的预写日志,对所述元数据进行更新。
第三方面,本发明实施例提供一种电子设备,包括:处理器、通信接口、存储器和通信总线;其中,处理器、通信接口以及存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第一方面所述的分布式存储系统数据管理方法中的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面所述的分布式存储系统数据管理方法中的步骤。
针对在先技术,本发明具备如下优点:
本发明实施例中,通过将文件服务器的逻辑卷拆分为多个逻辑分段;逻辑分段由管理服务器进行控制;管理服务器中包括至少一个第一存储区域;生成至少一个第一存储区域对应的第一标识,并为每个第一标识分配关联的第二存储区域;第二存储区域位于存储服务器中;响应针对逻辑分段的多个数据的写入请求,生成预写日志;预写日志包括多个数据和多个写入操作;预写日志存储于第一存储区域中;在所有第一标识中获取目标第一标识,确定目标第一标识关联的目标第二存储区域,并将多个数据存储到目标第二存储区域;在将多个数据存储后,根据预写日志,生成多个数据的元数据;元数据中包括目标第一标识和数据存储地址,元数据存储在管理服务器中。能够根据数据的写入请求生成预写日志,并在将多个数据写入后再根据预写日志来生成多个数据的元数据,通过预写日志实现数据写和元数据写的分离,同步写数据异步写元数据,不必在数据写入的同时生成元数据,减少存储数据时的元数据操作,降低数据和元数据的操作比例,进而降低输入输出操作的时延,提高存储过程的输入输出效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的一种分布式存储系统数据管理方法的步骤图;
图2为本公开实施例提供的分布式存储的架构图;
图3为本公开实施例提供的另一种分布式存储系统数据管理方法的步骤图;
图4为本公开实施例提供的第一标识的结构图;
图5为本公开实施例提供的具有对应关系的数据分区的示意图;
图6为本公开实施例提供的元数据和预写日志的存储区域映射图;
图7为本公开实施例提供的文件服务器、管理服务器和存储服务器之间的交互图;
图8为本公开实施例提供的另一分布式存储系统数据管理方法的步骤图;
图9为本公开实施例提供的以副本冗余存储的示意图;
图10为本公开实施例提供的以纠删码冗余存储的示意图;
图11为本公开实施例提供的另一分布式存储架构图;
图12为本公开实施例提供的另一分布式存储系统数据管理方法的步骤图;
图13为本公开实施例提供的根据预写日志更新元数据的示意图;
图14为本发明实施例提供的一种分布式存储系统数据管理装置的框图;
图15为本发明实施例提供的电子设备的框图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解的是,还可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
图1是本发明实施例提供的一种分布式存储系统数据管理方法的步骤图,应用于文件服务器,包括:
步骤101,将所述文件服务器的逻辑卷拆分为多个逻辑分段;所述逻辑分段由管理服务器进行控制;所述管理服务器中包括至少一个第一存储区域;
在本公开实施例中,文件服务器可以是指文件服务器(FS,File Server),也可以是块服务器(Block server),文件服务器可以理解为是对外提供文件服务的服务接入层。文件服务器具有分时系统文件管理的全部功能,能够对全网统一管理,可以提供网络用户访问文件、目录的并发控制和安全保密措施的服务器。逻辑卷(Logical Volume)是由逻辑磁盘形成的虚拟盘,也可称为磁盘分区。
将逻辑卷进行拆分,得到多个逻辑分段(segment),一个逻辑分段可以对应管理特定大小容量的数据,例如一个逻辑分段可以对应64吉字节(GB,Gigabyte)或128吉字节数据。不同的逻辑分段可以由不同的管理服务器进行管理控制,例如通过管理服务器将对应逻辑分段的数据进行新增、删除或修改操作。其中,管理服务器可以是管理至少一个逻辑分段,例如是一个管理服务器管理控制一个逻辑分段,或是一个管理服务器管理控制多个逻辑分段。由此可以减少单个管理服务器的管理的数据量,同时降低对单个管理服务器的依赖性,减少管理服务器出现故障时受影响的数据范围,另外还保证了存储系统的横向可拓展性。
管理服务器中包括至少一个第一存储区域,第一存储区域可以是指数据块(Block),前述的逻辑卷或逻辑分段可以是存储设备在操作系统中向用户展示的存储区域,属于逻辑存储区域,第一存储区域可以是逻辑分段下的数据块,属于逻辑存储区域。
步骤102,生成所述至少一个第一存储区域对应的第一标识,并为每个所述第一标识分配关联的第二存储区域;所述第二存储区域位于存储服务器中;
在本公开实施例中,为至少一个第一存储区域生成对应的第一标识,通过每个第一存储区域的第一标识,将至少一个第一存储区域进行区分。并且,基于每个第一标识,将第一标识关联到第二存储区域。其中,第二存储区域是位于存储服务器管理的存储区域。存储服务器可以是数据存储服务器(Chunk Server),存储服务器可以管理至少一个磁盘,磁盘可以是固态硬盘,例如是符合非易失性内存主机控制器接口规范(NVMHCIS,Non-Volatile Memory Host Controller Interface Specification)的硬盘。可以将存储服务器管理的磁盘进行分区,提供给文件服务器进行数据的写入和读取,第二存储区域是这些磁盘中的存储区域,属于物理存储区域。
图2是本公开实施例提供的分布式存储的架构图;图2中包括文件服务器201、管理服务器202、管理服务器203、管理服务器204、存储服务器205、存储服务器206、存储服务器207;文件服务器201、管理服务器202、管理服务器203、管理服务器204、存储服务器205、存储服务器206、存储服务器207之间相互连接。其中,文件服务器201和存储服务器205、存储服务器206、存储服务器207之间的线条表示可以进行数据读写操作。每个管理服务器(管理服务器202、管理服务器203、管理服务器204)和每个存储服务器(存储服务器205、存储服务器206、存储服务器207)之间的线条表示服务器之间的管理控制。
步骤103,响应针对所述逻辑分段的多个数据的写入请求,生成预写日志;所述预写日志包括所述多个数据和多个写入操作;所述预写日志存储于所述第一存储区域中;
在本公开实施例中,可以是用户通过文件服务器进行数据写入,用户可以一次进行多个数据的写入。文件服务器响应针对逻辑分段的多个数据的写入请求,生成预写日志。其中,预写日志(WAL,Write Ahead Log)可以将每次数据更新抽象为一个操作加数据的日志形式,追加写入一个日志中,这个日志只追加写入,也就是顺序写入。需要理解的是,在进行多个数据写入时,操作的数据量会比较大,操作比较繁琐,并且写入数据不一定是顺序写,如果每一次数据操作都要将数据存储到磁盘中才执行下一步操作,会降低数据的写入效率。相比于更新存储的数据结构并更新落盘的随机输入输出操作,通过生成预写日志,写入速度更快,且具有一定的持久性,由于这个日志带操作,具备自解释性,可以根据这个日志恢复数据。预写日志存储于所述第一存储区域中。可以理解的是,由于多个数据的写入请求可以是针对特定逻辑分段的,而逻辑分段由不同的管理服务器进行管理。因此针对特定的逻辑分段进行数据写入时,可以将对应的预写日志存储到该逻辑分段对应的管理服务器的第一存储区域。即直接将预写日志存储到管理服务器的单层闪存介质中,以提供较高的数据写入速度,避免了在多层闪存结构中,需要将预写日志先写入缓存层后再写入数据层这一繁琐过程,进而避免了多层闪存结构存储预写日志时,系统资源开销大、写放大严重、网络性能要求高、读操作分两层检索效率低等问题。
步骤104,在所有第一标识中获取目标第一标识,确定所述目标第一标识关联的目标第二存储区域,并将所述多个数据存储到所述目标第二存储区域;
在本公开实施例中,在所有第一标识中获取目标第一标识,目标第一标识可以是所有第一标识中的任意一个第一标识。也可以是,写入请求所针对的逻辑分段,该逻辑分段对应的管理服务器中,至少一个第一存储区域的任一个第一存储区域的第一标识。确定目标第一标识对应的目标第二存储区域,然后将多个数据存储到目标第二存储区域。
步骤105,在将所述多个数据存储后,根据所述预写日志,生成所述多个数据的元数据;所述元数据中包括目标第一标识和数据存储地址,所述元数据存储在所述管理服务器中。
在本公开实施例中,预写日志中包括多个数据以及对应的多个写入操作,根据数据和对应的写入操作,可以生成多个数据分别对应的元数据,元数据可以理解为是数据对应的索引。其中,元数据中目标第一标识和数据存储地址,数据存储地址可以是指每个数据对应的元数据在第一存储区域中的存储位置,也可以是指每个数据在第二存储区域中的存储位置。通过预写日志实现数据写和元数据写的分离,减少存储数据时的元数据操作,降低数据和元数据的操作比例,在实际操作中,可以将当前数据与元数据1:1的操作次数比例关系,下降为1.6万:1。
综上,本发明实施例中,通过将文件服务器的逻辑卷拆分为多个逻辑分段;逻辑分段由管理服务器进行控制;管理服务器中包括至少一个第一存储区域;生成至少一个第一存储区域对应的第一标识,并为每个第一标识分配关联的第二存储区域;第二存储区域位于存储服务器中;响应针对逻辑分段的多个数据的写入请求,生成预写日志;预写日志包括多个数据和多个写入操作;预写日志存储于第一存储区域中;在所有第一标识中获取目标第一标识,确定目标第一标识关联的目标第二存储区域,并将多个数据存储到目标第二存储区域;在将多个数据存储后,根据预写日志,生成多个数据的元数据;元数据中包括目标第一标识和数据存储地址,元数据存储在管理服务器中。能够减少存储数据时的元数据操作,进而降低输入输出操作的时延,提高存储过程的输入输出效率。
图3是本公开实施例提供的另一种分布式存储系统数据管理方法的步骤图。
步骤301,将所述文件服务器的逻辑卷拆分为多个逻辑分段;所述逻辑分段由管理服务器进行控制;所述管理服务器中包括至少一个第一存储区域;
步骤302,生成所述至少一个第一存储区域对应的第一标识,并为每个所述第一标识分配关联的第二存储区域;所述第二存储区域位于存储服务器中;
步骤303,响应针对所述逻辑分段的多个数据的写入请求,生成预写日志;所述预写日志包括所述多个数据和多个写入操作;所述预写日志存储于所述第一存储区域中;
步骤305,在所有第一标识中获取目标第一标识,确定所述目标第一标识关联的目标第二存储区域,并将所述多个数据存储到所述目标第二存储区域;
步骤306,在将所述多个数据存储后,根据所述预写日志,生成所述多个数据的元数据;所述元数据中包括目标第一标识和数据存储地址,所述元数据存储在所述管理服务器中。
步骤301-303,305-306的具体内容可以参考上述图1实施例,在此不再赘述。
可选的,步骤301可以包括子步骤3011-3013:
步骤3011,通过一致性哈希算法,构建哈希环形空间;
步骤3012,将所述文件服务器的逻辑卷的地址空间映射到所述哈希环形空间,并在所述哈希环形空间上设置所述管理服务器对应的节点;
步骤3013,通过所述管理服务器对应的节点,将所述哈希环形空间进行拆分以将所述文件服务器的逻辑卷拆分为多个逻辑分段。
在本公开实施例中,将文件服务器的逻辑卷拆分为多个逻辑分段的过程,可以是通过一致性哈希算法实现。一致性哈希算法是一种用于分布式系统中的数据分片和负载均衡的算法。它将整个哈希空间划分为一个环,并且每个节点在这个环上都有一个对应的位置。当需要读写某个数据时,先将数据进行哈希运算得到一个哈希值,然后根据这个哈希值在环上找到对应的节点,从而实现数据的定位。
可以将文件服务器的逻辑卷的地址空间映射到哈希环形空间,并在哈希环形空间上设置管理服务器对应的节点,通过管理服务器对应的节点,将哈希环形空间进行拆分以将文件服务器的逻辑卷拆分为多个逻辑分段。例如需要根据逻辑卷中特定逻辑地址查找数据,可以将逻辑地址进行哈希处理,将处理得到的哈希值在哈希空间上进行定位,然后可以基于该定位向顺时针移动,接触到的第一个节点就是对应的管理服务器。
可选的,步骤302可以包括子步骤3021-3023:
子步骤3021,基于所述至少一个第一存储区域,确定每个所述第一存储区域对应的管理服务器;
子步骤3022,获取每个所述第一存储区域对应的管理服务器的标识,以及获取当前的时间戳;
子步骤3023,根据所述当前的时间戳和每个所述第一存储区域对应的管理服务器的标识,生成所述至少一个第一存储区域分别对应的第一标识。
在本公开实施例中,基于至少一个第一存储区域,确定每个第一存储区域对应的管理服务器,管理服务器可以有多个,每个管理服务器可以有多个第一存储区域。则就每个第一存储区域而言,可以确定该第一存储区域对应的管理服务器。管理服务器具有设置的标识,不同的管理服务器的标识不同。
确定每个第一存储区域对应的管理服务器的标识,并获取当前的时间戳。基于当前的时间戳和每个第一存储区域对应的管理服务器的标识,生成至少一个第一存储区域分别对应的第一标识。可以采用分布式雪花算法来生成第一存储区域分别对应的第一标识。
第一标识的长度可以调整,第一标识的长度可以有 64 个位(Bit),其中最高位为符号位,其余 63 位用来存放数据。可以根据不同的应用需求调整第一标识的长度,第一标识中可以包括符号位、机器标识号的位数、时间戳的位数以及序列号的位数等。可以理解的是,其中的机器标识号位或时间戳位等也可以替换为其他可以用于生成第一标识的数据,例如是工作进程位。
举例而言,图4是本公开实施例提供的第一标识的结构图;如图4所示,第一存储区域分别对应的第一标识长度可以是64个位,第一个为符号位401,第二个可以是时间戳位402,时间戳位402的长度可以是41bit,第三个可以是管理服务器的标识位403,管理服务器的标识位403的长度可以是10bit,第四个可以是序列号位404,序列号位404的长度可以是12bit。其中,针对时间戳位402的长度是41bit,41bit可以表示2的41次方个毫秒值,转换为年是69.73年;因此,时间戳位的长度是41bit时,在69.73年的时间范围内不会产生相同的时间戳位。针对标识位403的长度为10bit,可以生成2的10次方个即1024个不同的标识结果。针对序列号位404的长度是12bit,1 毫秒产生2的12次方个即4096个不重复序列号的情况下,每秒可以生成的序列号数量是:4096×1000 = 4090000。通过以上过程,可以使得生成的第一标识具有唯一性。
实施本公开的实施例,通过基于至少一个第一存储区域,确定每个第一存储区域对应的管理服务器;获取每个所述第一存储区域对应的管理服务器的标识,以及获取当前的时间戳;根据当前的时间戳和每个第一存储区域对应的管理服务器的标识,生成至少一个第一存储区域分别对应的第一标识。能够位第一存储区域生成唯一的第一标识,使得基于第一标识进行后续数据操作的过程的准确度更高。
可选的,步骤302可以包括子步骤3024-3026:
子步骤3024,通过预设的数据分布算法,建立每个所述第一标识到存储服务器之间的第一映射关系;
子步骤3025,基于所述第一映射关系,确定所述第一标识对应的目标存储服务器;
子步骤3026,建立所述第一标识与所述目标存储服务器的第二存储区域之间的第二映射关系,以为每个所述第一标识分配关联的第二存储区域;所述目标存储服务器的第二存储区域位于所述目标存储服务器管理的磁盘中。
在本公开实施例中,预设的分布算法可以是可扩展哈希下的受控复制算法(CRUSH,Controlled Replication Under Scalable Hashing),CRUSH算法是一种用于大规模分布式存储系统的数据路由和副本放置算法,可以通过CRUSH 算法来计算数据存储位置进而确定如何存储和检索数据。通过CRUSH算法可以为每个第一标识分配对应的存储服务器,根据第一标识和存储服务器之间的对应关系,建立第一标识和存储服务器的映射。其中,可以理解的是,第一标识对应的存储服务器可以是多个例如是三个。另外,不同的第一标识可以是映射到相同的存储服务器。可以理解的是,也可以采用其他算法例如是一致性哈希算法;也可以是通过查表,例如是在为每个第一标识分配对应的存储服务器,根据存储服务器的存储情况进行负载均衡,为第一标识分配存储数据量较少的存储服务器,以建立第一标识和存储服务器之间的第一映射关系。在此不具体限制通过何种数据分布算法建立映射。
在为每个第一标识确定了对应的存储服务器后,进一步建立第一标识与目标存储服务器的第二存储区域之间的第二映射关系。第二存储区域,可以是存储服务器所管理的磁盘中的存储区域。如前所述存储服务器所管理的磁盘的存储区域会进行划分,得到多个第二存储区域。那么第一标识与目标存储服务器的第二存储区域之间的第二映射关系,即是第一标识与多个第二存储区域中的部分第二存储区域的映射。
需要理解的是,第一标识对应第一存储区域,第一存储区域是管理服务器中的存储区域,且第一存储区域的数量是至少一个或是多个。第二映射关系可以理解为,第一标识对应的第一存储区域在管理服务器中的位置,和第一标识对应的第二存储区域在存储服务器的磁盘中的位置,是对应的。
图5是本公开实施例提供的具有对应关系的数据分区的示意图;逻辑卷、逻辑分段、第一存储区域(管理服务器)、存储服务器(第二存储区域)之间的地址具有对应关系。每一层(逻辑卷、逻辑分段、第一存储区域、存储服务器)中具有多个不同的索引,不同层中的索引之间具有映射关系。
实施本公开的实施例,通过预设的数据分布算法,建立每个第一标识到存储服务器之间的第一映射关系;基于第一映射关系,确定所述第一标识对应的目标存储服务器;建立第一标识与目标存储服务器的第二存储区域之间的第二映射关系,为每个所述第一标识分配关联的第二存储区域。根据第一性原理,从问题根源出发,重新定义了分布式存储数据索引组织结构,通过第一、第二映射关系,使得可以直接基于第一标识确定对应的第二存储区域即数据实际存储的存储区域,通过建立多层索引的映射关系以将不同层的索引合并,构建了逻辑卷、逻辑分段、第一存储区域、存储服务器之间的逻辑地址映射,提高了对数据进行访问的效率。
可选的,子步骤3026之后,还包括子步骤3027:
子步骤3027,将所述第一标识与所述目标存储服务器的第二存储区域之间的第二映射关系,存储在所述目标存储服务器的所述磁盘中;
其中,所述目标存储服务器用于根据所述第一标识和所述第二映射关系查找对应的第二存储区域;所述目标存储服务器还用于在启动时将存储的所述第二映射关系加载到所述目标存储服务器的内存中。
在本公开实施例中,将第一标识与目标存储服务器的存储区域之间的第二映射关系,存储在目标存储服务器的磁盘中。在存储服务器启动时,将存储的映射关系加载到存储服务器的内存中,以在读写速度较快的内存中进行操作。存储服务器可以根据内存中的第二映射关系,确定一个第一标识对应的第二存储区域,存储服务器也可以根据数据存储地址在第一标识对应的第二存储区域中查找到需要读取的数据。
可选的,在步骤305之前,还包括步骤304:
步骤304,基于预设存储容量对所述存储服务器管理的磁盘进行划分,以在所述磁盘中确定至少一个第二存储区域。
在本公开实施例中,可以通过存储服务器的分配器,按照预设存储容量大小例如是128兆字节(MB,Megabyte),对存储服务器管理的磁盘进行划分,将磁盘划分为多个第二存储区域,并寻址后提供给上层业务进行写入和读取。
可选的,步骤305包括子步骤3051-3053:
步骤3051,在所有第一标识中获取目标第一标识,确定所述目标第一标识关联的目标第二存储区域;
步骤3052,基于所述多个数据中的每个数据,生成预设第一数量的数据副本;
步骤3053,将所述预设第一数量的数据副本,存储到所述目标第二存储区域。
在本公开实施例中,在所有第一标识中获取目标第一标识,确定目标第一标识关联的目标第二存储区域的过程如前述,在此不再赘述。在存储多个数据时,针对每个数据,生成每个数据的预设第一数量的数据副本,数据副本的数据内容与原数据相同。预设第一数量的具体数值可以是2或3等等,在此不做限制。然后将预设第一数量的数据副本存储到目标第二存储区域。
需要注意的是,目标第二存储区域可以是多个第二存储区域,这多个第二存储区域中的每个第二存储区域都是目标第二存储区域。不同的目标第二存储区域可以位于不同的存储服务器所管理的磁盘中。因此,当存在多个数据副本时,每个数据副本可以是存储到了不同的存储服务器所管理的磁盘中。举例而言,当存在三个数据副本,则可以将三个数据副本分布存储到三个不同的存储管理服务器下的磁盘;也可以是将三个数据副本分布存储到同一个存储管理服务器下的三个磁盘中。在此不做具体限制。
实施本公开的实施例,通过在所有第一标识中获取目标第一标识,确定目标第一标识关联的目标第二存储区域;基于多个数据中的每个数据,生成预设第一数量的数据副本;将预设第一数量的数据副本,存储到目标第二存储区域。能够避免一些存储服务器或存储服务器的磁盘发送故障,导致数据丢失或损坏的风险,提高了数据存储的安全性。
可选的,步骤305包括子步骤3054-3056:
步骤3054,在所有第一标识中获取目标第一标识,确定所述目标第一标识关联的目标第二存储区域;
步骤3055,将所述多个数据中的每个数据划分为预设第二数量的数据条带,并基于所述预设第二数量的数据条带,运算得到预设第三数量的数据校验条带;
步骤3056,将所述预设第二数量的数据条带和所述预设第三数量的数据校验条带,存储在所述目标第二存储区域。
在本公开实施例中,在所有第一标识中获取目标第一标识,确定目标第一标识关联的目标第二存储区域的过程如前述,在此不再赘述。针对多个数据中的每个数据,将每个数据划分为预设第二数量的数据条带或称为数据块,然后对预设第二数量的数据条带进行编码,编码得到预设第三数量的数据校验条带。共计可以得到预设第二数量的数据条带和预设第三数量的数据校验条带。在预设第二数量加上预设第三数量的条带中,即使丢失了预设第三数量个的条带,也可以恢复出原始数据。举例而言,预设第二数量可以是4,即将数据划分为4个数据条带,预设第三数量可以是2,即根据4个数据条带编码生成2个数据校验条带。4个数据条带和2个数据校验条带中的任意2个条带丢失或损坏,基于剩余的4个条带,都可以还原出原始的数据。
然后将预设第二数量的数据条带和预设第三数量的数据校验条带存储到目标第二存储区域。可以理解的是,目标第二存储区域也可以是多个第二存储区域,这多个第二存储区域中的每个第二存储区域都是目标第二存储区域。不同的目标第二存储区域可以位于不同的存储服务器所管理的磁盘中。
因此,当存在预设第二数量的数据条带和预设第三数量的数据校验条带时,每个数据条带或数据校验条带可以是存储到了不同的存储服务器所管理的磁盘中。举例而言,当存在三个条带,则可以将三个条带分布存储到三个不同的存储管理服务器下的磁盘;也可以是将三个条带分布存储到同一个存储管理服务器下的三个磁盘中。在此不做具体限制。
实施本公开的实施例,通过将多个数据中的每个数据划分为预设第二数量的数据条带,并基于预设第二数量的数据条带,运算得到预设第三数量的数据校验条带;将所述预设第二数量的数据条带和预设第三数量的数据校验条带,存储在目标第二存储区域。通过将数据分割成片段,并对这些片段进行编码,从而增加数据的冗余度,使得即使有一部分数据丢失,也能够通过剩余的数据片段恢复整个数据,进而提高了数据存储的安全性。
可选的,在步骤306之后,还包括:
步骤307,向所述管理服务器发出元数据请求,并获取所述管理服务器返回的所述元数据;
步骤308,根据所述元数据中的所述目标第一标识,确定所述目标第一标识关联的所述目标第二存储区域;
步骤309,基于所述元数据中的所述数据存储地址,从所述目标第二存储区域中读取数据。
在本公开实施例中,文件服务器向管理服务器发出元数据请求,管理服务器响应于元数据请求,返回元数据到文件服务器。文件服务器,基于元数据中的目标第一标识,确定目标第一标识关联的目标第二存储区域,即确定了数据在存储服务器管理的磁盘中的存储区域。文件服务器基于元数据中的数据存储地址,从目标第二存储区域中读取对应的数据。
可以理解的是,元数据存储的位置也可以是位于第一存储区域,由于元数据是根据预写日志生成的,因此元数据存储的位置可以和对应预写日志存储在同一第一存储区域。
图6是本公开实施例提供的元数据和预写日志的存储区域映射图。如图6所示,“(1,10)”表示存储区域的地址范围,如图6所示,元数据和预写日志在管理服务器中的存储区域是对应的。
图7是本公开实施例提供的文件服务器、管理服务器和存储服务器之间的交互图。步骤S1,文件服务器发送元数据请求到管理服务器;步骤S2,管理服务器返回元数据;步骤S3,文件服务器根据元数据向存储服务器请求数据,即根据元数据中的目标第一标识和元数据中的数据存储地址向存储服务器请求数据;步骤S4,存储服务器根据目标第一标识,确定存储服务器中的目标第二存储区域,存储服务器基于元数据中的数据存储地址,从存储服务器的目标第二存储区域中读取数据;步骤S5,存储服务器返回数据到文件服务器。
图8是本公开实施例提供的另一分布式存储系统数据管理方法的步骤图。
可选的,所述第一存储区域和所述目标第二存储区域的空间大小一致;所述数据存储地址为偏移地址;步骤309包括子步骤3091-3092:
子步骤3091,基于所述元数据中的所述偏移地址,在所述目标第二存储区域中确定所述偏移地址对应的目标存储位置;
子步骤3092,基于所述目标存储位置,读取数据。
在本公开实施例中,数据存储地址为偏移地址。偏移地址是计算机内存中数据相对于某个基址的偏移量。在计算机中,存储区域被划分为不同的段,每个段都有一个起始地址,即基址。偏移地址指的是从某个基址开始,到特定数据块的起始位置的距离。基址加上偏移地址即可得到数据的实际物理地址。举例而言,如果有一个基址为1000,而某个数据的偏移地址为200,那么该数据在存储区域中的物理地址为1000+200=1200。因此,通过将偏移地址与基址进行相加,可以准确地定位到数据在存储区域中的位置。由于第一存储区域和所述目标第二存储区域的空间大小一致,基于元数据在第一存储区域中的偏移地址,可以直接在第二存储区域中确定数据的目标存储位置,然后读取数据。
举例而言,图9是本公开实施例提供的以副本冗余存储的示意图;如图9所示,根据存储的数据生成了三个副本,分别存储在不同的第二存储区域中,第一存储区域和所述目标第二存储区域的空间大小一致,可以直接根据偏移地址确定数据的目标存储位置。可以用以下公式表示:
其中,chunk offset表示第二存储区域中的偏移地址;block offset表示第一存储区域中的偏移地址。
可选的,所述数据存储地址为偏移地址;步骤309包括子步骤3093-3095:
子步骤3093,基于所述元数据中的所述偏移地址、所述第一存储区域的空间大小和所述目标第二存储区域的空间大小,运算得到更新的存储地址;
子步骤3094,基于所述更新的存储地址,在所述目标第二存储区域中确定所述更新的存储地址对应的目标存储位置;
子步骤3095,基于所述目标存储位置,读取数据。
在本公开实施例中,第一存储区域的空间大小和目标第二存储区域的空间大小不一致。
图10是本公开实施例提供的以纠删码冗余存储的示意图;如图10所示,4个block区域与6个chunk区域。可以理解的是,block区域与chunk区域对应的数量关系可以不一致,例如还可以是6block区域对应8chunk区域等等。在这类情况下,使得元数据的偏移地址无法直接用于在第二存储区域中确定待读取数据的目标存储位置。可以根据第一存储区域的空间大小和目标第二存储区域的空间大小,进行模除运算。可以通过以下公式进行计算:
其中,chunk offset表示第二存储区域中的偏移地址,block offset表示第一存储区域中的偏移地址,chunk size表示第二存储区域的大小,“%”是取余操作符表示取模。
计算得到目标存储位置后,读取数据。
可选的,步骤309之后还包括步骤310:
步骤310,将所述元数据中的所述目标第一标识和所述数据存储地址存储在所述文件服务器的存储器中。
在本公开实施例中,文件服务器可以将元数据中的目标第一标识和数据存储地址存储在文件服务器的存储器中,例如是存储在磁盘中。
实施本公开的实施例,通过将元数据中的目标第一标识和数据存储地址存储在文件服务器的存储器中。使得文件服务器后续访问相关数据时,不需要再向管理服务器进行请求,可以直接基于文件服务器存储的元数据的目标第一标识和数据存储地址访问相关数据,从而减少了元数据的转发,降低了数据处理压力。
可选的,方法还包括步骤311:
步骤311,将所述文件服务器的运行数据发送到预先设置的监控器;
其中,所述监控器用于根据所述文件服务器的运行数据,对所述文件服务器的运行状态进行监控,并在所述运行数据达到预设运行数据条件的情况下,执行对应的监控操作。
在本公开实施例中,将文件服务器的运行数据发送到预先设置的监控器。监控器可以获取文件服务器发送的服务器状态、复制状态、资源使用情况以及其他运行数据。监控器用于根据文件服务器的运行数据,对文件服务器的运行状态进行监控,在运行数据达到预设运行数据条件例如是资源使用率达到预设阈值的情况下,执行对应的监控操作例如是服务健康检测,故障检测等等。
可以理解的是,监控器还可以获取管理服务器和存储服务器的运行数据,监控过程可以是与监控文件服务器相似的,在满足预设运行数据条件的情况下,执行对应的监控操作,例如存储服务器故障后重新选择存储服务器拉起服务等。
图11是本公开实施例提供的另一分布式存储架构图;图11中包括文件服务器1101、管理服务器1102、管理服务器1103、管理服务器1104、存储服务器1105、存储服务器1106、存储服务器1107和监控器1108,监控器1108可以连接到文件服务器1101、管理服务器1102、管理服务器1103、管理服务器1104、存储服务器1105、存储服务器1106、存储服务器1107。
图12是本公开实施例提供的另一分布式存储系统数据管理方法的步骤图;
可选的,在步骤306之后,还可以包括步骤312-313:
步骤312,响应针对所述逻辑分段的更新数据的写入请求,生成所述更新数据对应的预写日志,以及根据所述预写日志生成所述更新数据对应的元数据;
步骤313,将所述预写日志和所述元数据存储到所述管理服务器;所述管理服务器用于在确定所述多个数据中至少一个数据与所述更新数据相同的情况下,删除所述至少一个数据对应的元数据。
在本公开实施例中,文件服务器在写入多个数据后,还可以继续不断的写入更新数据。文件服务器继续响应针对逻辑分段的更新数据的写入请求,与前述对数据进行存储并生成预写日志,以及基于预写日志生成元数据的过程类似的,在写入更新数据时,也会生成对应的预写日志和元数据。
由于预写日志和元数据存储在管理服务器。管理服务器可以对更新数据和之前以及写入的数据进行对比,当已写入的数据和更新数据不同时,已写入的数据和写入的更新数据都是有效数据;当已写入的多个数据中至少一个数据和更新数据相同时,则已写入的数据中与更新数据重复的部分,为无效数据,需要删除已写入的数据中与更新数据重复的部分对应的元数据。上述重复的部分对应的元数据的删除或称为回收,可以是通过垃圾回收机制(GC,Garbage Collection)实现。
实施本公开的实施例,通过响应针对逻辑分段的更新数据的写入请求,生成更新数据对应的预写日志,以及元数据;将预写日志和元数据存储到管理服务器;管理服务器在确定更新数据与多个数据中至少一个数据相同的情况下,删除至少一个数据对应的元数据。能够减少管理服务器中存储的元数据量,降低了管理服务器对元数据的存储压力。
可选的,步骤313之后还可以包括步骤314:
步骤314,向所述管理服务器发送元数据请求,并获取所述管理服务器返回的所述元数据;所述管理服务器用于将所述元数据加载到所述管理服务器的内存中,以使得所述管理服务器在所述内存中对所述元数据进行读写操作并向所述管理服务器返回所述元数据。
在本公开的实施例中,通过对数据进行有效数据和无效数据的判断,将对应的元数据进行垃圾回收,可以降低元数据的数据量。然后,管理服务器可以将存储的元数据,加载到管理服务器的内存中,将多次磁盘输入输出元数据的操作变为内存操作,以实现在内存中对元数据进行读写操作。使得文件服务器向管理服务器发送元数据请求时,管理服务器可以在内存中对元数据进行读写操作并向管理服务器返回元数据,然后文件服务器获取管理服务器返回的元数据。由于内存的读写速度高于硬盘和固态硬盘,能够显著提高计算机的运行速度,因此在内存中对元数据进行读写操作,可以提高元数据的处理效率。
实施本公开的实施例,将管理服务器存储的元数据,加载到内存中,以在内存中对元数据进行读写操作。能够利用内存的读写速度,提高了对元数据的处理效率。
可选的,所述管理服务器还用于:构建双向链表;所述双向链表用于记录所述内存中多个元数据的顺序;
当对所述多个元数据中的目标元数据进行访问后,将所述目标元数据在所述双向链表中的位置移动至所述双向链表的前端;
在所述内存的空间占用达到预设占用条件的情况下,将所述双向链表的末端对应的元数据从所述内存中删除,并将所述末端对应的元数据存储到所述内存之外的其他存储器中。
在本公开实施例中,管理服务器构建一个双向链表,双向链表中记录了内存中多个元数据的顺序,该顺序可以是元数据被访问的顺序。当对多个元数据中的目标元数据进行访问后,将目标元数据在双向链表中的位置移动到双向链表的前端,表示该目标元数据是最近被访问的元数据。其中目标元数据是多个元数据的其中之一,当多个元数据中的一个元数据被访问时,可以将该元数据作为目标元数据,管理服务器将该元数据在双向链表中的位置移动到双向链表的前端。
可以理解的是,当另外一个元数据被访问后,该另外一个元数据作为目标元数据,在双向链表中的位置也会移动到双向链表的前端。则前一目标元数据在双向链表中的顺序相应后移。由于元数据被加载到管理服务器的内存中进行读写,而内存空间相对于其他磁盘而言较小,因此可以设定一个内存空间的预设占用条件,在内存的空间占用达到预设占用条件的情况下,将双向链表的末端对应的元数据从内存中删除,并将末端对应的元数据存储到内存之外的其他存储器中。可以理解的是,双向链表的末端对应的元数据可以是一个或多个,例如取双向链表的末端的最后一位或是多个位的元数据。
可以基于交换(SWAP)策略,将双向链表的末端的元数据序列化存储到磁盘中,存储可以是以键值存储(KV、Key-Value)的方式进行。释放这些元数据占用的内存空间,在需要这些元数据时,再从磁盘读取数据到内存。
实施本公开的实施例,通过构建双向链表;当对多个元数据中的目标元数据进行访问后,将目标元数据在所述双向链表中的位置移动至双向链表的前端;在内存的空间占用达到预设占用条件的情况下,将双向链表的末端对应的元数据从内存中删除,并将末端对应的元数据存储到内存之外的其他存储器中。能够减少内存空间的无效占用,保证热点的元数据读写效率的同时降低内存占用,提升存储系统的扩展性。
可选的,步骤306之后还包括步骤315-316:
步骤315,在所述元数据和所述预写日志存在差异的情况下,扫描所述管理服务器中预设第四数量的第一存储区域;
步骤316,根据所述预设第四数量的第一存储区域中记录的预写日志,对所述元数据进行更新。
在本公开实施例中,管理服务器中第一存储区域存储有预写日志,需要另外基于预写日志生成元数据。在服务器发送故障时,元数据可能没有对应的基于预写日志进行生成,导致对应的元数据缺失。在元数据和预写日志例如是因故障导致存在差异的情况下,扫描管理服务器中预设第四数量的第一存储区域,基于预设第四数量的第一存储区域中记录的预写日志,对元数据进行更新。
可以理解的是,在任一时间下,并不是在所有的第一存储区域都进行了预写日志的存储。举例而言,第一存储区域A、第一存储区域B和第一存储区域C,在最近的一个时间段内,数据写入时,可能对应的只在第一存储区域A和第一存储区域B存储了对应的预写日志,第一存储区域C没有新增预写日志。那么第一存储区域C之前已有的预写日志,由于是在上述时间段之前,很可能已经生成了对应元数据,那么元数据的缺少和第一存储区域C的预写日志没有关联的可能性较高。第一存储区域A、第一存储区域B在最近的时间段内新增了预写日志,元数据的缺少可能与第一存储区域A、第一存储区域B的新增预写日志有关联,因此预设第四数量,可以是2,即以尾部扫描(Tail Scan)的方式选取第一存储区域A、第一存储区域B的预写日志,来进行元数据的更新。在发生故障需要恢复元数据时,通过尾部扫描机制完成元数据恢复,从而可以降低数据输入输出过程中元数据操作开销,大幅提升存储系统输入输出处理效率。
图13是本公开实施例提供的根据预写日志更新元数据的示意图;如图13所示,可以通过第一存储区域A的预写日志1302来更新元数据,而不通过第一存储区域B的预写日志1303来更新元数据。
另外,可以通过存储介质如保电内存、非易失性双列直插式内存模块(NVDIMMnon-volatile dual in-line memory module)、存储级内存(SCM,Storage ClassMemory)、使用非易失性内存主机控制器接口规范(NVMe)的固态硬盘,以及远程直接数据存取(RDMA,Remote Direct Memory Access)技术、高速网络、高速串行计算机扩展总线标准(PCI-Express(peripheral component interconnect express)5.0、第五代双倍数据率内存技术可以进一步加速元数据、数据读写操作,通过端到端的非易失性内存主机控制器接口规范(NVMe-oF,Nonvolatile Memory Express over Fabrics )减少协议转换开销,通过用户态内存管理降低内存拷贝开销,进一步降低读写时延,提升存储系统效率,对于带宽型、每秒的读写次数(IOPS,Input/OutputOperations Per Second)型业务负载,均有较大提升。
实施本公开的实施例,通过在元数据和预写日志存在差异的情况下,扫描管理服务器中预设第四数量的第一存储区域;根据预设第四数量的第一存储区域中记录的预写日志,对元数据进行更新,能够提高元数据的安全性和完整性。
综上,本发明实施例中,通过将文件服务器的逻辑卷拆分为多个逻辑分段;逻辑分段由管理服务器进行控制;管理服务器中包括至少一个第一存储区域;生成至少一个第一存储区域对应的第一标识,并为每个第一标识分配关联的第二存储区域;第二存储区域位于存储服务器中;响应针对逻辑分段的多个数据的写入请求,生成预写日志;预写日志包括多个数据和多个写入操作;预写日志存储于第一存储区域中;在所有第一标识中获取目标第一标识,确定目标第一标识关联的目标第二存储区域,并将多个数据存储到目标第二存储区域;在将多个数据存储后,根据预写日志,生成多个数据的元数据;元数据中包括目标第一标识和数据存储地址,元数据存储在管理服务器中。能够减少存储数据时的元数据操作,进而降低输入输出操作的时延,提高存储过程的输入输出效率。
图14是本发明实施例提供的一种分布式存储系统数据管理装置的框图,包括:
文件服务模块1401,用于将所述文件服务器的逻辑卷拆分为多个逻辑分段;所述逻辑分段由管理服务器进行控制;所述管理服务器中包括至少一个第一存储区域;
区域标识模块1402,用于生成所述至少一个第一存储区域对应的第一标识,并为每个所述第一标识分配关联的第二存储区域;所述第二存储区域位于存储服务器中;
日志生成模块1403,用于响应针对所述逻辑分段的多个数据的写入请求,生成预写日志;所述预写日志包括所述多个数据和多个写入操作;所述预写日志存储于所述第一存储区域中;
数据操作模块1404,用于在所有第一标识中获取目标第一标识,确定所述目标第一标识关联的目标第二存储区域,并将所述多个数据存储到所述目标第二存储区域;
元数据模块1405,用于在将所述多个数据存储后,根据所述预写日志,生成所述多个数据的元数据;所述元数据中包括目标第一标识和数据存储地址,所述元数据存储在所述管理服务器中。
可选的,装置还包括:
元数据请求模块,用于向所述管理服务器发出元数据请求,并获取所述管理服务器返回的所述元数据;
目标第二模块,用于根据所述元数据中的所述目标第一标识,确定所述目标第一标识关联的所述目标第二存储区域;
目标读取模块,用于基于所述元数据中的所述数据存储地址,从所述目标第二存储区域中读取数据。
可选的,装置还包括:
元数据存储模块,用于将所述元数据中的所述目标第一标识和所述数据存储地址存储在所述文件服务器的存储器中。
可选的,所述管理服务器有多个;文件服务模块包括:
哈希子模块,用于通过一致性哈希算法,构建哈希环形空间;
空间映射子模块,用于将所述文件服务器的逻辑卷的地址空间映射到所述哈希环形空间,并在所述哈希环形空间上设置所述管理服务器对应的节点;
节点分段子模块,用于通过所述管理服务器对应的节点,将所述哈希环形空间进行拆分以将所述文件服务器的逻辑卷拆分为多个逻辑分段。
可选的,装置还包括:
磁盘划分模块,用于基于预设存储容量对所述存储服务器管理的磁盘进行划分,以在所述磁盘中确定至少一个第二存储区域。
可选的,数据操作模块包括:
第一标识子模块,用于在所有第一标识中获取目标第一标识,确定所述目标第一标识关联的目标第二存储区域;
副本子模块,用于基于所述多个数据中的每个数据,生成预设第一数量的数据副本;
副本存储子模块,用于将所述预设第一数量的数据副本,存储到所述目标第二存储区域。
可选的,数据操作模块包括:
标识获取子模块,用于在所有第一标识中获取目标第一标识,确定所述目标第一标识关联的目标第二存储区域;
数据条带子模块,用于将所述多个数据中的每个数据划分为预设第二数量的数据条带,并基于所述预设第二数量的数据条带,运算得到预设第三数量的数据校验条带;
条带存储子模块,用于将所述预设第二数量的数据条带和所述预设第三数量的数据校验条带,存储在所述目标第二存储区域。
可选的,所述方法还包括:
监控模块,用于将所述文件服务器的运行数据发送到预先设置的监控器;
其中,所述监控器用于根据所述文件服务器的运行数据,对所述文件服务器的运行状态进行监控,并在所述运行数据达到预设运行数据条件的情况下,执行对应的监控操作。
可选的,装置还包括:
更新写入模块,用于响应针对所述逻辑分段的更新数据的写入请求,生成所述更新数据对应的预写日志,以及根据所述预写日志生成所述更新数据对应的元数据;
数据判断模块,用于将所述预写日志和所述元数据存储到所述管理服务器;所述管理服务器用于在确定所述多个数据中至少一个数据与所述更新数据相同的情况下,删除所述至少一个数据对应的元数据。
可选的,装置包括:
元数据加载模块,用于向所述管理服务器发送元数据请求,并获取所述管理服务器返回的所述元数据;所述管理服务器用于将所述元数据加载到所述管理服务器的内存中,以使得所述管理服务器在所述内存中对所述元数据进行读写操作并向所述管理服务器返回所述元数据。
可选的,管理服务器还用于:
构建双向链表;所述双向链表用于记录所述内存中多个元数据的顺序;
当对所述多个元数据中的目标元数据进行访问后,将所述目标元数据在所述双向链表中的位置移动至所述双向链表的前端;
在所述内存的空间占用达到预设占用条件的情况下,将所述双向链表的末端对应的元数据从所述内存中删除,并将所述末端对应的元数据存储到所述内存之外的其他存储器中。
可选的,区域标识模块包括:
对应管理子模块,用于基于所述至少一个第一存储区域,确定每个所述第一存储区域对应的管理服务器;
时间戳子模块,用于获取每个所述第一存储区域对应的管理服务器的标识,以及获取当前的时间戳;
标识生成子模块,用于根据所述当前的时间戳和每个所述第一存储区域对应的管理服务器的标识,生成所述至少一个第一存储区域分别对应的第一标识。
可选的,区域标识模块包括:
第一映射子模块,用于通过预设的数据分布算法,建立每个所述第一标识到存储服务器之间的第一映射关系;
第二映射子模块,用于基于所述第一映射关系,确定所述第一标识对应的目标存储服务器;
第二分配子模块,用于建立所述第一标识与所述目标存储服务器的第二存储区域之间的第二映射关系,以为每个所述第一标识分配关联的第二存储区域;所述目标存储服务器的第二存储区域位于所述目标存储服务器管理的磁盘中。
可选的,装置包括:
映射存储模块,用于将所述第一标识与所述目标存储服务器的第二存储区域之间的第二映射关系,存储在所述目标存储服务器的所述磁盘中;
其中,所述目标存储服务器用于根据所述第一标识和所述第二映射关系查找对应的第二存储区域;所述目标存储服务器还用于在启动时将存储的所述第二映射关系加载到所述目标存储服务器的内存中。
可选的,所述第一存储区域和所述目标第二存储区域的空间大小一致;所述数据存储地址为偏移地址;目标读取模块,包括:
第一偏移子模块,用于基于所述元数据中的所述偏移地址,在所述目标第二存储区域中确定所述偏移地址对应的目标存储位置;
第一读取子模块,用于基于所述目标存储位置,读取数据。
可选的,所述数据存储地址为偏移地址;目标读取模块,包括:
第二偏移子模块,用于基于所述元数据中的所述偏移地址、所述第一存储区域的空间大小和所述目标第二存储区域的空间大小,运算得到更新的存储地址;
第二读取子模块,用于基于所述更新的存储地址,在所述目标第二存储区域中确定所述更新的存储地址对应的目标存储位置;
基于所述目标存储位置,读取数据。
可选的,装置还包括:
差异扫描模块,用于在所述元数据和所述预写日志存在差异的情况下,扫描所述管理服务器中预设第四数量的第一存储区域;
元数据更新模块,用于根据所述预设第四数量的第一存储区域中记录的预写日志,对所述元数据进行更新。
本发明实施例中,通过获取待分配硬件资源的配置数据,通过基板管理控制器将所述配置数据存储到存储器;所述待分配硬件资源用于被分配到中央处理器的多个根端口,所述配置数据用于表征所述根端口对硬件资源的需求量;在基本输入输出系统启动后,所述基本输入输出系统获取所述存储器中的所述配置数据;所述基本输入输出系统将所述配置数据写入中央处理器的寄存器,并基于所述配置数据,所述寄存器将所述待分配硬件资源分配到所述中央处理器的多个根端口。可以预先获取待分配硬件资源的配置数据,配置数据被写入到基板管理控制器的存储器,在基本输入输出系统启动后,基本输入输出系统获取配置数据,最终中央处理器的寄存器获取配置数据后,对中央处理器的根端口进行资源分配。能够避免在根端口连接设备后,造成根端口资源不足的情况,进一步避免了还需要重启去完成资源的重新分配,提高了资源分配的效率。
本发明实施例还提供了一种电子设备,如图15所示,包括处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
存储器1503,用于存放计算机程序。
处理器1501用于执行存储器1503上所存放的程序时,实现如下步骤:在驾驶员操控车辆运行的过程中,获取车辆的行驶状态信息;基于所述行驶状态信息识别不同类别的驾驶行为,确定至少一类驾驶行为的特征数据;将确定的所述特征数据输入身份识别模型,对当前驾驶员进行身份识别。
其中,处理器1501还可以实现上述分布式存储系统数据管理方法中的其他步骤,这里不再赘述。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中所述的分布式存储系统数据管理方法。
本申请实施例提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现前述实施例所述的分布式存储系统数据管理方法的步骤。
所述计算机程序产品相比于相关技术与前述实施例的分布式存储系统数据管理方法所具有的优势相同,此处不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。对于装置、电子设备、计算机可读存储介质及其包含指令的计算机程序产品的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,包含在本发明的保护范围内。
Claims (20)
1.一种分布式存储系统数据管理方法,其特征在于,应用于文件服务器,方法包括:
将所述文件服务器的逻辑卷拆分为多个逻辑分段;所述逻辑分段由管理服务器进行控制;所述管理服务器中包括至少一个第一存储区域;
生成所述至少一个第一存储区域对应的第一标识,并为每个所述第一标识分配关联的第二存储区域;所述第二存储区域位于存储服务器中;
响应针对所述逻辑分段的多个数据的写入请求,生成预写日志;所述预写日志包括所述多个数据和多个写入操作;所述预写日志存储于所述第一存储区域中;
在所有第一标识中获取目标第一标识,确定所述目标第一标识关联的目标第二存储区域,并将所述多个数据存储到所述目标第二存储区域;
在将所述多个数据存储后,根据所述预写日志,生成所述多个数据的元数据;所述元数据中包括目标第一标识和数据存储地址,所述元数据存储在所述管理服务器中。
2.根据权利要求1所述的方法,其特征在于,在根据所述预写日志,生成所述多个数据的元数据的步骤之后,还包括:
向所述管理服务器发出元数据请求,并获取所述管理服务器返回的所述元数据;
根据所述元数据中的所述目标第一标识,确定所述目标第一标识关联的所述目标第二存储区域;
基于所述元数据中的所述数据存储地址,从所述目标第二存储区域中读取数据。
3.根据权利要求2所述的方法,其特征在于,在基于所述元数据中的所述数据存储地址,从所述目标第二存储区域中读取数据的步骤之后,还包括:
将所述元数据中的所述目标第一标识和所述数据存储地址存储在所述文件服务器的存储器中。
4.根据权利要求1所述的方法,其特征在于,所述管理服务器有多个;将所述文件服务器的逻辑卷拆分为多个逻辑分段的步骤,包括:
通过一致性哈希算法,构建哈希环形空间;
将所述文件服务器的逻辑卷的地址空间映射到所述哈希环形空间,并在所述哈希环形空间上设置所述管理服务器对应的节点;
通过所述管理服务器对应的节点,将所述哈希环形空间进行拆分以将所述文件服务器的逻辑卷拆分为多个逻辑分段。
5.根据权利要求2所述的方法,其特征在于,在所有第一标识中获取目标第一标识,确定所述目标第一标识关联的目标第二存储区域,并将所述多个数据存储到所述目标第二存储区域的步骤之前,还包括:
基于预设存储容量对所述存储服务器管理的磁盘进行划分,以在所述磁盘中确定至少一个第二存储区域。
6.根据权利要求2所述的方法,其特征在于,在所有第一标识中获取目标第一标识,确定所述目标第一标识关联的目标第二存储区域,并将所述多个数据存储到所述目标第二存储区域的步骤,包括:
在所有第一标识中获取目标第一标识,确定所述目标第一标识关联的目标第二存储区域;
基于所述多个数据中的每个数据,生成预设第一数量的数据副本;
将所述预设第一数量的数据副本,存储到所述目标第二存储区域。
7.根据权利要求2所述的方法,其特征在于,在所有第一标识中获取目标第一标识,确定所述目标第一标识关联的目标第二存储区域,并将所述多个数据存储到所述目标第二存储区域的步骤,包括:
在所有第一标识中获取目标第一标识,确定所述目标第一标识关联的目标第二存储区域;
将所述多个数据中的每个数据划分为预设第二数量的数据条带,并基于所述预设第二数量的数据条带,运算得到预设第三数量的数据校验条带;
将所述预设第二数量的数据条带和所述预设第三数量的数据校验条带,存储在所述目标第二存储区域。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述文件服务器的运行数据发送到预先设置的监控器;
其中,所述监控器用于根据所述文件服务器的运行数据,对所述文件服务器的运行状态进行监控,并在所述运行数据达到预设运行数据条件的情况下,执行对应的监控操作。
9.根据权利要求1所述的方法,其特征在于,根据所述预写日志,生成所述多个数据的元数据的步骤之后,还包括:
响应针对所述逻辑分段的更新数据的写入请求,生成所述更新数据对应的预写日志,以及根据所述预写日志生成所述更新数据对应的元数据;
将所述预写日志和所述元数据存储到所述管理服务器;所述管理服务器用于在确定所述多个数据中至少一个数据与所述更新数据相同的情况下,删除所述至少一个数据对应的元数据。
10.根据权利要求9所述的方法,其特征在于,在将所述预写日志和所述元数据存储到所述管理服务器的步骤之后,还包括:
向所述管理服务器发送元数据请求,并获取所述管理服务器返回的所述元数据;所述管理服务器用于将所述元数据加载到所述管理服务器的内存中,以使得所述管理服务器在所述内存中对所述元数据进行读写操作并向所述管理服务器返回所述元数据。
11.根据权利要求10所述的方法,其特征在于,所述管理服务器还用于:
构建双向链表;所述双向链表用于记录所述内存中多个元数据的顺序;
当对所述多个元数据中的目标元数据进行访问后,将所述目标元数据在所述双向链表中的位置移动至所述双向链表的前端;
在所述内存的空间占用达到预设占用条件的情况下,将所述双向链表的末端对应的元数据从所述内存中删除,并将所述末端对应的元数据存储到所述内存之外的其他存储器中。
12.根据权利要求1所述的方法,其特征在于,生成所述至少一个第一存储区域对应的第一标识的步骤,包括:
基于所述至少一个第一存储区域,确定每个所述第一存储区域对应的管理服务器;
获取每个所述第一存储区域对应的管理服务器的标识,以及获取当前的时间戳;
根据所述当前的时间戳和每个所述第一存储区域对应的管理服务器的标识,生成所述至少一个第一存储区域分别对应的第一标识。
13.根据权利要求5所述的方法,其特征在于,为每个所述第一标识分配关联的第二存储区域的步骤,包括:
通过预设的数据分布算法,建立每个所述第一标识到存储服务器之间的第一映射关系;
基于所述第一映射关系,确定所述第一标识对应的目标存储服务器;
建立所述第一标识与所述目标存储服务器的第二存储区域之间的第二映射关系,以为每个所述第一标识分配关联的第二存储区域;所述目标存储服务器的第二存储区域位于所述目标存储服务器管理的磁盘中。
14.根据权利要求13所述的方法,其特征在于,在建立所述第一标识与所述目标存储服务器的第二存储区域之间的第二映射关系,以为每个所述第一标识分配关联的第二存储区域的步骤之后,还包括:
将所述第一标识与所述目标存储服务器的第二存储区域之间的第二映射关系,存储在所述目标存储服务器的所述磁盘中;
其中,所述目标存储服务器用于根据所述第一标识和所述第二映射关系查找对应的第二存储区域;所述目标存储服务器还用于在启动时将存储的所述第二映射关系加载到所述目标存储服务器的内存中。
15.根据权利要求6所述的方法,其特征在于,所述第一存储区域和所述目标第二存储区域的空间大小一致;所述数据存储地址为偏移地址;基于所述元数据中的所述数据存储地址,从所述目标第二存储区域中读取数据的步骤,包括:
基于所述元数据中的所述偏移地址,在所述目标第二存储区域中确定所述偏移地址对应的目标存储位置;
基于所述目标存储位置,读取数据。
16.根据权利要求7所述的方法,其特征在于,所述数据存储地址为偏移地址;基于所述元数据中的所述数据存储地址,从所述目标第二存储区域中读取数据的步骤,包括:
基于所述元数据中的所述偏移地址、所述第一存储区域的空间大小和所述目标第二存储区域的空间大小,运算得到更新的存储地址;
基于所述更新的存储地址,在所述目标第二存储区域中确定所述更新的存储地址对应的目标存储位置;
基于所述目标存储位置,读取数据。
17.根据权利要求1所述的方法,其特征在于,在根据所述预写日志,生成所述多个数据的元数据的步骤之后,还包括:
在所述元数据和所述预写日志存在差异的情况下,扫描所述管理服务器中预设第四数量的第一存储区域;
根据所述预设第四数量的第一存储区域中记录的预写日志,对所述元数据进行更新。
18.一种分布式存储系统数据管理装置,其特征在于,应用于文件服务器,包括:
文件服务模块,用于将所述文件服务器的逻辑卷拆分为多个逻辑分段;所述逻辑分段由管理服务器进行控制;所述管理服务器中包括至少一个第一存储区域;
区域标识模块,用于生成所述至少一个第一存储区域对应的第一标识,并为每个所述第一标识分配关联的第二存储区域;所述第二存储区域位于存储服务器中;
日志生成模块,用于响应针对所述逻辑分段的多个数据的写入请求,生成预写日志;所述预写日志包括所述多个数据和多个写入操作;所述预写日志存储于所述第一存储区域中;
数据操作模块,用于在所有第一标识中获取目标第一标识,确定所述目标第一标识关联的目标第二存储区域,并将所述多个数据存储到所述目标第二存储区域;
元数据模块,用于在将所述多个数据存储后,根据所述预写日志,生成所述多个数据的元数据;所述元数据中包括目标第一标识和数据存储地址,所述元数据存储在所述管理服务器中。
19.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至17任一项所述的分布式存储系统数据管理方法。
20.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中计算机程序被处理器执行时实现如权利要求1至17任一项所述的分布式存储系统数据管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410282404.8A CN117891409A (zh) | 2024-03-13 | 2024-03-13 | 分布式存储系统数据管理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410282404.8A CN117891409A (zh) | 2024-03-13 | 2024-03-13 | 分布式存储系统数据管理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117891409A true CN117891409A (zh) | 2024-04-16 |
Family
ID=90647513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410282404.8A Pending CN117891409A (zh) | 2024-03-13 | 2024-03-13 | 分布式存储系统数据管理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117891409A (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103516549A (zh) * | 2013-09-27 | 2014-01-15 | 浪潮电子信息产业股份有限公司 | 一种基于共享对象存储的文件系统元数据日志机制 |
CN107203559A (zh) * | 2016-03-17 | 2017-09-26 | 华为技术有限公司 | 一种划分数据条带的方法和装置 |
CN109791594A (zh) * | 2016-08-12 | 2019-05-21 | Altr解决方案公司 | 为了在多个不可变数据结构上持续存储而对数据进行分段 |
CN110196835A (zh) * | 2019-05-28 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 元数据的处理方法、元数据的处理装置以及电子设备 |
CN110502507A (zh) * | 2019-08-29 | 2019-11-26 | 上海达梦数据库有限公司 | 一种分布式数据库的管理系统、方法、设备和存储介质 |
CN112035065A (zh) * | 2020-08-28 | 2020-12-04 | 北京浪潮数据技术有限公司 | 一种数据写入方法、装置、设备及计算机可读存储介质 |
CN112052124A (zh) * | 2020-09-25 | 2020-12-08 | 杭州宏杉科技股份有限公司 | 数据冗余方法及分布式存储集群 |
CN112346659A (zh) * | 2020-11-05 | 2021-02-09 | 苏州浪潮智能科技有限公司 | 一种分布式对象存储元数据的存储方法、设备及存储介质 |
CN112640371A (zh) * | 2018-09-04 | 2021-04-09 | 思科技术公司 | 使用分段路由技术来减少分布式存储操作延迟 |
CN113407296A (zh) * | 2020-03-16 | 2021-09-17 | 阿里巴巴集团控股有限公司 | 容器服务管理方法和装置 |
CN114063931A (zh) * | 2021-11-26 | 2022-02-18 | 重庆科创职业学院 | 一种基于大数据的数据存储方法 |
CN114647383A (zh) * | 2022-03-29 | 2022-06-21 | 重庆紫光华山智安科技有限公司 | 数据访问方法、装置、存储节点及存储介质 |
CN115639966A (zh) * | 2022-11-03 | 2023-01-24 | 上海爱数信息技术股份有限公司 | 一种数据写入方法、装置、终端设备及存储介质 |
CN117093139A (zh) * | 2023-07-04 | 2023-11-21 | 北京百度网讯科技有限公司 | 用于数据存储的数据处理方法、装置与系统 |
-
2024
- 2024-03-13 CN CN202410282404.8A patent/CN117891409A/zh active Pending
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103516549A (zh) * | 2013-09-27 | 2014-01-15 | 浪潮电子信息产业股份有限公司 | 一种基于共享对象存储的文件系统元数据日志机制 |
CN107203559A (zh) * | 2016-03-17 | 2017-09-26 | 华为技术有限公司 | 一种划分数据条带的方法和装置 |
CN109791594A (zh) * | 2016-08-12 | 2019-05-21 | Altr解决方案公司 | 为了在多个不可变数据结构上持续存储而对数据进行分段 |
CN112640371A (zh) * | 2018-09-04 | 2021-04-09 | 思科技术公司 | 使用分段路由技术来减少分布式存储操作延迟 |
CN110196835A (zh) * | 2019-05-28 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 元数据的处理方法、元数据的处理装置以及电子设备 |
CN110502507A (zh) * | 2019-08-29 | 2019-11-26 | 上海达梦数据库有限公司 | 一种分布式数据库的管理系统、方法、设备和存储介质 |
CN113407296A (zh) * | 2020-03-16 | 2021-09-17 | 阿里巴巴集团控股有限公司 | 容器服务管理方法和装置 |
CN112035065A (zh) * | 2020-08-28 | 2020-12-04 | 北京浪潮数据技术有限公司 | 一种数据写入方法、装置、设备及计算机可读存储介质 |
CN112052124A (zh) * | 2020-09-25 | 2020-12-08 | 杭州宏杉科技股份有限公司 | 数据冗余方法及分布式存储集群 |
CN112346659A (zh) * | 2020-11-05 | 2021-02-09 | 苏州浪潮智能科技有限公司 | 一种分布式对象存储元数据的存储方法、设备及存储介质 |
CN114063931A (zh) * | 2021-11-26 | 2022-02-18 | 重庆科创职业学院 | 一种基于大数据的数据存储方法 |
CN114647383A (zh) * | 2022-03-29 | 2022-06-21 | 重庆紫光华山智安科技有限公司 | 数据访问方法、装置、存储节点及存储介质 |
CN115639966A (zh) * | 2022-11-03 | 2023-01-24 | 上海爱数信息技术股份有限公司 | 一种数据写入方法、装置、终端设备及存储介质 |
CN117093139A (zh) * | 2023-07-04 | 2023-11-21 | 北京百度网讯科技有限公司 | 用于数据存储的数据处理方法、装置与系统 |
Non-Patent Citations (5)
Title |
---|
周国安;李强;陈新;胡旭;: "海量小文件元数据的分布式存储与检索", 空军预警学院学报, no. 06, 15 December 2014 (2014-12-15) * |
张猛;钱育蓉;蒲勇霖;范迎迎;杜娇;: "基于内存云的数据存储优化策略", 计算机技术与发展, no. 06, 24 February 2018 (2018-02-24) * |
王振;王雷;王宇;: "基于虚拟磁盘块存储的分布式文件系统研究", 华中科技大学学报(自然科学版), no. 2, 10 January 2014 (2014-01-10) * |
陈波;陆游游;蔡涛;陈游旻;屠要峰;舒继武;: "一种分布式持久性内存文件系统的一致性机制", 计算机研究与发展, no. 03, 15 March 2020 (2020-03-15) * |
黄秋兰;程耀东;杜然;陈刚;: "可扩展的分布式元数据管理系统设计", 计算机工程, no. 05, 15 May 2015 (2015-05-15) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106708425B (zh) | 分布式多模存储管理 | |
US11010078B2 (en) | Inline deduplication | |
US9329957B2 (en) | Method for managing storage system using flash memory, and computer | |
US9507800B2 (en) | Data management in distributed file systems | |
US8051050B2 (en) | Block-level data de-duplication using thinly provisioned data storage volumes | |
TWI778157B (zh) | 固態驅動器、分散式資料儲存系統和利用鍵值儲存的方法 | |
CN108459826B (zh) | 一种处理io请求的方法及装置 | |
US8793466B2 (en) | Efficient data object storage and retrieval | |
CN107924291B (zh) | 存储系统 | |
CN105190573A (zh) | 存储数据的减少冗余 | |
CN110908589B (zh) | 数据文件的处理方法、装置、系统和存储介质 | |
CN110557964B (zh) | 数据写入方法、客户端服务器和系统 | |
CN113568582B (zh) | 数据管理方法、装置和存储设备 | |
US11243877B2 (en) | Method, apparatus for data management, and non-transitory computer-readable storage medium for storing program | |
CN111949210A (zh) | 分布式存储系统中元数据存储方法、系统及存储介质 | |
US20210278983A1 (en) | Node Capacity Expansion Method in Storage System and Storage System | |
CN109960662B (zh) | 一种内存回收方法及设备 | |
US11947419B2 (en) | Storage device with data deduplication, operation method of storage device, and operation method of storage server | |
US11079956B2 (en) | Storage system and storage control method | |
CN117891409A (zh) | 分布式存储系统数据管理方法、装置、设备及存储介质 | |
CN117032596B (zh) | 数据访问方法及装置、存储介质及电子设备 | |
CN112988034B (zh) | 一种分布式系统数据写入方法及装置 | |
US20240119029A1 (en) | Data processing method and related apparatus | |
WO2021189306A1 (en) | Write operation in object storage system using enhanced meta structure | |
CN116185949A (zh) | 缓存存储方法以及相关设备 |
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 |