CN110569225A - 一种数据存储方法及系统 - Google Patents

一种数据存储方法及系统 Download PDF

Info

Publication number
CN110569225A
CN110569225A CN201910790627.4A CN201910790627A CN110569225A CN 110569225 A CN110569225 A CN 110569225A CN 201910790627 A CN201910790627 A CN 201910790627A CN 110569225 A CN110569225 A CN 110569225A
Authority
CN
China
Prior art keywords
node
physical node
file
virtual
data 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.)
Pending
Application number
CN201910790627.4A
Other languages
English (en)
Inventor
林仁杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wangsu Science and Technology Co Ltd
Original Assignee
Wangsu Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wangsu Science and Technology Co Ltd filed Critical Wangsu Science and Technology Co Ltd
Priority to CN201910790627.4A priority Critical patent/CN110569225A/zh
Publication of CN110569225A publication Critical patent/CN110569225A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/119Details of migration of file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/188Virtual file systems

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

一种数据存储方法及系统
技术领域
本发明涉及分布式存储技术领域,特别涉及一种数据存储方法及系统。
背景技术
目前,随着数据量大规模的增长,分布式存储系统中的各节点或各集群可能因为io负载过高导致过载,所以需要增加新的存储节点以应对大量数据的读写请求。而传统的哈希存储方式,例如采用一致性哈希算法的存储方式,在存储系统增加存储节点扩容后,会导致存储系统中的各文件对应的哈希值会发生变化,也就是说,各文件的存储地址也会发生变化,需要重新计算各文件的哈希值以便对文件执行二次均衡分布。所以传统的哈希存储方式在进行扩容时,会导致巨大的计算量,而对于海量的存储系统来说,这将花费很长的时间和较高的系统代价。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种数据存储方法及系统。
所述技术方案如下:
第一方面,提供了一种数据存储方法,所述方法包括:
数据存储中心构建虚拟节点与物理节点的映射关系;
确定目标文件对应的虚拟节点;
基于所述虚拟节点与物理节点的映射关系,确定存储所述目标文件的物理节点。
可选的,确定目标文件对应的虚拟节点的步骤,包括:
根据所述目标文件的文件名称计算所述目标文件的存储路径的哈希值,或者,根据所述目标文件的URI计算所述目标文件的URL的哈希值;
确定所述哈希值对应的虚拟节点。
可选的,所述方法还包括:
为实现物理节点扩容从现有虚拟节点中分割出部分虚拟节点,并向调度中心发送所述分割出的虚拟节点;
调度中心获取所述分割出的虚拟节点的文件信息;
所述调度中心基于所获取的文件信息,向存储相应文件的物理节点发送迁移指令;
接收到所述迁移指令的物理节点将所述相应文件迁移至新增的物理节点中。
可选的,所述方法还包括:
调度中心发送待缩减的物理节点的虚拟节点与新的物理节点的映射关系;
基于所述待缩减的物理节点的虚拟节点与新的物理节点的映射关系,所述待缩减的物理节点中的文件被迁移到相应的物理节点中。
可选的,在文件发生迁移之后,所述数据存储中心更新所述虚拟节点与物理节点的映射关系。
可选的,所述数据存储中心还保存有文件信息,其中,每条所述文件信息包括域名、文件名称、写入时间、过期时间、文件校验码、文件标签以及文件大小中的一种或多种。
相应的,所述方法还包括:
获取已过期文件的文件信息,并删除已过期的文件。
第二方面,提供了一种分布式存储系统,该系统包括数据存储中心和客户端,
所述数据存储中心,用于构建虚拟节点与物理节点的映射关系;
所述客户端,用于确定目标文件对应的虚拟节点,以及基于所述虚拟节点与物理节点的映射关系,确定存储所述目标文件的物理节点。
可选的,所述客户端,具体用于:
根据所述目标文件的文件名称计算所述目标文件的存储路径的哈希值,或者,根据所述目标文件的URI计算所述目标文件的URL的哈希值;
确定所述哈希值对应的虚拟节点。
可选的,所述系统还包括调度中心;
所述数据存储中心,用于为实现物理节点扩容从现有虚拟节点中分割出部分虚拟节点,并向所述调度中心发送所述分割出的虚拟节点;
所述调度中心,用于获取所述分割出的虚拟节点的文件信息,并基于所获取的文件信息,向存储相应文件的物理节点发送迁移指令,以使接收到所述迁移指令的物理节点将所述相应文件迁移至新增的物理节点中。
可选的,调度中心,用于向物理节点发送待缩减的物理节点的虚拟节点与新的物理节点的映射关系,以使所述待缩减的物理节点中的文件被迁移到相应的物理节点中。
可选的,所述数据存储中心,还用于在文件发生迁移之后,更新所述虚拟节点与物理节点的映射关系。
可选的,所述数据存储中心还保存有文件信息,其中,每条所述文件信息包括域名、文件名称、写入时间、过期时间、文件校验码、文件标签以及文件大小中的一种或多种。
相应的,调度中心还用于获取已过期文件的文件信息,并删除已过期的文件。
第三方面,提供了一种数据存储中心,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第一方面的数据存储方法中所述数据存储中心执行的处理过程。
第四方面,提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面的数据存储方法中所述数据存储中心执行的处理过程。
本发明实施例在物理节点的基础上抽象出多个虚拟节点,并构建虚拟节点与物理节点的映射关系,客户端在定位目标文件时,可以通过哈希计算准确地确定目标文件对应的虚拟节点,再根据虚拟节点与物理节点的映射关系以及目标文件对应的虚拟节点,准确地确定存储目标文件的物理节点,从而实现精确的文件定位,并且在采用该数据存储方法的基础上,能够以最低的代价实现物理节点扩容、缩减以及二次均衡分布。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据存储系统的结构框图;
图2是本发明实施例提供的一种数据存储方法的流程图;
图3是本发明实施例提供的一种物理节点的扩容方法的流程图;
图4是本发明实施例提供的一种物理节点的缩减方法的流程图
图5是本发明实施例提供的一种数据存储中心的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种数据存储方法,该方法可以应用于图1所示的数据存储系统。该系统包括位于前端的客户端、虚拟层的虚拟节点、实体层的物理节点、数据存储中心以及调度中心。在本发明实施例中,数据存储中心先构建虚拟节点与物理节点的映射关系,并进行保存。其中,在所述虚拟节点与物理节点的映射关系中,每一物理节点对应多个虚拟节点。数据存储中心主动向客户端推送所述虚拟节点与物理节点的映射关系。客户端获取并缓存虚拟节点与物理节点的映射关系。客户端在写入或读取目标文件时,先确定待写入或待读取的目标文件对应的虚拟节点,然后基于所述虚拟节点与物理节点的映射关系以及所述虚拟节点,确定存储所述目标文件的物理节点,再将目标文件写入该物理节点,或者从该物理节点中读取目标文件。
所述调度中心用于在物理节点扩容后或缩减后,跨节点或集群对文件进行迁移。
需要说明的是,上述物理节点可以是单一的服务器,也可以是服务器集群,即物理集群。并且,虚拟节点可以是单一的虚拟服务器,也可以是虚拟服务器集群,即虚拟集群。
以下,结合上述提供的分布式存储系统,对发明实施例进行详细说明。
参照图2,为本发明实施例提供的一种数据存储方法的流程图,该方法具体包括以下步骤。
步骤201,数据存储中心构建虚拟节点与物理节点的映射关系。
在实施中,可以由数据存储中心构建虚拟节点与物理节点的映射关系,或者由其他设备进行构建,然后再将构建好的映射关系保存在数据存储中心。一个物理节点可以虚拟成多个虚拟节点,例如虚拟成1000个虚拟节点,也就等同于将一个物理节点分割成多份。如果物理节点1被虚拟成1000个虚拟节点,则其映射关系可以表示为,物理节点1对应虚拟节点1~1000。
虚拟节点与物理节点的映射关系可以以映射表的形式存储于数据存储中心。
步骤202,所述数据存储中心向客户端发送所述虚拟节点与物理节点的映射关系。
步骤203,所述客户端获取虚拟节点与物理节点的映射关系。
为使客户端根据虚拟节点与物理节点的映射关系准确定位文件,例如将文件存入相应的物理节点,或者从相应的物理节点中读取文件,在虚拟节点与物理节点的映射关系构建成功之后,或者发生更新之后,数据存储中心会向客户端主动发送虚拟节点与物理节点的映射关系。客户端接收到虚拟节点与物理节点的映射关系之后,进行缓存。步骤204,所述客户端确定目标文件对应的虚拟节点。
客户端欲定位目标文件,首先需要确定目标文件对应的虚拟节点,以进一步根据虚拟节点与物理节点的映射关系确定存储目标文件的物理节点。客户端可以利用哈希函数确定目标文件对应的虚拟节点,该流程具体包括:利用哈希函数计算所述目标文件对应的哈希值,确定所述哈希值对应的虚拟节点。在实施中,每个虚拟节点的ID可以对应一哈希值,计算得到目标文件的哈希值之后,便可以根据该哈希值确定目标文件对应的虚拟节点的ID。进一步的,可以利用目标文件的名称计算所述目标文件的存储路径的哈希值,或者还可以利用所述目标文件的URI(Uniform Resource Identifier,统一资源标识符)计算所述目标文件的URL(Uniform Resource Locator,统一资源定位符)的哈希值。在利用目标文件的名称或者URI计算哈希值时,可以通过MD5消息摘要算法、MD2消息摘要算法或者CRC(Cyclic Redundancy Check,循环冗余校验)32算法等哈希算法对目标文件的名称或者URI进行计算,得到一串数字,将该串数字值转换为十进制数值后对虚拟节点的总数量求余,该求余计算得到的数值即为哈希值,也是该目标文件对应的虚拟节点的ID。需要说明的是,在计算目标文件的哈希值时,可以利用任一能够将一串字符运算生成固定值串的算法来计算哈希值,在此不限定md5算法、md2算法或者crc32算法。例如,虚拟节点的总数量为10000,如果计算得到的十进制数值为10001,则用10001除以10000,得到的哈希值为1,也就是说,目标文件对应的虚拟节点的ID为1。
本发明实施通过哈希算法能够准确得到任一目标文件对应的虚拟节点的ID,进而根据虚拟节点与物理节点的映射关系准确确定存储目标文件的物理节点。并且,在计算文件的哈希值时,计算得到的哈希值具有随机性,所以各个文件能够均衡的分布到各个虚拟节点上,并且各虚拟节点也均衡的映射到各物理节点上,进而使各文件均衡分布到各物理节点上,以实现均衡负载,使存储系统内各个物理节点均能参与服务,并且不产生高负载的节点,系统可靠性增强。
步骤205,所述客户端基于所述虚拟节点与物理节点的映射关系,确定存储所述目标文件的物理节点。
客户端在确定出目标文件对应的目标虚拟节点之后,可以根据虚拟节点与物理节点的映射关系,确定目标虚拟节点对应的物理节点,该物理节点即为存储目标文件的物理节点。客户端在确定出存储目标文件的物理节点之后,可以将目标文件写入该物理节点,或者从该物理节点中读取目标文件。
在将目标文件写入物理节点之后,客户端向数据存储中心发送该目标文件的文件信息。数据存储中心接收到目标文件的文件信息之后,将该目标文件的文件信息写入该目标文件对应的虚拟节点ID下的数据表中。文件信息包括域名、文件名称、写入时间、过期时间、文件校验码、文件标签以及文件大小中的一种或多种。数据存储中心对文件信息进行管理,若发现存储于物理节点中的文件已过期,则向调度中心发送已过期文件的文件信息。调度中心在接获取到已过期文件的文件信息之后,删除物理节点中已过期的文件。也就是说,调度中心在接获取到已过期文件的文件信息之后,向相应的物理节点发送删除指令,接收到删除指令的物理节点删除已过期文件。
文件信息中的域名和文件标签可以用于快速筛选待删除的文件,避免通过文件名称进行一一筛选。例如,在删除某一域名下的全部文件时,可以筛选出包括该域名的全部文件信息,从而基于筛选出的文件信息,快速删除相应的文件。在例如,在删除标识有某一文件标签的全部文件时,可以筛选出包括该文件标签的全部文件信息,从而基于筛选出的文件信息,快速删除相应的文件。
文件信息中的文件校验码可以利用md5算法计算得到,其用于验证文件的完整性。具体的,调度中心向物理节点发送的删除指令可以包括文件校验码,以使物理节点基于该文件校验码删除完整的文件。需要说明的是,文件信息中还可以包括其他用于快速筛选文件的信息,例如,还可包括目录,用于快速筛选出该目录下的文件,本发明实施例不对文件信息所包含的信息进行具体限定。
本发明实施例在物理节点的基础上抽象出多个虚拟节点,并构建虚拟节点与物理节点的映射关系,客户端在定位目标文件时,可以通过哈希计算准确地确定目标文件对应的虚拟节点,再根据虚拟节点与物理节点的映射关系以及目标文件对应的虚拟节点,准确地确定存储目标文件的物理节点,从而实现精确的文件定位,并且在采用该数据存储方法的基础上,能够以最低的代价实现物理节点扩容、缩减以及二次均衡分布。以下对本存储方法所采用的物理节点扩容以及缩减方法进行具体说明。
如图3所示,针对上述数据存储方式,本发明实施例还提供了一种物理节点扩容方法,所述扩容方法包括以下步骤:
步骤301,数据存储中心为实现物理节点扩容从现有虚拟节点分割出部分虚拟节点。
在分布式存储系统中的物理节点达到一定使用程度,例如io负载过高时,需要增加新的物理节点进行扩容。首先,数据存储中心从现有虚拟节点分割出部分虚拟节点,分割出的虚拟节点用于与新增的物理节点进行映射。数据存储中心在为新增物理节点从各物理节点所映射的虚拟节点中分割虚拟节点时,可以基于目前虚拟节点的总数量为各物理节点平均分配,或尽可能平均分配虚拟节点。也就是说,在分割虚拟节点后,各物理节点(包括新增物理节点)所映射的虚拟节点数量相同,或者尽可能相同。例如,物理节点A和物理节点B分别映射450个虚拟节点,在新增物理节点C之后,可以为新增物理节点C分别从物理节点A和物理节点B中分割出150个虚拟节点,最后物理节点A、物理节点B和新增物理节点C所映射的虚拟节点均为300个。
数据存储中心在为新增物理节点从各物理节点所映射的虚拟节点中分割虚拟节点时,还可以基于目前虚拟节点下文件的总大小将存储量均摊,或尽可能均摊到各物理节点中。也就是说,在分割虚拟节点后,各物理节点(包括新增物理节点)所映射的虚拟节点下的文件总大小相同,或尽可能相同。例如,物理节点A的文件存储量为2G,物理节点B的文件存储量为1G,在新增物理节点C之后,可以为新增物理节点C从物理节点A分割出1G的存储量,也就是说,可以从所映射的虚拟节点中分割出对应文件大小1G的虚拟节点,而不需要再从物理节点B所映射的虚拟节点中分割虚拟节点,最后物理节点A、物理节点B和新增物理节点C的存储量均为1G。
在具体实施中,可以根据场景需要选用相应的虚拟节点分割方法,本发明实施例不对扩容时所采用的虚拟节点分割方法进行具体限定。
步骤302,调度中心获取分割出的虚拟节点的文件信息。
步骤303,所述调度中心基于所获取的文件信息,向存储相应文件的物理节点发送迁移指令。
步骤304,接收到所述迁移指令的物理节点将所述相应文件迁移至新增的物理节点中。
数据存储中心在分割出虚拟节点之后,可以将分割出的虚拟节点的ID发送给调度中心。调度中心接收到数据存储中心发送的虚拟节点的ID之后,从所述数据存储中心中获取分割出的虚拟节点下的文件信息,具体的,可以根据虚拟节点的ID,查找到该虚拟节点ID下的数据表,然后读取该数据表中的每条文件信息。调度中心还可以基于虚拟节点与物理节点的映射关系确定分割出的虚拟节点对应的原物理节点。调度中心再基于所获取的文件信息,向存储相应文件的物理节点发送迁移指令,接收到所述迁移指令的物理节点将所述相应文件迁移至新增的物理节点中。
在计算文件的哈希值时,需要对虚拟节点的总数量求余,虚拟节点的总数一旦发生变化,存储系统中各文件的哈希值才会发生变化,才需要重新计算各文件的哈希值,以重新确定各文件的存储位置。本发明实施例在物理节点的基础上抽象出虚拟节点,文件的哈希值对应虚拟节点,并不是直接对应物理节点,即使物理节点由于扩容总数量发生变化,但是虚拟节点的总数量没有发生,所以存储系统中各文件的哈希值也不会发生变化,不需要重新计算各文件的哈希值,大大节省了物理节点扩容的计算量。并且,由于物理节点可以虚拟出多个虚拟节点,所以可以在扩容时从现有的虚拟节点中分割出部分虚拟节点,将分割出的虚拟节点映射到新增的物理节点上,这样在进行数据迁移时,只需要对一小部分数据进行迁移,即只需对分割出的虚拟节点对应的文件进行迁移以实现二次均衡分布,所以本发明实施例能够以最低的代价实现扩容以及二次均衡分布。
物理节点在将文件迁移到新增的物理节点之后,释放分割出的虚拟节点对应的存储空间。物理节点在完成文件迁移之后,数据存储中心更新虚拟节点与物理节点的映射关系,即取消原物理节点与分割出的虚拟节点之间的映射关系,以及构建新增物理节点与分割出的虚拟节点之间的映射关系。
如图4所示,基于与上述物理节点扩容方法相似的发明构思,本发明实施例还提供了一种物理节点缩减方法,该方法包括以下步骤。
步骤401,数据存储中心获取待缩减的物理节点的信息。
在具体实施中,可以随机选取预设数量的物理节点作为待缩减的物理节点,或者选取预设数量的io负载较低的物理节点作为待缩减的物理节点。
步骤402,数据存储中心将所述待缩减的物理节点的虚拟节点重新分配给其他物理节点。
在实施中,数据存储中心在重新分配待缩减的物理节点的虚拟节点时,可以基于目前虚拟节点的总数量为各物理节点(不包括待缩减的物理节点)平均分配,或尽可能平均分配虚拟节点。也就是说,在重新分配虚拟节点后,各物理节点所映射的虚拟节点数量相同,或者尽可能相同。例如,物理节点A、物理节点B和物理节点C所映射的虚拟节点均为300个,在缩减物理节点C之后,可以将物理节点C所映射的虚拟节点平均分配给物理节点A和物理节点B,最后物理节点A和物理节点B所映射的虚拟节点均变为450个。
数据存储中心在重新分配待缩减的物理节点的虚拟节点时,还可以基于目前虚拟节点下文件的总大小将存储量均摊,或尽可能均摊到各物理节点(不包括待缩减的物理节点)中。也就是说,在重新分配虚拟节点后,各物理节点所映射的虚拟节点下的文件总大小相同。例如,物理节点A、物理节点B和物理节点C的文件存储量均为1G,在缩减物理节点C之后,可以将物理节点C的存储量平均分摊给物理节点A和物理节点B,也就是说,将物理节点C所映射的虚拟节点划分分两组,每组虚拟节点下的文件总大小均为1G,然后将两组虚拟节点分别分配给物理节点A和物理节点B,最后物理节点A和物理节点B的存储量均变为1.5G。
数据存储中心在将所述待缩减的物理节点的虚拟节点重新分配给其他物理节点之后,构建待重新分配的虚拟节点与新的物理节点之间的映射关系。数据存储中心可以向调度中心发送所述待缩减的物理节点的虚拟节点与新的物理节点的之间的映射关系。
步骤403,调度中心获取所述待缩减的物理节点的虚拟节点与新的物理节点的映射关系。
步骤404,基于所述待缩减的物理节点的虚拟节点与新的物理节点的映射关系,所述待缩减的物理节点中的文件被迁移到相应的物理节点中。
调度中心在获取到所述待缩减的物理节点的虚拟节点与新的物理节点的映射关系之后,查找待缩减的物理节点的虚拟节点下的数据表,然后读取该数据表中的每条文件信息。调度中心再向待缩减的物理节点发送迁移指令,使待缩减的物理节点将存储的文件迁移至相应的物理节点中。该迁移指令包括待缩减的物理节点的虚拟节点与新的物理节点的映射关系,以及待缩减的物理节点的虚拟节点下的文件信息。
待缩减的物理节点将文件迁移到其他物理节点之后,释放存储空间。待缩减的物理节点在完成文件迁移之后,数据存储中心更新虚拟节点与物理节点的映射关系,即取消待缩减的物理节点与虚拟节点之间的映射关系,以及构建重新分配的虚拟节点与物理节点之间的映射关系。
本发明实施例的物理节点虚拟出多个虚拟节点,文件的哈希值对应虚拟节点,虚拟节点的总数量没有发生变化,所以存储系统中的各文件的哈希值也不会发生变化,不需要重新计算各文件的哈希值,节约了物理节点缩减时的计算量。并且,在物理节点缩减后,只需要对一小部分数据进行迁移,即只需对缩减的物理节点中的文件进行迁移以实现二次均衡分布,所以本发明实施例能够以最低的代价实现物理节点缩减以及二次均衡分布。
由于本发明实施例在进行物理节点的扩容以及缩减之后,不会产生大规模的数据迁移,只需对一小部分数据进行迁移,所以能够在不停止存储系统服务的情况下实现动态扩容以及动态缩减。
本发明实施例还提供了一种数据存储系统,该系统包括数据存储中心和客户端,
所述数据存储中心,用于构建虚拟节点与物理节点的映射关系;
所述客户端,用于确定目标文件对应的虚拟节点,以及基于所述虚拟节点与物理节点的映射关系,确定存储所述目标文件的物理节点。
优选的,所述客户端,具体用于:
根据所述目标文件的文件名称计算所述目标文件的存储路径的哈希值,或者,根据所述目标文件的URI计算所述目标文件的URL的哈希值;
确定所述哈希值对应的虚拟节点。
优选的,所述系统还包括调度中心;
所述数据存储中心,用于为实现物理节点扩容从现有虚拟节点中分割出部分虚拟节点,并向所述调度中心发送所述分割出的虚拟节点;
所述调度中心,用于获取所述分割出的虚拟节点的文件信息,并基于所获取的文件信息,向存储相应文件的物理节点发送迁移指令,以使接收到所述迁移指令的物理节点将所述相应文件迁移至新增的物理节点中。
优选的,调度中心,用于向物理节点发送待缩减的物理节点的虚拟节点与新的物理节点的映射关系,以使所述待缩减的物理节点中的文件被迁移到相应的物理节点中。
优选的,所述数据存储中心,还用于在文件发生迁移之后,更新所述虚拟节点与物理节点的映射关系。
优选的,所述数据存储中心还保存有文件信息,其中,每条所述文件信息包括域名、文件名称、写入时间、过期时间、文件校验码、文件标签以及文件大小中的一种或多种;
相应的,调度中心还用于获取已过期文件的文件信息,并删除已过期的文件。
本发明实施例在物理节点的基础上抽象出多个虚拟节点,并构建虚拟节点与物理节点的映射关系,客户端在定位目标文件时,可以通过哈希计算准确地确定目标文件对应的虚拟节点,再根据虚拟节点与物理节点的映射关系以及目标文件对应的虚拟节点,准确地确定存储目标文件的物理节点,从而实现精确的文件定位,并且在采用该数据存储方法的基础上,能够以最低的代价实现物理节点扩容、缩减以及二次均衡分布。
需要说明的是:上述实施例提供的数据存储系统与数据存储方法的实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图5是本发明实施例提供的数据存储中心的结构示意图。该数据存储中心500可因配置或性能不同而产生比较大差异,可以包括一个或一个以上中央处理器522(例如,一个或一个以上处理器)和存储器532,一个或一个以上存储应用程序542或数据544的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器532和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据存储中心中的一系列指令操作。更进一步地,中央处理器522可以设置为与存储介质530通信,在数据存储中心500上执行存储介质530中的一系列指令操作。
数据存储中心500还可以包括一个或一个以上电源524,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口558,一个或一个以上键盘554,和/或,一个或一个以上操作系统541,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
数据存储中心500可以包括有存储器,以及一个或者一个以上的计算机程序,其中一个或者一个以上计算机程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上计算机程序以实现上述数据存储方法中数据存储中心执行的处理过程。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种数据存储方法,其特征在于,所述方法包括:
数据存储中心构建虚拟节点与物理节点的映射关系;
确定目标文件对应的虚拟节点;
基于所述虚拟节点与物理节点的映射关系,确定存储所述目标文件的物理节点。
2.根据权利要求1所述的方法,其特征在于,确定目标文件对应的虚拟节点的步骤,包括:
根据所述目标文件的文件名称计算所述目标文件的存储路径的哈希值,或者,根据所述目标文件的URI计算所述目标文件的URL的哈希值;
确定所述哈希值对应的虚拟节点。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
为实现物理节点扩容从现有虚拟节点中分割出部分虚拟节点,并向调度中心发送所述分割出的虚拟节点;
调度中心获取所述分割出的虚拟节点的文件信息;
所述调度中心基于所获取的文件信息,向存储相应文件的物理节点发送迁移指令;
接收到所述迁移指令的物理节点将所述相应文件迁移至新增的物理节点中。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
调度中心发送待缩减的物理节点的虚拟节点与新的物理节点的映射关系;
基于所述待缩减的物理节点的虚拟节点与新的物理节点的映射关系,所述待缩减的物理节点中的文件被迁移到相应的物理节点中。
5.根据权利要求3或4所述的方法,其特征在于,在文件发生迁移之后,所述数据存储中心更新所述虚拟节点与物理节点的映射关系。
6.根据权利要求1所述的方法,其特征在于,所述数据存储中心还保存有文件信息,其中,每条所述文件信息包括域名、文件名称、写入时间、过期时间、文件校验码、文件标签以及文件大小中的一种或多种。
相应的,所述方法还包括:
获取已过期文件的文件信息,并删除已过期的文件。
7.一种数据存储系统,其特征在于,所述系统包括数据存储中心和客户端,
所述数据存储中心,用于构建虚拟节点与物理节点的映射关系;
所述客户端,用于确定目标文件对应的虚拟节点,以及基于所述虚拟节点与物理节点的映射关系,确定存储所述目标文件的物理节点。
8.根据权利要求7所述的系统,其特征在于,所述系统还包括调度中心;
所述数据存储中心,用于为实现物理节点扩容从现有虚拟节点中分割出部分虚拟节点,并向所述调度中心发送所述分割出的虚拟节点;
所述调度中心,用于获取所述分割出的虚拟节点的文件信息,并基于所获取的文件信息,向存储相应文件的物理节点发送迁移指令,以使接收到所述迁移指令的物理节点将所述相应文件迁移至新增的物理节点中。
9.一种数据存储中心,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至6中任一项所述的数据存储方法中所述数据存储中心执行的处理过程。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的数据存储方法中所述数据存储中心执行的处理过程。
CN201910790627.4A 2019-08-26 2019-08-26 一种数据存储方法及系统 Pending CN110569225A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910790627.4A CN110569225A (zh) 2019-08-26 2019-08-26 一种数据存储方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910790627.4A CN110569225A (zh) 2019-08-26 2019-08-26 一种数据存储方法及系统

Publications (1)

Publication Number Publication Date
CN110569225A true CN110569225A (zh) 2019-12-13

Family

ID=68776006

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910790627.4A Pending CN110569225A (zh) 2019-08-26 2019-08-26 一种数据存储方法及系统

Country Status (1)

Country Link
CN (1) CN110569225A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111787349A (zh) * 2020-05-19 2020-10-16 视联动力信息技术股份有限公司 一种数据缓存方法、装置、设备及介质
CN112100280A (zh) * 2020-11-12 2020-12-18 南京云信达科技有限公司 一种分布式数据一致性映射处理方法及装置
CN112416264A (zh) * 2020-12-11 2021-02-26 中国建设银行股份有限公司 数据的存储方法、装置及计算机存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102457571A (zh) * 2011-09-15 2012-05-16 中标软件有限公司 一种云存储中数据均衡分布方法
CN102819599A (zh) * 2012-08-15 2012-12-12 华数传媒网络有限公司 在一致性哈希数据分布基础上构建层次目录的方法
CN107885758A (zh) * 2016-09-30 2018-04-06 华为技术有限公司 一种虚拟节点的数据迁移方法和虚拟节点
CN108156243A (zh) * 2017-12-26 2018-06-12 北京百度网讯科技有限公司 分布式缓存系统中虚拟节点迁移的方法及装置
CN108334551A (zh) * 2017-12-29 2018-07-27 谷米科技有限公司 数据存储方法和系统、数据查询方法和系统
CN110086840A (zh) * 2018-01-26 2019-08-02 浙江宇视科技有限公司 图像数据存储方法、装置及计算机可读存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102457571A (zh) * 2011-09-15 2012-05-16 中标软件有限公司 一种云存储中数据均衡分布方法
CN102819599A (zh) * 2012-08-15 2012-12-12 华数传媒网络有限公司 在一致性哈希数据分布基础上构建层次目录的方法
CN107885758A (zh) * 2016-09-30 2018-04-06 华为技术有限公司 一种虚拟节点的数据迁移方法和虚拟节点
CN108156243A (zh) * 2017-12-26 2018-06-12 北京百度网讯科技有限公司 分布式缓存系统中虚拟节点迁移的方法及装置
CN108334551A (zh) * 2017-12-29 2018-07-27 谷米科技有限公司 数据存储方法和系统、数据查询方法和系统
CN110086840A (zh) * 2018-01-26 2019-08-02 浙江宇视科技有限公司 图像数据存储方法、装置及计算机可读存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111787349A (zh) * 2020-05-19 2020-10-16 视联动力信息技术股份有限公司 一种数据缓存方法、装置、设备及介质
CN111787349B (zh) * 2020-05-19 2023-12-12 视联动力信息技术股份有限公司 一种数据缓存方法、装置、设备及介质
CN112100280A (zh) * 2020-11-12 2020-12-18 南京云信达科技有限公司 一种分布式数据一致性映射处理方法及装置
CN112100280B (zh) * 2020-11-12 2021-02-26 南京云信达科技有限公司 一种分布式数据一致性映射处理方法及装置
CN112416264A (zh) * 2020-12-11 2021-02-26 中国建设银行股份有限公司 数据的存储方法、装置及计算机存储介质

