一种数据缩容的方法、装置和计算机可读存储介质与流程

文档序号:16532630发布日期:2019-01-05 10:53阅读:164来源:国知局
一种数据缩容的方法、装置和计算机可读存储介质与流程

本发明涉及分布式存储技术领域,特别是涉及一种数据缩容的方法、装置和计算机可读存储介质。



背景技术:

在互联网大数据时代,海量大文件数据传输需要占用超大的带宽,海量小文件数据传输时每秒进行读写操作的次数(input/outputoperationspersecond,iops)较高。分布式存储以性价比著称,所以串口硬盘(serialata,sata)仍是主流硬件类型,而对于sata盘来说属于现场可更换单元(fieldreplaceunit,fru)部件,sata盘的损坏对于分布式存储系统是常见的运维故障。

和统一存储不一样的是,发生故障的硬盘在分布式存储系统上并不是直接拔出就可以了,而是需要管理人员进行一系列的操作,例如硬盘退出存储,硬盘拔出,数据再均衡等繁琐确认工作后,才能真正的实现硬盘的退出。硬盘退出操作,需要将该硬盘上的数据转移至其它非故障硬盘上,该操作可以称作是数据缩容或硬盘缩容。

人工操作实现数据缩容时,需要输入的指令较多,花费时间较长,导致缩容效率较低。尤其是当故障的硬盘个数较多时,需要人工依次对各故障硬盘进行数据缩容处理,其处理效率较低。

可见,如何提升缩容操作的处理效率,是本领域技术人员亟待解决的问题。



技术实现要素:

本发明实施例的目的是提供一种数据缩容的方法、装置和计算机可读存储介质,可以提升缩容操作的处理效率。

为解决上述技术问题,本发明实施例提供一种数据缩容的方法,包括:

获取故障信息;

调用缩容脚本程序,对所述故障信息所对应的故障硬盘执行缩容操作。

可选的,所述调用缩容脚本程序,对所述故障信息所对应的故障硬盘执行缩容操作包括:

s201:判断所述故障信息中是否包含有硬盘标识;若否,则执行s202;若是,则执行s203;

s202:遍历所述故障信息所对应的节点的数据服务,确定出故障硬盘;并执行s204;

s203:将所述硬盘标识对应的硬盘作为故障硬盘;并执行s204;

s204:调用缩容脚本程序,对所述故障硬盘执行缩容操作。

可选的,在执行所述s201之前还包括:

依据故障信息,判断故障节点是否为单节点;

若是,则执行所述s201的操作;

若否,则判断所述故障节点的个数是否超过冗余值;

当所述个数未超过冗余值时,则执行所述s201的操作;

当所述个数超过冗余值时,则对各所述故障节点进行分组处理,得到多个故障节点组;并依次对各所述故障节点组执行所述s201的操作。

可选的,在所述对各所述故障节点进行分组处理,得到多个故障节点组之后还包括:

将各所述故障节点组对应的故障信息存储于预设的存储空间中;

当对目标故障节点组执行所述s201的操作时,则将所述目标故障节点组对应的目标故障信息从所述存储空间中删除,直至所述存储空间中不存在故障信息则结束操作;其中,所述目标故障节点组为所有所述故障节点组中的任意一组故障节点组。

可选的,在所述调用缩容脚本程序,对所述故障信息所对应的故障硬盘执行缩容操作之后还包括:

判断缩容操作的重构时间是否超过预设阈值;

若是,则进行报警提示。

本发明实施例还提供了一种数据缩容的装置,包括获取单元和调用单元;

所述获取单元,用于获取故障信息;

所述调用单元,用于调用缩容脚本程序,对所述故障信息所对应的故障硬盘执行缩容操作。

可选的,所述调用单元包括判断子单元、遍历子单元、作为子单元和缩容子单元;

所述判断子单元,用于判断所述故障信息中是否包含有硬盘标识;若否,则触发所述遍历子单元;若是,则触发所述作为子单元;

所述遍历子单元,用于遍历所述故障信息所对应的节点的数据服务,确定出故障硬盘;并触发所述缩容子单元;

所述作为子单元,用于将所述硬盘标识对应的硬盘作为故障硬盘;并触发所述缩容子单元;

所述缩容子单元,用于调用缩容脚本程序,对所述故障硬盘执行缩容操作。

可选的,还包括第一判断单元、第二判断单元和分组单元;

所述第一判断单元,用于依据故障信息,判断故障节点是否为单节点;若是,则触发所述判断子单元;若否,则触发所述第二判断单元;

