一种存储系统的异或计算方法、装置以及产品与流程
- 国知局
- 2024-07-31 23:14:12
本技术实施例涉及存储系统的,具体而言,涉及一种存储系统的异或计算方法、装置以及产品。
背景技术:
1、raid(redundant array of independent disks,独立硬盘冗余阵列)技术是将多个硬盘设备组合成一个容量更大和安全性更好的磁盘阵列,将存储的数据切割成多个区段后分别存放在不同的物理硬盘设备上,同时把多个重要数据的副本同步到不同的物理硬盘设备上,从而起到了非常好的数据冗余备份效果。
2、随着数据发展过程中的数据存储需求,raid技术在存储系统上得到广泛的应用,在raid5或raid6的磁盘阵列中,通过奇偶校验来实现数据的冗余存储,奇偶校验通过对同一条带上的数据块进行异或计算得到校验块,当raid5中有一个磁盘故障时或者raid6有1个或2个磁盘故障时,对于丢失的任一数据块,可以基于奇偶校验进行异或计算重新计算出丢失的数据块,以进行数据重构。
3、但是目前的存储系统中,中央处理器在内存中获取需要进行异或运算数据时,会将数据先加载高速缓存中,而高速缓存的存储空间有限,将需要进行异或运算数据加载在高速缓存中会导致存储系统其他高频业务等处理受到影响,导致存储系统的性能下降。
技术实现思路
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、通过将内存中存储的需要参与异或运算的待运算数据,直接加载在中央处理器的寄存器中,使得待运算数据绕过高速缓存,避免影响高速缓存对存储系统其他高频业务的加速处理,可以提高存储系统的整体性能,并且由中央处理器执行mmx逻辑运算指令中的异或指令进行异或运算,可以提高异或运算的效率,进一步提升存储系统的性能。
本文地址:https://www.jishuxx.com/zhuanli/20240730/196576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表