一种存储系统的坏块管理方法及相关装置与流程

文档序号:26638545发布日期:2021-09-14 23:59阅读:93来源:国知局
一种存储系统的坏块管理方法及相关装置与流程

1.本技术涉及存储系统技术领域,特别涉及一种存储系统的坏块管理方法、存储系统的坏块管理装置、服务器以及计算机可读存储介质。


背景技术:

2.在存储系统中,坏块是由于lba(logical block address,逻辑区块地址)读取失败而产生的错误的逻辑数据块。raid(redundant arrays of independent disks,磁盘阵列)有坏块时可能数据丢失,但是对于raid5/6来说各物理驱动器不一定是坏的,可以通过重构校验重新写入进行消除,所以需要对存储系统中的坏块进行管理,提高存储系统使用效果。
3.相关技术中,当磁盘产生坏块后或冗余阵列发现坏块后,发现坏块并提交到坏块表,通过坏块表对坏块进行管理。但是,无法对坏块进行配置管理和多节点应用,也无法进行状态显示。也就是说坏块产生后,无法对坏块提交和坏块清理进行高效处理,降低存储系统的坏块处理效果。
4.因此,如何提高存储系统的坏块处理效果是本领域技术人员关注的重点问题。


技术实现要素:

5.本技术的目的是提供一种存储系统的坏块管理方法、存储系统的坏块管理装置、服务器以及计算机可读存储介质,以便解决相关技术中出现的坏块处理效果不佳的问题。
6.为解决上述技术问题,本技术提供一种存储系统的坏块管理方法,包括:
7.坏块管理控制器通过坏块代理接收到客户端发送的坏块管理请求;
8.根据所述坏块管理请求对坏块信息数据库进行更新,得到坏块记录;
9.将所述坏块记录发送至每个所述坏块代理,以便所述坏块代理根据接收到的坏块记录进行哈希表更新。
10.可选的,坏块管理控制器通过坏块代理接收到客户端发送的坏块管理请求,包括:
11.所述坏块代理接收到客户端代理发送的坏块管理请求;其中,所述客户端代理与所述客户端相对应;
12.将所述坏块管理请求添加到请求队列中;
13.当所述请求队列中的所述坏块管理请求的状态为活动请求时,将所述坏块管理请求发送至坏块管理控制器,以便所述坏块管理控制器接收所述坏块管理请求。
14.可选的,当所述坏块管理控制器接收到所述坏块管理请求时,还包括:
15.向所有所述坏块代理发送写锁请求,以便每个所述坏块代理进行写锁处理。
16.可选的,所述坏块代理根据接收到的坏块记录进行哈希表更新,包括:
17.所述坏块代理根据接收到的所述坏块记录进行哈希表排序处理,得到新的哈希表;
18.根据所述新的哈希表对客户端对应的客户端代理进行缓存命中更新。
19.可选的,还包括:
20.当所述坏块代理更新完成时,向所述坏块管理控制器发送确定消息。
21.可选的,还包括:
22.所述坏块管理控制器按照预设方式对所述坏块信息数据库进行管理维护处理。
23.可选的,还包括:
24.所述坏块代理根据逻辑区块地址和磁盘id作为哈希键,对所有磁盘设立哈希表;
25.根据接收到的搜索请求对所述哈希表进行搜索,并返回搜索结果。
26.本技术还提供一种存储系统的坏块管理装置,包括:
27.请求接收模块,用于通过坏块代理接收到客户端发送的坏块管理请求;
28.数据库更新模块,用于根据所述坏块管理请求对坏块信息数据库进行更新,得到坏块记录;
29.记录发送模块,用于将所述坏块记录发送至每个所述坏块代理,以便所述坏块代理根据接收到的坏块记录进行哈希表更新。
30.本技术还提供一种服务器,包括:
31.存储器,用于存储计算机程序;
32.处理器,用于执行所述计算机程序时实现如上所述的坏块管理方法的步骤。
33.本技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的坏块管理方法的步骤。
34.本技术所提供的一种存储系统的坏块管理方法,包括:坏块管理控制器通过坏块代理接收到客户端发送的坏块管理请求;根据所述坏块管理请求对坏块信息数据库进行更新,得到坏块记录;将所述坏块记录发送至每个所述坏块代理,以便所述坏块代理根据接收到的坏块记录进行哈希表更新。
35.通过坏块管理控制器和坏块代理接收到坏块管理请求,并根据该坏块管理请求对坏块信息数据库进行更新,得到新的坏块记录,并发送至每个坏块代理,以便进行哈希表的更新,实现对坏块信息的高效管理,提高存储系统的坏块处理效果。
36.本技术还提供一种存储系统的坏块管理装置、服务器以及计算机可读存储介质,具有以上有益效果,在此不做赘述。
附图说明
37.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
38.图1为本技术实施例所提供的一种存储系统的坏块管理方法的流程图;
39.图2为本技术实施例所提供的一种存储系统的坏块管理装置的结构示意图。
具体实施方式
40.本技术的核心是提供一种存储系统的坏块管理方法、存储系统的坏块管理装置、服务器以及计算机可读存储介质,以便解决相关技术中出现的坏块处理效果不佳的问题。
41.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
42.相关技术中,当磁盘产生坏块后或冗余阵列发现坏块后,发现坏块并提交到坏块表,通过坏块表对坏块进行管理。但是,无法对坏块进行配置管理和多节点应用,也无法进行状态显示。也就是说坏块产生后,无法对坏块提交和坏块清理进行高效处理,降低存储系统的坏块处理效果。
43.因此,本技术提供一种存储系统的坏块管理方法,通过坏块管理控制器和坏块代理接收到坏块管理请求,并根据该坏块管理请求对坏块信息数据库进行更新,得到新的坏块记录,并发送至每个坏块代理,以便进行哈希表的更新,实现对坏块信息的高效管理,提高存储系统的坏块处理效果。
44.以下通过一个实施例,对本技术提供的一种存储系统的坏块管理方法进行说明。
45.请参考图1,图1为本技术实施例所提供的一种存储系统的坏块管理方法的流程图。
46.本实施例中,该方法可以包括:
47.s101,坏块管理控制器通过坏块代理接收到客户端发送的坏块管理请求;
48.本步骤旨在坏块管理控制器通过坏块代理接收到客户端发送的坏块管理请求。其中,坏块管理控制器主要是用于进行维护管理坏块信息数据库、设置配置检查点坏块记录、负责升级、恢复、配置和错误日志记录。而现有技术中,一般仅仅采用建立坏块表的方式。建立的坏块表无法高效的进行坏块提交和清理,最终降低存储系统中对于坏块的管理效果。
49.其中,坏块代理是用于开放接口,用于对每个客户端代理的请求进行处理的代理。
50.可选的,本步骤可以包括:
51.步骤1,坏块代理接收到客户端代理发送的坏块管理请求;其中,客户端代理与客户端相对应;
52.步骤2,将坏块管理请求添加到请求队列中;
53.步骤3,当请求队列中的坏块管理请求的状态为活动请求时,将坏块管理请求发送至坏块管理控制器,以便坏块管理控制器接收坏块管理请求。
54.可见,本可选方案主要是对如何获取到的坏块管理请求进行说明。本可选方案中坏块代理接收到客户端代理发送的坏块管理请求;其中,客户端代理与客户端相对应;将坏块管理请求添加到请求队列中;当请求队列中的坏块管理请求的状态为活动请求时,将坏块管理请求发送至坏块管理控制器,以便坏块管理控制器接收坏块管理请求。
55.此外,本实施例中本实施例当执行s101时,还可以包括:
56.向所有坏块代理发送写锁请求,以便每个坏块代理进行写锁处理。
57.s102,根据坏块管理请求对坏块信息数据库进行更新,得到坏块记录;
58.在s101的基础上,本步骤旨在根据坏块管理请求对坏块信息数据库进行更新,得到坏块记录。
59.本实施例中的坏块信息数据库主要是用于记录所有的坏块信息,然后把坏块记录发送至每个坏块代理,以便客户端直接从坏块代理搜索到对应的坏块记录,而不是从坏块
信息数据库直接获取坏块记录。避免对数据库造成较大的性能压力,并且分布式的获取坏块记录,提高获取坏块记录的效率。
60.s103,将坏块记录发送至每个坏块代理,以便坏块代理根据接收到的坏块记录进行哈希表更新。
61.在s102的基础上,本步骤旨在将坏块记录发送至每个坏块代理,以便坏块代理根据接收到的坏块记录进行哈希表更新。
62.本步骤旨在将坏块记录的内容分发至每个坏块代理中,以便每个坏块代理本地存储到一个坏块记录的副本,方便客户端从坏块代理中获取坏块信息,避免对数据库造成较大的压力。
63.其中,本步骤中为了在坏块代理中提高记录信息获取的效率。本步骤中在坏块代理中通过哈希表对坏块代理进行记录,以便提高效率。
64.进一步的,本步骤中进行哈希表更新的步骤可以包括:
65.步骤1,坏块代理根据接收到的坏块记录进行哈希表排序处理,得到新的哈希表;
66.步骤2,根据新的哈希表对客户端对应的客户端代理进行缓存命中更新。
67.可见,本可选方案中主要是对如何进行哈希表的更新进行说明。本可选方案中坏块代理根据接收到的坏块记录进行哈希表排序处理,得到新的哈希表,根据新的哈希表对客户端对应的客户端代理进行缓存命中更新。
68.可选的,本实施例还可以包括:
69.当坏块代理更新完成时,向坏块管理控制器发送确定消息。
70.可见,通过本可选方案中,主要是当坏块代理更新完成时,向坏块管理控制器发送确定消息,以便提示坏块管理控制器继续执行后续的操作。
71.可选的,本实施例还可以包括:
72.坏块管理控制器按照预设方式对坏块信息数据库进行管理维护处理。
73.可见,本可选方案中坏块管理控制器按照预设方式对坏块信息数据库进行管理维护处理。其中,预设方式可以是进行设置配置、检查坏块记录、并负责升级、恢复、配置和错误日志记录。
74.可选的,本实施例还可以包括:
75.坏块代理根据逻辑区块地址和磁盘id作为哈希键,对所有磁盘设立哈希表;
76.根据接收到的搜索请求对哈希表进行搜索,并返回搜索结果。
77.可见,本可选方案中主要是在坏块代理中根据逻辑区块地址和磁盘id作为哈希键,对所有磁盘设立哈希表;根据接收到的搜索请求对哈希表进行搜索,并返回搜索结果。提高坏块记录搜索和查询的效率。
78.综上,本实施例通过坏块管理控制器和坏块代理接收到坏块管理请求,并根据该坏块管理请求对坏块信息数据库进行更新,得到新的坏块记录,并发送至每个坏块代理,以便进行哈希表的更新,实现对坏块信息的高效管理,提高存储系统的坏块处理效果。
79.以下通过一个具体的实施例,对本技术提供的一种存储系统的坏块管理方法做进一步说明。
80.本实施例中,该方法可以包括:
81.首先,bb confm(bad block configuration management,坏块配置管理)层负责
存储块记录数据库并允许访问;管理数据库(即处理未分配的坏块、快速搜索数据库);设置配置检查点坏块记录,并负责升级、恢复、配置和错误日志记录。其中,confm也即是坏块管理控制器。
82.agent(代理)层负责存储块记录数据库的最新副本并允许访问。其中,agent层包括坏块代理和客户端代理。
83.通信层负责confm与agent的通信。
84.其次,快速访问bb agent(bad block agent,坏块代理)中的块记录,为所有mdisk(磁盘)设置一个哈希表,并使用lba(logical block address,逻辑区块地址)和mdisk id(磁盘号)作为哈希键。哈希表至少有2k个链,以最小化每个哈希链的大小。链的选择使用mdisk id,以便不同mdisk上相同lba的介质错误分布在多个散列链上,根据mdisk id初始化哈希表。因此,在哈希表中查找给定mdisk id和lba的条目。如果找到条目,则返回指向该条目的指针,否则返回null。
85.从哈希链中删除条目,如果此条目不在哈希链中,则不执行任何操作。将条目添加到哈希链,如果此条目已在哈希链中,则不执行任何操作。更新后整理哈希表调用者将指定mdisk id+lba和类型来更新数据库。bb agent来更新指定mdisk id的哈希链。
86.最后,优化坏块提交和清理流程,坏块管理优化方法程序实现时可以包括以下几个步骤:
87.步骤1,客户端agent调用提供bb控制块的bb agent接口,bb agent把请求添加到它的请求队列中;
88.步骤2,当此请求成为活动请求时,bb agent将向bb confm发送请求(即bb控制块增加或删除请求);
89.步骤3,bb confm将向所有agents发送获取写锁的请求;
90.步骤4,bb agents获得写锁;
91.步骤5,bb confm将更新其块记录表并增加或减少此mdisk的坏块计数;
92.步骤6,更新的块记录下载到所有bb agents;
93.步骤7,bb confm向所有bb agents发送一个排序哈希表的请求。可以通过通信接口完成,进一步的bb confm可以在通信接口中包含节点id,以便bb agent确定发送请求的节点;
94.步骤8,bb agents将调用客户端agents更新其命中;
95.步骤9,bb agents将整理他们的哈希表;
96.步骤10,每个bb agents将向bb confm发送一个done消息,以确认其已完成步骤6