所述第二判断单元,用于判断所述故障节点的个数是否超过冗余值;当所述个数未超过冗余值时,则触发所述判断子单元;当所述个数超过冗余值时,则触发所述分组单元;

所述分组单元,用于对各所述故障节点进行分组处理,得到多个故障节点组;并依次触发所述判断子单元对各所述故障节点组进行处理。

可选的,在所述还包括存储单元和删除单元;

所述存储单元,用于在各所述故障节点进行分组处理,得到多个故障节点组之后,将各所述故障节点组对应的故障信息存储于预设的存储空间中;

所述删除单元,用于当所述判断子单元对目标故障节点组进行处理时,则将所述目标故障节点组对应的目标故障信息从所述存储空间中删除,直至所述存储空间中不存在故障信息则结束操作;其中,所述目标故障节点组为所有所述故障节点组中的任意一组故障节点组。

可选的,还包括第三判断单元和提示单元;

所述第三判断单元,用于在所述调用单元调用缩容脚本程序,对所述故障信息所对应的故障硬盘执行缩容操作之后,判断缩容操作的重构时间是否超过预设阈值;若是,则触发所述提示单元;

所述提示单元,用于进行报警提示。

本发明实施例还提供了一种数据缩容的装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序以实现如上述数据缩容的方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述数据缩容的方法的步骤。

由上述技术方案可以看出,获取故障信息;调用缩容脚本程序,对故障信息所对应的故障硬盘执行缩容操作。存储系统依据故障信息,便可以确定出故障硬盘。在该缩容脚本程序中包括有数据缩容的操作流程,通过调用该缩容脚本程序,便可以自动化实现对故障硬盘的数据转移即实现数据缩容操作。相比于现有技术中人工输入指令来完成数据缩容,该技术方案中通过调用预先设定好的脚本程序便可以实现自动化的数据缩容,提高了缩容的灵活性和操作的正确性,并且进一步降低了操作遗留或失误带来的分布式存储额外性能消耗和数据风险。

附图说明

为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种数据缩容的方法的流程图;

图2为本发明实施例提供的一种处理故障信息的方法的流程图;

图3为本发明实施例提供的一种数据缩容的装置的结构示意图;

图4为本发明实施例提供的一种数据缩容的装置的硬件结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

接下来,详细介绍本发明实施例所提供的一种数据缩容的方法。图1为本发明实施例提供的一种数据缩容的方法的流程图,该方法包括:

s101:获取故障信息。

在分布式存储系统中包括有多个节点,每个节点上一般包括有多个硬盘。在实际应用中,分布式存储系统可能会出现单个节点的故障,也可能会同时出现多个节点的故障。每个节点的节点故障可以分为两种类型,一种类型可以是节点自身故障,另一种类型可以是节点上的某个或某些硬盘出现故障。

故障信息可以用于表示出现故障的节点或硬盘的信息。依据节点的故障类型不同,故障信息的具体形式有所差异。例如,当节点自身故障时,可以将该节点的节点标识作为故障信息;节点上的某个或某些硬盘出现故障时,可以将故障硬盘的硬盘标识作为故障信息。

在实际应用中,当出现节点故障时,管理人员可以通过输入界面将故障信息输入分布式存储系统,以便于分布式存储系统调用缩容脚本程序对节点故障进行处理。除了管理人员输入故障信息的方式外,分布式存储系统也可以根据自身设置的检测机制,检测各节点的运行情况,当节点出现故障时,直接获取该节点的故障信息。

s102:调用缩容脚本程序,对故障信息所对应的故障硬盘执行缩容操作。

缩容脚本程序中包含了执行数据缩容的操作流程。

在调用缩容脚本程序执行数据缩容操作时,首先需要依据故障信息确定出故障硬盘。由于节点故障的类型不同,相应的故障信息的具体形式有所差异。在本发明实施例中,可以对故障信息中所包含的信息类型进行判断,依据不同的信息类型所对应的处理方式,确定出故障硬盘。

在具体实现中,可以按照图2所示的流程图对故障信息进行处理,该过程包括:

s201:判断故障信息中是否包含有硬盘标识。

故障信息可以包括硬盘标识或者是节点标识。

当故障信息不包含硬盘标识时,此时故障信息中包含的往往只有节点标识时,分布式存储系统依据节点标识可以确定出故障节点,但是无法获知该故障节点中所包含的硬盘数量,此时可以执行s202。

当故障信息包含有硬盘标识时,分布式存储系统则可以依据该硬盘标识查找到相应的故障硬盘,即执行s203。

s202:遍历故障信息所对应的节点的数据服务,确定出故障硬盘。

