CN115167782B - 临时存储副本管理方法、系统、设备和存储介质 - Google Patents
临时存储副本管理方法、系统、设备和存储介质 Download PDFInfo
- Publication number
- CN115167782B CN115167782B CN202210900473.1A CN202210900473A CN115167782B CN 115167782 B CN115167782 B CN 115167782B CN 202210900473 A CN202210900473 A CN 202210900473A CN 115167782 B CN115167782 B CN 115167782B
- Authority
- CN
- China
- Prior art keywords
- copy
- temporary
- storage
- write
- data
- 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.)
- Active
Links
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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
Abstract
本申请提供了一种临时存储副本管理方法、系统、设备和存储介质,其中具体包括在存储副本出现读写错误的情况下,将失败副本从副本位置中移除并为失败副本分配对应的临时副本,通过临时副本实现失败副本的数据备份和恢复。通过本申请提出的技术方案,以引入临时副本的形式对分布式存储系统的副本剔除策略进行了优化,能够避免在服务器网络抖动和磁盘存储异常的故障叠加场景下出现数据丢失难以寻回的情况,借助临时副本的搭建提升了分布式存储系统整体的数据可恢复性,提高了多副本备份的数据安全性,具有可推广价值。
Description
技术领域
本申请涉及分布式存储技术领域,具体地,公开了一种临时存储副本管理方法、系统、设备和存储介质。
背景技术
传统的网络存储系统,往往采用集中的存储服务器对所有数据进行统一的管理和存放,导致存储服务器的部署、硬件性能以及数据管理模式均可能成为整个存储系统的发展瓶颈,难以满足日益增长的大规模存储需求。因此,越来越多的网络存储系统开始采用将数据分散存储在多台独立服务器的分布式存储系统。分布式块存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用副本管理服务进行副本分配,恢复和迁移,不但有效提高了系统的可靠性、可用性和存取效率,还具有易于扩展的特性。
现有技术中,分布式块存储系统提供了虚拟机卷供用户使用,用户可以通过存储协议(如iSCSI等)将虚拟机卷挂载到虚拟机或者计算节点。分布式块存储系统中一般将虚拟卷划分成若干个小数据块进行管理和存储,每个小数据块代表一个合适的物理空间大小,比如64MB或是256MB等。
对于小数据块而言,可以采用多种方式进行存储管理,其中一种生产中常见的方式是多副本存储模式,用于避免某个副本所在的存储服务器出现异常情况(例如磁盘故障、网络波动、网络连接断开失联等)而引起的可能的数据丢失。而为了保证小数据块的多个副本间保持数据的一致性,在某一副本出现读写错误或读写失败的情况下,需要及时剔除掉失败副本然后进行数据恢复。
发明内容
本申请提供了一种临时存储副本管理方法、系统、设备和计算机可读存储介质。其中具体的,本申请的第一方面提供了一种临时存储副本管理方法,其中数据块对应若干存储副本,存储副本分布在不同的存储服务器中;
该种临时存储副本管理方法包括如下步骤:
在存储副本出现读写错误的情况下,将失败副本从副本位置中移除并为失败副本分配对应的临时副本;
通过读写管理队列对临时副本执行数据更新操作;
在接收到恢复指令的情况下,将临时副本存储的数据块恢复至新增存储副本中,并移除临时副本。
在前述第一方面的一种可能的实现中,将失败副本从副本位置中移除并为失败副本分配对应的临时副本包括如下步骤:
判断数据块对应的临时副本的数量与存储副本的数量之和是否小于预设期望阈值:
若是,则根据预设约束规则为失败副本分配对应的临时副本;
若否,则将失败副本从副本位置中移除后不执行任何步骤。
在前述第一方面的一种可能的实现中,预设约束规则包括以下的一项或多项:
临时副本对应的存储服务节点的可用存储空间大于预设阈值;
临时副本对应的存储服务节点与数据块的其他存储副本对应的存储服务节点不同;以及
临时副本对应的存储服务节点与失败副本对应的存储服务节点不同。
在前述第一方面的一种可能的实现中,通过读写管理队列对临时副本执行数据更新操作包括如下步骤:
记录临时副本对应的未返回写IO个数以及未返回IO对应的最大数据版本;
在未返回写IO对应的数据版本小于最大数据版本且未返回写IO返回的情况下,将未返回写IO个数减1并将对应的IO置入读写管理队列;
在未返回写IO个数为零的情况下,根据读写管理队列依照数据版本递增的顺序将对应的IO重放至临时副本中。
在前述第一方面的一种可能的实现中,在未返回写IO个数不为零的情况下,新写入的写IO直接置入读写管理队列;
在IO重放至临时副本完成的情况下,新写入的写IO直接置入临时副本中。
在前述第一方面的一种可能的实现中,临时副本记录的元数据包括:
临时副本对应的最小数据版本;
临时副本对应的最大数据版本;以及
临时副本对应的有效读写区域。
在前述第一方面的一种可能的实现中,在接收到恢复指令的情况下将临时副本存储的数据块恢复至新增存储副本中并移除临时副本包括如下步骤:
获取恢复指令,恢复指令包括临时副本信息和恢复目标地信息;
在恢复目标地对应的副本状态为异常的情况下,终止恢复步骤的执行;
在恢复目标地对应的数据版本不在临时副本对应的数据版本区间内的情况下,终止恢复步骤的执行。
本申请的第二方面提供了一种临时存储副本管理系统,应用于前述第一方面提供的临时存储副本管理方法中;
该种临时存储副本管理系统包括:
分配单元,用于在存储副本出现读写错误的情况下,将失败副本从副本位置中移除并为失败副本分配对应的临时副本;
管理单元,用于通过读写管理队列对临时副本执行数据更新操作;
恢复单元,用于在接收到恢复指令的情况下,将临时副本存储的数据块恢复至新增存储副本中,并移除临时副本。
本申请的第三方面公开了一种临时存储副本管理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如前述第一方面提供的临时存储副本管理方法。
本申请的第四方面公开了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如前述第一方面提供的临时存储副本管理方法。
与现有技术相比,本申请具有如下的有益效果:
本申请提供了一种临时存储副本管理方法、系统、设备和计算机可读存储介质。通过本申请提出的技术方案,以引入临时副本的形式对分布式存储系统的副本剔除策略进行了优化,能够避免在服务器网络抖动和磁盘存储异常的故障叠加场景下出现数据丢失难以寻回的情况,借助临时副本的搭建提升了分布式存储系统整体的数据可恢复性,提高了多副本备份的数据安全性,具有可推广价值。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1根据本申请实施例,示出了一种临时存储副本管理方法的流程示意图;
图2根据本申请实施例,示出了一种在将失败副本从副本位置中移除并为失败副本分配对应的临时副本的流程示意图;
图3根据本申请实施例,示出了一种通过读写管理队列对临时副本执行数据更新操作的流程示意图;
图4根据本申请实施例,示出了一种将临时副本存储的数据块恢复至新增存储副本中并移除临时副本的流程示意图;
图5根据本申请实施例,示出了一种临时存储副本管理系统的结构示意图;
图6根据本申请实施例,示出了一种电子设备的结构示意图;
图7根据本申请实施例,示出了一种计算机可读存储介质的结构示意图。
具体实施方法
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少区域地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
基于前述背景技术中的相关技术背景阐释,可以理解的是,在使用多副本技术的分布式存储系统中,如果某个副本IO异常,则需要剔除该副本,并通过数据恢复将数据块恢复至期望副本数。但是,现有技术的实际应用过程中还可能出现故障叠加的场景:例如设定数据块有两个存储副本A和B,并且分布在不同存储服务器上:当副本B由于存储服务器突然下电,网络闪断等原因发生异常时,分布式存储系统将剔除掉副本B并使用副本A进行数据恢复;但如果在数据恢复过程中如果数据副本A又因为磁盘异常而无法访问导致数据恢复失败,则可能导致数据块的整体存储安全性受到影响。
针对现有技术以及上述实施例中存在的上述问题,在本申请提供的一些实施例中,图1示出了一种临时存储副本管理方法的流程示意图。可以理解的是,该种临时存储副本管理方法应用于前述背景技术中提及的分布式存储系统中,其中该分布式存储系统需要对若干数据块进行存储管理,每个数据块对应有若干数量的存储副本,这些存储副本均分布在不同的存储服务器中。对于上述分布式存储系统而言,包含两个核心组成部分:副本管理服务以及存储服务。其中:副本管理管理服务负责副本管理,具体可以包括数据块副本状态的统计,数据块访问权限的分配,副本数据恢复命令生成和下发,数据回收等;存储服务用于处理外部的读写指令,并通过副本管理服务完成副本的分配和副本状态信息的获取,以将外部读写指令发往对应的各个副本位置,同时能够在当前存储副本数少于预期数量的时候触发数据恢复功能以将副本恢复至期望数量。
可以理解的是,存储服务需要保证数据块在多个存储副本间的一致性,在向副本管理服务申请数据块对应的访问权限的过程中,需要保证同一时间只有一个存储服务能访问特定的数据块。每个数据块对应的全部存储副本拥有独立对应的数据版本,存储服务每下发一次写IO到数据块,则全部存储副本的数据版本递增;当所有数据块的副本的数据版本一致时,则说明数据块对应的全部存储副本具有数据一致性,如果不一致则剔除数据版本小的存储副本以保证数据的一致性。
在本申请提供的技术方案中,需要在数据块对应的某个存储副本失败的情况下(例如发生读写错误等),不对失败副本的数据进行直接剔除而是尽量保留失败副本的数据,以实现在数据块对应的存储副本均失败的情况下,能够尽量利用先前的部分有效数据恢复获取至少一个健康副本。具体的,如图1所示,该种临时存储副本管理方法可以包括如下步骤:
步骤101:在存储副本出现读写错误的情况下,将失败副本从副本位置中移除并为失败副本分配对应的临时副本。
步骤102:通过读写管理队列对临时副本执行数据更新操作。其中,有关读写管理队列的具体实现将于后文中进行阐释和说明。
步骤103:在接收到恢复指令的情况下,将临时副本存储的数据块恢复至新增存储副本中,并移除临时副本。
可以理解的是,基于上述步骤101至步骤103,通过引入临时副本的方式实现了对于失败副本对应数据的尽可能的保留以及恢复,以下将针对上述步骤101至步骤103的具体实现方式做出进一步说明。
在本申请的一些实施例中,图2示出了一种在将失败副本从副本位置中移除并为失败副本分配对应的临时副本的流程示意图。如图2所示,具体还可以包括如下步骤:
步骤201:判断数据块对应的临时副本的数量与存储副本的数量之和是否小于预设期望阈值:若是则转向步骤202;若否则转向步骤203。
步骤202:根据预设约束规则为失败副本分配对应的临时副本。
步骤203:将失败副本从副本位置中移除后不执行任何步骤。
可以理解的是,在出现失败副本的情况下,如果此时数据块对应的存储副本的数量以及已有的临时副本数量之和已经达到了期望数量,则说明对于数据块的存储已得到了充分多项的分布式存储支持,此时无需在进行临时副本的分配与创建,节省了可临时副本的占用空间。
在前述实施例的一种具体实现中,预设约束规则包括以下条件中的一项或多项,这些条件分别是:
临时副本对应的存储服务节点的可用存储空间大于预设阈值。可以理解的是,为了避免临时副本占用过多的空间而导致无法分配正常的副本,只会选取可用空间大于一定阈值(例如存储服务节点可用空间大于该存储服务节点总空间的5%,或者可用空间大于500G)的存储服务。
临时副本对应的存储服务节点与数据块的其他存储副本对应的存储服务节点不同。可以理解的是,为了保证拓扑安全,数据块对应的。如果存储副本和临时副本往往是相互独立的,若将临时副本和存储副本,或是将全部临时副本都集中在一个存储服务上,单个存储服务异常的可能导致一个数据块的所有临时副本都不可能访问。
临时副本对应的存储服务节点与失败副本对应的存储服务节点不同。可以理解的是,向失败副本所在的存储服务发起IO,那么后续的IO请求大概率也会失败,比如拥有数据块访问权限的存储服务与失败副本所在的存储服务网络抖动等,因此分配临时副本时,也需要尽可能避免分配在失败副本所在存储服务中。
在本申请的一些实施例中,图3示出了一种通过读写管理队列对临时副本执行数据更新操作的流程示意图。具体的,如图3所示,可以包括如下步骤:
步骤301:记录临时副本对应的未返回写IO个数以及未返回IO对应的最大数据版本。
步骤302:在未返回写IO对应的数据版本小于最大数据版本且未返回写IO返回的情况下,将未返回写IO个数减1并将对应的IO置入读写管理队列。
步骤303:在未返回写IO个数为零的情况下,根据读写管理队列依照数据版本递增的顺序将对应的IO重放至临时副本中。
可以理解的是,有数据块访问权限的存储服务需要将失败副本之后的IO写入到对应的临时副本中,为此为每一个临时副本可以维护一个IO队列:在拥有数据块访问权限的存储服务向副本管理服务申请临时副本前,创建上述IO队列,并记录下当前未返回的写IO个数和未返回IO的最大数据版本;对前述步骤301中未返回的IO返回时,如果IO数据版本小于临时副本IO队列记录的最大数据版本则临时副本IO队列的未返回写IO个数减一,并将IO入队;而当队列的未返回写IO个数为0时,找到数据版本最小的失败IO,并从此IO开始按数据版本递增的顺序重放到临时副本,其中需要注意的是,如果数据版本非递增,则需要删除掉临时副本并终止此过程。
在前述实施例的一种具体实现中,在未返回写IO个数不为零的情况下,新写入的写IO直接置入读写管理队列;而在IO重放至临时副本完成的情况下,新写入的写IO直接置入临时副本中。可以理解的是,在临时副本状态下也可能接收到新的IO,此时可以根据读写管理队列进行合理的排布。
在前述实施例的一种具体实现中,临时副本记录的元数据可以包括:临时副本对应的最小数据版本、临时副本对应的最大数据版本以及临时副本对应的有效读写区域。
可以理解的是,由于临时副本为一个新的数据块存储副本,且记录的是失败副本第一个失败IO之后的全部IO,因此临时副本需要记录失败副本第一个失败IO的数据版本(即临时副本对应的最小数据版本)、临时副本写入IO的个数(可以通过临时副本对应的最大数据版本和最小数据版本的差值进行确定)以及临时副本对应的有效读写区域,上述有效读写区域指的是所有写入IO的偏移和长度。
可以理解的是,由于临时副本只记录失败副本之后的IO,所以外部的读IO不能发到临时副本,比如临时副本记录了一条[0,4k]的IO,外部发来了一条[0,256k]的读IO,显然临时副本缺少(4k,256k]部分数据;同时在利用临时副本进行恢复时也需要知道临时副本中哪些区域是有效的。因此在临时副本写入过程中,可以使用位图来记录临时副本有效数据区域。
在本申请的一些实施例中,图4示出了一种将临时副本存储的数据块恢复至新增存储副本中并移除临时副本的流程示意图。具体的,如图4所示,可以包括如下步骤:
步骤401:获取恢复指令,其中恢复指令包括临时副本信息和恢复目标地信息。
步骤402:在恢复目标地对应的副本状态为异常的情况下,终止恢复步骤的执行。
步骤403:在恢复目标地对应的数据版本不在临时副本对应的数据版本区间内的情况下,终止恢复步骤的执行。
可以理解的是,在存储服务接收到恢复指令后,在执行具体的恢复操作前需要对恢复目标地执行检查,检查包括了副本状态检查以及数据版本检查。在检查通过的情况下,可以从临时副本元数据记录的有效区域读取数据到失败副本,并在恢复结束后移除对应的临时副本。
于前述实施例中提及在完成对临时副本恢复过程后需要移除对应的临时副本,在本申请提供的技术方案中,还存在其余数个需要回收临时副本的场景,包括:存储服务将数据块的副本数恢复到期望副本数时,可以由副本管理服务回收数据块的所有临时副本;存储服务从一个临时副本恢复失败副本成功后,可以由副本管理服务回收该临时副本;在临时副本出现IO失败时,存储服务可以向副本管理服务发起剔除临时副本的请求,副本管理服务根据请求剔除该临时副本;以及在数据块被删除后,可以由副本管理服务回收数据块对应的所有临时副本。可以理解的是,临时副本的设置同样会占用一定的存储空间,在无需临时副本的场景中需要及时回收已设置的临时副本。
在本申请的一些实施例中,图5提供了一种临时存储副本管理系统的流程示意图,该种临时存储副本管理系统应用于前述实施例提供的临时存储副本管理方法中。具体地,如图5所示,该种临时存储副本管理系统可以包括:
分配单元001,用于在存储副本出现读写错误的情况下,将失败副本从副本位置中移除并为失败副本分配对应的临时副本。
管理单元002,用于通过读写管理队列对临时副本执行数据更新操作。
恢复单元003,用于在接收到恢复指令的情况下,将临时副本存储的数据块恢复至新增存储副本中,并移除临时副本。
可以理解的是,上述功能模块中分配单元001至恢复单元003所实现的功能,与前述步骤101至步骤103所执行的操作一一对应,在此不做赘述。
在本申请的另一些实施例中,还提供了另一种克服前述现有技术中存在问题的技术方案,能够基于分布式存储系统的日志管理方案来实现对于失败副本的持久化存储。具体的,可以基于日志的方案,在副本IO失败后,将失败副本之后的IO以日志的方式追加写入到一个持久化存储中;在失败副本上线后,重放日志将失败副本恢复成健康副本。但是,以追加日志的方式势必带来持久化存储带来空间上的挑战,需要配合特定的日志合并策略,比如可以是在先后两条日志写的区域有重合的情况下,在日志合并过程中将两条日志合并成一条,以减少空间占用。
可以理解的是,本申请技术方案的各个方面可以实现为系统、方法或程序产品。因此,本申请技术方案的各个方面可以具体实现为以下形式,即完全的硬件实施方法、完全的软件实施方法(包括固件、微代码等),或硬件和软件方面结合的实施方法,这里可以统称为“电路”、“模块”或“平台”。本领域的技术人员应该明白,上述本申请的各单元或各模块或各步骤可以用通用的计算设备来实现,它们可以集中在单个的计算设备上,或者分布在多个计算设备所组成的网络上,可选地,它们可以用计算设备可执行的程序代码来实现,从而,可以将它们存储在存储介质中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。
图6根据本申请的一些实施例,示出了一种电子设备的结构示意图。下面参照图6来详细描述根据本实施例中的实施方法实施的电子设备600。图6显示的电子设备600仅仅是一个示例,不应对本申请技术方案任何实施例的功能和使用范围带来任何限制。
如图6所示,电子设备600以通用计算设备的形式表现。电子设备600的组建可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同平台组件(包括存储单元620和处理单元610)的总线630、显示单元640等。
其中,存储单元存储有程序代码,程序代码可以被处理单元610执行,使得处理单元610执行本实施例中上述临时存储副本管理系统中各个功能模块的实现。
存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取单元(RAM)6201和/或高速缓存存储单元6202,可以进一步包括只读存储单元(ROM)6203。
存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图像加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可以与一个或者多个使得用户与该电子设备600交互的设备通信,和/或与使得该电子设备能与一个或多个其他计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其他模块通信。应当明白,尽管图6中未示出,可以结合电子设备600使用其他硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储平台等。
在本申请的一些实施例中,还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时能够实现上述公开中临时存储副本管理系统中的各个功能模块的实现。
尽管本实施例未详尽地列举其他具体的实施方法,但在一些可能的实施方法中,本申请技术方案说明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行根据本申请技术方案各种实施例中实施方法的具体步骤。
图7根据本申请的一些实施例示出了一种计算机可读存储介质的结构示意图。如图7所示,其中描述了根据本申请技术方案的实施方法中用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。当然,依据本实施例产生的程序产品不限于此,在本申请技术方案中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读存储介质可以包括在基带中或者作为载波一区域传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请技术方案操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如C语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、区域地在用户设备上执行、作为一个独立的软件包执行、区域在用户计算设备上区域在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
综上所述,本申请提供了一种临时存储副本管理方法、系统、设备和计算机可读存储介质,其中具体包括在存储副本出现读写错误的情况下,将失败副本从副本位置中移除并为失败副本分配对应的临时副本,通过临时副本实现失败副本的数据备份和恢复。通过本申请提出的技术方案,以引入临时副本的形式对分布式存储系统的副本剔除策略进行了优化,能够避免在服务器网络抖动和磁盘存储异常的故障叠加场景下出现数据丢失难以寻回的情况,借助临时副本的搭建提升了分布式存储系统整体的数据可恢复性,提高了多副本备份的数据安全性,具有可推广价值。
上述描述仅是对本申请技术方案较佳实施例的描述,并非对本申请技术方案范围的任何限定,本申请技术方案领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。
Claims (8)
1.一种临时存储副本管理方法,其特征在于,数据块对应若干存储副本,所述存储副本分布在不同的存储服务器中;
所述临时存储副本管理方法包括如下步骤:
在所述存储副本出现读写错误的情况下,将失败副本从副本位置中移除并为所述失败副本分配对应的临时副本;
通过读写管理队列对所述临时副本执行数据更新操作;
在接收到恢复指令的情况下,将所述临时副本存储的数据块恢复至新增存储副本中,并移除所述临时副本;
其中,所述通过读写管理队列对临时副本执行数据更新操作包括如下步骤:
记录所述临时副本对应的未返回写IO个数以及未返回IO对应的最大数据版本;
在所述未返回写IO对应的数据版本小于所述最大数据版本且所述未返回写IO返回的情况下,将所述未返回写IO个数减1并将对应的IO置入所述读写管理队列;
在所述未返回写IO个数为零的情况下,根据所述读写管理队列依照数据版本递增的顺序将对应的IO重放至所述临时副本中;
在所述未返回写IO个数不为零的情况下,新写入的写IO直接置入所述读写管理队列;
在所述IO重放至所述临时副本完成的情况下,新写入的写IO直接置入所述临时副本中。
2.如权利要求1所述的临时存储副本管理方法,其特征在于,所述将失败副本从副本位置中移除并为失败副本分配对应的临时副本包括如下步骤:
判断所述数据块对应的所述临时副本的数量与所述存储副本的数量之和是否小于预设期望阈值:
若是,则根据预设约束规则为所述失败副本分配对应的所述临时副本;
若否,则将所述失败副本从副本位置中移除后不执行任何步骤。
3.如权利要求2所述的临时存储副本管理方法,其特征在于,所述预设约束规则包括以下的一项或多项:
所述临时副本对应的存储服务节点的可用存储空间大于预设阈值;
所述临时副本对应的存储服务节点与所述数据块的其他所述存储副本对应的存储服务节点不同;以及
所述临时副本对应的存储服务节点与所述失败副本对应的存储服务节点不同。
4.如权利要求1所述的临时存储副本管理方法,其特征在于,所述临时副本记录的元数据包括:
所述临时副本对应的最小数据版本;
所述临时副本对应的最大数据版本;以及
所述临时副本对应的有效读写区域。
5.如权利要求1所述的临时存储副本管理方法,其特征在于,所述在接收到恢复指令的情况下将临时副本存储的数据块恢复至新增存储副本中并移除临时副本包括如下步骤:
获取所述恢复指令,所述恢复指令包括所述临时副本信息和恢复目标地信息;
在所述恢复目标地对应的副本状态为异常的情况下,终止恢复步骤的执行;
在所述恢复目标地对应的数据版本不在所述临时副本对应的数据版本区间内的情况下,终止恢复步骤的执行。
6.一种临时存储副本管理系统,其特征在于,应用于权利要求1至5中任意一项所述的临时存储副本管理方法中;
所述临时存储副本管理系统包括:
分配单元,用于在所述存储副本出现读写错误的情况下,将失败副本从副本位置中移除并为所述失败副本分配对应的临时副本;
管理单元,用于通过读写管理队列对所述临时副本执行数据更新操作;
恢复单元,用于在接收到恢复指令的情况下,将所述临时副本存储的数据块恢复至新增存储副本中,并移除所述临时副本。
7.一种临时存储副本管理设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5中任一项所述的临时存储副本管理方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5中任意一项所述的临时存储副本管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210900473.1A CN115167782B (zh) | 2022-07-28 | 2022-07-28 | 临时存储副本管理方法、系统、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210900473.1A CN115167782B (zh) | 2022-07-28 | 2022-07-28 | 临时存储副本管理方法、系统、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115167782A CN115167782A (zh) | 2022-10-11 |
CN115167782B true CN115167782B (zh) | 2023-02-28 |
Family
ID=83477634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210900473.1A Active CN115167782B (zh) | 2022-07-28 | 2022-07-28 | 临时存储副本管理方法、系统、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115167782B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116248699B (zh) * | 2023-03-14 | 2024-01-02 | 安超云软件有限公司 | 多副本场景下的数据读取方法、装置、设备及存储介质 |
CN116662081B (zh) * | 2023-08-01 | 2024-02-27 | 苏州浪潮智能科技有限公司 | 一种分布式存储冗余方法、装置、电子设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101692227A (zh) * | 2009-09-25 | 2010-04-07 | 中国人民解放军国防科学技术大学 | 大规模高可靠的归档存储系统构建方法 |
CN102737088A (zh) * | 2011-03-18 | 2012-10-17 | 微软公司 | 分布式数据库系统中的无缝升级 |
CN106104460A (zh) * | 2014-03-06 | 2016-11-09 | 国际商业机器公司 | 分布式存储系统中的可靠性增强 |
CN109960602A (zh) * | 2017-12-26 | 2019-07-02 | 中国移动通信集团四川有限公司 | 信息管理方法、装置、设备及介质 |
CN111104069A (zh) * | 2019-12-20 | 2020-05-05 | 北京金山云网络技术有限公司 | 分布式存储系统的多区域数据处理方法、装置及电子设备 |
CN112929438A (zh) * | 2021-02-04 | 2021-06-08 | 中国工商银行股份有限公司 | 一种双站点分布式数据库的业务处理方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106649401A (zh) * | 2015-11-03 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 分布式文件系统中的数据写入方法和装置 |
CN111884883A (zh) * | 2020-07-29 | 2020-11-03 | 北京宏达隆和科技有限公司 | 一种用于业务接口的快速审计处理方法 |
-
2022
- 2022-07-28 CN CN202210900473.1A patent/CN115167782B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101692227A (zh) * | 2009-09-25 | 2010-04-07 | 中国人民解放军国防科学技术大学 | 大规模高可靠的归档存储系统构建方法 |
CN102737088A (zh) * | 2011-03-18 | 2012-10-17 | 微软公司 | 分布式数据库系统中的无缝升级 |
CN106104460A (zh) * | 2014-03-06 | 2016-11-09 | 国际商业机器公司 | 分布式存储系统中的可靠性增强 |
CN109960602A (zh) * | 2017-12-26 | 2019-07-02 | 中国移动通信集团四川有限公司 | 信息管理方法、装置、设备及介质 |
CN111104069A (zh) * | 2019-12-20 | 2020-05-05 | 北京金山云网络技术有限公司 | 分布式存储系统的多区域数据处理方法、装置及电子设备 |
CN112929438A (zh) * | 2021-02-04 | 2021-06-08 | 中国工商银行股份有限公司 | 一种双站点分布式数据库的业务处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115167782A (zh) | 2022-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115167782B (zh) | 临时存储副本管理方法、系统、设备和存储介质 | |
CN103226502B (zh) | 一种数据灾备控制系统及数据恢复方法 | |
US10353787B2 (en) | Data stripping, allocation and reconstruction | |
CN106776130B (zh) | 一种日志恢复方法、存储装置和存储节点 | |
CN111581020B (zh) | 一种分布式块存储系统中数据恢复的方法和装置 | |
US20200012442A1 (en) | Method for accessing distributed storage system, related apparatus, and related system | |
CN113626256B (zh) | 一种虚拟机磁盘数据备份方法、装置、终端及存储介质 | |
CN115098299B (zh) | 一种虚拟机的备份方法、容灾方法、装置及设备 | |
CN113326006A (zh) | 一种基于纠删码的分布式块存储系统 | |
US20220334733A1 (en) | Data restoration method and related device | |
WO2020233001A1 (zh) | 双控构架分布式存储系统、数据读取方法、装置和存储介质 | |
CN116204137B (zh) | 基于dpu的分布式存储系统、控制方法、装置及设备 | |
US9348704B2 (en) | Electronic storage system utilizing a predetermined flag for subsequent processing of each predetermined portion of data requested to be stored in the storage system | |
US20190354433A1 (en) | Parity log with by-pass | |
CN111381770A (zh) | 一种数据存储切换方法、装置、设备及存储介质 | |
CN107045426B (zh) | 一种多副本读取方法和系统 | |
US20240095211A1 (en) | Published File System And Method | |
CN115470041A (zh) | 一种数据灾备管理方法及装置 | |
CN115391106A (zh) | 一种备端资源池化的方法、系统及装置 | |
WO2022033269A1 (zh) | 数据处理的方法、设备及系统 | |
CN115292408A (zh) | MySQL数据库的主从同步方法、装置、设备及介质 | |
CN116339609A (zh) | 一种数据处理方法以及存储设备 | |
CN113641298A (zh) | 数据存储方法、设备和计算机程序产品 | |
CN112328182A (zh) | 一种raid数据管理方法、装置和计算机可读存储介质 | |
CN111581013A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |