CN113672174B - 数据重构方法、设备、存储介质及装置 - Google Patents

数据重构方法、设备、存储介质及装置 Download PDF

Info

Publication number
CN113672174B
CN113672174B CN202110888502.2A CN202110888502A CN113672174B CN 113672174 B CN113672174 B CN 113672174B CN 202110888502 A CN202110888502 A CN 202110888502A CN 113672174 B CN113672174 B CN 113672174B
Authority
CN
China
Prior art keywords
reconstruction
data
target
storage node
load capacity
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
Application number
CN202110888502.2A
Other languages
English (en)
Other versions
CN113672174A (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.)
China Mobile Communications Group Co Ltd
China Mobile Hangzhou Information Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Hangzhou Information 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 China Mobile Communications Group Co Ltd, China Mobile Hangzhou Information Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202110888502.2A priority Critical patent/CN113672174B/zh
Publication of CN113672174A publication Critical patent/CN113672174A/zh
Application granted granted Critical
Publication of CN113672174B publication Critical patent/CN113672174B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools

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

数据重构方法、设备、存储介质及装置
技术领域
本发明涉及互联网技术领域,尤其涉及一种数据重构方法、设备、存储介质及装置。
背景技术
目前,分布式存储系统在进行数据分片重构时,往往选取分片序号较小的存储节点对异常数据分片进行重构。但是,上述重构方式并未考虑各存储节点的重构负载量,从而导致个别存储节点负载量大,进而导致数据分片重构的速度慢、稳定性差。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种数据重构方法、设备、存储介质及装置,旨在解决现有技术中在对异常数据分片进行重构时,未考虑各存储节点的重构负载量,从而导致个别存储节点负载量大,进而导致数据分片重构的速度慢、稳定性差的技术问题。
为实现上述目的,本发明提供一种数据重构方法,所述数据重构方法包括以下步骤:
在接收到数据分片重构请求时,获取各存储节点的重构负载量;
根据所述重构负载量从所述存储节点中选取目标存储节点,并读取所述目标存储节点中的目标数据分片;
根据所述目标数据分片确定异常数据分片,并对所述异常数据分片进行数据重构。
可选地,所述根据所述重构负载量从所述存储节点中选取目标存储节点,并读取所述目标存储节点中的目标数据分片的步骤,包括:
根据所述重构负载量对所述存储节点进行排序,获得排序结果;
根据所述排序结果对所述存储节点进行筛选,获得目标存储节点。
可选地,所述根据所述排序结果对所述存储节点进行筛选,获得目标存储节点的步骤,包括:
获取存储数据的分块数量,并根据所述分块数量确定数据分片重构所需的目标分片数量;
根据所述排序结果和所述目标分片数量对所述存储节点进行筛选,获得目标存储节点。
可选地,所述根据所述排序结果和所述目标分片数量对所述存储节点进行筛选,获得目标存储节点的步骤,包括:
根据所述排序结果和所述目标分片数量对所述存储节点进行筛选,获得候选存储节点;
判断所述候选存储节点是否处于锁定状态;
在所述候选存储节点未处于锁定状态时,将所述候选存储节点作为目标存储节点。
可选地,所述根据所述重构负载量从所述存储节点中选取目标存储节点,并读取所述目标存储节点中的目标数据分片的步骤之后,还包括:
获取所述目标存储节点的重构读信息;
根据所述重构读信息对所述目标存储节点的重构负载量进行更新,获得所述目标存储节点的当前重构负载量。
可选地,所述根据所述重构读信息对所述目标存储节点的重构负载量进行更新,获得所述目标存储节点的当前重构负载量的步骤之后,还包括:
获取所述当前重构负载量的存储时间,并判断所述存储时间是否大于或等于预设时间阈值;
在所述存储时间大于或等于预设时间阈值时,删除所述当前重构负载量。
可选地,所述根据所述目标数据分片确定异常数据分片,并对所述异常数据分片进行数据重构的步骤之后,还包括:
获取各目标存储节点的当前重构负载量,并判断所述当前重构负载量是否大于预设负载量阈值;
在所述当前重构负载量大于预设负载量阈值时,将所述目标存储节点设置为锁定状态。
此外,为实现上述目的,本发明还提出一种数据重构设备,所述数据重构设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据重构程序,所述数据重构程序配置为实现如上文所述的数据重构方法。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有数据重构程序,所述数据重构程序被处理器执行时实现如上文所述的数据重构方法。
此外,为实现上述目的,本发明还提出一种数据重构装置,所述数据重构装置包括:信息获取模块、节点选取模块和重构处理模块;
所述信息获取模块,用于在接收到数据分片重构请求时,获取各存储节点的重构负载量;
所述节点选取模块,用于根据所述重构负载量从所述存储节点中选取目标存储节点,并读取所述目标存储节点中的目标数据分片;
所述重构处理模块,用于根据所述目标数据分片确定异常数据分片,并对所述异常数据分片进行数据重构。
在本发明中,公开了在接收到数据分片重构请求时,获取各存储节点的重构负载量,根据重构负载量从存储节点中选取目标存储节点,并读取目标存储节点中的目标数据分片,根据目标数据分片确定异常数据分片,并对异常数据分片进行数据重构;由于本发明通过各存储节点的重构负载量来选取目标存储节点,并基于目标存储节点的目标数据分片进行数据重构,从而避免了个别存储节点负载量过大,缩短了数据分片重构的速度,增加了数据分片重构的稳定性。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的数据重构设备的结构示意图;
图2为本发明数据重构方法第一实施例的流程示意图;
图3为本发明数据重构方法一实施例的通过纠错码进行数据存储的示意图;
图4为本发明数据重构方法一实施例的现有数据分片重构示意图;
图5为本发明数据重构方法一实施例的数据分片重构示意图;
图6为本发明数据重构方法第二实施例的流程示意图;
图7为本发明数据重构方法第三实施例的流程示意图;
图8为本发明数据重构装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的数据重构设备结构示意图。
如图1所示,该数据重构设备可以包括:处理器1001,例如中央处理器(CentralProcessing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display),可选用户接口1003还可以包括标准的有线接口、无线接口,对于用户接口1003的有线接口在本发明中可为USB接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,Wi-Fi)接口)。存储器1005可以是高速的随机存取存储器(Random Access Memory,RAM),也可以是稳定的存储器(Non-volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对数据重构设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,认定为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据重构程序。
在图1所示的数据重构设备中,网络接口1004主要用于连接后台服务器,与所述后台服务器进行数据通信;用户接口1003主要用于连接用户设备;所述数据重构设备通过处理器1001调用存储器1005中存储的数据重构程序,并执行本发明实施例提供的数据重构方法。
基于上述硬件结构,提出本发明数据重构方法的实施例。
参照图2,图2为本发明数据重构方法第一实施例的流程示意图,提出本发明数据重构方法第一实施例。
步骤S10:在接收到数据分片重构请求时,获取各存储节点的重构负载量。
应当理解的是,本实施例方法的执行主体可以是具有数据处理、网络通信以及程序运行功能的数据重构设备,例如电脑或服务器等,或者是其他能够实现相同或相似功能的电子设备,本实施例对此不加以限制。在本实施例和其他实施例中,以服务器为例进行说明。
需要说明的是,数据分片重构请求可以由用户通过数据重构设备的用户界面发起。存储节点可以是对象存储设备(Object-based Storage Device,OSD)。重构负载量可以是接收存储节点重构读请求的数量和进行重构写操作的数量。
可以理解的是,本实施例中通过纠错码存储数据,具体的存储方式可以是:纠错码把存储数据分成N份原始数据,通过这N份原始数据计算出M份校验数据,把N+M份数据命名为数据分片分别保存在不同的OSD中。在读取数据时,可以是通过N+M份中的任意N份数据分片还原出原始数据块;在对异常数据分片进行重构时,也可以通过N份数据分片还原出异常数据分片。
为了便于理解,参考图3进行说明,但并不对本方案进行限定。图3为通过纠错码进行数据存储的示意图,图中以N=3,M=2为例,具体说明如何通过纠删码将名称为NYAN的对象存放在Ceph中,假定该对象的内容为ABCDEFGHI。客户端在将NYAN上传到Ceph以后,会在主OSD中调用相应的纠删码算法对数据进行编码计算:将原来的ABCDEFGHI拆分成三个分片,对应图中的条带分片1(内容为ABC)、条带分片2(内容为DEF)以及条带分片3(内容为GHI),之后再计算出另外两个校验条带分片4(内容为YXY)和校验条带分片5(内容为QGC)。根据crushmap所指定的规则,将这5个分片随机分布在5个不同的OSD上面,完成对这个对象的存储操作。
客户端在发起读取NYAN的请求以后,这个对象所在PG的主OSD会向其他关联的OSD发起读取请求,例如,主OSD是图中的OSD1,当请求发送到了OSD2、OSD3、OSD4以及OSD5时,由于OSD2读取较慢,OSD5出现故障无法回应请求,导致最终只能获取到OSD1(内容为ABC)、OSD3(内容为GHI)以及OSD4(内容为YXY)的条带分片,此时OSD1作为主OSD会对OSD1、OSD3以及OSD4的数据分片做纠删码解码操作,计算出OSD2上面的分片内容(即DEF),之后重新组合出新的NYAN内容(ABCDEFGHI),最终将该结果返回给客户端。
可以理解的是,现有技术中在进行数据分片重构时,往往选取分片序号较小的存储节点对异常数据分片进行重构,从而导致某些存储节点上需要读取的数据分片较多,影响存储节点的数据读取速度和稳定性,进而导致数据分片重构的速度慢、稳定性差。
为了便于理解,参考图4进行说明,但并不对本方案进行限定。图4为现有数据分片重构示意图,图中主PG为OSD1,OSD在接收到数据分片重构请求时,向分片序号较小的OSD8、OSD19以及OSD5发送重构读请求,OSD8、OSD19以及OSD5根据重构读请求向OSD1反馈目标数据分片,OSD1根据目标数据分片确定异常数据分片,并对异常数据分片进行数据重构,重构完成后将重构生成的数据分片发送至异常数据分片所在的OSD15。
参考图4可知,OSD19的重构负载量为8,还要增加主PG发出的重构读请求,从而导致OSD19需要读取的数据分片较多,影响OSD19的数据读取速度和稳定性,进而导致数据分片重构的速度慢、稳定性差。
步骤S20:根据所述重构负载量从所述存储节点中选取目标存储节点,并读取所述目标存储节点中的目标数据分片。
应当理解的是,根据重构负载量从存储节点中选取目标存储节点可以是根据重构负载量从小到大对存储节点进行排序,并将排序靠前的存储节点作为目标存储节点。
进一步地,为了能够实时更新各存储节点的重构负载量,所述步骤S20之后,还包括:
获取所述目标存储节点的重构读信息;
根据所述重构读信息对所述目标存储节点的重构负载量进行更新,获得所述目标存储节点的当前重构负载量。
应当理解的是,在读取目标存储节点中的目标数据分片后,目标存储节点额外增加了读取目标数据分片的重构负载量。因此,需要对目标数据分片的重构负载量进行更新,以确保重构负载量的准确性。
需要说明的是,重构读信息可以是从目标存储节点读取目标数据分片的节点数量。
可以理解的是,根据重构读信息对目标存储节点的重构负载量进行更新,获得目标存储节点的当前重构负载量可以是根据重构读信息确定额外增加读取目标数据分片的节点数量,并根据节点数量对目标存储节点的重构负载量进行更新,获得目标存储节点的当前重构负载量。
进一步地,为了节省存储空间,所述根据所述重构读信息对所述目标存储节点的重构负载量进行更新,获得所述目标存储节点的当前重构负载量之后,还包括:
获取所述当前重构负载量的存储时间,并判断所述存储时间是否大于或等于预设时间阈值;
在所述存储时间大于或等于预设时间阈值时,删除所述当前重构负载量。
需要说明的是,预设时间阈值可以由用户预先设置,也可以由数据重构设备根据实际情况自动生成,本实施例对此不加以限制。
应当理解的是,在当前重构负载量的存储时间大于或等于预设时间阈值时,说明重构已完成,此时,可以删除当前重构负载量,以节省存储空间。
步骤S30:根据所述目标数据分片确定异常数据分片,并对所述异常数据分片进行数据重构。
可以理解的是,根据目标数据分片确定异常数据分片可以是对目标数据分片进行数据分析,并根据分析结果确定异常数据分片。
应当理解的是,对异常数据分片进行数据重构可以是根据目标数据分片通过预设解码模型对异常数据分片进行数据重构。其中,预设解码模型用于还原异常数据分片。
为了便于理解,参考图5进行说明,但并不对本方案进行限定。图5为数据分片重构示意图,图中主PG为OSD1,OSD在接收到数据分片重构请求时,向重构负载量小的OSD8、OSD5以及OSD12发送重构读请求,OSD8、OSD5以及OSD12根据重构读请求向OSD1反馈目标数据分片,OSD1根据目标数据分片确定异常数据分片,并对异常数据分片进行数据重构,重构完成后将重构生成的数据分片发送至异常数据分片所在的OSD15。
参考图5可知,本实施例根据重构负载量选取接收重构读请求的OSD,从而优先选择重构负载量较小OSD发送重构读请求,避免了产生重构负载量较大的OSD,保持了存储系统内所有OSD的重构负载均衡,缩短了整体数据重构时间、增加了系统的稳定性。
在第一实施例中,公开了在接收到数据分片重构请求时,获取各存储节点的重构负载量,根据重构负载量从存储节点中选取目标存储节点,并读取目标存储节点中的目标数据分片,根据目标数据分片确定异常数据分片,并对异常数据分片进行数据重构;由于本实施例通过各存储节点的重构负载量来选取目标存储节点,并基于目标存储节点的目标数据分片进行数据重构,从而避免了个别存储节点负载量过大,缩短了数据分片重构的速度,增加了数据分片重构的稳定性。
参照图6,图6为本发明数据重构方法第二实施例的流程示意图,基于上述图2所示的第一实施例,提出本发明数据重构方法的第二实施例。
在第二实施例中,所述步骤S20,包括:
步骤S201:根据所述重构负载量对所述存储节点进行排序,获得排序结果。
可以理解的是,根据重构负载量对存储节点进行排序,获得排序结果可以是根据重构负载量从小到大对存储节点进行排序,获得排序结果。
步骤S202:根据所述排序结果对所述存储节点进行筛选,获得目标存储节点。
应当理解的是,根据排序结果对存储节点进行筛选,获得目标存储节点可以是将排序靠前的预设数量的存储节点作为目标存储节点。其中,预设数量可以预先设置。
进一步地,为了确保选取的目标存储节点能够满足数据重构的要求,所述步骤S202,包括:
获取存储数据的分块数量,并根据所述分块数量确定数据分片重构所需的目标分片数量;
根据所述排序结果和所述目标分片数量对所述存储节点进行筛选,获得目标存储节点。
可以理解的是,在对异常数据分片进行重构时,需要通过目标分片数量的数据分片还原出异常数据分片。其中,目标分片数量可以是存储数据时的分块数量。
应当理解的是,根据分块数量确定数据分片重构所需的目标分片数量可以是将分块数量作为数据分片重构所需的目标分片数量。
可以理解的是,根据排序结果和目标分片数量对存储节点进行筛选,获得目标存储节点可以是将排序靠前的目标分片数量的存储节点作为目标存储节点。
进一步地,为了避免出现目标存储节点负载量过大的情况,所述根据所述排序结果和所述目标分片数量对所述存储节点进行筛选,获得目标存储节点,包括:
根据所述排序结果和所述目标分片数量对所述存储节点进行筛选,获得候选存储节点;
判断所述候选存储节点是否处于锁定状态;
在所述候选存储节点未处于锁定状态时,将所述候选存储节点作为目标存储节点。
应当理解的是,在实际应用中,还存在存储节点整体负载量较大,选出的目标存储节点也较为繁忙。此时,若继续进行数据重构可能造成系统拥堵,因此,可以将较为繁忙的目标存储节点设置为锁定状态,以防止被选取。
需要说明的是,在候选存储节点处于锁定状态时,候选存储节点无法被选取。
第二实施例通过根据重构负载量对存储节点进行排序,获得排序结果,根据排序结果对存储节点进行筛选,获得目标存储节点,从而能够准确选取目标存储节点。
参照图7,图7为本发明数据重构方法第三实施例的流程示意图,基于上述图2所示的第一实施例,提出本发明数据重构方法的第三实施例。
在第三实施例中,所述步骤S30之后,还包括:
步骤S40:获取各目标存储节点的当前重构负载量,并判断所述当前重构负载量是否大于预设负载量阈值。
需要说明的是,预设负载量阈值可以预先设置。
应当理解的是,在实际应用中,还存在存储节点整体负载量较大,选出的目标存储节点也较为繁忙。此时,若继续进行数据重构可能造成系统拥堵,因此,可以将较为繁忙的目标存储节点设置为锁定状态,以防止被选取。
可以理解的是,为了判断目标存储节点是否繁忙,可以将目标存储节点的当前重构负载量与预设负载量阈值进行比较,在当前重构负载量小于或等于预设负载量阈值时,目标存储节点不繁忙,可以进行数据重构处理。
步骤S50:在所述当前重构负载量大于预设负载量阈值时,将所述目标存储节点设置为锁定状态。
应当理解的是,在当前重构负载量大于预设负载量阈值时,说明目标存储节点繁忙,此时,需要将目标存储节点设置为锁定状态,以避免被选取。
第三实施例通过获取各目标存储节点的当前重构负载量,并判断当前重构负载量是否大于预设负载量阈值,在当前重构负载量大于预设负载量阈值时,将目标存储节点设置为锁定状态,从而能够在目标存储节点繁忙时,对目标存储节点进行设置,以避免目标存储节点被选择,造成系统拥堵。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有数据重构程序,所述数据重构程序被处理器执行时实现如上文所述的数据重构方法。
此外,参照图8,本发明实施例还提出一种数据重构装置,所述数据重构装置包括:信息获取模块、节点选取模块和重构处理模块;
所述信息获取模块,用于在接收到数据分片重构请求时,获取各存储节点的重构负载量。
需要说明的是,数据分片重构请求可以由用户通过数据重构设备的用户界面发起。存储节点可以是对象存储设备(Object-based Storage Device,OSD)。重构负载量可以是接收存储节点重构读请求的数量和进行重构写操作的数量。
可以理解的是,本实施例中通过纠错码存储数据,具体的存储方式可以是:纠错码把存储数据分成N份原始数据,通过这N份原始数据计算出M份校验数据,把N+M份数据命名为数据分片分别保存在不同的OSD中。在读取数据时,可以是通过N+M份中的任意N份数据分片还原出原始数据块;在对异常数据分片进行重构时,也可以通过N份数据分片还原出异常数据分片。
为了便于理解,参考图3进行说明,但并不对本方案进行限定。图3为通过纠错码进行数据存储的示意图,图中以N=3,M=2为例,具体说明如何通过纠删码将名称为NYAN的对象存放在Ceph中,假定该对象的内容为ABCDEFGHI。客户端在将NYAN上传到Ceph以后,会在主OSD中调用相应的纠删码算法对数据进行编码计算:将原来的ABCDEFGHI拆分成三个分片,对应图中的条带分片1(内容为ABC)、条带分片2(内容为DEF)以及条带分片3(内容为GHI),之后再计算出另外两个校验条带分片4(内容为YXY)和校验条带分片5(内容为QGC)。根据crushmap所指定的规则,将这5个分片随机分布在5个不同的OSD上面,完成对这个对象的存储操作。
客户端在发起读取NYAN的请求以后,这个对象所在PG的主OSD会向其他关联的OSD发起读取请求,例如,主OSD是图中的OSD1,当请求发送到了OSD2、OSD3、OSD4以及OSD5时,由于OSD2读取较慢,OSD5出现故障无法回应请求,导致最终只能获取到OSD1(内容为ABC)、OSD3(内容为GHI)以及OSD4(内容为YXY)的条带分片,此时OSD1作为主OSD会对OSD1、OSD3以及OSD4的数据分片做纠删码解码操作,计算出OSD2上面的分片内容(即DEF),之后重新组合出新的NYAN内容(ABCDEFGHI),最终将该结果返回给客户端。
可以理解的是,现有技术中在进行数据分片重构时,往往选取分片序号较小的存储节点对异常数据分片进行重构,从而导致某些存储节点上需要读取的数据分片较多,影响存储节点的数据读取速度和稳定性,进而导致数据分片重构的速度慢、稳定性差。
为了便于理解,参考图4进行说明,但并不对本方案进行限定。图4为现有数据分片重构示意图,图中主PG为OSD1,OSD在接收到数据分片重构请求时,向分片序号较小的OSD8、OSD19以及OSD5发送重构读请求,OSD8、OSD19以及OSD5根据重构读请求向OSD1反馈目标数据分片,OSD1根据目标数据分片确定异常数据分片,并对异常数据分片进行数据重构,重构完成后将重构生成的数据分片发送至异常数据分片所在的OSD15。
参考图4可知,OSD19的重构负载量为8,还要增加主PG发出的重构读请求,从而导致OSD19需要读取的数据分片较多,影响OSD19的数据读取速度和稳定性,进而导致数据分片重构的速度慢、稳定性差。
所述节点选取模块,用于根据所述重构负载量从所述存储节点中选取目标存储节点,并读取所述目标存储节点中的目标数据分片。
应当理解的是,根据重构负载量从存储节点中选取目标存储节点可以是根据重构负载量从小到大对存储节点进行排序,并将排序靠前的存储节点作为目标存储节点。
进一步地,为了能够实时更新各存储节点的重构负载量,所述数据重构装置还包括:负载更新模块;
所述负载更新模块,用于获取所述目标存储节点的重构读信息,根据所述重构读信息对所述目标存储节点的重构负载量进行更新,获得所述目标存储节点的当前重构负载量。
应当理解的是,在读取目标存储节点中的目标数据分片后,目标存储节点额外增加了读取目标数据分片的重构负载量。因此,需要对目标数据分片的重构负载量进行更新,以确保重构负载量的准确性。
需要说明的是,重构读信息可以是从目标存储节点读取目标数据分片的节点数量。
可以理解的是,根据重构读信息对目标存储节点的重构负载量进行更新,获得目标存储节点的当前重构负载量可以是根据重构读信息确定额外增加读取目标数据分片的节点数量,并根据节点数量对目标存储节点的重构负载量进行更新,获得目标存储节点的当前重构负载量。
进一步地,为了节省存储空间,所述数据重构装置还包括:信息删除模块;
所述信息删除模块,用于获取所述当前重构负载量的存储时间,并判断所述存储时间是否大于或等于预设时间阈值,在所述存储时间大于或等于预设时间阈值时,删除所述当前重构负载量。
需要说明的是,预设时间阈值可以由用户预先设置,也可以由数据重构设备根据实际情况自动生成,本实施例对此不加以限制。
应当理解的是,在当前重构负载量的存储时间大于或等于预设时间阈值时,说明重构已完成,此时,可以删除当前重构负载量,以节省存储空间。
所述重构处理模块,用于根据所述目标数据分片确定异常数据分片,并对所述异常数据分片进行数据重构。
可以理解的是,根据目标数据分片确定异常数据分片可以是对目标数据分片进行数据分析,并根据分析结果确定异常数据分片。
应当理解的是,对异常数据分片进行数据重构可以是根据目标数据分片通过预设解码模型对异常数据分片进行数据重构。其中,预设解码模型用于还原异常数据分片。
为了便于理解,参考图5进行说明,但并不对本方案进行限定。图5为本方案数据分片重构示意图,图中主PG为OSD1,OSD在接收到数据分片重构请求时,向重构负载量小的OSD8、OSD5以及OSD12发送重构读请求,OSD8、OSD5以及OSD12根据重构读请求向OSD1反馈目标数据分片,OSD1根据目标数据分片确定异常数据分片,并对异常数据分片进行数据重构,重构完成后将重构生成的数据分片发送至异常数据分片所在的OSD15。
参考图5可知,本实施例根据重构负载量选取接收重构读请求的OSD,从而优先选择重构负载量较小OSD发送重构读请求,避免了产生重构负载量较大的OSD,保持了存储系统内所有OSD的重构负载均衡,缩短了整体数据重构时间、增加了系统的稳定性。
在本实施例中,公开了在接收到数据分片重构请求时,获取各存储节点的重构负载量,根据重构负载量从存储节点中选取目标存储节点,并读取目标存储节点中的目标数据分片,根据目标数据分片确定异常数据分片,并对异常数据分片进行数据重构;由于本实施例通过各存储节点的重构负载量来选取目标存储节点,并基于目标存储节点的目标数据分片进行数据重构,从而避免了个别存储节点负载量过大,缩短了数据分片重构的速度,增加了数据分片重构的稳定性。
在一实施例中,所述节点选取模块,还用于根据所述重构负载量对所述存储节点进行排序,获得排序结果,根据所述排序结果对所述存储节点进行筛选,获得目标存储节点;
在一实施例中,所述节点选取模块,还用于获取存储数据的分块数量,并根据所述分块数量确定数据分片重构所需的目标分片数量,根据所述排序结果和所述目标分片数量对所述存储节点进行筛选,获得目标存储节点;
在一实施例中,所述节点选取模块,还用于根据所述排序结果和所述目标分片数量对所述存储节点进行筛选,获得候选存储节点,判断所述候选存储节点是否处于锁定状态,在所述候选存储节点未处于锁定状态时,将所述候选存储节点作为目标存储节点;
在一实施例中,所述数据重构装置还包括:负载更新模块;
所述负载更新模块,用于获取所述目标存储节点的重构读信息,根据所述重构读信息对所述目标存储节点的重构负载量进行更新,获得所述目标存储节点的当前重构负载量;
在一实施例中,所述数据重构装置还包括:信息删除模块;
所述信息删除模块,用于获取所述当前重构负载量的存储时间,并判断所述存储时间是否大于或等于预设时间阈值,在所述存储时间大于或等于预设时间阈值时,删除所述当前重构负载量;
在一实施例中,所述数据重构装置还包括:节点锁定模块;
所述节点锁定模块,用于获取各目标存储节点的当前重构负载量,并判断所述当前重构负载量是否大于预设负载量阈值,在所述当前重构负载量大于预设负载量阈值时,将所述目标存储节点设置为锁定状态。
本发明所述数据重构装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。词语第一、第二、以及第三等的使用不表示任何顺序,可将这些词语解释为名称。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器镜像(Read Only Memory image,ROM)/随机存取存储器(Random AccessMemory,RAM)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (9)

1.一种数据重构方法,其特征在于,所述数据重构方法包括以下步骤:
在接收到数据分片重构请求时,获取各存储节点的重构负载量,其中,重构负载量包括接收存储节点重构读请求的数量和进行重构写操作的数量;
根据所述重构负载量从所述存储节点中选取目标存储节点,并读取所述目标存储节点中的目标数据分片;
根据所述目标数据分片确定异常数据分片,并对所述异常数据分片进行数据重构;
其中,通过纠错码存储数据,具体的存储方式包括:纠错码把存储数据分成N份原始数据,通过N份原始数据计算出M份校验数据,把N+M份数据命名为数据分片分别保存在不同的存储节点中;
在对异常数据分片进行数据重构时,通过N+M份中的任意N份数据分片还原出异常数据分片;
所述根据所述重构负载量从所述存储节点中选取目标存储节点的步骤,包括:
根据所述重构负载量对所述存储节点进行排序,获得排序结果;
根据所述排序结果对所述存储节点进行筛选,获得目标存储节点。
2.如权利要求1所述的数据重构方法,其特征在于,所述根据所述排序结果对所述存储节点进行筛选,获得目标存储节点的步骤,包括:
获取存储数据的分块数量,并根据所述分块数量确定数据分片重构所需的目标分片数量;
根据所述排序结果和所述目标分片数量对所述存储节点进行筛选,获得目标存储节点。
3.如权利要求2所述的数据重构方法,其特征在于,所述根据所述排序结果和所述目标分片数量对所述存储节点进行筛选,获得目标存储节点的步骤,包括:
根据所述排序结果和所述目标分片数量对所述存储节点进行筛选,获得候选存储节点;
判断所述候选存储节点是否处于锁定状态;
在所述候选存储节点未处于锁定状态时,将所述候选存储节点作为目标存储节点。
4.如权利要求1所述的数据重构方法,其特征在于,所述根据所述重构负载量从所述存储节点中选取目标存储节点,并读取所述目标存储节点中的目标数据分片的步骤之后,还包括:
获取所述目标存储节点的重构读信息;
根据所述重构读信息对所述目标存储节点的重构负载量进行更新,获得所述目标存储节点的当前重构负载量。
5.如权利要求4所述的数据重构方法,其特征在于,所述根据所述重构读信息对所述目标存储节点的重构负载量进行更新,获得所述目标存储节点的当前重构负载量的步骤之后,还包括:
获取所述当前重构负载量的存储时间,并判断所述存储时间是否大于或等于预设时间阈值;
在所述存储时间大于或等于预设时间阈值时,删除所述当前重构负载量。
6.如权利要求1-5中任一项所述数据重构方法,其特征在于,所述根据所述目标数据分片确定异常数据分片,并对所述异常数据分片进行数据重构的步骤之后,还包括:
获取各目标存储节点的当前重构负载量,并判断所述当前重构负载量是否大于预设负载量阈值;
在所述当前重构负载量大于预设负载量阈值时,将所述目标存储节点设置为锁定状态。
7.一种数据重构设备,其特征在于,所述数据重构设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据重构程序,所述数据重构程序被所述处理器执行时实现如权利要求1至6中任一项所述的数据重构方法。
8.一种存储介质,其特征在于,所述存储介质上存储有数据重构程序,所述数据重构程序被处理器执行时实现如权利要求1至6中任一项所述的数据重构方法。
9.一种数据重构装置,其特征在于,所述数据重构装置包括:信息获取模块、节点选取模块和重构处理模块;
所述信息获取模块,用于在接收到数据分片重构请求时,获取各存储节点的重构负载量,其中,重构负载量包括接收存储节点重构读请求的数量和进行重构写操作的数量;
所述节点选取模块,用于根据所述重构负载量从所述存储节点中选取目标存储节点,并读取所述目标存储节点中的目标数据分片;
所述重构处理模块,用于根据所述目标数据分片确定异常数据分片,并对所述异常数据分片进行数据重构;
其中,通过纠错码存储数据,具体的存储方式包括:纠错码把存储数据分成N份原始数据,通过N份原始数据计算出M份校验数据,把N+M份数据命名为数据分片分别保存在不同的存储节点中;
在对异常数据分片进行数据重构时,通过N+M份中的任意N份数据分片还原出异常数据分片;
其中,所述节点选取模块,还用于根据所述重构负载量对所述存储节点进行排序,获得排序结果;根据所述排序结果对所述存储节点进行筛选,获得目标存储节点。
CN202110888502.2A 2021-08-03 2021-08-03 数据重构方法、设备、存储介质及装置 Active CN113672174B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110888502.2A CN113672174B (zh) 2021-08-03 2021-08-03 数据重构方法、设备、存储介质及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110888502.2A CN113672174B (zh) 2021-08-03 2021-08-03 数据重构方法、设备、存储介质及装置

Publications (2)

Publication Number Publication Date
CN113672174A CN113672174A (zh) 2021-11-19
CN113672174B true CN113672174B (zh) 2024-05-07

Family

ID=78541266

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110888502.2A Active CN113672174B (zh) 2021-08-03 2021-08-03 数据重构方法、设备、存储介质及装置

Country Status (1)

Country Link
CN (1) CN113672174B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106909470A (zh) * 2017-01-20 2017-06-30 深圳市中博科创信息技术有限公司 基于纠删码的分布式文件系统存储方法及装置
CN107562913A (zh) * 2017-09-12 2018-01-09 郑州云海信息技术有限公司 一种分布式文件系统的数据存储方法及装置
CN108958973A (zh) * 2018-06-27 2018-12-07 清华大学 分布式文件系统纠删码数据重构存储节点选择方法及装置
CN109271360A (zh) * 2018-08-03 2019-01-25 北京城市网邻信息技术有限公司 分布式对象存储数据冗余方法、装置、设备及存储介质
CN109582213A (zh) * 2017-09-29 2019-04-05 杭州海康威视系统技术有限公司 数据重构方法及装置、数据存储系统
CN109885256A (zh) * 2019-01-23 2019-06-14 平安科技(深圳)有限公司 一种基于数据分片的数据存储方法、设备及介质
CN110602147A (zh) * 2019-10-09 2019-12-20 吴新胜 一种基于云平台的数据加密安全存储方法、系统和存储介质
CN112486413A (zh) * 2020-11-27 2021-03-12 杭州朗和科技有限公司 一种数据读取方法、装置、介质和计算设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106909470A (zh) * 2017-01-20 2017-06-30 深圳市中博科创信息技术有限公司 基于纠删码的分布式文件系统存储方法及装置
CN107562913A (zh) * 2017-09-12 2018-01-09 郑州云海信息技术有限公司 一种分布式文件系统的数据存储方法及装置
CN109582213A (zh) * 2017-09-29 2019-04-05 杭州海康威视系统技术有限公司 数据重构方法及装置、数据存储系统
CN108958973A (zh) * 2018-06-27 2018-12-07 清华大学 分布式文件系统纠删码数据重构存储节点选择方法及装置
CN109271360A (zh) * 2018-08-03 2019-01-25 北京城市网邻信息技术有限公司 分布式对象存储数据冗余方法、装置、设备及存储介质
CN109885256A (zh) * 2019-01-23 2019-06-14 平安科技(深圳)有限公司 一种基于数据分片的数据存储方法、设备及介质
CN110602147A (zh) * 2019-10-09 2019-12-20 吴新胜 一种基于云平台的数据加密安全存储方法、系统和存储介质
CN112486413A (zh) * 2020-11-27 2021-03-12 杭州朗和科技有限公司 一种数据读取方法、装置、介质和计算设备

Also Published As

Publication number Publication date
CN113672174A (zh) 2021-11-19

Similar Documents

Publication Publication Date Title
CN110737658B (zh) 数据分片存储方法、装置、终端及可读存储介质
CN109325034B (zh) 数据处理方法、装置、计算机设备及存储介质
AU2017268599B2 (en) Method, device, server and storage medium of searching a group based on social network
CN111338706B (zh) 配置文件的导入方法、装置、设备及计算机可读存储介质
CN113672174B (zh) 数据重构方法、设备、存储介质及装置
CN116519003A (zh) 一种路径规划方法、装置、电子设备及存储介质
CN111221827A (zh) 基于图形处理器的数据库表连接方法、装置、计算机设备和存储介质
CN108960378B (zh) 一种数据下载方法、系统、装置和存储介质
CN115858473A (zh) 基于训练系统与对象存储系统的数据交互方法及装置
CN108681494B (zh) 备份数据还原方法、装置、用户设备及存储介质
CN115375193A (zh) 双目标生产调度优化方法、装置、设备及可读存储介质
CN114553786A (zh) 网络请求熔断方法、装置、计算机设备和存储介质
CN110336883B (zh) 镜像数据传输方法、装置、设备及计算机可读存储介质
CN107992548B (zh) 信息处理方法、系统、介质和计算设备
CN113674023A (zh) 基于会员等级的权益升级方法、装置、设备及存储介质
CN111858158A (zh) 数据处理方法、装置及电子设备
CN116737380B (zh) 一种分布式存储器均衡存储方法、装置、设备及存储介质
CN116055464B (zh) 下载保存路径选择方法、装置及介质
US11681516B2 (en) Computer-implemented method and device for the update management of different versions of distributed software with the aid of machine learning methods
US20230049322A1 (en) Information processing method, device, system, and computer-readable storage medium
CN117149467A (zh) 基于声明式api实现命令式api生命周期的方法
CN111339221B (zh) 数据处理方法、系统及存储介质
CN116186449A (zh) 页面加载方法、装置、设备及存储介质
CN117130550A (zh) 分布式数据存储方法、装置、设备及存储介质
CN115686722A (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