数据处理方法、独立磁盘冗余阵列卡、产品、装置及介质与流程
- 国知局
- 2024-07-31 22:56:31
本发明涉及存储,特别是涉及一种数据处理方法、独立磁盘冗余阵列卡、产品、装置及介质。
背景技术:
1、随着科技的发展,存储技术也在飞跃的改进,独立磁盘冗余阵列(redundantarray of independent disks,raid)存储中的一项重要技术,通过将多个独立的硬盘组合起来,形成一个逻辑的单个存储单元。而raid卡用于实现raid技术来管理多个硬盘。
2、相关的raid卡要求卷容量对应的逻辑块地址(logical block addressing,lba)分布其raid阵列上是连续的。当raid阵列上创建多个卷以后,删除卷会导致raid阵列lba碎片化,当卷数量足够多时,一旦多次操作删卷,阵列的可用容量就会被切分。因当前缺乏lba碎片整理的有效方案,长此以往,足够多的碎片容量就会导致用户无法再创建卷,影响用户业务使用,直接致使用户体验感下降。
3、由此可见,如何对raid阵列lba碎片进行处理,以提高lba的利用率是本领域人员亟需解决的技术问题。
技术实现思路
1、本发明的目的是提供一种数据处理方法、独立磁盘冗余阵列卡、产品、装置及介质,以解决多次操作删卷,导致阵列的可用容量被切分,逻辑块地址的利用率降低,以及用户体验感低的技术问题。
2、为解决上述技术问题,本发明提供一种数据处理方法,应用于独立磁盘冗余阵列卡,所述方法包括:
3、获取待处理的逻辑块地址以及目标独立磁盘冗余阵列上的碎片空间;其中,所述碎片空间为独立磁盘冗余阵列上的卷与卷之间未放置逻辑块地址的空间,所述待处理的逻辑块地址位于所述目标独立磁盘冗余阵列上;
4、获取主机下发的输入输出操作对应的地址;
5、在检测到所述主机下发的输入输出操作对应的地址与所述待处理的逻辑块地址不相同的情况下,根据预先设定的合并策略移动所述待处理的逻辑块地址至所述碎片空间;
6、在检测到所述主机下发的输入输出操作对应的地址与所述待处理的逻辑块地址相同的情况下,阻塞所述主机下发的输入输出操作,并根据预先设定的合并策略移动所述待处理的逻辑块地址至所述碎片空间。
7、一方面,在所述根据预先设定的合并策略移动所述待处理的逻辑块地址至所述碎片空间之前,还包括:
8、获取用于处理所述待处理的逻辑块地址的配置参数;其中,配置参数中至少包括碎片整理启动类型;所述碎片整理启动类型中至少包括扫描周期启动类型或碎片阈值启动类型;
9、根据所述配置参数确定所述目标独立磁盘冗余阵列的逻辑块地址碎片整理任务的配置信息;其中,所述配置信息中至少包括独立磁盘冗余阵列的唯一编码、碎片整理使能和碎片整理启动类型。
10、另一方面,在所述根据所述配置参数确定所述目标独立磁盘冗余阵列的逻辑块地址碎片整理任务的配置信息之前,还包括:
11、判断所述目标独立磁盘冗余阵列是否存在;
12、若是,则进入所述根据所述配置参数确定所述目标独立磁盘冗余阵列的逻辑块地址碎片整理任务的配置信息的步骤;
13、若否,则结束。
14、另一方面,在所述判断所述目标独立磁盘冗余阵列是否存在之前,还包括:
15、获取系统的所有独立磁盘冗余阵列;
16、按照位图方式存储各独立磁盘冗余阵列的唯一编码,以得到全局阵列唯一编码位图;所述位图的各比特的值表征阵列存在或不存在;
17、所述根据所述配置参数确定所述目标独立磁盘冗余阵列的逻辑块地址碎片整理任务的配置信息包括:
18、建立哈希表,其中,所述哈希表的每个键值对应各独立磁盘冗余阵列的逻辑块地址碎片整理任务的信息,所述逻辑块地址碎片整理任务的信息中至少包括所述配置参数对应的信息;
19、根据所述目标独立磁盘冗余阵列的唯一编码查找所述哈希表,以得到所述目标独立磁盘冗余阵列的逻辑块地址碎片整理任务的配置信息。
20、另一方面,在所述根据所述配置参数确定所述目标独立磁盘冗余阵列的逻辑块地址碎片整理任务的配置信息之前,还包括:
21、对所述配置参数的合法性进行检测,并获取检测结果;其中,合法性检测中至少包括所述配置参数的格式满足预设格式;
22、若所述检测结果为通过,则进入所述根据所述配置参数确定所述目标独立磁盘冗余阵列的逻辑块地址碎片整理任务的配置信息的步骤;
23、若所述检测结果为不通过,则输出用于表征所述配置参数异常的提示信息。
24、另一方面,在所述根据预先设定的合并策略移动所述待处理的逻辑块地址至所述碎片空间之前,还包括:
25、自接收到用于表征进行逻辑块地址碎片整理任务开始,启动系统定时器并轮询各独立磁盘冗余阵列的逻辑块地址碎片整理任务的信息;
26、判断所述定时器是否超时;
27、若是,则获取全局互斥锁,并进入所述根据预先设定的合并策略移动所述待处理的逻辑块地址至所述碎片空间的步骤;
28、若否,则返回所述轮询各独立磁盘冗余阵列的逻辑块地址碎片整理任务的信息的步骤。
29、另一方面,在所述获取全局互斥锁之后,所述根据预先设定的合并策略移动所述待处理的逻辑块地址至所述碎片空间之前,还包括:
30、遍历所述全局阵列唯一编码位图;
31、根据所述全局阵列唯一编码位图判断所述目标独立磁盘冗余阵列是否存在;
32、若是,则根据所述目标独立磁盘冗余阵列的唯一编码查找所述哈希表,根据所述哈希表获取所述目标独立磁盘冗余阵列的逻辑块地址碎片整理任务的配置信息;
33、若否,则返回所述遍历所述全局阵列唯一编码位图的步骤。
34、另一方面,在所述根据所述哈希表获取所述目标独立磁盘冗余阵列的逻辑块地址碎片整理任务的配置信息之后,所述根据预先设定的合并策略移动所述待处理的逻辑块地址至所述碎片空间之前,还包括:
35、判断所述目标独立磁盘冗余阵列的逻辑块地址碎片整理任务的配置信息是否满足预设要求;
36、若是,则进入所述根据预先设定的合并策略移动所述待处理的逻辑块地址至所述碎片空间的步骤。
37、另一方面,所述判断所述目标独立磁盘冗余阵列的逻辑块地址碎片整理任务的配置信息是否满足预设要求包括:
38、判断所述目标独立磁盘冗余阵列的逻辑块地址碎片整理任务的配置信息中的碎片整理使能信号是否为预设值;
39、若否,则返回所述遍历所述全局阵列唯一编码位图的步骤;
40、若是,则判断所述目标独立磁盘冗余阵列的逻辑块地址碎片整理任务的配置信息是否满足以下条件之一:
41、条件一:在检测到所述目标独立磁盘冗余阵列的逻辑块地址碎片整理任务的配置信息中的所述碎片整理启动类型为所述碎片阈值启动类型的情况下,所述目标独立磁盘冗余阵列的逻辑块地址碎片的数量的大于或等于碎片阈值;
42、条件二:在检测到所述目标独立磁盘冗余阵列的逻辑块地址碎片整理任务的配置信息中的所述碎片整理启动类型为所述周期启动类型的情况下,扫描时长等于扫描周期,且所述目标独立磁盘冗余阵列中存在逻辑块地址碎片。
43、另一方面,确定所述合并策略包括:
44、根据所述待处理的逻辑块地址的位置、所述待处理的逻辑块地址的数量、独立磁盘冗余阵列上的卷的数量确定所述合并策略;其中,所述合并策略中至少包括数据移动方向、卷的唯一编码和移动前卷的逻辑块地址。
45、另一方面,所述根据预先设定的合并策略移动所述待处理的逻辑块地址至所述碎片空间包括:
46、获取预先设定的移动区的大小、所述移动区的起始位置或终点位置;其中,所述移动区的大小由独立磁盘冗余阵列所属条带大小的整数倍决定;
47、以所述移动区为粒度并根据预先设定的合并策略移动所述待处理的逻辑块地址至所述碎片空间。
48、另一方面,在所述获取预先设定的移动区的大小、所述移动区的起始位置或终点位置之后,还包括:
49、将所述移动区的大小、所述移动区的起始位置、所述数据移动方向、所述卷的唯一编码、所述移动前卷的逻辑块地址和移动后卷的逻辑块地址放置在所述哈希表的每个键值对应独立磁盘冗余阵列的逻辑块地址碎片整理任务的信息中。
50、另一方面,所述以所述移动区为粒度并根据预先设定的合并策略移动所述待处理的逻辑块地址至所述碎片空间包括:
51、判断当前移动区数据是否读写完成;
52、若否,则返回所述以所述移动区为粒度并根据预先设定的合并策略移动所述待处理的逻辑块地址至所述碎片空间的步骤;
53、若是,则获取新的所述移动区的起始位置或终点位置,以所述移动区为粒度并根据预先设定的合并策略,移动新的所述移动区中的所述待处理的逻辑块地址至所述碎片空间。
54、另一方面,在所述移动新的所述移动区中的所述待处理的逻辑块地址至所述碎片空间之后,还包括:
55、在检测到所述目标独立磁盘冗余阵列上的所有所述碎片空间移动完成的情况,更新所述目标独立磁盘冗余阵列上卷在所述目标独立磁盘冗余阵列上的起始逻辑块地址;
56、在检测到所述目标独立磁盘冗余阵列上的所有所述碎片空间未移动完成的情况,返回所述以所述移动区为粒度并根据预先设定的合并策略移动所述待处理的逻辑块地址至所述碎片空间的步骤。
57、另一方面,在所述阻塞所述主机下发的输入输出操作,并根据预先设定的合并策略移动所述待处理的逻辑块地址至所述碎片空间之后,还包括:
58、在检测到所述待处理的逻辑块地址移动至所述碎片空间后,处理所述主机下发的输入输出操作。
59、另一方面,在检测到所述主机下发的输入输出操作对应的地址与所述待处理的逻辑块地址不相同的情况下,还包括:
60、处理所述主机下发的输入输出操作。
61、另一方面,所述处理所述主机下发的输入输出操作包括:
62、获取所述主机下发的输入输出操作对应的地址与所述移动区的位置关系;
63、根据所述位置关系和所述数据移动方向确定所述主机输入输出操作的位置。
64、另一方面,所述根据所述位置关系和所述数据移动方向确定所述主机输入输出操作的位置包括:
65、在检测到所述主机下发的输入输出操作对应的结束地址小于所述移动区的起始位置的情况下,若所述数据移动方向为沿第一方向运动,则将所述主机输入输出操作对应的地址映射至所述待处理的逻辑块地址移动后的位置上,以便所述主机进行输入输出操作;若所述数据移动方向为沿第二方向运动,则将所述主机输入输出操作对应的地址映射至所述待处理的逻辑块地址移动前的位置上,以便所述主机进行输入输出操作;其中,所述第一方向和所述第二方向相反;且沿所述第一方向运动,地址减小;沿所述第二方向运动,地址增大;
66、在检测到所述主机下发的输入输出操作对应的结束地址大于所述移动区的起始位置,且所述主机下发的输入输出操作对应的起始地址大于所述移动区的终点位置的,若所述数据移动方向为沿所述第一方向运动,则将所述主机输入输出操作对应的地址映射至所述待处理的逻辑块地址移动前的位置上,以便所述主机进行输入输出操作;若所述数据移动方向为沿所述第二方向运动,则将所述主机输入输出操作对应的地址映射至所述待处理的逻辑块地址移动后的位置上,以便所述主机进行输入输出操作。
67、为了解决上述技术问题,本发明还提供一种独立磁盘冗余阵列卡,包括:
68、第一获取模块,用于获取待处理的逻辑块地址以及目标独立磁盘冗余阵列上的碎片空间;其中,所述碎片空间为独立磁盘冗余阵列上的卷与卷之间未放置逻辑块地址的空间,所述待处理的逻辑块地址位于所述目标独立磁盘冗余阵列上;
69、第二获取模块,用于获取主机下发的输入输出操作对应的地址;
70、判断模块,用于判断所述主机下发的输入输出操作对应的地址与所述待处理的逻辑块地址是否相同;若否,则触发移动模块,若是,则触发阻塞及移动模块;
71、所述移动模块,用于根据预先设定的合并策略移动待处理的逻辑块地址至所述碎片空间;
72、所述阻塞及移动模块,用于阻塞所述主机下发的输入输出操作,并根据预先设定的合并策略移动所述待处理的逻辑块地址至所述碎片空间。
73、为了解决上述技术问题,本发明还提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述数据处理方法的步骤。
74、为了解决上述技术问题,本发明还提供一种数据处理装置,包括:
75、存储器,用于存储计算机程序;
76、处理器,用于执行所述计算机程序时实现上述的数据处理方法的步骤。
77、为了解决上述技术问题,本发明还提供一种非易失性存储介质,所述非易失性存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的数据处理方法的步骤。
78、本发明所提供的一种数据处理方法,应用于独立磁盘冗余阵列卡,该方法包括:获取待处理的逻辑块地址以及目标独立磁盘冗余阵列上的碎片空间;获取主机下发的输入输出操作对应的地址;在检测到主机下发的输入输出操作对应的地址与待处理的逻辑块地址不相同的情况下,根据预先设定的合并策略移动待处理的逻辑块地址至碎片空间;
79、在检测到主机下发的输入输出操作对应的地址与待处理的逻辑块地址相同的情况下,阻塞主机下发的输入输出操作,并根据预先设定的合并策略移动待处理的逻辑块地址至碎片空间。
80、本发明的有益效果在于,首先,该方法中,将待处理的逻辑块地址移动至独立磁盘冗余阵列上的碎片空间,由于碎片空间为独立磁盘冗余阵列上的卷与卷之间未放置逻辑块地址的空间,因此,将待处理的逻辑块地址移动到碎片空间上,使得碎片空间上放置了逻辑块地址,使得逻辑块地址在独立磁盘冗余阵列上是连续的,使独立磁盘冗余阵列逻辑块地址碎片化现象得到较大的改善,从而提高了逻辑块地址的利用率;其次,在将待处理的逻辑块地址至碎片空间的过程中,考虑到了主机输入输出操作的情况,在检测到主机下发的输入输出操作对应的地址与待处理的逻辑块地址相同的情况下,阻塞主机下发的输入输出操作,尽可能地避免了数据移动(碎片整理)时的输入输出与主机的输入输出交织的影响,提升了产品功能的完善性和可靠性。
81、此外,在启动碎片整理前,先进行配置,如配置参数中至少包括碎片整理启动类型;碎片整理启动类型中至少包括扫描周期启动类型或碎片阈值启动类型,使得碎片整理能够根据实际需求设置;
82、在根据配置参数确定目标独立磁盘冗余阵列的逻辑块地址碎片整理任务的配置信息之前,先判断目标独立磁盘冗余阵列是否存在,只有在阵列存在的情况下,才进行根据配置参数确定目标独立磁盘冗余阵列的逻辑块地址碎片整理任务的配置信息,实现了对独立磁盘冗余阵列的有效配置;
83、为了判断独立磁盘冗余阵列是否存在,按照位图方式存储各独立磁盘冗余阵列的唯一编码,得到全局阵列唯一编码位图,使得通过位图可快速遍历系统当前存在的阵列,为后续周期扫描启动逻辑块地址碎片整理任务提高效率;
84、在获取到配置参数后,对配置参数进行合法性检测,只有配置参数合法才继续确定配置信息,提高了碎片整理的可靠性;
85、在进行碎片整理(移动待处理的逻辑块地址)前,设置全局互斥锁,避免了任务设定周期超时与任务未执行完成而导致任务无限死锁,只有在获取到全局互斥锁的情况下,才进入到碎片整理,保证了系统内部的可靠性;在判断出目标独立磁盘冗余阵列的逻辑块地址碎片整理任务的配置信息满足预设要求的情况下,才进入到碎片整理,而且预设要求中包括方式一(独立磁盘冗余阵列的逻辑块地址碎片的数量的大于或等于碎片阈值)和方式二(扫描时长等于扫描周期,且目标独立磁盘冗余阵列中存在逻辑块地址碎片),提高了碎片整理的可靠性;
86、合并策略中至少包括数据移动方向、卷的唯一编码和移动前卷的逻辑块地址,且在根据预先设定的合并策略移动待处理的逻辑块地址至碎片空间时以移动区为粒度并根据预先设定的合并策略移动待处理的逻辑块地址至碎片空间,其中,移动区的大小由独立磁盘冗余阵列所属条带大小的整数倍决定,提高了碎片移动的效率;
87、将移动区的大小、移动区的起始位置、数据移动方向、卷的唯一编码、移动前卷的逻辑块地址和移动后卷的逻辑块地址放置在哈希表的每个键值对应独立磁盘冗余阵列的逻辑块地址碎片整理任务的信息中,通过上述包含的信息,可完整的记录每个阵列当前逻辑块地址碎片整理任务的配置和过程信息,以便在系统启动或者异常时保证元数据的不丢失,从而保障系统内部的可靠性;
88、在检测到目标独立磁盘冗余阵列上的所有碎片空间移动完成的情况,才更新目标独立磁盘冗余阵列上卷在目标独立磁盘冗余阵列上的起始逻辑块地址,保证了记录的起始逻辑块地址是最终的起始逻辑块地址,且避免了每一次移动后便更新起始逻辑块地址导致占用的内存增加,提高了独立磁盘冗余阵列的性能;
89、在检测到待处理的逻辑块地址移动至碎片空间后,继续处理主机下发的输入输出操作,或在检测到主机下发的输入输出操作对应的地址与待处理的逻辑块地址不相同的情况下,继续处理主机下发的输入输出操作,满足了主机的输入输出需求;在处理主机下发的输入输出操作时,根据主机下发的输入输出操作对应的地址与移动区的位置关系和数据移动方向确定主机输入输出操作的位置,有效规避了后台逻辑块地址碎片整理对前台主机输入输出的影响,提升了产品功能的完善性和可靠性。
90、另外,本发明还提供一种独立磁盘冗余阵列卡、计算机程序产品、数据处理装置以及非易失性存储介质,与上文中描述的数据处理方法具有相同或相对应的技术特征,效果同上。
本文地址:https://www.jishuxx.com/zhuanli/20240730/195424.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表