CN112748851A - 数据读取方法、装置和*** - Google Patents
数据读取方法、装置和*** Download PDFInfo
- Publication number
- CN112748851A CN112748851A CN201911044714.1A CN201911044714A CN112748851A CN 112748851 A CN112748851 A CN 112748851A CN 201911044714 A CN201911044714 A CN 201911044714A CN 112748851 A CN112748851 A CN 112748851A
- Authority
- CN
- China
- Prior art keywords
- data
- recovery
- target data
- server
- data reading
- 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 42
- 238000011084 recovery Methods 0.000 claims abstract description 333
- 238000004590 computer program Methods 0.000 claims description 21
- 238000003860 storage Methods 0.000 claims description 21
- 238000004422 calculation algorithm Methods 0.000 claims description 15
- 230000015654 memory Effects 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000009826 distribution Methods 0.000 claims description 4
- 238000013500 data storage Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 13
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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
- 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
- G06F3/064—Management of blocks
-
- 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/0671—In-line storage system
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
本文是关于一种数据读取方法、装置和***。涉及计算机互联网领域,解决了频繁的数据恢复操作浪费资源的问题。该方法包括:接收同集群或其他集群中数据请求方发送的指向本恢复用服务器的第二数据读取请求,在所述第二数据读取请求中携带归属于本恢复用服务器进行恢复的目标数据的信息;根据所述目标数据的信息,获取恢复所述目标数据所需的至少一个数据组;根据所述数据组,恢复得到所述目标数据,缓存在本地;向所述数据请求方返回所述目标数据。本文提供的技术方案适用于分布式数据存储***,实现了高效、可靠的数据读取。
Description
技术领域
本文涉及计算机互联网领域,尤其涉及一种数据读取方法、装置和***。
背景技术
在分布式存储***中,由于数据损坏、磁盘损坏或机器宕机等原因,会造成数据不可读取。为了不影响数据的实时读取,可以通过纠删码(EC)技术,使用与不可读取的数据块关联的其他数据块,对不可读取的数据块进行恢复。
在针对同一个文件出现高并发下载请求的情况下,有可能发生大量对不可读取数据块的恢复操作,导致浪费大量的CPU、带宽、磁盘等资源。
发明内容
为克服相关技术中存在的问题,本文提供一种数据读取方法、装置和***。
根据本文的一方面,提供了一种数据读取方法,包括:
接收同集群或其他集群中数据请求方发送的指向本恢复用服务器的第二数据读取请求,在所述第二数据读取请求中携带归属于本恢复用服务器进行恢复的目标数据的信息;
根据所述目标数据的信息,获取恢复所述目标数据所需的至少一个数据组;
根据所述数据组,恢复得到所述目标数据,缓存在本地;
向所述数据请求方返回所述目标数据。
优选的,接收同集群或其他集群中数据请求方发送的指向本恢复用服务器的第二数据读取请求的步骤之前,还包括:
所述恢复用服务器归属的恢复集群接收所述数据请求方发送的第一数据读取请求,在所述第一数据读取请求中携带预置为归属于本恢复集群恢复的目标数据的信息;
根据预置的分配规则,选择执行恢复操作的恢复用服务器,根据所述第一数据读取请求生成所述第二数据读取请求,向所述恢复用服务器发送。
优选的,所述目标数据的信息至少包括:
恢复所述目标数据所需的所述数据组的存储位置,所述数据组包含至少一个与所述目标数据关联的关联数据文件和至少一个校验文件。
优选的,所述接收同集群或其他集群中数据请求方发送的指向本恢复用服务器的第二数据读取请求的步骤之后,还包括:
根据所述第二数据读取请求,查找本地缓存的数据;
在本地缓存的数据中存在所述目标数据的情况下,向所述数据读取方发送所述目标数据。
根据本文的另一方面,提供了一种数据读取方法,包括:
在判定源站上待读取的目标数据无法读取的情况下,根据预置的恢复配置文件确定所述目标数据指向的恢复***;
向所述恢复***发送请求,以自所述恢复***获取正常的所述目标数据。
优选的,所述恢复***包括恢复用服务器或由至少一个恢复用服务器构成的恢复集群,所述根据预置的恢复配置文件确定所述目标数据指向的恢复***的步骤包括:
根据所述目标数据的哈希值,通过一致性哈希算法,确定所述哈希值指向的恢复用服务器和/或恢复集群。
优选的,向所述恢复***发送请求,自所述恢复***获取正常的所述目标数据的步骤包括:
向所述恢复集群发送第一数据读取请求,在所述第一数据读取请求中携带所述目标数据的信息;或,
向所述恢复用服务器发送第二数据读取请求,在所述第二数据读取请求中携带所述目标数据的信息。
根据本文的另一方面,提供了一种数据读取装置,包括:
请求接收模块,用于接收同集群或其他集群中数据请求方发送的指向本恢复用服务器的第二数据读取请求,在所述第二数据读取请求中携带归属于本恢复用服务器进行恢复的目标数据的信息;
恢复用数据获取模块,用于根据所述目标数据的信息,获取恢复所述目标数据所需的至少一个数据组;
数据恢复模块,用于根据所述数据组,恢复得到所述目标数据,缓存在本地;
数据反馈模块,用于向所述数据请求方返回所述目标数据。
优选的,该装置还包括本地缓存查找模块;
所述本地缓存查找模块,用于根据所述第二数据读取请求,查找本地缓存的数据;
所述数据反馈模块,还用于在所述本地缓存查找模块确定本地缓存的数据中存在所述目标数据的情况下,向所述数据读取方发送所述目标数据。
根据本文的另一方面,提供了一种数据读取装置,包括:
恢复资源确定模块,用于在判定源站上待读取的目标数据无法读取的情况下,根据预置的恢复配置文件确定所述目标数据指向的恢复***;
数据获取模块,用于向所述恢复***发送请求,以自所述恢复***获取正常的所述目标数据。
优选的,所述恢复***包括恢复用服务器或由至少一个恢复用服务器构成的恢复集群,所述恢复资源确定模块包括:
哈希计算单元,用于根据所述目标数据的哈希值,通过一致性哈希算法,确定所述哈希值指向的恢复用服务器和/或恢复集群。
根据本文的另一方面,提供了一种数据读取***,包括由多个恢复用服务器构成的恢复集群和至少一个服务器集群,各所述服务器集群均包括多个非恢复用服务器;
所述非恢复用服务器,用于作为数据请求方,在判定源站上待读取的目标数据无法读取的情况下,根据预置的恢复配置文件确定所述目标数据指向的恢复用服务器,并向所述恢复用服务器发送第二数据读取请求,自所述恢复用服务器获取正常的所述目标数据;
所述恢复用服务器,用于接收所述非恢复用服务器发送的指向本恢复用服务器的第二数据读取请求,在所述第二数据读取请求中携带归属于本恢复用服务器进行恢复的目标数据的信息,根据所述目标数据的信息,获取恢复所述目标数据所需的至少一个数据组,根据所述数据组,恢复得到所述目标数据,缓存在本地,向所述数据请求方返回所述目标数据。
优选的,所述非恢复用服务器,还用于作为数据请求方,在判定源站上待读取的目标数据无法读取的情况下,根据预置的恢复配置文件确定所述目标数据指向的恢复集群,并向所述恢复集群发送第一数据读取请求,自所述恢复集群获取正常的所述目标数据;
所述恢复集群,用于接收所述非恢复用服务器发送的第一数据读取请求,在所述第一数据读取请求中携带预置为归属于本恢复集群恢复的目标数据的信息,根据预置的分配规则,选择执行恢复操作的恢复用服务器,根据所述第一数据读取请求生成所述第二数据读取请求,向所述恢复用服务器发送。
优选的,所述恢复用服务器,还用于作为数据请求方,在判定源站上待读取的目标数据无法读取的情况下,根据预置的恢复配置文件确定所述目标数据指向的其他恢复用服务器,并向所述其他恢复用服务器发送第二数据读取请求,以自所述其他恢复用服务器获取正常的所述目标数据。
优选的,所述恢复集群还包括至少一个非恢复用服务器。
根据本文的另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现如上述数据读取方法的步骤。
根据本文的另一方面,提供了一种计算机设备,包括处理器、存储器和存储于所述存储器上的计算机程序,所述处理器执行所述计算机程序时实现如上述数据读取方法的步骤。
本文通过在无法读取目标数据的情况下,根据预置的恢复配置文件确定所述目标数据指向的恢复***,并向所述恢复***发送请求,自所述恢复***获取正常的所述目标数据。在恢复用服务器一侧,恢复用服务器接收同集群或其他集群中数据请求方发送的指向本恢复用服务器的第二数据读取请求,在所述第二数据读取请求中携带归属于本恢复用服务器进行恢复的目标数据的信息,并根据所述目标数据的信息,获取恢复所述目标数据所需的至少一个数据组,然后根据所述数据组,恢复得到所述目标数据,缓存在本地,向所述数据请求方返回所述目标数据。由恢复集群和/或恢复用服务器满足对一个文件的并发访问请求,解决了频繁的数据恢复操作浪费资源的问题,实现了高效、可靠的数据读取。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本文。
附图说明
构成本文的一部分的附图用来提供对本文的进一步理解,本文的示意性实施例及其说明用于解释本文,并不构成对本文的不当限定。在附图中:
图1是根据一示例性实施例示出的一种数据读取方法的流程图。
图2是根据一示例性实施例示出的一种数据读取方法的流程图。
图3是根据一示例性实施例示出的一种数据读取方法的流程图。
图4是根据一示例性实施例示出的一种数据读取装置的框图。
图5是根据一示例性实施例示出的一种数据读取装置的框图。
图6是根据一示例性实施例示出的一种图5中恢复资源确定模块501的结构框图。
图7是根据一示例性实施例示出的一种计算机设备的框图(服务器的一般结构)。
具体实施方式
为使本文实施例的目的、技术方案和优点更加清楚,下面将结合本文实施例中的附图,对本文实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本文一部分实施例,而不是全部的实施例。基于本文中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文保护的范围。需要说明的是,在不冲突的情况下,本文中的实施例及实施例中的特征可以相互任意组合。
在针对同一个文件出现高并发下载请求的情况下,虽然可采用EC算法等方式恢复获取不可读取的数据块、文件等,但有可能发生大量对不可读取数据块的恢复操作,导致浪费大量的CPU、带宽、磁盘等资源。
本公开的实施例提供了一种数据读取方法、装置和***,将不同的数据分配给指定的恢复用服务器,不可读取的数据恢复工作由一台或多台恢复用服务器集中完成,并在恢复完后缓存,持续提供该数据。由一台恢复用服务器满足对一个文件的并发访问请求,解决了频繁的数据恢复操作浪费资源的问题,实现了高效、可靠的数据读取。
本公开的一示例性实施例提供了一种数据读取方法,使用该方法完成对无法读取的目标数据恢复并读取的流程如图1所示,包括:
步骤101、在判定源站上待读取的目标数据无法读取的情况下,根据预置的恢复配置文件确定所述目标数据指向的恢复***。
本步骤中,在由于数据损坏、磁盘损坏或机器宕机等原因导致目标数据无法读取时,即触发对目标数据进行恢复的流程,选择目标数据对应的恢复用服务器进行恢复操作。
所述恢复***包括恢复用服务器或由至少一个恢复用服务器构成的恢复集群。
本公开实施例中,目标数据与恢复用服务器和/或恢复集群之间的对应关系可根据需要提前配置,可制定将目标数据对应到恢复用服务器或恢复集群的规则,例如以目标数据的SHA1值作为哈希计算的Key值,通过哈希运算将目标数据对应到某一恢复集群或恢复用服务器。
具体的,可根据所述目标数据的哈希值,通过一致性哈希(Hash)算法,确定所述哈希值指向的恢复用服务器。可以以目标数据的SHA1值作为哈希计算的键(Key)值,一般情况下,在完成文件存储时即将文件的SHA1同时保存到文件存储位置,在发起读取文件的操作时即可获取该文件的SHA1。
也可以预先配置一个记录文件,在记录文件中记录下各文件与对应的恢复用服务器和/或恢复集群之间的对应关系,通过查询该记录文件,确定目标数据指向的恢复用服务器和/或恢复集群。
步骤102、向所述恢复***发送请求,以自所述恢复***获取正常的所述目标数据。
本公开的实施例中,多个恢复用服务器可分布于不同的集群中,也可构成一个恢复集群。各恢复用服务器除具有恢复数据的功能外,也可具有普通的业务功能,即缓存并提供数据给请求方。
本公开实施例中,所述数据请求方至少包括以下对象中的任一或任意多项:
同集群服务器,其他集群内的服务器。
其中,同集群服务器是指与恢复用服务器处于同一集群中的服务器,其他集群内的服务器是指与恢复用服务器处于不同集群中的服务器。
本步骤中,数据请求方可向所述恢复集群发送第一数据读取请求,在所述第一数据读取请求中携带所述目标数据的信息,第一数据读取请求将读取目标数据的请求导向恢复集群。
数据请求方也可以向所述恢复用服务器发送第二数据读取请求,在所述第二数据读取请求中携带所述目标数据的信息。
数据请求方向恢复用服务器发送的请求可为数据读取请求,以获取正常的目标数据。在所述数据读取请求中携带有待读取的目标数据的信息,例如:恢复所述目标数据所需要的数据块的存储位置。
步骤103、所述恢复用服务器归属的恢复集群接收所述数据请求方发送的第一数据读取请求。
在数据请求方向复集群发送第一数据读取请求时,恢复集群先接收该第一数据读取请求,在所述第一数据读取请求中携带预置为归属于本恢复集群恢复的目标数据的信息。
步骤104、根据预置的分配规则,选择执行恢复操作的恢复用服务器,根据所述第一数据读取请求生成所述第二数据读取请求,向所述恢复用服务器发送。
第一数据读取请求将读取目标数据的请求导向恢复集群,在恢复集群中,根据预置的分配规则,例如负载均衡规则或进一步运算等,将恢复目标数据的任务分配给恢复集群中的一台恢复用服务器;或通过分配规则确定从第一数据读取请求中获取恢复用服务器的信息,即在第一数据读取请求中也可携带指向恢复集群及该恢复集群中的一台恢复用服务器的信息,该第一数据读取请求先到达集群控制器等节点,再根据第一数据读取请求确定恢复用服务器,生成第二数据读取请求,转发至分配的恢复用服务器。
步骤103和步骤104为可选步骤,在数据请求方直接向恢复用服务器发送第二数据读取请求的情况下,可省略该步骤103和步骤104。
步骤105、恢复用服务器接收同集群或其他集群中数据请求方发送的指向本恢复用服务器的第二数据读取请求。
本步骤中,在所述第二数据读取请求中携带归属于本恢复用服务器进行恢复的目标数据的信息,所述目标数据的信息具体为恢复所述目标数据所需要的至少一个数据组的存储位置信息,所述数据组包括与待恢复的目标数据相关联的其他数据文件、以及待恢复数据文件与其他数据文件通过算法得到的多个校验码文件。
所述数据请求方可为与恢复用服务器处于同一集群的服务器,也可为不同集群中的服务器。数据请求方可为非恢复用服务器,也可为恢复用服务器,即,恢复用服务器除承担恢复数据的任务外,也可作为普通服务器进行数据服务。
步骤106、恢复用服务器根据所述目标数据的信息,获取恢复所述目标数据所需的至少一个数据组。
所述目标数据的信息包含恢复所述目标数据所需的所述数据组的存储位置,所述数据组包含至少一个与所述目标数据关联的关联数据文件和至少一个校验文件。所述目标数据与所述关联数据文件共同构成原始数据,使用EC存储来存储原始数据时,会将原始数据划分为多个包含所述目标数据在内的数据文件,这些数据文件之间存在关联关系,根据这些数据文件进行EC算法计算后即可得到多个校验码文件。
恢复用服务器在接收到数据请求方发送的请求后,即开始对所请求的目标数据的恢复,获取各数据组。
步骤107、恢复用服务器根据所述数据组,恢复得到所述目标数据,缓存在本地。
本步骤中,恢复用服务器基于EC算法,根据获取的数据组,进行恢复操作,得到目标数据,并将该目标数据缓存在恢复用服务器本地。
步骤108、向所述数据请求方返回所述目标数据。
本步骤中,在恢复得到目标数据后,即将目标数据返回给数据请求方。
本公开的一实施例还提供了一种数据读取方法,恢复用服务器在已恢复得到目标数据的情况下,后续接收到对同一目标数据的请求时,即将本地缓存的目标数据返回给数据请求方,具体流程如图2所示,包括:
步骤201至步骤205的实现原理与步骤101至步骤105基本相同,在此不再重复说明。
步骤206、恢复用服务器根据所述第二数据读取请求,查找本地缓存的数据。
本步骤中,恢复用服务器根据所述数据读取请求所请求的目标数据,地查找本地缓存的数据。因为在接收到此请求之前,很可能已有其他服务器向恢复用服务器请求过同一目标数据,恢复用服务器在完成目标数据恢复后会将目标数据缓存在本地。后续接收到针对同一目标数据的数据读取请求时,只需要直接读取已缓存的目标数据,无需反复执行恢复操作。这样,在对同一无法读取的目标数据持续发起多次读取请求时,只需要恢复用服务器进行一次恢复操作,大幅节省了***资源。
步骤207、恢复用服务器在本地缓存的数据中存在所述目标数据的情况下,向所述数据读取方发送所述目标数据。
恢复用服务器在本地缓存的数据中已存在所述目标数据的情况下,直接读取该目标数据并向数据请求方返回。同一目标数据在恢复用服务器恢复完成后即缓存在恢复用服务器本地,在该目标数据后续被访问时,由于源站上该目标数据的资源仍不可读取,故访问请求还是会被导向同一恢复用服务器,此时直接从缓存中读取该目标数据即可,无需再次恢复计算,节约了计算资源。
本公开的一示例性实施例还提供了一种数据读取***,其***架构如图3所示,包括由多个恢复用服务器构成的恢复集群和至少一个服务器集群,各所述服务器集群均包括多个非恢复用服务器。所述非恢复用服务器,是指没有被设置为恢复用服务器的服务器,其具有集群中服务器的一般业务功能。
所述非恢复用服务器,用于作为数据请求方,在判定源站上待读取的目标数据无法读取的情况下,根据预置的恢复配置文件确定所述目标数据指向的恢复用服务器,并向所述恢复用服务器发送第二数据读取请求,自所述恢复用服务器获取正常的所述目标数据;
所述恢复用服务器,用于接收所述非恢复用服务器发送的指向本恢复用服务器的第二数据读取请求,在所述第二数据读取请求中携带归属于本恢复用服务器进行恢复的目标数据的信息,根据所述目标数据的信息,获取恢复所述目标数据所需的至少一个数据组,根据所述数据组,恢复得到所述目标数据,缓存在本地,向所述数据请求方返回所述目标数据。
优选的,所述非恢复用服务器,还用于作为数据请求方,在判定源站上待读取的目标数据无法读取的情况下,根据预置的恢复配置文件确定所述目标数据指向的恢复集群,并向所述恢复集群发送第一数据读取请求,自所述恢复集群获取正常的所述目标数据;
所述恢复集群,用于接收所述非恢复用服务器发送的第一数据读取请求,在所述第一数据读取请求中携带预置为归属于本恢复集群恢复的目标数据的信息,根据预置的分配规则,选择执行恢复操作的恢复用服务器,根据所述第一数据读取请求生成所述第二数据读取请求,向所述恢复用服务器发送。优选的,所述恢复用服务器,还用于作为数据请求方,在判定源站上待读取的目标数据无法读取的情况下,根据预置的恢复配置文件确定所述目标数据指向的其他恢复用服务器,并向所述其他恢复用服务器发送第二数据读取请求,自所述其他恢复用服务器获取正常的所述目标数据。即,恢复用服务器除具有恢复不可读取的目标数据的功能之外,也可具有普通的业务服务器功能。同时,恢复用服务器在进行数据读取时,如果待读取的目标数据无法读取,也可向该目标数据指向的其他恢复用服务器进行请求,以获取待读取的目标数据。
优选的,所述恢复集群还包括至少一个非恢复用服务器。即,恢复集群还包括数据存储及传输的功能,恢复集群中恢复用服务器的比例可根据实际需要设置调整。
本公开的一示例性实施例还提供了一种数据读取***,恢复集群中包括机器A、机器B、机器C这三台恢复用服务器。在该***中完成数据读取的流程如图3所示,包括:
在其他集群中的服务器X访问源站S上的目标数据hello.txt文件时,发现目标数据损坏,无法直接读取。此时,服务器X获取hello.txt文件的SHA1,进行一致性Hash运算后,获取机器A的位置。
在需要恢复的文件很多的时候,一致性Hash算法可以很均匀的将恢复数据的任务分配到所有恢复用服务器上。
在获取机器A的位置后,服务器X即向机器A发送数据读取请求,在该请求中携带恢复hello.txt文件所需要的各数据块的存储位置。机器A在接收到数据读取请求后,即根据各数据的存储位置,拉取进行EC恢复所需要的其他数据块,通过EC算法恢复hello.txt文件,恢复得到的正常的hello.txt文件缓存到机器A的本地。
之后,服务器Y再次试图读取源站S上的hello.txt文件时,仍无法正常读取,会定位到机器A。由于机器A上已缓存了正常的hello.txt文件,因此机器A直接返回缓存的hello.txt文件给服务器Y。
本公开的一示例性实施例还提供了一种数据读取装置,其结构如图4所示,包括:
请求接收模块401,用于接收同集群或其他集群中数据请求方发送的指向本恢复用服务器的第二数据读取请求,在所述第二数据读取请求中携带归属于本恢复用服务器进行恢复的目标数据的信息;
恢复用数据获取模块402,用于根据所述目标数据的信息,获取恢复所述目标数据所需的至少一个数据组;
数据恢复模块403,用于根据所述数据组,恢复得到所述目标数据,缓存在本地;
数据反馈模块404,用于向所述数据请求方返回所述目标数据。
优选的,该装置还包括本地缓存查找模块405;
所述本地缓存查找模块405,用于根据所述第二数据读取请求,查找本地缓存的数据;
所述数据反馈模块404,还用于在所述本地缓存查找模块405确定本地缓存的数据中存在所述目标数据的情况下,向所述数据读取方发送所述目标数据。
如图4所示的数据读取装置,可集成于集群中的服务器上,由服务器实现相应功能。优选的,可集成于恢复集群中的恢复用服务器上,由恢复用服务器实现相应功能,集中进行数据恢复。
本公开的一实施例还提供了一种数据读取装置,其结构如图5所示,包括:
恢复资源确定模块501,用于在判定源站上待读取的目标数据无法读取的情况下,根据预置的恢复配置文件确定所述目标数据指向的恢复***;
数据获取模块502,用于向所述恢复***发送请求,以自所述恢复***获取正常的所述目标数据。
优选的,所述恢复***包括恢复用服务器或由至少一个恢复用服务器构成的恢复集群,所述恢复资源确定模块501的结构如图6所示,包括:
哈希计算单元5011,用于根据所述目标数据的哈希值,通过一致性哈希算法,确定所述哈希值指向的恢复用服务器和/或恢复集群。
优选的,所述恢复资源确定模块501还包括:
记录查询单元5012,用于查询预置的记录文件,确定所述目标数据指向的恢复用服务器,所述记录文件中记录有各文件与对应的恢复用服务器和/或恢复集群之间的对应关系。
如图5和图6所述的数据读取装置,可集成于集群中的服务器上,由服务器实现相应功能。
本公开的一示例性实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现本公开的实施例提供的数据读取方法的步骤。
本公开的一示例性实施例还提供了一种用于数据读取的计算机设备,包括处理器、存储器和存储于所述存储器上的计算机程序,所述处理器执行所述计算机程序时实现本公开的实施例提供的数据读取方法的步骤。
图7是根据一示例性实施例示出的一种用于数据读取的计算机设备700的框图。例如,计算机设备700可以被提供为一服务器。参照图7,计算机设备700包括处理器701,处理器的个数可以根据需要设置为一个或者多个。计算机设备700还包括存储器702,用于存储可由处理器701的执行的指令,例如应用程序。存储器的个数可以根据需要设置一个或者多个。其存储的应用程序可以为一个或者多个。处理器701被配置为执行指令,以执行上述方法。
本公开的实施例提供了一种数据读取方法、装置和***,在无法读取目标数据的情况下,根据预置的恢复配置文件确定所述目标数据指向的恢复***,并向所述恢复***发送请求,自所述恢复***获取正常的所述目标数据。在恢复用服务器一侧,恢复用服务器接收同集群或其他集群中数据请求方发送的指向本恢复用服务器的第二数据读取请求,在所述第二数据读取请求中携带归属于本恢复用服务器进行恢复的目标数据的信息,并根据所述目标数据的信息,获取恢复所述目标数据所需的至少一个数据组,然后根据所述数据组,恢复得到所述目标数据,缓存在本地,向所述数据请求方返回所述目标数据。由恢复集群和/或恢复用服务器满足对一个文件的并发访问请求,解决了频繁的数据恢复操作浪费资源的问题,实现了高效、可靠的数据读取。
同一个数据文件通过一致性Hash算法到一台恢复用服务器进行数据恢复,该恢复用服务器通过EC算法恢复目标数据并缓存到本地磁盘,将该目标数据的源文件被再次访问时,该访问也会被导向恢复用服务器,此时可直接从恢复用服务器的磁盘缓存中获取该目标数据,无需每次都进行数据恢复操作,多次访问同一个无法读取的目标数据,只发生一次EC算法恢复数据操作,节省了反复数据恢复带来的资源消耗。
本领域技术人员应明白,本文的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本文可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本文可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质,包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质等。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
本文是参照根据本文实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。
尽管已描述了本文的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本文范围的所有变更和修改。
显然,本领域的技术人员可以对本文进行各种改动和变型而不脱离本文的精神和范围。这样,倘若本文的这些修改和变型属于本文权利要求及其等同技术的范围之内,则本文的意图也包含这些改动和变型在内。
Claims (19)
1.一种数据读取方法,其特征在于,包括:
接收同集群或其他集群中数据请求方发送的指向本恢复用服务器的第二数据读取请求,在所述第二数据读取请求中携带归属于本恢复用服务器进行恢复的目标数据的信息;
根据所述目标数据的信息,获取恢复所述目标数据所需的至少一个数据组;
根据所述数据组,恢复得到所述目标数据,缓存在本地;
向所述数据请求方返回所述目标数据。
2.根据权利要求1所述的数据读取方法,其特征在于,接收同集群或其他集群中数据请求方发送的指向本恢复用服务器的第二数据读取请求的步骤之前,还包括:
所述恢复用服务器归属的恢复集群接收所述数据请求方发送的第一数据读取请求,在所述第一数据读取请求中携带预置为归属于本恢复集群恢复的目标数据的信息;
根据预置的分配规则,选择执行恢复操作的恢复用服务器,根据所述第一数据读取请求生成所述第二数据读取请求,向所述恢复用服务器发送。
3.根据权利要求1所述的数据读取方法,其特征在于,所述目标数据的信息至少包括:
恢复所述目标数据所需的所述数据组的存储位置,所述数据组包含至少一个与所述目标数据关联的关联数据文件和至少一个校验文件。
4.根据权利要求1所述的数据读取方法,其特征在于,所述接收同集群或其他集群中数据请求方发送的指向本恢复用服务器的第二数据读取请求的步骤之后,还包括:
根据所述第二数据读取请求,查找本地缓存的数据;
在本地缓存的数据中存在所述目标数据的情况下,向所述数据读取方发送所述目标数据。
5.一种数据读取方法,其特征在于,包括:
在判定源站上待读取的目标数据无法读取的情况下,根据预置的恢复配置文件确定所述目标数据指向的恢复***;
向所述恢复***发送请求,以自所述恢复***获取正常的所述目标数据。
6.根据权利要求5所述的数据读取方法,其特征在于,所述恢复***包括恢复用服务器或由至少一个恢复用服务器构成的恢复集群,所述根据预置的恢复配置文件确定所述目标数据指向的恢复***的步骤包括:
根据所述目标数据的哈希值,通过一致性哈希算法,确定所述哈希值指向的恢复用服务器和/或恢复集群。
7.根据权利要求6所述的数据读取方法,其特征在于,向所述恢复***发送请求,自所述恢复***获取正常的所述目标数据的步骤包括:
向所述恢复集群发送第一数据读取请求,在所述第一数据读取请求中携带所述目标数据的信息;或,
向所述恢复用服务器发送第二数据读取请求,在所述第二数据读取请求中携带所述目标数据的信息。
8.一种数据读取装置,其特征在于,包括:
请求接收模块,用于接收同集群或其他集群中数据请求方发送的指向本恢复用服务器的第二数据读取请求,在所述第二数据读取请求中携带归属于本恢复用服务器进行恢复的目标数据的信息;
恢复用数据获取模块,用于根据所述目标数据的信息,获取恢复所述目标数据所需的至少一个数据组;
数据恢复模块,用于根据所述数据组,恢复得到所述目标数据,缓存在本地;
数据反馈模块,用于向所述数据请求方返回所述目标数据。
9.根据权利要求8所述的数据读取装置,其特征在于,该装置还包括本地缓存查找模块;
所述本地缓存查找模块,用于根据所述第二数据读取请求,查找本地缓存的数据;
所述数据反馈模块,还用于在所述本地缓存查找模块确定本地缓存的数据中存在所述目标数据的情况下,向所述数据读取方发送所述目标数据。
10.一种数据读取装置,其特征在于,包括:
恢复资源确定模块,用于在判定源站上待读取的目标数据无法读取的情况下,根据预置的恢复配置文件确定所述目标数据指向的恢复***;
数据获取模块,用于向所述恢复***发送请求,以自所述恢复***获取正常的所述目标数据。
11.根据权利要求10所述的数据读取装置,其特征在于,所述恢复***包括恢复用服务器或由至少一个恢复用服务器构成的恢复集群,所述恢复资源确定模块包括:
哈希计算单元,用于根据所述目标数据的哈希值,通过一致性哈希算法,确定所述哈希值指向的恢复用服务器和/或恢复集群。
12.一种数据读取***,其特征在于,包括由多个恢复用服务器构成的恢复集群和至少一个服务器集群,各所述服务器集群均包括多个非恢复用服务器;
所述非恢复用服务器,用于作为数据请求方,在判定源站上待读取的目标数据无法读取的情况下,根据预置的恢复配置文件确定所述目标数据指向的恢复用服务器,并向所述恢复用服务器发送第二数据读取请求,自所述恢复用服务器获取正常的所述目标数据;
所述恢复用服务器,用于接收所述非恢复用服务器发送的指向本恢复用服务器的第二数据读取请求,在所述第二数据读取请求中携带归属于本恢复用服务器进行恢复的目标数据的信息,根据所述目标数据的信息,获取恢复所述目标数据所需的至少一个数据组,根据所述数据组,恢复得到所述目标数据,缓存在本地,向所述数据请求方返回所述目标数据。
13.根据权利要求12所述的数据读取***,其特征在于,
所述非恢复用服务器,还用于作为数据请求方,在判定源站上待读取的目标数据无法读取的情况下,根据预置的恢复配置文件确定所述目标数据指向的恢复集群,并向所述恢复集群发送第一数据读取请求,自所述恢复集群获取正常的所述目标数据;
所述恢复集群,用于接收所述非恢复用服务器发送的第一数据读取请求,在所述第一数据读取请求中携带预置为归属于本恢复集群恢复的目标数据的信息,根据预置的分配规则,选择执行恢复操作的恢复用服务器,根据所述第一数据读取请求生成所述第二数据读取请求,向所述恢复用服务器发送。
14.根据权利要求12所述的数据读取***,其特征在于,
所述恢复用服务器,还用于作为数据请求方,在判定源站上待读取的目标数据无法读取的情况下,根据预置的恢复配置文件确定所述目标数据指向的其他恢复用服务器,并向所述其他恢复用服务器发送第二数据读取请求,以自所述其他恢复用服务器获取正常的所述目标数据。
15.根据权利要求12所述的数据读取***,其特征在于,所述恢复集群还包括至少一个非恢复用服务器。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被执行时实现如权利要求1-4中任意一项所述方法的步骤。
17.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被执行时实现如权利要求5-7中任意一项所述方法的步骤。
18.一种计算机设备,包括处理器、存储器和存储于所述存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-4中任意一项所述方法的步骤。
19.一种计算机设备,包括处理器、存储器和存储于所述存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求5-7中任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911044714.1A CN112748851A (zh) | 2019-10-30 | 2019-10-30 | 数据读取方法、装置和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911044714.1A CN112748851A (zh) | 2019-10-30 | 2019-10-30 | 数据读取方法、装置和*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112748851A true CN112748851A (zh) | 2021-05-04 |
Family
ID=75641788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911044714.1A Pending CN112748851A (zh) | 2019-10-30 | 2019-10-30 | 数据读取方法、装置和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112748851A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040143607A1 (en) * | 2001-06-05 | 2004-07-22 | Silicon Graphics, Inc. | Recovery and relocation of a distributed name service in a cluster filesystem |
CN106375404A (zh) * | 2016-08-30 | 2017-02-01 | 华为技术有限公司 | 数据存储控制方法、数据存储方法、数据获取方法及装置 |
CN106469100A (zh) * | 2015-08-17 | 2017-03-01 | 华为技术有限公司 | 一种数据恢复的方法、存储的方法相应的装置及*** |
CN107544869A (zh) * | 2017-05-27 | 2018-01-05 | 新华三技术有限公司 | 一种数据恢复方法和装置 |
CN107733662A (zh) * | 2016-08-10 | 2018-02-23 | 腾讯科技(深圳)有限公司 | 群组恢复方法和装置 |
US10198327B1 (en) * | 2015-09-22 | 2019-02-05 | EMC IP Holding Company LLC | Method and system for performing group recovery from a recovery source to multiple recovery targets |
CN109857592A (zh) * | 2019-01-04 | 2019-06-07 | 平安科技(深圳)有限公司 | 数据恢复控制方法、服务器及存储介质 |
-
2019
- 2019-10-30 CN CN201911044714.1A patent/CN112748851A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040143607A1 (en) * | 2001-06-05 | 2004-07-22 | Silicon Graphics, Inc. | Recovery and relocation of a distributed name service in a cluster filesystem |
CN106469100A (zh) * | 2015-08-17 | 2017-03-01 | 华为技术有限公司 | 一种数据恢复的方法、存储的方法相应的装置及*** |
US10198327B1 (en) * | 2015-09-22 | 2019-02-05 | EMC IP Holding Company LLC | Method and system for performing group recovery from a recovery source to multiple recovery targets |
CN107733662A (zh) * | 2016-08-10 | 2018-02-23 | 腾讯科技(深圳)有限公司 | 群组恢复方法和装置 |
CN106375404A (zh) * | 2016-08-30 | 2017-02-01 | 华为技术有限公司 | 数据存储控制方法、数据存储方法、数据获取方法及装置 |
CN107544869A (zh) * | 2017-05-27 | 2018-01-05 | 新华三技术有限公司 | 一种数据恢复方法和装置 |
CN109857592A (zh) * | 2019-01-04 | 2019-06-07 | 平安科技(深圳)有限公司 | 数据恢复控制方法、服务器及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3624398B1 (en) | Storage capacity evaluation method and apparatus based on cdn application | |
US10157135B2 (en) | Cache optimization | |
JP6492123B2 (ja) | 分散キャッシングおよびキャッシュ分析 | |
US8069224B2 (en) | Method, equipment and system for resource acquisition | |
CN105100146A (zh) | 数据存储方法、装置及*** | |
CN111447248A (zh) | 一种文件传输的方法及装置 | |
CN106817388B (zh) | 虚拟机、宿主机获取数据的方法、装置及访问数据的*** | |
US20140359066A1 (en) | System, method and device for offline downloading resource and computer storage medium | |
CN108540510B (zh) | 一种云主机创建方法、装置及云服务*** | |
CN104980478A (zh) | 内容分发网络中缓存共享方法、设备及*** | |
CN106899564B (zh) | 一种登录方法和装置 | |
CN110324406A (zh) | 一种获取业务数据的方法和云服务*** | |
CN112433921A (zh) | 用于动态埋点的方法及设备 | |
CN103220308A (zh) | 一种文件下载方法、装置及*** | |
CN111294372A (zh) | 一种在代理服务器实现缓存的方法、装置及*** | |
CN110830535A (zh) | 一种超热文件的处理方法、负载均衡设备及下载服务器 | |
CN110737389B (zh) | 存储数据的方法和装置 | |
CN105187565A (zh) | 一种利用网络存储数据的方法 | |
CN109582233A (zh) | 一种数据的缓存方法和装置 | |
CN106203179A (zh) | 一种对文件的完整性校验***及方法 | |
CN112748851A (zh) | 数据读取方法、装置和*** | |
CN111506254B (zh) | 分布式存储***及其管理方法、装置 | |
CN110708375A (zh) | 一种数据处理方法、装置及*** | |
CN113542326B (zh) | 分布式***的数据缓存方法及装置、服务器、存储介质 | |
CN107145303B (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 |