9;
97.步骤11,等待所有在线agents完成返回bb confm;
98.步骤12,一旦所有在线agents完成返回到bb confm,它将通过通信接口将done发送回原始bb agent。
99.本实施例中,首先采用多bb agents共享bb confm管理的方法,bb confm负责管理状态统计和显示,方便查看,同时维护所有bb agents配置信息一致,保证集群节点同步。其次,实现快速访问bb agent中的坏块记录方法,基于哈希算法的优势,在bb agent中实现哈希表,为所有mdisk设置一个哈希表,并使用lba+mdisk id作为哈希键,以便快速搜索数据
库,提高处理效率,减小对性能的影响。
100.可见,本实施例通过坏块管理控制器和坏块代理接收到坏块管理请求,并根据该坏块管理请求对坏块信息数据库进行更新,得到新的坏块记录,并发送至每个坏块代理,以便进行哈希表的更新,实现对坏块信息的高效管理,提高存储系统的坏块处理效果。
101.下面对本技术实施例提供的坏块管理装置进行介绍,下文描述的坏块管理装置与上文描述的坏块管理方法可相互对应参照。
102.请参考图2,图2为本技术实施例所提供的一种存储系统的坏块管理装置的结构示意图。
103.本实施例中,该装置可以包括:
104.请求接收模块100,用于通过坏块代理接收到客户端发送的坏块管理请求;
105.数据库更新模块200,用于根据坏块管理请求对坏块信息数据库进行更新,得到坏块记录;
106.记录发送模块300,用于将坏块记录发送至每个坏块代理,以便坏块代理根据接收到的坏块记录进行哈希表更新。
107.可选的,该请求接收模块100,可以包括:
108.坏块代理模块,用于接收到客户端代理发送的坏块管理请求;其中,客户端代理与客户端相对应;将坏块管理请求添加到请求队列中;当请求队列中的坏块管理请求的状态为活动请求时,将坏块管理请求发送至坏块管理控制器,以便坏块管理控制器接收坏块管理请求。
109.可选的,该装置还可以包括:
110.写锁模块,用于向所有坏块代理发送写锁请求,以便每个坏块代理进行写锁处理。
111.可选的,该装置还可以包括:
112.哈希表更新模块,用于根据接收到的坏块记录进行哈希表排序处理,得到新的哈希表;根据新的哈希表对客户端对应的客户端代理进行缓存命中更新。
113.可选的,该确认消息返回模块,用于当坏块代理更新完成时,向坏块管理控制器发送确定消息。
114.可选的,该管理维护模块,用于按照预设方式对坏块信息数据库进行管理维护处理。
115.可选的,该记录搜索模块,用于根据逻辑区块地址和磁盘id作为哈希键,对所有磁盘设立哈希表;根据接收到的搜索请求对哈希表进行搜索,并返回搜索结果。
116.本技术实施例还提供一种服务器,包括:
117.存储器,用于存储计算机程序;
118.处理器,用于执行所述计算机程序时实现如以上实施例所述的坏块管理方法的步骤。
119.本技术实施例还提供一种一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的坏块管理方法的步骤。
120.说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而
言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
121.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
122.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd

rom、或技术领域内所公知的任意其它形式的存储介质中。
123.以上对本技术所提供的一种存储系统的坏块管理方法、存储系统的坏块管理装置、服务器以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1