节点中的硬盘用于提供数据服务,通过遍历节点的数据服务,可以获知该节点上的硬盘数量,确定出故障硬盘,并执行s204对这些故障硬盘上的数据实现转移。

s203:将硬盘标识对应的硬盘作为故障硬盘。

依据硬盘标识可以直接查找到该硬盘标识所对应的硬盘,该硬盘即为故障硬盘,此时可以对故障硬盘执行s204的操作。

s204:调用缩容脚本程序,对故障硬盘执行缩容操作。

对故障硬盘的缩容操作既可以在同一节点中的不同硬盘上实现数据的转移,也可以跨节点转移,其具体实现过程和现有技术中数据缩容的流程相似,在此不再赘述。

由上述技术方案可以看出,获取故障信息;调用缩容脚本程序,对故障信息所对应的故障硬盘执行缩容操作。存储系统依据故障信息,便可以确定出故障硬盘。在该缩容脚本程序中包括有数据缩容的操作流程,通过调用该缩容脚本程序,便可以自动化实现对故障硬盘的数据转移即实现数据缩容操作。相比于现有技术中人工输入指令来完成数据缩容,该技术方案中通过调用预先设定好的脚本程序便可以实现自动化的数据缩容,提高了缩容的灵活性和操作的正确性,并且进一步降低了操作遗留或失误带来的分布式存储额外性能消耗和数据风险。

在实际应用中,当单个节点出现故障时,在获取到该节点对应的故障信息后,便可以依照上述s201-s204的操作实现数据的缩容。当多个节点出现故障时,为了提升故障的处理效率,可以并行对多个节点进行缩容处理。考虑到分布式存储系统的冗余规则不同,当多个节点出现故障时,为了保证系统数据的安全性,需要对并行处理的节点个数进行限定。

在具体实现中,在判断故障信息中是否包含有硬盘标识之前可以依据故障信息,判断故障节点是否为单节点。

当故障节点为单节点时,则可以进入s201,以便于依据上述介绍中s201-s204的操作,对该故障节点进行缩容处理。

当故障节点非单节点时即故障节点的个数为多个时,则可以进一步判断故障节点的个数是否超过冗余值。

冗余值表示可以并行执行缩容处理的节点个数的上限值。

冗余值可以依据冗余规则进行设定。例如,分布式存储系统的冗余规则为6+2,即6个节点作为主存储节点,2个节点作为备份存储节点,则冗余值可以设置为2。

当个数未超过冗余值时,则可以并行对这几个故障节点执行缩容操作,即可以进入s201,以便于依据上述介绍中s201-s204的操作,对这几个故障节点并行进行缩容处理。

当个数超过冗余值时,若同时对这些节点执行缩容处理,可能会对分布式存储系统的安全性带来影响,因此,在本发明实施例中,当个数超过冗余值时,则可以对各故障节点进行分组处理,得到多个故障节点组;并依次对各故障节点组执行s201的操作。

在具体实现中,可以依据冗余值,对故障节点进行分组处理。例如,故障节点的个数有6个,冗余值为2,则可以将这6个故障节点两两为一组,分为3组。并依次对这3组故障节点组执行缩容操作。

在分布式存储系统中,对于各节点一般会设置相应的优先级。在划分好故障节点组后,可以依据故障节点组中节点的优先级,确定出各故障节点组的处理顺序。例如,可以选取出优先级最高的故障节点所在的故障节点组作为第一个执行缩容操作的故障节点组。当优先级最高的故障节点有多个,并且归属于不同的故障节点组时,则可以从这几个故障节点组随机选取一个故障节点组执行缩容操作。

对于未设置优先级的情况,各故障节点组执行缩容操作的顺序可以随机设定。或者是依据历史操作中各节点的访问次数设定执行顺序,例如,可以对访问次数较高的节点所在故障节点组优先执行缩容操作。

在对多个故障节点并行执行缩容操作时,通过对执行缩容操作的节点个数进行限定,降低了并行执行缩容操作带来的数据风险,有效的保证了数据缩容的安全性。

在本发明实施例中,当存在多个故障节点组时,为了实现对故障节点组的有序处理,在对各故障节点进行分组处理,得到多个故障节点组之后,可以将各故障节点组对应的故障信息存储于预设的存储空间中;当对目标故障节点组执行s201的操作时,则可以将目标故障节点组对应的目标故障信息从存储空间中删除。

其中,目标故障节点组可以是所有故障节点组中的任意一组故障节点组。

每对一组故障节点组执行缩容操作后,便可以将该故障节点组对应的故障信息从存储空间中删除,当存储空间中不存在故障信息时,说明已经对所有的故障节点组执行完缩容操作,则可以结束操作。