Similar Documents

Publication Publication Date Title
US10691355B2 (en) Apparatus, method and computer program product for controlled ordering of data pages for migration from source storage system into target storage system
US10394847B2 (en) Processing data in a distributed database across a plurality of clusters
US8793227B2 (en) Storage system for eliminating duplicated data
US10824512B2 (en) Managing journaling resources with copies stored in multiple locations
US11461027B2 (en) Deduplication-aware load balancing in distributed storage systems
US10853242B2 (en) Deduplication and garbage collection across logical databases
US8996611B2 (en) Parallel serialization of request processing
US10826990B2 (en) Clustered storage system configured for bandwidth efficient processing of writes at sizes below a native page size
US11693789B2 (en) System and method for mapping objects to regions
US8782235B2 (en) Resource migration system and resource migration method
US20200019475A1 (en) Scalable, persistent, high performance and crash resilient metadata microservice
CN110569225A (zh) 一种数据存储方法及系统
US20200019476A1 (en) Accelerating Write Performance for Microservices Utilizing a Write-Ahead Log
US10895995B2 (en) Capacity based load balancing in distributed storage systems with deduplication and compression functionalities
CN110908589B (zh) 数据文件的处理方法、装置、系统和存储介质
US8516070B2 (en) Computer program and method for balancing processing load in storage system, and apparatus for managing storage devices
CN111949210A (zh) 分布式存储系统中元数据存储方法、系统及存储介质
US8386741B2 (en) Method and apparatus for optimizing data allocation
US10909001B1 (en) Storage system with snapshot group split functionality
US20210240911A1 (en) Online change of page size in a content aware storage logical layer
US20210117235A1 (en) Storage system with efficient release of address lock waiters during synchronous replication
US10747474B2 (en) Online cluster expansion for storage system with decoupled logical and physical capacity
JP5758449B2 (ja) データ再配置装置、方法およびプログラム
US11640343B2 (en) Method for migrating data in a raid system having a protection pool of storage units
US10929239B2 (en) Storage system with snapshot group merge functionality

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20191213