CN105516263A - 存储系统中数据分发方法、装置、计算节点及存储系统 - Google Patents

存储系统中数据分发方法、装置、计算节点及存储系统 Download PDF

Info

Publication number
CN105516263A
CN105516263A CN201510851932.1A CN201510851932A CN105516263A CN 105516263 A CN105516263 A CN 105516263A CN 201510851932 A CN201510851932 A CN 201510851932A CN 105516263 A CN105516263 A CN 105516263A
Authority
CN
China
Prior art keywords
node
target
computing nodes
sequence number
partition
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
Application number
CN201510851932.1A
Other languages
English (en)
Other versions
CN105516263B (zh
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201510851932.1A priority Critical patent/CN105516263B/zh
Publication of CN105516263A publication Critical patent/CN105516263A/zh
Application granted granted Critical
Publication of CN105516263B publication Critical patent/CN105516263B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种存储系统中数据分发方法、装置、计算节点及存储系统,属于计算机技术领域。存储系统包括多个计算节点和多个存储节点,方法包括:目标计算节点接收外部节点发送的输入输出I/O请求,目标计算节点由外部节点根据第一算法从多个计算节点中确定;目标计算节点根据第二算法从多个存储节点中确定目标存储节点;目标计算节点向目标存储节点发送I/O请求。由于对节点的计算功能和存储功能进行了分离部署,使得存储系统中包括多个计算节点和多个存储节点,因此计算性能和存储性能不相互制约相互影响,可根据需要对系统的计算性能和存储性能进行灵活配置,且计算功能无需依赖存储功能,软硬件之间实现了解耦。

Description

存储系统中数据分发方法、装置、计算节点及存储系统
技术领域
本发明涉及计算机技术领域,特别涉及一种数据分发方法、装置、计算节点及存储系统。
背景技术
在分布式存储系统中,一般是把节点组成一个DHT(DistributedHashTable,分布式哈希表)环,每一个节点负责管理环上的一段区域(partition),每个I/O(Input/Output,输入输出)请求存储在其哈希值所在区域对应的节点上。为了保证数据的一致性,在分布式存储系统中常用primary-secondary算法存储数据。primary-secondary算法是一种主从式算法,一般用于存储多副本数据。该算法首先由外部节点将I/O请求下发到主节点,然后由主节点将I/O请求同步到其余节点上,保证主副本之间的一致性。此外,分布式系统中每个节点都包含了控制功能和存储功能。其中,控制功能主要负责I/O请求分发、路由查询、视图管理、primary-secondary算法实现等,而存储功能主要负责K/V(Key/Value,键值)管理和数据读写等。
现有的分布式存储系统中,节点的控制功能和存储功能是合一部署的。参见图1,图1描述了LinuxPB级的分布式文件系统CEPH的节点部署和I/O流程示意图。在图1中,将存储功能和控制功能合一部署在一个节点上,所有合一部署的节点构成一个DHT环。当外部节点发起I/O请求时,首先将该I/O请求下发给主节点,然后再由主节点将该I/O请求同步到其余节点上。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
由于节点的存储功能和控制功能合一,所以导致控制功能强依赖存储功能,使得软硬件之间无法做到解耦,控制性能和存储性能相互制约、相互影响,当存储功能出现故障时将严重影响到控制功能,当控制功能出现故障时同样将严重影响到存储功能,致使整个分布式系统的性能受损。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种存储系统中数据分发方法、装置、计算节点及存储系统。所述技术方案如下:
第一方面,提供了一种存储系统中数据分发方法,所述存储系统包括多个计算节点和多个存储节点,所述方法包括:
目标计算节点接收外部节点发送的I/O请求;其中,所述目标计算节点由所述外部节点根据第一算法从所述多个计算节点中确定;
所述目标计算节点根据第二算法从所述多个存储节点中确定目标存储节点;
所述目标计算节点向所述目标存储节点发送所述I/O请求;所述目标存储节点包括主存储节点和副存储节点。
如图2所示,本发明实施例提供的存储系统中将节点的计算功能和存储功能进行了分离部署。存储系统中的全部计算节点组成了一个DHT环,在本文中将该DHT环统一称之为第一DHT环。全部的存储节点组成了另一个DHT环,在本文中将该DHT环统一称之为第二DHT环。需要说明的是,第一算法和第二算法均归属于哈希算法,二者基于相类似的构思。
当外部节点检测到用户生成一个I/O请求后,首先通过哈希算法在第一DHT环中确定处理该I/O请求的目标计算节点。之后,外部节点将该I/O请求发送至该目标计算节点,由该目标计算节点再通过哈希算法确定存储该I/O请求的主存储节点和副存储节点,并将该I/O请求分发给主存储节点和副存储节点进行存储。这样便实现了存储和控制分离部署,并可以根据需要对计算性能和存储性能进行灵活配置。
在第一方面的第一种可能的实现方式中,所述目标控制节点向所述目标存储节点发送所述I/O请求之后,所述方法还包括:
若所述目标计算节点接收到所述主存储节点返回的第一存储成功消息,且存储所述I/O请求的副存储节点数量达到阈值,则生成所述I/O请求的操作日志,并向所述外部节点返回第二存储成功消息。
由于primary-secondary算法要求主存储节点必须返回成功存储消息,整个I/O操作才算成功。因此,主存储节点在成功存储该I/O请求后,必须向目标计算节点返回成功存储消息。而多副本要求I/O请求的副本数足够,因此本发明实施例还限定了存储I/O请求的副存储节点的数量。
结合第一方面,在第一方面的第二种可能的实现方式中,所述方法还包括:
当所述目标计算节点检测到所述存储系统中计算节点的数量因故障减少时,确定所述多个计算节点中出现故障计算节点,获取所述多个计算节点的控制分区的数量、所述目标计算节点中每一个控制分区的标识和所述故障计算节点管理的数据分区的标识;
若所述故障计算节点管理的数据分区的标识与所述控制分区的数量之间的求模结果与所述目标计算节点中一个控制分区的标识相同,则所述目标计算节点接管所述故障计算节点管理的数据分区;
其中,一个计算节点包括至少一个控制分区,一个存储节点包括至少一个数据分区,一个计算节点可对多个数据分区进行管理。
多个计算节点的控制分区的数量,即指代第一DHT环包括的控制分区的数量,以control_partition_num进行表示,故障计算节点管理的数据分区的标识,以data_partition_id进行表示,则对于故障计算节点管理的任一数据分区来说,若hash(data_partition_id)%control_partition_num的求模取余结果与目标计算节点中一个控制分区的标识相同,则目标计算节点接管任一数据分区。
对于第一DHT环包括的控制分区来说,可以统一进行标识。比如,按照数字大小进行标识,从数字1进行开始,直至标识到100或1000等等。分为控制分区1、控制分区2……控制分区N等。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述方法还包括:
所述目标计算节点为管理的每一个数据分区分别分配序列号;
所述目标计算节点对目标数据分区的序列号执行加一;其中,所述目标数据分区为所述目标计算节点管理的数据分区中接收到修改类I/O请求的分区;
所述目标计算节点接管所述故障计算节点管理的数据分区,包括:
所述目标计算节点读取所述故障计算节点管理的数据分区在所述故障计算节点发生故障时的序列号。
需要说明的是,计算节点还会为每一个存储节点的数据分区分配一个序列号seqID,每一个在数据分区上的修改类I/O操作,均会触发一个seqID的递增操作,并且该seqID的数值会被存储在硬盘等存储介质中,这样即便发生断电等异常情况,每一个数据分区的seqID数值也不会丢失。也即,计算接点在接收到用户的I/O请求后,还会判断该I/O请求是否为修改类I/O请求;若该I/O请求为修改类I/O请求,则对该I/O请求所在数据分区的序列号执行加一操作,即seqID加1。
当计算节点发生故障后,根据DHT原理,它所管理的数据分区将会被迁移到其他的计算节点。对于故障计算节点的任一数据分区而言,其他的计算节点仅需读取到任一数据分区的seqID,便完成迁移服务。
结合第一方面,在第一方面的第四种可能的实现方式中,所述方法还包括:
在所述多个目标存储节点中任一存储节点发生故障且恢复后,所述目标计算节点计算故障存储节点中指定数据分区的序列号与正常存储节点中同一数据分区的当前序列号之差;其中,所述正常存储节点为在所述故障存储节点发生故障时,对所述指定数据分区进行管理的存储节点;
若所述指定数据分区的序列号与当前序列号之差不大于所述目标计算节点生成的I/O请求的操作日志数量,则所述目标计算节点执行所述正常存储节点上同一数据分区上的I/O请求,并更新所述指定数据分区的序列号;
若所述指定数据分区的序列号与当前序列号之差大于所述I/O请求的操作日志数量,则所述目标计算节点将所述正常存储节点的同一数据分区存储的I/O请求迁移至所述故障存储节点;
其中,序列号用于统计分发到数据分区的修改类I/O请求的数量,一个数据分区在接收到一个修改类I/O请求后,所述数据分区的序列号加一。
对于第一种情况,该步骤对应catchup操作。由于指定数据分区的序列号与当前序列号之差不大于生成的I/O请求的操作日志数量,则证明在副本存储节点上存储的I/O请求的操作日志量足够,则从副本存储节点上把这部分I/O请求取出在故障存储节点重新回放一次。
对于第二种情况,该步骤对应rebalance操作。由于指定数据分区的序列号与当前序列号之差大于生成的I/O请求的操作日志数量,则证明副本存储节点上存储的I/O请求的操作日志量不够,直接把副本存储节点上的所有数据同步到故障存储节点之上。
第二方面,提供了一种存储系统中数据分发装置,所述存储系统包括多个计算节点和多个存储节点,所述装置包括:
接收模块,用于接收外部节点发送的输入输出I/O请求,所述I/O请求由所述外部节点在根据第一算法从所述多个计算节点中确定处理所述I/O请求的目标计算节点后发送;
存储节点确定模块,用于根据第二算法从所述多个存储节点中确定目标存储节点;
发送模块,用于向所述目标存储节点发送所述I/O请求;所述目标存储节点包括主存储节点和副存储节点。
结合第二方面,在第二方面的第一种可能的实现方式中,所述装置还包括:
生成模块,用于当所述目标计算节点接收到所述主存储节点返回的第一存储成功消息,且存储所述I/O请求的副存储节点数量达到阈值时,生成所述I/O请求的操作日志;
所述发送模块,还用于向所述外部节点返回第二存储成功消息。
结合第二方面,在第二方面的第二种可能的实现方式中,所述装置还包括:
故障节点确定模块,用于当所述目标计算节点检测到所述存储系统中计算节点的数量因故障减少时,确定所述多个计算节点中出现故障计算节点;
获取模块,用于获取所述多个计算节点的控制分区的数量、所述目标计算节点中每一个控制分区的标识和所述故障计算节点管理的数据分区的标识;
第一处理模块,用于在所述故障计算节点管理的数据分区的标识与所述控制分区的数量之间的求模结果与所述目标计算节点中一个控制分区的标识相同时,接管所述故障计算节点管理的数据分区;
其中,一个计算节点包括至少一个控制分区,一个存储节点包括至少一个数据分区,一个计算节点可对多个数据分区进行管理。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述装置还包括:
分配模块,用于为管理的每一个数据分区分别分配序列号;
递增模块,用于对目标数据分区的序列号执行加一;其中,所述目标数据分区为所述目标计算节点管理的数据分区中接收到修改类I/O请求的分区;
所述第一处理模块,用于读取所述故障计算节点管理的数据分区在所述故障计算节点发生故障时的序列号。
结合第二方面,在第二方面的第四种可能的实现方式中,所述装置还包括:
计算模块,用于在所述多个目标存储节点中任一存储节点发生故障且恢复后,计算故障存储节点中指定数据分区的序列号与正常存储节点中同一数据分区的当前序列号之差;其中,所述正常存储节点为在所述故障存储节点发生故障时,对所述指定数据分区进行管理的存储节点;
第二处理模块,用于当所述指定数据分区的序列号与当前序列号之差不大于所述目标计算节点生成的I/O请求的操作日志数量时,则执行所述正常存储节点上同一数据分区上的I/O请求,并更新所述指定数据分区的序列号;若所述指定数据分区的序列号与当前序列号之差大于所述I/O请求的操作日志数量,则将所述正常存储节点的同一数据分区存储的I/O请求迁移至所述故障存储节点;
其中,序列号用于统计分发到数据分区的修改类I/O请求的数量,一个数据分区在接收到一个修改类I/O请求后,所述数据分区的序列号加一。
第三方面,提供了一种存储系统中数据分发方法,所述存储系统包括多个计算节点和多个存储节点,所述方法包括:
外部节点接收输入输出I/O请求;
所述外部节点根据第一算法从所述多个计算节点中确定处理所述I/O请求的目标计算节点;
所述外部节点将所述I/O请求发送至所述目标计算节点,由所述目标计算节点根据第二算法从所述多个存储节点中确定目标存储节点,并将所述I/O请求分发至所述目标存储节点,所述目标存储节点包括主存储节点和副存储节点。
第四方面,提供了一种存储系统中数据分发装置,所述存储系统包括多个计算节点和多个存储节点,所述装置包括:
接收模块,用于接收输入输出I/O请求;
计算节点确定模块,用于根据第一算法从所述多个计算节点中确定处理所述I/O请求的目标计算节点;
发送模块,用于将所述I/O请求发送至所述目标计算节点,由所述目标计算节点根据第二算法从所述多个存储节点中确定目标存储节点,并将所述I/O请求分发至所述目标存储节点,所述目标存储节点包括主存储节点和副存储节点。
第五方面,提供了一种存储系统,所述存储系统包括多个计算节点和多个存储节点;
目标计算节点,用于接收外部节点发送的输入输出I/O请求;其中,所述目标计算节点由所述外部节点根据第一算法从所述多个计算节点中确定;根据第二算法从所述多个存储节点中确定目标存储节点;向所述目标存储节点发送所述I/O请求;所述目标存储节点包括主存储节点和副存储节点;
所述目标存储节点,用于存储所述目标计算节点发送的I/O请求。
第六方面,提供了一种计算节点,所述计算节点至少包括发送器、接收器和处理器,所述发送器和所述接收器分别与所述处理器连接,所述处理器用于
通过所述接收器接收外部节点发送的输入输出I/O请求,所述I/O请求由所述外部节点在根据第一算法从所述多个计算节点中确定处理所述I/O请求的目标计算节点后发送;根据第二算法从所述多个存储节点中确定目标存储节点;通过所述发送器向所述目标存储节点发送所述I/O请求;所述目标存储节点包括主存储节点和副存储节点。
本发明实施例提供的技术方案带来的有益效果是:
由于对节点的计算功能和存储功能进行了分离部署,使得存储系统中包括多个计算节点和多个存储节点,因此计算性能和存储性能不相互制约相互影响,可根据需要对系统的计算性能和存储性能进行灵活配置,且计算功能无需依赖存储功能,软硬件之间实现了解耦。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是背景技术中提供的一种存储系统的结构示意图;
图2是本发明实施例提供的一种存储系统的结构示意图;
图3是本发明实施例提供的一种计算节点的结构示意图;
图4是本发明实施例提供的一种存储系统中数据分发方法的流程图;
图5是本发明实施例提供的一种存储系统中数据分发方法的流程图;
图6是本发明实施例提供的一种存储系统中数据分发方法的流程图;
图7是本发明实施例提供的一种存储系统中数据分发方法的流程图;
图8是本发明实施例提供的一种存储系统中数据分发方法的流程图;
图9是本发明实施例提供的一种存储系统中数据分发装置的结构示意图;
图10是本发明实施例提供的一种存储系统中数据分发装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在对本发明实施例进行详细地解释说明之前,先对本发明实施例提供的存储系统涉及的节点部署情况和I/O流程进行说明。
参见图2,本发明实施例将节点的计算功能和存储功能进行了分离部署,存储系统中包括多个计算节点和多个存储节点。在图2中,存储系统中的全部计算节点组成了第一DHT环,全部的存储节点组成了第二DHT环。当外部节点检测到用户的一个I/O请求后,首先根据第一算法确定处理该I/O请求的目标计算节点。之后,外部节点将该I/O请求发送至该目标计算节点,由该目标计算节点根据第二算法确定存储该I/O请求的目标存储节点,并将该I/O请求分发至对应的目标存储节点进行存储。由于本发明实施例对I/O请求的存储基于多副本,因此目标存储节点包括主存储节点和多个副存储节点。这样便实现了存储和控制分离部署,并可以根据需要对计算性能和存储性能进行灵活配置。需要说明的是,第一算法和第二算法均归属于哈希算法,二者基于相类似的构思。
图3是本发明实施例提供的一种计算节点的结构示意图,参见图3,包括:接收器301、发送器302、处理器303,该接收器301、该发送器302分别与该处理器303连接,该处理器303用于:
通过接收器接收外部节点发送的输入输出I/O请求,I/O请求由外部节点在根据第一算法从多个计算节点中确定处理I/O请求的目标计算节点后发送;根据第二算法从多个存储节点中确定目标存储节点;通过发送器向目标存储节点发送I/O请求;目标存储节点包括主存储节点和副存储节点。
在另一个实施例中,处理器303用于:
若通过接收器301接收到主存储节点返回的第一存储成功消息,且存储I/O请求的副存储节点数量达到阈值,则生成I/O请求的操作日志,并通过发送器302向外部节点返回第二存储成功消息。
在另一个实施例中,处理器303用于:
当检测到存储系统中计算节点的数量因故障减少时,确定多个计算节点中出现故障计算节点,获取多个计算节点的控制分区的数量、目标计算节点中每一个控制分区的标识和故障计算节点管理的数据分区的标识;
若故障计算节点管理的数据分区的标识与控制分区的数量之间的求模结果与目标计算节点中一个控制分区的标识相同,则接管故障计算节点管理的数据分区;
其中,一个计算节点包括至少一个控制分区,一个存储节点包括至少一个数据分区,一个计算节点可对多个数据分区进行管理。
在另一个实施例中,处理器303用于:
为管理的每一个数据分区分别分配序列号;
对目标数据分区的序列号执行加一;其中,目标数据分区为目标计算节点管理的数据分区中接收到修改类I/O请求的分区;
读取故障计算节点管理的数据分区在故障计算节点发生故障时的序列号。
在另一个实施例中,处理器303用于:
在多个目标存储节点中任一存储节点发生故障且恢复后,目标计算节点计算故障存储节点中指定数据分区的序列号与正常存储节点中同一数据分区的当前序列号之差;其中,正常存储节点为在故障存储节点发生故障时,对指定数据分区进行管理的存储节点;
若指定数据分区的序列号与当前序列号之差不大于目标计算节点生成的I/O请求的操作日志数量,则目标计算节点执行正常存储节点上同一数据分区上的I/O请求,并更新指定数据分区的序列号;
若指定数据分区的序列号与当前序列号之差大于I/O请求的操作日志数量,则目标计算节点将正常存储节点的同一数据分区存储的I/O请求迁移至故障存储节点;
其中,序列号用于统计分发到数据分区的修改类I/O请求的数量,一个数据分区在接收到一个修改类I/O请求后,数据分区的序列号加一。
本发明实施例提供的计算节点,由于对节点的计算功能和存储功能进行了分离部署,使得存储系统中包括多个计算节点和多个存储节点,因此计算性能和存储性能不相互制约相互影响,可根据需要对系统的计算性能和存储性能进行灵活配置,且计算功能无需依赖存储功能,软硬件之间实现了解耦;此外,在计算节点或存储节点发生故障时,还可根据数据分区的序列号对计算节点或存储节点管理的数据分区进行迁移,增强了系统的容错能力。
图4是本发明实施例提供的一种存储系统中数据分发方法的流程图。交互主体为外部节点、计算节点和存储节点。参见图4,本发明实施例提供的方法流程包括:
401、外部节点接收用户生成的一个I/O请求,并根据第一算法确定处理I/O请求的目标计算节点。
其中,I/O请求通常为只读类I/O请求或修改类I/O请求。修改类I/O请求指代进行写操作或修改数据操作的I/O请求。本发明实施例对I/O请求的类型不进行具体限定。处理该I/O请求的目标计算节点为图2所示的第一DHT环中的节点。需要说明的是,对于第一DHT环中的每一计算节点来说,均为其分配了一个编号。比如分布式存储系统中包括了10个计算节点,可采用数字1至10为这10个节点进行编号。其中,该编号用于对不同的计算节点进行标识。
在根据第一算法确定处理该I/O请求的目标计算节点时,可采取下述方式实现:首先,计算该I/O请求的key值,之后计算hash(key)%N的值i;其中,N指代分布式存储系统中计算节点的数量。将编号为i的计算节点确定为该I/O请求的目标计算节点。当然,还可采取其他方式计算处理I/O请求的目标计算节点,本发明实施例对此不进行具体限定。
在本发明实施例中,对于第一DHT环来说,每一个计算节点包括多个控制分区。对于第二DHT环来说,每一个存储节点包括多个数据分区,每一个I/O请求存储在其哈希值所在数据分区对应的存储节点上。其中,一个计算节点可对多个数据分区进行管理。这多个数据分区可来自于一个存储节点也可来自于不同的存储节点,也即一个计算节点可管理不同存储节点的一部分数据分区。
需要说明的是,计算节点还会为每一个存储节点的数据分区分配一个序列号seqID,每一个在数据分区上的修改类I/O操作,均会触发一个seqID的递增操作。其中,该seqID的数值被存储在硬盘等存储介质中,这样即便发生断电等异常情况,每一个数据分区的seqID数值也不会丢失。也即,计算接点在接收到用户生成的I/O请求后,还会判断该I/O请求是否为修改类I/O请求;若该I/O请求为修改类I/O请求,则对该I/O请求所在存储节点的数据分区的序列号执行递增操作,即seqID加1。这样当计算节点发生故障后,根据DHT原理,它所管理的数据分区将会被迁移到其他的计算节点。对于故障计算节点的任一数据分区而言,其他的计算节点仅需读取到任一数据分区的seqID,便完成迁移服务。
402、外部节点将该I/O请求发送至处理该I/O请求的目标计算节点。
在本发明实施例中,外部节点在确定处理该I/O请求的目标计算节点后,分发该I/O请求至该目标计算节点,进而由该目标计算节点根据哈希算法进一步将该I/O请求分发至目标存储节点,详细过程参见下述步骤403。
403、计算节点在接收到该I/O请求后,根据第二算法确定存储I/O请求的目标存储节点。
其中,目标存储节点包括主存储节点和多个副存储节点,副存储节点中存储了多个副本数据。在本发明实例中,在根据第二算法确定存储I/O请求的目标存储节点时,可采取下述方式实现:
首先,对每一个存储节点的哈希值进行计算,其将存储空间抽象为一个环。其次,对要存储的I/O请求也进行同样的哈希计算,按顺时针方向将其映射到离其最近的存储节点上去。
404、目标计算节点将该I/O请求发送至存储该I/O请求的主存储节点和副存储节点。
在本发明实施例中,要求将数据复制成多份,并存储多个存储节点上去。所以存储该I/O请求的存储节点为多个,包括1个主存储节点和多个副存储节点。其中,在将该I/O请求发送至存储该I/O请求的主存储节点和副存储节点时,可先将该I/O请求发送至主存储节点,然后再由主存储节点将该I/O请求同步至多个副存储节点上,本发明实施例对此不进行具体限定。
405、在成功存储该I/O请求后,主存储节点向目标计算节点发送第一存储成功消息。
由于primary-secondary算法要求主存储节点必须返回成功存储消息,整个I/O操作才算成功。因此,主存储节点在成功存储该I/O请求后,会向目标计算节点返回第一存储成功消息。
406、目标计算节点在接收到第一存储成功消息后,判断存储I/O请求的副存储节点数量是否达到阈值;若存储该I/O请求的副存储节点数量达到阈值,则生成该I/O请求的操作日志,并向外部节点返回第二存储成功消息。
在本发明实施例中,为使用户及时获知该I/O请求的处理情况,目标计算节点在接收到主存储节点发送的第一存储成功消息,且判断存储该I/O请求的副存储节点数量达到阈值后,向外部节点返回包括存储该I/O请求成功的第二存储成功消息。外部节点在接收到第二存储成功消息后,将第二存储成功消息展示给用户。同时,目标计算节点还会生成该I/O请求的操作日志,以对该I/O请求进行记录。其中,生成的操作日志保存在存储该I/O请求的多个存储节点上。
对于分布式存储系统来说,由于高强度和高密度的数据量处理等原因,节点出现故障情况时有发生。在本发明实施例中,当计算节点出现故障时,为了保证系统的可用性,主要是将发生故障的计算节点所管理的数据分区迁移到正常工作的计算节点上。参见图5,详细地处理流程如下:
501、当目标计算节点检测到存储系统中计算节点的数量因故障减少时,确定多个计算节点中出现故障计算节点,获取多个计算节点的控制分区的数量、目标计算节点中每一个控制分区的标识和故障计算节点管理的数据分区的标识。
其中,多个计算节点的控制分区的数量,即指代第一DHT环包括的控制分区的数量。对于第一DHT环包括的控制分区来说,可以统一进行标识。比如,按照数字大小进行标识,从数字1进行开始,直至标识到100或1000等等。分为控制分区1、控制分区2……控制分区N等。上述控制分区的数量、控制分区的标识和数据分区的标识,均可实现由存储系统为其分配,本发明实施例对此不进行具体限定。
502、根据多个计算节点的控制分区的数量、目标计算节点中每一个控制分区的标识和故障计算节点管理的数据分区的标识,该目标计算节点判断是否接管故障计算节点管理的数据分区。
在本发明实施例中,每一个计算节点仅处理映射数据分区对应的节点故障。也即,当一个计算节点检测到第一DHT环中计算节点的数量发生变化时,根据第一DHT环中控制分区的数量、该计算节点中每一个控制分区的标识和故障计算节点管理的数据分区的标识,判断是否接管故障计算节点管理的数据分区。以第一DHT环中控制分区的数量为control_partition_num、故障计算节点管理的数据分区的标识为data_partition_id为例,则具体的判断方式为hash(data_partition_id)%control_partition_num。
其中,一个故障计算节点所管理的数据分区可迁移到多个计算节点上,本发明实施例对此不进行具体限定,具体可视每一个计算节点的剩余处理能力而定。一个计算节点在接管了故障计算节点管理的数据分区后,为了及时明确上述数据分区是否迁移到了自身,还需重新统计应管理的数据分区,确定是否存在新加入的数据分区。
503、若故障计算节点管理的数据分区的标识与控制分区的数量之间的求模结果与目标计算节点中一个控制分区的标识相同,则该目标计算节点接管该故障计算节点管理的数据分区。
对于任一数据分区而言,当求模取余结果与该目标计算节点的某一控制分区的标识相同时,那么将发生故障的计算节点管理的任一数据分区进行接管。由于本发明实施例为每一个计算节点管理的数据分区均分配了序列号seqID,因此目标计算节点在接管故障计算节点管理的数据分区时,具体通过读取任一数据分区在故障计算节点发生故障时的序列号实现。也即,目标计算节点仅需读取到任一数据分区的seqID并完成初始化,即完成任一数据分区的迁移任务。
在本发明实施例中,当计算节点检测到存储节点发生故障时,会生成副本迁移任务。如果该存储节点仅是发生临时故障,则当故障恢复后该计算节点将会根据seqID和生成的I/O请求的操作日志数量做rebalance操作或catchup操作。参见图6,详细地处理流程如下:
601、在多个目标存储节点中任一存储节点发生故障且恢复后,目标计算节点计算故障存储节点中指定数据分区的序列号与正常存储节点中同一数据分区的当前序列号之差。
其中,正常存储节点为在故障存储节点发生故障时,对指定数据分区进行管理的存储节点。
当多个目标存储节点中的某一个存储节点故障之后,该故障存储节点上每一个数据分区的序列号便不会变化,而对应该节点的I/O操作仍然可以继续执行,所以未发生故障的正常存储节点上同一数据分区的序列号,会在接收到修改类I/O请求后进行变化。当该故障存储节点故障恢复之后,计算在该故障存储节点上指定数据分区的序列号与正常存储节点上同一数据分区的当前序列号之差。
602、若指定数据分区的序列号与当前序列号之差不大于目标计算节点生成的I/O请求的操作日志数量,则目标计算节点执行正常存储节点上同一数据分区上的I/O请求,并更新指定数据分区的序列号。
该步骤对应catchup操作。由于指定数据分区的序列号与当前序列号之差不大于生成的I/O请求的操作日志数量,则证明在副本存储节点上存储的I/O请求的操作日志量足够,则从副本存储节点上把这部分I/O请求取出在故障存储节点重新回放一次。
603、若指定数据分区的序列号与当前序列号之差大于I/O请求的操作日志数量,则目标计算节点将正常存储节点的同一数据分区存储的I/O请求迁移至故障存储节点。
该步骤对应rebalance操作。由于指定数据分区的序列号与当前序列号之差大于生成的I/O请求的操作日志数量,则证明副本存储节点上存储的I/O请求的操作日志量不够,直接把副本存储节点上的所有数据同步到故障存储节点之上。
本发明实施例提供的方法,由于对节点的计算功能和存储功能进行了分离部署,且基于计算节点和存储节点分别组成了DHT环,因此计算性能和存储性能不相互制约相互影响,可根据需要对系统的计算性能和存储性能进行灵活配置,且计算功能无需依赖存储功能,软硬件之间实现了解耦;此外,在计算节点或存储节点发生故障时,还可根据数据分区的序列号对计算节点或存储节点管理的数据分区进行迁移,增强了系统的容错能力。
图7是本发明实施例提供的一种存储系统中数据分发方法的流程图。其中,存储系统包括多个计算节点和多个存储节点。以计算节点执行该方法的角度为例,参见图7,本发明实施例提供的方法流程包括:
701、目标计算节点接收外部节点发送的输入输出I/O请求。
其中,目标计算节点由外部节点根据第一算法从多个计算节点中确定。
702、目标计算节点根据第二算法从多个存储节点中确定目标存储节点。
703、目标计算节点向目标存储节点发送I/O请求。
其中,目标存储节点包括主存储节点和副存储节点。
在另一个实施例中,目标控制节点向目标存储节点发送I/O请求之后,该方法还包括:
若目标计算节点接收到主存储节点返回的第一存储成功消息,且存储I/O请求的副存储节点数量达到阈值,则生成I/O请求的操作日志,并向外部节点返回第二存储成功消息。
在另一个实施例中,该方法还包括:
当目标计算节点检测到存储系统中计算节点的数量因故障减少时,确定多个计算节点中出现故障计算节点,获取多个计算节点的控制分区的数量、目标计算节点中每一个控制分区的标识和故障计算节点管理的数据分区的标识;
若故障计算节点管理的数据分区的标识与控制分区的数量之间的求模结果与目标计算节点中一个控制分区的标识相同,则目标计算节点接管该故障计算节点管理的数据分区;
其中,一个计算节点包括至少一个控制分区,一个存储节点包括至少一个数据分区,一个计算节点可对多个数据分区进行管理。
在另一个实施例中,该方法还包括:
目标计算节点为管理的每一个数据分区分别分配序列号;
目标计算节点对目标数据分区的序列号执行加一;其中,目标数据分区为目标计算节点管理的数据分区中接收到修改类I/O请求的分区;
目标计算节点接管故障计算节点管理的数据分区,包括:
目标计算节点读取该故障计算节点管理的数据分区在故障计算节点发生故障时的序列号。
在另一个实施例中,该方法还包括:
在多个目标存储节点中任一存储节点发生故障且恢复后,目标计算节点计算故障存储节点中指定数据分区的序列号与正常存储节点中同一数据分区的当前序列号之差;其中,正常存储节点为在故障存储节点发生故障时,对指定数据分区进行管理的存储节点;
若指定数据分区的序列号与当前序列号之差不大于目标计算节点生成的I/O请求的操作日志数量,则目标计算节点执行正常存储节点上同一数据分区上的I/O请求,并更新指定数据分区的序列号;
若指定数据分区的序列号与当前序列号之差大于I/O请求的操作日志数量,则目标计算节点将正常存储节点的同一数据分区存储的I/O请求迁移至故障存储节点;
其中,序列号用于统计分发到数据分区的修改类I/O请求的数量,一个数据分区在接收到一个修改类I/O请求后,数据分区的序列号加一。
本发明实施例提供的方法,由于对节点的计算功能和存储功能进行了分离部署,使得存储系统中包括多个计算节点和多个存储节点,因此计算性能和存储性能不相互制约相互影响,可根据需要对系统的计算性能和存储性能进行灵活配置,且计算功能无需依赖存储功能,软硬件之间实现了解耦;此外,在计算节点或存储节点发生故障时,还可根据数据分区的序列号对计算节点或存储节点管理的数据分区进行迁移,增强了系统的容错能力。
图8是本发明实施例提供的一种存储系统中数据分发方法的流程图。其中,存储系统包括多个计算节点和多个存储节点。以外部节点执行该方法的角度为例,参见图8,本发明实施例提供的方法流程包括:
801、外部节点接收输入输出I/O请求。
802、外部节点根据第一算法从多个计算节点中确定处理I/O请求的目标计算节点。
803、外部节点将I/O请求发送至目标计算节点,由目标计算节点根据第二算法从多个存储节点中确定目标存储节点,并将I/O请求分发至目标存储节点。
本发明实施例提供的方法,由于对节点的计算功能和存储功能进行了分离部署,使得存储系统中包括多个计算节点和多个存储节点,因此计算性能和存储性能不相互制约相互影响,可根据需要对系统的计算性能和存储性能进行灵活配置,且计算功能无需依赖存储功能,软硬件之间实现了解耦。
图9是本发明实施例提供的一种存储系统中数据分发装置。参见图9,该装置包括:接收模块901、存储节点确定模块902和发送模块903。
接收模块901,用于接收外部节点发送的输入输出I/O请求,I/O请求由外部节点在根据第一算法从多个计算节点中确定处理I/O请求的目标计算节点后发送;
存储节点确定模块902,用于根据第二算法从多个存储节点中确定目标存储节点;
发送模块903,用于向目标存储节点发送I/O请求;目标存储节点包括主存储节点和副存储节点。
在另一个实施例中,该装置还包括:
生成模块,用于当目标计算节点接收到主存储节点返回的第一存储成功消息,且存储I/O请求的副存储节点数量达到阈值时,生成I/O请求的操作日志;
发送模块,还用于向外部节点返回第二存储成功消息。
在另一个实施例中,该装置还包括:
故障节点确定模块,用于当目标计算节点检测到存储系统中计算节点的数量因故障减少时,确定多个计算节点中出现故障计算节点;
获取模块,用于获取多个计算节点的控制分区的数量、目标计算节点中每一个控制分区的标识和故障计算节点管理的数据分区的标识;
第一处理模块,用于在故障计算节点管理的数据分区的标识与控制分区的数量之间的求模结果与目标计算节点中一个控制分区的标识相同时,接管该故障计算节点管理的数据分区;
其中,一个计算节点包括至少一个控制分区,一个存储节点包括至少一个数据分区,一个计算节点可对多个数据分区进行管理。
在另一个实施例中,该装置还包括:
分配模块,用于为管理的每一个数据分区分别分配序列号;
递增模块,用于对目标数据分区的序列号执行加一;其中,目标数据分区为目标计算节点管理的数据分区中接收到修改类I/O请求的分区;
第一处理模块,用于读取任一数据分区在故障计算节点发生故障时的序列号。
在另一个实施例中,该装置还包括:
计算模块,用于在多个目标存储节点中任一存储节点发生故障且恢复后,计算故障存储节点中指定数据分区的序列号与正常存储节点中同一数据分区的当前序列号之差;其中,正常存储节点为在故障存储节点发生故障时,对指定数据分区进行管理的存储节点;
第二处理模块,用于当指定数据分区的序列号与当前序列号之差不大于目标计算节点生成的I/O请求的操作日志数量时,则执行正常存储节点上同一数据分区上的I/O请求,并更新指定数据分区的序列号;若指定数据分区的序列号与当前序列号之差大于I/O请求的操作日志数量,则将正常存储节点的同一数据分区存储的I/O请求迁移至故障存储节点;
其中,序列号用于统计分发到数据分区的修改类I/O请求的数量,一个数据分区在接收到一个修改类I/O请求后,数据分区的序列号加一。
本发明实施例提供的装置,由于对节点的计算功能和存储功能进行了分离部署,使得存储系统中包括多个计算节点和多个存储节点,因此计算性能和存储性能不相互制约相互影响,可根据需要对系统的计算性能和存储性能进行灵活配置,且计算功能无需依赖存储功能,软硬件之间实现了解耦;此外,在计算节点或存储节点发生故障时,还可根据数据分区的序列号对计算节点或存储节点管理的数据分区进行迁移,增强了系统的容错能力。
图10是本发明实施例提供的一种存储系统中数据分发装置。参见图10,该装置包括:接收模块1001、计算节点确定模块1002、发送模块1003。
接收模块1001,用于接收输入输出I/O请求;
计算节点确定模块1002,用于根据第一算法从所述多个计算节点中确定处理所述I/O请求的目标计算节点;
发送模块1003,用于将所述I/O请求发送至所述目标计算节点,由所述目标计算节点根据第二算法从所述多个存储节点中确定目标存储节点,并将所述I/O请求分发至所述目标存储节点,所述目标存储节点包括主存储节点和副存储节点。
本发明实施例提供的装置,由于对节点的计算功能和存储功能进行了分离部署,使得存储系统中包括多个计算节点和多个存储节点,因此计算性能和存储性能不相互制约相互影响,可根据需要对系统的计算性能和存储性能进行灵活配置,且计算功能无需依赖存储功能,软硬件之间实现了解耦。
本发明实施例还提供了一种存储系统,该存储系统包括多个计算节点和多个存储节点;
其中,目标计算节点,用于接收外部节点发送的输入输出I/O请求,目标计算节点由外部节点根据第一算法从多个计算节点中确定;根据第二算法从多个存储节点中确定目标存储节点;向目标存储节点发送I/O请求;目标存储节点包括主存储节点和副存储节点;
目标存储节点,用于存储目标计算节点发送的I/O请求。
本发明实施例提供的系统,由于对节点的计算功能和存储功能进行了分离部署,使得存储系统中包括多个计算节点和多个存储节点,因此计算性能和存储性能不相互制约相互影响,可根据需要对系统的计算性能和存储性能进行灵活配置,且计算功能无需依赖存储功能,软硬件之间实现了解耦。
需要说明的是:上述实施例提供的存储系统中数据分发装置在进行数据分发时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的存储系统中数据分发装置与存储系统中数据分发方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种存储系统中数据分发方法,其特征在于,所述存储系统包括多个计算节点和多个存储节点,所述方法包括:
目标计算节点接收外部节点发送的输入输出I/O请求;其中,所述目标计算节点由所述外部节点根据第一算法从所述多个计算节点中确定;
所述目标计算节点根据第二算法从所述多个存储节点中确定目标存储节点;
所述目标计算节点向所述目标存储节点发送所述I/O请求;所述目标存储节点包括主存储节点和副存储节点。
2.根据权利要求1所述的方法,其特征在于,所述目标计算节点向所述目标存储节点发送所述I/O请求之后,所述方法还包括:
若所述目标计算节点接收到所述主存储节点返回的第一存储成功消息,且存储所述I/O请求的副存储节点数量达到阈值,则生成所述I/O请求的操作日志,并向所述外部节点返回第二存储成功消息。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述目标计算节点检测到所述存储系统中计算节点的数量因故障减少时,确定所述多个计算节点中出现故障计算节点,获取所述多个计算节点的控制分区的数量、所述目标计算节点中每一个控制分区的标识和所述故障计算节点管理的数据分区的标识;
若所述故障计算节点管理的数据分区的标识与所述控制分区的数量之间的求模结果与所述目标计算节点中一个控制分区的标识相同,则所述目标计算节点接管所述故障计算节点管理的数据分区;
其中,一个计算节点包括至少一个控制分区,一个存储节点包括至少一个数据分区,一个计算节点可对多个数据分区进行管理。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述目标计算节点为管理的每一个数据分区分别分配序列号;
所述目标计算节点对目标数据分区的序列号执行加一;其中,所述目标数据分区为所述目标计算节点管理的数据分区中接收到修改类I/O请求的分区;
所述目标计算节点接管所述故障计算节点管理的数据分区,包括:
所述目标计算节点读取所述故障计算节点管理的数据分区在所述故障计算节点发生故障时的序列号。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述多个目标存储节点中任一存储节点发生故障且恢复后,所述目标计算节点计算故障存储节点中指定数据分区的序列号与正常存储节点中同一数据分区的当前序列号之差;其中,所述正常存储节点为在所述故障存储节点发生故障时,对所述指定数据分区进行管理的存储节点;
若所述指定数据分区的序列号与当前序列号之差不大于所述目标计算节点生成的I/O请求的操作日志数量,则所述目标计算节点执行所述正常存储节点上同一数据分区上的I/O请求,并更新所述指定数据分区的序列号;
若所述指定数据分区的序列号与当前序列号之差大于所述I/O请求的操作日志数量,则所述目标计算节点将所述正常存储节点的同一数据分区存储的I/O请求迁移至所述故障存储节点;
其中,序列号用于统计分发到数据分区的修改类I/O请求的数量,一个数据分区在接收到一个修改类I/O请求后,所述数据分区的序列号加一。
6.一种存储系统中数据分发装置,其特征在于,所述存储系统包括多个计算节点和多个存储节点,所述装置包括:
接收模块,用于接收外部节点发送的输入输出I/O请求,所述I/O请求由所述外部节点在根据第一算法从所述多个计算节点中确定处理所述I/O请求的目标计算节点后发送;
存储节点确定模块,用于根据第二算法从所述多个存储节点中确定目标存储节点;
发送模块,用于向所述目标存储节点发送所述I/O请求;所述目标存储节点包括主存储节点和副存储节点。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
生成模块,用于当所述目标计算节点接收到所述主存储节点返回的第一存储成功消息,且存储所述I/O请求的副存储节点数量达到阈值时,生成所述I/O请求的操作日志;
所述发送模块,还用于向所述外部节点返回第二存储成功消息。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
故障节点确定模块,用于当所述目标计算节点检测到所述存储系统中计算节点的数量因故障减少时,确定所述多个计算节点中出现故障计算节点;
获取模块,用于获取所述多个计算节点的控制分区的数量、所述目标计算节点中每一个控制分区的标识和所述故障计算节点管理的数据分区的标识;
第一处理模块,用于在所述故障计算节点管理的数据分区的标识与所述控制分区的数量之间的求模结果与所述目标计算节点中一个控制分区的标识相同时,接管所述故障计算节点管理的数据分区;
其中,一个计算节点包括至少一个控制分区,一个存储节点包括至少一个数据分区,一个计算节点可对多个数据分区进行管理。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
分配模块,用于为管理的每一个数据分区分别分配序列号;
递增模块,用于对目标数据分区的序列号执行加一;其中,所述目标数据分区为所述目标计算节点管理的数据分区中接收到修改类I/O请求的分区;
所述第一处理模块,用于读取所述故障计算节点管理的数据分区在所述故障计算节点发生故障时的序列号。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
计算模块,用于在所述多个目标存储节点中任一存储节点发生故障且恢复后,计算故障存储节点中指定数据分区的序列号与正常存储节点中同一数据分区的当前序列号之差;其中,所述正常存储节点为在所述故障存储节点发生故障时,对所述指定数据分区进行管理的存储节点;
第二处理模块,用于当所述指定数据分区的序列号与当前序列号之差不大于所述目标计算节点生成的I/O请求的操作日志数量时,则执行所述正常存储节点上同一数据分区上的I/O请求,并更新所述指定数据分区的序列号;若所述指定数据分区的序列号与当前序列号之差大于所述I/O请求的操作日志数量,则将所述正常存储节点的同一数据分区存储的I/O请求迁移至所述故障存储节点;
其中,序列号用于统计分发到数据分区的修改类I/O请求的数量,一个数据分区在接收到一个修改类I/O请求后,所述数据分区的序列号加一。
11.一种存储系统,其特征在于,所述存储系统包括多个计算节点和多个存储节点;
目标计算节点,用于接收外部节点发送的输入输出I/O请求;其中,所述目标计算节点由所述外部节点根据第一算法从所述多个计算节点中确定;根据第二算法从所述多个存储节点中确定目标存储节点;向所述目标存储节点发送所述I/O请求;所述目标存储节点包括主存储节点和副存储节点;
所述目标存储节点,用于存储所述目标计算节点发送的I/O请求。
12.一种计算节点,其特征在于,所述计算节点至少包括发送器、接收器和处理器,所述发送器和所述接收器分别与所述处理器连接,所述处理器用于
通过所述接收器接收外部节点发送的输入输出I/O请求,所述I/O请求由所述外部节点在根据第一算法从所述多个计算节点中确定处理所述I/O请求的目标计算节点后发送;根据第二算法从所述多个存储节点中确定目标存储节点;通过所述发送器向所述目标存储节点发送所述I/O请求;所述目标存储节点包括主存储节点和副存储节点。
CN201510851932.1A 2015-11-28 2015-11-28 存储系统中数据分发方法、装置、计算节点及存储系统 Active CN105516263B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510851932.1A CN105516263B (zh) 2015-11-28 2015-11-28 存储系统中数据分发方法、装置、计算节点及存储系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510851932.1A CN105516263B (zh) 2015-11-28 2015-11-28 存储系统中数据分发方法、装置、计算节点及存储系统

Publications (2)

Publication Number Publication Date
CN105516263A true CN105516263A (zh) 2016-04-20
CN105516263B CN105516263B (zh) 2019-02-01

Family

ID=55723894

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510851932.1A Active CN105516263B (zh) 2015-11-28 2015-11-28 存储系统中数据分发方法、装置、计算节点及存储系统

Country Status (1)

Country Link
CN (1) CN105516263B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106708968A (zh) * 2016-12-01 2017-05-24 成都华为技术有限公司 分布式数据库系统和分布式数据库系统中的数据处理方法
CN106817402A (zh) * 2016-11-29 2017-06-09 上海亿账通互联网科技有限公司 缓存数据的处理方法及装置
CN107665180A (zh) * 2016-07-27 2018-02-06 阿里巴巴集团控股有限公司 分解系统和用于处理请求的方法
CN108241722A (zh) * 2016-12-23 2018-07-03 北京金山云网络技术有限公司 一种数据处理系统、方法及装置
CN108540382A (zh) * 2018-02-28 2018-09-14 北京交通大学 一种网络内容存储系统及其路由方法
WO2018188089A1 (zh) * 2017-04-14 2018-10-18 华为技术有限公司 数据处理方法、存储系统和交换设备
CN109086292A (zh) * 2018-06-11 2018-12-25 平安科技(深圳)有限公司 一种数据库的切换方法及系统
CN109669762A (zh) * 2018-12-25 2019-04-23 深圳前海微众银行股份有限公司 云计算资源管理方法、装置、设备及计算机可读存储介质
CN109977077A (zh) * 2019-03-25 2019-07-05 腾讯科技(深圳)有限公司 模型文件存储方法、装置、可读存储介质和计算机设备
CN113535656A (zh) * 2021-06-25 2021-10-22 中国人民大学 数据访问方法、装置、设备及存储介质
CN113596119A (zh) * 2021-07-16 2021-11-02 中移(杭州)信息技术有限公司 边缘能力分发方法、系统、设备及计算机可读存储介质
CN113704361A (zh) * 2021-10-28 2021-11-26 腾讯科技(深圳)有限公司 事务执行方法、装置、计算设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020103972A1 (en) * 2001-01-26 2002-08-01 International Business Machines Corporation Distributed multicast caching technique
US20020188676A1 (en) * 2001-05-18 2002-12-12 Fujiko Iai Data server, data distribution program, computer-readable record medium bearing data distribution program, and client apparatus
CN101252589A (zh) * 2008-03-25 2008-08-27 中国科学院计算技术研究所 数据缓存装置和采用该装置的网络存储系统及缓存方法
CN101753608A (zh) * 2008-12-09 2010-06-23 中国移动通信集团公司 分布式系统的调度方法及系统
CN101986661A (zh) * 2010-11-04 2011-03-16 华中科技大学 一种改进的虚拟机群下MapReduce数据处理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020103972A1 (en) * 2001-01-26 2002-08-01 International Business Machines Corporation Distributed multicast caching technique
US20020188676A1 (en) * 2001-05-18 2002-12-12 Fujiko Iai Data server, data distribution program, computer-readable record medium bearing data distribution program, and client apparatus
CN101252589A (zh) * 2008-03-25 2008-08-27 中国科学院计算技术研究所 数据缓存装置和采用该装置的网络存储系统及缓存方法
CN101753608A (zh) * 2008-12-09 2010-06-23 中国移动通信集团公司 分布式系统的调度方法及系统
CN101986661A (zh) * 2010-11-04 2011-03-16 华中科技大学 一种改进的虚拟机群下MapReduce数据处理方法

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107665180A (zh) * 2016-07-27 2018-02-06 阿里巴巴集团控股有限公司 分解系统和用于处理请求的方法
CN106817402A (zh) * 2016-11-29 2017-06-09 上海亿账通互联网科技有限公司 缓存数据的处理方法及装置
CN106817402B (zh) * 2016-11-29 2018-02-27 上海壹账通金融科技有限公司 缓存数据的处理方法及装置
CN106708968A (zh) * 2016-12-01 2017-05-24 成都华为技术有限公司 分布式数据库系统和分布式数据库系统中的数据处理方法
CN106708968B (zh) * 2016-12-01 2019-11-26 成都华为技术有限公司 分布式数据库系统和分布式数据库系统中的数据处理方法
CN108241722A (zh) * 2016-12-23 2018-07-03 北京金山云网络技术有限公司 一种数据处理系统、方法及装置
US10728335B2 (en) 2017-04-14 2020-07-28 Huawei Technologies Co., Ltd. Data processing method, storage system, and switching device
WO2018188089A1 (zh) * 2017-04-14 2018-10-18 华为技术有限公司 数据处理方法、存储系统和交换设备
CN108540382A (zh) * 2018-02-28 2018-09-14 北京交通大学 一种网络内容存储系统及其路由方法
CN109086292A (zh) * 2018-06-11 2018-12-25 平安科技(深圳)有限公司 一种数据库的切换方法及系统
CN109086292B (zh) * 2018-06-11 2023-11-28 平安科技(深圳)有限公司 一种数据库的切换方法及系统
CN109669762A (zh) * 2018-12-25 2019-04-23 深圳前海微众银行股份有限公司 云计算资源管理方法、装置、设备及计算机可读存储介质
CN109977077B (zh) * 2019-03-25 2021-09-24 腾讯科技(深圳)有限公司 模型文件存储方法、装置、可读存储介质和计算机设备
CN109977077A (zh) * 2019-03-25 2019-07-05 腾讯科技(深圳)有限公司 模型文件存储方法、装置、可读存储介质和计算机设备
CN113535656A (zh) * 2021-06-25 2021-10-22 中国人民大学 数据访问方法、装置、设备及存储介质
CN113535656B (zh) * 2021-06-25 2022-08-09 中国人民大学 数据访问方法、装置、设备及存储介质
CN113596119A (zh) * 2021-07-16 2021-11-02 中移(杭州)信息技术有限公司 边缘能力分发方法、系统、设备及计算机可读存储介质
CN113704361A (zh) * 2021-10-28 2021-11-26 腾讯科技(深圳)有限公司 事务执行方法、装置、计算设备及存储介质

Also Published As

Publication number Publication date
CN105516263B (zh) 2019-02-01

Similar Documents

Publication Publication Date Title
CN105516263A (zh) 存储系统中数据分发方法、装置、计算节点及存储系统
EP3620905B1 (en) Method and device for identifying osd sub-health, and data storage system
US20210004355A1 (en) Distributed storage system, distributed storage system control method, and storage medium
CN103354923B (zh) 一种数据重建方法、装置和系统
US8108634B1 (en) Replicating a thin logical unit
CN106062717A (zh) 一种分布式存储复制系统和方法
CN108509153B (zh) Osd选择方法、数据写入和读取方法、监控器和服务器集群
US10817478B2 (en) System and method for supporting persistent store versioning and integrity in a distributed data grid
KR101597384B1 (ko) 분할되고 확장가능하며 사용가능한 구조적 저장소에서의 파티션 관리
CN109828868B (zh) 数据存储方法、装置、管理设备和双活数据存储系统
CN112764968B (zh) 数据处理方法、装置、设备及存储介质
EP2643771B1 (en) Real time database system
US9367261B2 (en) Computer system, data management method and data management program
CN104935654A (zh) 一种服务器集群系统中的缓存方法、写入点客户端和读客户端
CN113268472B (zh) 一种分布式数据存储系统及方法
CN102088490A (zh) 数据存储方法、设备和系统
US10445295B1 (en) Task-based framework for synchronization of event handling between nodes in an active/active data storage system
CN109407975B (zh) 写数据方法与计算节点以及分布式存储系统
US20080133967A1 (en) Distributed object sharing system and method thereof
CN105323271B (zh) 一种云计算系统以及云计算系统的处理方法和装置
CN111400273A (zh) 数据库扩容方法、装置、电子设备及机器可读存储介质
CN115756955A (zh) 一种数据备份、数据恢复的方法、装置及计算机设备
CN108268210B (zh) 一种信息处理方法、计算节点及存储节点
JP2008276281A (ja) データ同期システム、方法、及び、プログラム
CN112860480B (zh) 一种双活存储系统及其处理数据的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant