磁盘阵列的数据迁移方法、装置、产品、设备及存储介质与流程
- 国知局
- 2024-10-21 15:26:45
本发明涉及计算机,尤其涉及一种磁盘阵列的数据迁移方法、装置、产品、设备及存储介质。
背景技术:
1、独立磁盘冗余阵列(redundant array of independent disks,raid)是一种数据存储虚拟化技术,将多块磁盘组合在一起以提供单个可使用的更大容量的逻辑磁盘,该逻辑磁盘可以并发的输入输出(input output ,i/o)读写能力和数据冗余能力。目前常用的raid的级别包括raid0、raid1、raid2、raid3、raid4、raid5和raid6等。
2、不同级别的raid可以进行级别迁移,在级别迁移过程中,磁盘数据的布局会发生变化,需要对raid中的磁盘进行读写,以保证级别迁移后raid中的数据的正确性和可靠性。目前,在raid级别迁移的过程中,通常需要按条带读取raid中的所有数据,并重新把所有数据和校验盘数据写入新的raid的磁盘中。
3、但是,在级别迁移的过程中raid中一般只有少量的数据发生变化,目前的数据迁移方式需要将raid中所有磁盘的数据都读取到控制卡内存,经过处理后再将raid中所有磁盘的数据写入级别迁移后的磁盘,而磁盘读写速度往往是raid控制卡的性能瓶颈,导致目前的数据迁移方法存在读写性能低的问题。
技术实现思路
1、为克服相关技术中存在的问题,本发明提供了一种磁盘阵列的数据迁移方法、装置、产品、设备及存储介质。
2、第一方面,本发明提供了一种磁盘阵列的数据迁移方法,所述方法包括:
3、获取待迁移磁盘阵列的第一目标条带中数据块所在磁盘的第一磁盘编号、所述第一目标条带中数据块的第一数量和所述第一目标条带中校验块的第二数量;
4、获取目标磁盘阵列的第二目标条带中校验盘的第三数量;所述第一目标条带和所述第二目标条带的条带号相同;
5、根据所述第一数量、所述第二数量、所述第三数量和所述第一磁盘编号,从所述第一目标条带的数据块中确定待读取数据块,并将所述待读取数据块读取到预设存储区域;
6、根据所述第一数量、所述第二数量、所述第三数量和所述第一磁盘编号,从所述预设存储区域的数据块中确定待写入数据块,并将所述待写入数据块写入所述第二目标条带。
7、可选地,所述根据所述第一数量、所述第二数量所述第三数量和所述第一磁盘编号,从所述第一目标条带的数据块中确定待读取数据块,并将所述待读取数据块读取到预设存储区域,包括:
8、根据所述第一数量、所述第二数量、所述第三数量和所述第一磁盘编号,从所述第一目标条带的数据块中确定待读取数据块和所述待读取数据块的数量;
9、根据所述第二数量和所述第三数量,确定所述第一目标条带中第一个待读取数据块在所述待迁移磁盘阵列中的第一数据块编号,以及所述第一个待读取数据块所在磁盘的第二磁盘编号;
10、根据所述待读取数据块的数量、所述第一数据块编号和所述第二磁盘编号,将所述第一目标条带中的待读取数据块读取到预设存储区域。
11、可选地,所述根据所述第一数量、所述第二数量、所述第三数量和所述第一磁盘编号,从所述第一目标条带的数据块中确定待读取数据块和所述待读取数据块的数量,包括:
12、在所述第三数量大于0的情况下,将所述第一目标条带中的所有数据块确定为待读取数据块,并将所述第一数量确定为所述待读取数据块的数量;
13、在所述第三数量等于0,且所述第二数量大于0的情况下,获取所述第一目标条带中校验块所在磁盘的第三磁盘编号的最小值;
14、将所述第一目标条带中所述第一磁盘编号大于所述第三磁盘编号的最小值的数据块确定为待读取数据块;
15、将所述第一数量与所述第三磁盘编号的最小值之间的差值确定为所述待读取数据块的数量。
16、可选地,所述根据所述第二数量和所述第三数量,确定所述第一目标条带中第一个待读取数据块在所述待迁移磁盘阵列中的第一数据块编号,以及所述第一个待读取数据块所在磁盘的第二磁盘编号,包括:
17、在所述第二数量大于0且所述第三数量等于0的情况下,获取所述第一目标条带中校验块所在磁盘的第三磁盘编号的最小值,并将所述第三磁盘编号的最小值确定为第二磁盘编号;
18、获取所述第一目标条带中数据块的第一长度;
19、计算所述第三磁盘编号的最小值和所述第一长度之间的第一乘积;
20、获取所述第一目标条带中的第一个数据块在所述待迁移磁盘阵列中的第二数据块编号;
21、计算所述第一乘积和所述第二数据块编号的第一和值,并将所述第一和值确定为第一数据块编号。
22、可选地,所述根据所述第二数量和所述第三数量,确定所述第一目标条带中第一个待读取数据块在所述待迁移磁盘阵列中的第一数据块编号,以及所述第一个待读取数据块所在磁盘的第二磁盘编号,包括:
23、在所述第三数量大于0的情况下,将第二磁盘编号确定为0;
24、获取所述第一目标条带中的第一个数据块在所述待迁移磁盘阵列中的第二数据块编号,并将所述第二数据块编号确定为第一数据块编号。
25、可选地,所述根据所述待读取数据块的数量、所述第一数据块编号和所述第二磁盘编号,将所述第一目标条带中的待读取数据块读取到预设存储区域,包括:
26、从所述第二磁盘编号对应的磁盘中所述第一目标条带对应的区域读取所述第一数据块编号对应的第一个待读取数据块,并将所述第一个待读取数据块存储到预设存储区域;
27、将所述第二磁盘编号加1,并将读取次数加1;其中,所述读取次数的起始值为0;
28、在所述读取次数小于所述待读取数据块的数量的情况下,获取所述第一目标条带中数据块的第一长度;
29、根据所述第一数据块编号、所述读取次数和所述第一长度,计算读取偏移量;
30、从所述第二磁盘编号对应的磁盘中所述第一目标条带对应的区域读取所述读取偏移量指示的待读取数据块,并将所述读取偏移量指示的待读取数据块存储到预设存储区域;
31、将所述第二磁盘编号加1,并将所述读取次数加1,直至所述读取次数等于所述待读取数据块的数量,结束读取操作。
32、可选地,所述根据所述第一数量、所述第二数量、所述第三数量和所述第一磁盘编号,从所述预设存储区域的数据块中确定待写入数据块,并将所述待写入数据块写入所述第二目标条带,包括:
33、根据所述第一数量、所述第二数量、所述第三数量和所述第一磁盘编号,从所述预设存储区域的数据块中确定待写入数据块和所述待写入数据块的数量;
34、根据所述第二数量和所述第三数量,确定所述第二目标条带中第一个待写入数据块在所述目标磁盘阵列中的第三数据块编号,以及所述第一个待写入数据块所在磁盘的第四磁盘编号;
35、根据所述待写入数据块的数量、所述第三数据块编号和所述第四磁盘编号,将所述预设存储区域中的待写入数据块写入所述第二目标条带。
36、可选地,所述根据所述第一数量、所述第二数量、所述第三数量和所述第一磁盘编号,从所述预设存储区域的数据块中确定待写入数据块和所述待写入数据块的数量,包括:
37、在所述第二数量等于0且所述第三数量大于0的情况下,获取所述第二目标条带中校验块所在磁盘的第五磁盘编号的最小值;
38、将所述预设存储区域中所述第一磁盘编号大于所述第五磁盘编号的最小值的数据块确定为待写入数据块;
39、将所述第一数量与所述第五磁盘编号的最小值之间的差值确定为所述待写入数据块的数量。
40、可选地,所述根据所述第一数量、所述第二数量、所述第三数量和所述第一磁盘编号,从所述预设存储区域的数据块中确定待写入数据块和所述待写入数据块的数量,包括:
41、在所述第二数量大于0且所述第三数量等于0的情况下,获取所述第一目标条带中校验块所在磁盘的第三磁盘编号的最小值;
42、将所述预设存储区域中所述第一磁盘编号大于所述第三磁盘编号的最小值的数据块确定为待写入数据块;
43、将所述第一数量与所述第三磁盘编号的最小值之间的差值确定为所述待写入数据块的数量。
44、可选地,所述根据所述第二数量和所述第三数量,确定所述第二目标条带中第一个待写入数据块在所述目标磁盘阵列中的第三数据块编号,以及所述第一个待写入数据块所在磁盘的第四磁盘编号,包括:
45、在所述第二数量和所述第三数量中的任一者等于0的情况下,获取所述第二目标条带中的第一个数据块在所述目标磁盘阵列中的第四数据块编号;
46、获取所述第二目标条带中校验块所在磁盘的第五磁盘编号的最小值,或者所述第一目标条带中校验块所在磁盘的第三磁盘编号的最小值;
47、将所述第五磁盘编号的最小值或者所述第三磁盘编号的最小值确定为所述第一个待写入数据块所在磁盘的第四磁盘编号;
48、获取所述第一目标条带中数据块的第一长度;
49、计算所述第五磁盘编号的最小值或者所述第三磁盘编号的最小值与所述第一长度之间的第二乘积;
50、计算所述第四数据块编号与第二乘积的第二和值,并将所述第二和值确定为第三数据块编号。
51、可选地,所述根据所述第一数量、所述第二数量、所述第三数量和所述第一磁盘编号,从所述预设存储区域的数据块中确定待写入数据块和所述待写入数据块的数量,包括:
52、在所述第二数量等于1,且第三数量等于2的情况下,获取所述第一目标条带中的第一校验块所在磁盘的第三磁盘编号;
53、获取所述第二目标条带中的第二校验块所在磁盘的第六磁盘编号和第三校验块所在磁盘的第七磁盘编号;
54、在所述第七磁盘编号为0的情况下,将所述预设存储区域中第一磁盘编号小于所述第三磁盘编号的数据块确定为待写入数据块;
55、将所述第三磁盘编号确定为所述待写入数据块的数量;
56、在所述第七磁盘编号非0的情况下,确定所述第三磁盘编号和所述第六磁盘编号中的最小值;
57、将所述预设存储区域中所述第一磁盘编号大于所述最小值的数据块确定为待写入数据块;
58、将所述第一数量与所述最小值之间的差值确定为所述待写入数据块的数量。
59、可选地,所述根据所述第二数量和所述第三数量,确定所述第二目标条带中第一个待写入数据块在所述目标磁盘阵列中的第三数据块编号,以及所述第一个待写入数据块所在磁盘的第四磁盘编号,包括:
60、获取所述第二目标条带中的第一个数据块在所述目标磁盘阵列中的第四数据块编号;
61、在所述第七磁盘编号为0的情况下,将第四磁盘编号确定为0,并将所述第四数据块编号确定为第三数据块编号;
62、在所述第七磁盘编号非0的情况下,将所述第三磁盘编号和所述第六磁盘编号中的最小值确定为第四磁盘编号;
63、获取所述第一目标条带中数据块的第一长度;
64、计算所述最小值与所述第一长度之间的第三乘积;
65、计算所述第四数据块编号和所述第三乘积的第三和值,并将所述第三和值确定为第三数据块编号。
66、可选地,在将所述待写入数据块写入所述第二目标条带之后,所述方法还包括:
67、在所述第三数量大于0的情况下,根据所述预设存储区域中的数据块和所述第三数量,计算所述第二目标条带中的校验块,并将所述校验块写入所述第二目标条带。
68、第二方面,本发明提供了一种磁盘阵列的数据迁移装置,所述装置包括:
69、第一获取模块,用于获取待迁移磁盘阵列的第一目标条带中数据块所在磁盘的第一磁盘编号、所述第一目标条带中数据块的第一数量和所述第一目标条带中校验块的第二数量;
70、第二获取模块,用于获取目标磁盘阵列的第二目标条带中校验盘的第三数量;所述第一目标条带和所述第二目标条带的条带号相同;
71、读取模块,用于根据所述第一数量、所述第二数量、所述第三数量和所述第一磁盘编号,从所述第一目标条带的数据块中确定待读取数据块,并将所述待读取数据块读取到预设存储区域;
72、第一写入模块,用于根据所述第一数量、所述第二数量、所述第三数量和所述第一磁盘编号,从所述预设存储区域的数据块中确定待写入数据块,并将所述待写入数据块写入所述第二目标条带。
73、第三方面,本发明提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述第一方面中任一项所述的磁盘阵列的数据迁移方法。
74、第四方面,本发明提供了一种电子设备,包括存储器、处理器及存储在所述存储器上的计算机程序,所述处理器执行所述计算机程序以实现上述第一方面中任一项所述的磁盘阵列的数据迁移方法。
75、第五方面,本发明提供了一种可读存储介质,当所述可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上述第一方面中任一项实施例中的磁盘阵列的数据迁移方法中的步骤。
76、本发明实施例提供的磁盘阵列的数据迁移方法,在磁盘阵列数据迁移的过程中,首先获取待迁移磁盘阵列的第一目标条带中数据块所在磁盘的第一磁盘编号、第一目标条带中数据块的第一数量和第一目标条带中校验块的第二数量,以及目标磁盘阵列的第二目标条带中校验盘的第三数量;然后根据第一数量、第二数量、第三数量和第一磁盘编号,从第一目标条带的数据块中确定待读取数据块,并将待读取数据块读取到预设存储区域,在不影响写入到第二目标条带中的条带内容的准确性的前提下,视具体应用场景将第一目标条带中有必要读取的数据块确定为待读取数据块,减少了数据迁移过程中读盘的次数;相应地,在写盘的过程中,根据第一数量、第二数量、第三数量和第一磁盘编号,视具体应用场景从预设存储区域的数据块中确定待写入数据块,将预设存储区域中有必要写入到第二目标条带中的数据块确定为待写入数据块并写入第二目标条带,减少了数据迁移过程中写盘的次数;本发明实施例根据具体应用场景来确定待读取数据块和待写入数据块,无需将待迁移磁盘阵列的第一目标条带中的数据全部读出并写入到目标磁盘阵列的第二目标条带中,减少了数据迁移过程中读盘和写盘的次数,缓解了磁盘阵列的读写压力,提升了磁盘阵列的数据迁移过程中的读写性能。
本文地址:https://www.jishuxx.com/zhuanli/20241021/321561.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。