通过存储故障信息,并依据缩容操作的执行情况,从存储空间中删除故障信息,有效的降低了操作遗漏情况的发生。

通过调用缩容脚本程序可以实现对故障节点的自动化缩容处理,降低了对人力资源的占用,并且可以提升缩容操作的处理效率。为了进一步了解自动化缩容的处理效率。在本发明实施例中,可以在调用缩容脚本程序,对故障信息所对应的故障硬盘执行缩容操作之后,进一步判断缩容操作的重构时间是否超过预设阈值。

预设阈值可以是执行缩容操作所花费时间的上限值。预设阈值的具体取值可以依据实际需求进行设定,当对缩容操作的处理效率要求较高时,则可以将预设阈值设置的小一些;当对缩容操作的处理效率要求较低时,则可以将预设阈值设置的大一些。

重构时间即为从开始执行缩容操作到完成缩容操作所花费的时间。

当缩容操作的重构时间超过预设阈值时,则说明缩容操作的处理效率并未达到要求,此时可以进行报警提示,以便于及时提醒管理人员。

报警提示的方式可以有多种,可以播放音频或者是利用显示屏展示重构时间等。在本发明实施例中,对于报警提示的具体形式不做限定。

通过对缩容操作的处理效率进行评估,当缩容操作的处理效率到不到要求时,及时提示管理人员,可以便于管理人员对缩容操作进行进一步的完善,以提升分布式存储系统的性能。

图3为本发明实施例提供的一种数据缩容的装置的结构示意图,包括获取单元31和调用单元32;

获取单元31,用于获取故障信息;

调用单元32,用于调用缩容脚本程序,对故障信息所对应的故障硬盘执行缩容操作。

可选的,调用单元包括判断子单元、遍历子单元、作为子单元和缩容子单元;

判断子单元,用于判断故障信息中是否包含有硬盘标识;若否,则触发遍历子单元;若是,则触发作为子单元;

遍历子单元,用于遍历故障信息所对应的节点的数据服务,确定出故障硬盘;并触发缩容子单元;

作为子单元,用于将硬盘标识对应的硬盘作为故障硬盘;并触发缩容子单元;

缩容子单元,用于调用缩容脚本程序,对故障硬盘执行缩容操作。

可选的,还包括第一判断单元、第二判断单元和分组单元;

第一判断单元,用于依据故障信息,判断故障节点是否为单节点;若是,则触发判断子单元;若否,则触发第二判断单元;

第二判断单元,用于判断故障节点的个数是否超过冗余值;当个数未超过冗余值时,则触发判断子单元;当个数超过冗余值时,则触发分组单元;

分组单元,用于对各故障节点进行分组处理,得到多个故障节点组;并依次触发判断子单元对各故障节点组进行处理。

可选的还包括:存储单元和删除单元;

存储单元,用于在各故障节点进行分组处理,得到多个故障节点组之后,将各故障节点组对应的故障信息存储于预设的存储空间中;

删除单元,用于当判断子单元对目标故障节点组进行处理时,则将目标故障节点组对应的目标故障信息从存储空间中删除,直至存储空间中不存在故障信息则结束操作;其中,目标故障节点组为所有故障节点组中的任意一组故障节点组。

可选的还包括第三判断单元和提示单元;

第三判断单元,用于在调用单元调用缩容脚本程序,对故障信息所对应的故障硬盘执行缩容操作之后,判断缩容操作的重构时间是否超过预设阈值;若是,则触发提示单元;

提示单元,用于进行报警提示。

图3所对应实施例中特征的说明可以参见图1和图2所对应实施例的相关说明,这里不再一一赘述。

由上述技术方案可以看出,获取故障信息;调用缩容脚本程序,对故障信息所对应的故障硬盘执行缩容操作。存储系统依据故障信息,便可以确定出故障硬盘。在该缩容脚本程序中包括有数据缩容的操作流程,通过调用该缩容脚本程序,便可以自动化实现对故障硬盘的数据转移即实现数据缩容操作。相比于现有技术中人工输入指令来完成数据缩容,该技术方案中通过调用预先设定好的脚本程序便可以实现自动化的数据缩容,提高了缩容的灵活性和操作的正确性,并且进一步降低了操作遗留或失误带来的分布式存储额外性能消耗和数据风险。

图4为本发明实施例提供的一种数据缩容的装置40的硬件结构示意图,包括:

存储器41,用于存储计算机程序;

处理器42,用于执行计算机程序以实现如上述数据缩容的方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述数据缩容的方法的步骤。

以上对本发明实施例所提供的一种数据缩容的方法、装置和计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法操作,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及操作。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的操作可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动硬盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1