基于深度学习处理器来加速软件RAID方法及系统与流程

未命名 10-08 阅读:105 评论:0

基于深度学习处理器来加速软件raid方法及系统
技术领域
1.本发明涉及计算机以及磁盘阵列存储技术领域,基于深度学习处理器来加速软件raid方法及系统。


背景技术:

2.raid(redundant array of inexpensive disks,廉价磁盘冗余阵列)是一种通过将多个独立的硬盘组合起来提高数据存储安全性和性能的技术。raid技术将多个硬盘组合成一个逻辑卷,使得数据可以在多个硬盘之间进行分散存储和读写,从而提高数据的可靠性和读写性能。raid技术已经广泛应用于企业和数据中心中,可以提高数据的可靠性和读写性能,减少数据丢失和损坏的风险。
3.raid技术可以通过不同的raid级别来实现,包括raid 0、raid 1、raid 5、raid 6等。不同的raid级别具有不同的特点和用途,例如:raid 0将多个硬盘组合成一个大的逻辑卷,提高了数据读写的性能,但没有冗余备份,一旦有一个硬盘损坏,整个逻辑卷的数据都会丢失。raid 1将多个硬盘进行镜像备份,提高了数据的冗余备份,但没有提高数据的读写性能。raid 5将多个硬盘进行分布式存储和校验,提高了数据的读写性能和冗余备份,但需要至少三个硬盘才能实现,并且在某些情况下可能会因为校验计算的性能瓶颈而影响读写性能。raid 6类似于raid 5,但可以容忍两个硬盘的损坏,提高了数据的冗余备份,但需要至少四个硬盘才能实现,并且在某些情况下可能会因为校验计算的性能瓶颈而影响读写性能。
4.mdadm是一个linux中用于管理软件raid的开源代码的命令行工具。它可以用于创建、管理和监控linux系统中的软件raid设备,支持多种raid级别,包括raid0、raid 1、raid 5、raid 6等。通过mdadm命令,用户可以创建一个新的raid设备,向现有的raid设备中添加或删除磁盘,监控raid设备的状态,以及对raid设备进行其他管理操作。mdadm命令的使用非常灵活,可以通过不同的选项和参数来实现不同的操作。
5.当前的mdadm工具对raid做管理,都是用纯cpu做raid保护恢复运算。这样在cpu上,raid运算会跟其他服务竞争资源,比如在cpu资源紧张的飞腾板卡上,这种情况并不是一个很好的状态。目前的计算芯片发展非常迅速,应用十分广泛,这给了目前仍采用纯软件做raid计算的mdadm

raid管理软件加速的可能。


技术实现要素:

6.为了解决上述现有技术存在的不足,本发明提出了一种基于深度学习处理器来加速软件raid方法,如图1所示,其中包括:
7.步骤1、本发明的应用环境为包括cpu和专用计算芯片的异构环境。通过异构编程的方式,构建能被调用运行在专用计算芯片上的加速库函数和运行在cpu上的磁盘冗余阵列管理程序,用以在数据的存储过程中将生成冗余保护数据的计算过程交由该专用加速芯片进行;
8.步骤2、当磁盘冗余阵列中数据损坏时,获取损坏数据块的冗余保护数据,并通过该加速库函数,调用该专用加速芯片对该冗余保护数据执行异或xor运算,以恢复该损坏数据块;
9.步骤3、当目标数据存入磁盘冗余阵列时,通过该加速库函数,调用该专用加速芯片对该目标数据进行异或xor运算,得到该目标数据的冗余保护数据。
10.所述的基于深度学习处理器来加速软件raid方法,其中该专用加速芯片为深度学习处理器mlu或gpu。
11.所述的基于深度学习处理器来加速软件raid方法,其中该加速库函数包括:用于通过该专用加速芯片进行xor异或运算和块读写操作的函数、用于将块编号映射到磁盘的具体扇区并返回扇区的第一个逻辑块地址的函数、用于重写磁盘块的函数、用于通过该专用加速芯片将奇偶校验块与数据块进行异或运算计算从而生成恢复数据块的函数。
12.所述的基于深度学习处理器来加速软件raid方法,其中该磁盘冗余阵列管理程序为重构后的mdadm软件,用于管理磁盘冗余阵列;
13.通过异构编程的方式,根据该专用计算芯片的硬件架构以及其开发框架,编写生成、恢复冗余数据的该加速库函数,该加速库函数能在cpu上被mdadm软件调用;
14.重构mdadm软件的过程包括:在冗余保护数据生成和损坏数据恢复这2个重要的业务场景中,重构原来运行在cpu上的mdadm的函数,使其可以调用该加速库函数来加速业务处理时间。
15.本发明还提出了一种基于深度学习处理器来加速软件raid系统,其中包括:
16.初始模块,用于通过异构编程的方式,构建能被调用运行在专用计算芯片上的加速库函数和运行在cpu上的磁盘冗余阵列管理程序,用以在数据的存储过程中将生成冗余保护数据的计算过程交由该专用加速芯片进行;
17.恢复模块,用于当磁盘冗余阵列中数据损坏时,获取损坏数据块的冗余保护数据,并通过该加速库函数,调用该专用加速芯片对该冗余保护数据执行异或xor运算,以恢复该损坏数据块;
18.存储模块,用于当目标数据存入磁盘冗余阵列时,通过该加速库函数,调用该专用加速芯片对该目标数据进行异或xor运算,得到该目标数据的冗余保护数据。
19.所述的基于深度学习处理器来加速软件raid系统,其中该专用加速芯片为深度学习处理器mlu或gpu。
20.所述的基于深度学习处理器来加速软件raid系统,其中该加速库函数包括:用于通过该专用加速芯片进行xor异或运算和块读写操作的函数、用于将块编号映射到磁盘的具体扇区并返回扇区的第一个逻辑块地址的函数、用于重写磁盘块的函数、用于通过该专用加速芯片将奇偶校验块与数据块进行异或运算计算从而生成恢复数据块的函数。
21.所述的基于深度学习处理器来加速软件raid系统,其中该磁盘冗余阵列管理程序为重构后的mdadm软件,用于管理磁盘冗余阵列;
22.通过异构编程的方式,根据该专用计算芯片的硬件架构以及其开发框架,编写生成、恢复冗余数据的该加速库函数,该加速库函数能在cpu上被mdadm软件调用;
23.重构mdadm软件的过程包括:在冗余保护数据生成和损坏数据恢复这2个重要的业务场景中,重构原来运行在cpu上的mdadm的函数,使其可以调用该加速库函数来加速业务
处理时间。
24.本发明还提出了一种存储介质,用于存储执行所述任意一种基于深度学习处理器来加速软件raid方法的程序。
25.本发明还提出了一种客户端,用于任意一种基于深度学习处理器来加速软件raid系统。
26.由以上方案可知,本发明的优点在于:
27.本发明关键技术点包括,基于深度学习处理器的raid矩阵运算加速库;和mdadm命令调用深度学习处理器进行加速运算的软件架构。本发明根据raid的数据异或保护,构建合适大小的矩阵,以及合适数量的矩阵,实现矩阵异或算法。将得出的计算结果传到cpu操作系统内存空间。矩阵要配合mdm软件函数的接口规格。mdadm命令有很多,最重要的场景——恢复数据的命令来说,cpu上面运行的程序想要做异或xor运算,传统的还是在cpu上做高负载的异或xor运算,现在调用mlu做向量运算,速度会比cpu快很多。采用修改后的mdadm软件组raid盘,使用raid盘,恢复raid盘,比较之前的纯cpu运算性能有提高。飞腾cpu的负载在raid盘使用过程中,比较之前纯cpu运算方案cpu使用率有下降。
附图说明
28.图1为本发明流程图。
具体实施方式
29.本发明基于例如飞腾系列的通用处理器cpu上,提出了一种采用计算芯片加速mdadm的raid运算(比如:加速xor矩阵运算等等)方法。本发明包括开发计算芯片的加速库,基于计算芯片的加速库开发完成后,软件将其集成到开发板的计算芯片mlu上,来卸载掉原来cpu部分的负载,这样采用并行的计算芯片来做必要的异或运算,从而提供更快速的raid服务。
30.本方案采用深度学习处理器,将飞腾cpu的运算负荷卸载下来,让专业的计算芯片进行计算。让飞腾cpu资源得到释放。同时,新的方案基于开源代码的mdadm来实现,拥有良好的实用性和扩展性。
31.我们可以采用的深度学习处理器可以是寒武纪处理器,也可以选择nvdia的gpu处理器。下文所有提到的深度学习处理器,都将指定描述为计算芯片。
32.在linux操作系统下,现在大量使用的是nvme ssd盘,为了进一步提高ssd盘的数据安全性,我们考虑使用raid技术来将几块ssd盘组合使用,其中一部分空间用来存放冗余保护数据。当某个ssd盘无法读取的时候,通过冗余保护数据来恢复损坏的盘。在这个过程当中,会涉及到生成冗余保护数据和恢复数据2个非常消耗cpu计算资源的操作,普通一个raid5的250g的盘恢复过程会长达几个小时,一个常规的恢复操作是对原始数据做xor计算,如果一个盘损坏了,就用冗余数据加上其他盘的数据再做一次xor计算。传统这些数据是靠cpu来计算,本发明便提出一种基于计算芯片mlu的矩阵加速计算库,在国产的飞腾cpu下面使用,会大大降低cpu的负载,还会降低冗余数据计算的时间,从而提高raid盘的读写速度。
33.为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说
明书附图作详细说明如下。
34.本发明的具体实施方法,主要体现在以下二个方面:
35.硬件层面:基于国产飞腾芯片,采用深度学习处理器加速raid相关矩阵运算,卸载cpu的负载,提高计算速度。
36.软件层面:
37.1)使用计算芯片软件开发框架开发出能做raid矩阵运算的高效加速运算库。
38.2)在开源mdadm软件代码上修改其实现方式,能调用自研计算芯片加速库函数将计算芯片算力使用到生成raid盘,使用raid盘,恢复raid盘的一系列使用场景中去。
39.mdadm软件来管理raid主要有如下几种操作:
40.a)创建软raid:
41.mdadm
‑‑
create/dev/md0
‑‑
level=5
‑‑
raid-devices=3/dev/sda1/dev/sdb1/dev/sdc1
42.命令解释:创建一个名为md0的软raid,
‑‑
level=5表示创建raid 5阵列,由三个硬盘(/dev/sda1,/dev/sdb1和/dev/sdc1)组成。
43.b)添加一个硬盘到软raid
44.mdadm
‑‑
add/dev/md0/dev/sdd1
45.命令解释:将硬盘/dev/sdd1添加到名为md0的软raid中。
46.c)从软raid中删除一个硬盘
47.mdadm
‑‑
fail/dev/md0/dev/sdb1
48.mdadm
‑‑
remove/dev/md0/dev/sdb1
49.命令解释:将硬盘/dev/sdb1标记为失败(fail),并从名为md0的软raid中删除。
50.d)重建软raid
51.mdadm
‑‑
manage/dev/md0
‑‑
remove failed
52.mdadm
‑‑
manage/dev/md0
‑‑
add/dev/sdd1
53.命令解释:当新的硬盘替换了损坏的/dev/sdb1硬盘的时候,硬盘坏了的情况有很多种:
54.1.大概率的情况是硬盘部分区域损坏。这个时候,重建的动作就会展开。我们的mlu库就会将分散在其他部分区域的数据拿到,来做异或运算从而恢复数据。
55.2.如果硬盘全部坏了,这种情况很罕见。我们也可以用通过raid5+raid1的方式来做强度更高的保护。
56.3)raid5做rebuild保护恢复操作时,会调用下面的函数:
57.1.md_xor_blocks函数:该函数是md-raid5中的核心函数,主要进行xor异或运算和块读写操作。
58.2.raid5_compute_blocknr函数:该函数会将块编号映射到磁盘上的具体扇区位置,并返回扇区的第一个逻辑块地址。
59.3.rmw_handle_parity函数:该函数用于重写磁盘块(repair/migrate/write,rmw),其主要目的是修复数据,使raid设备返回到稳定的状态。
60.4.raid5_parity_recover函数:该函数用于将奇偶校验块与数据块进行异或运算计算,从而生成恢复数据块。
61.我们会对md_xor_blocks,raid5_compute_blocknr,rmw_handle_parity,raid5_parity_recover等等相关的函数做重构,使之能调用mlu平台的库函数,并将调优性能。
62.以下为与上述方法实施例对应的系统实施例,本实施方式可与上述实施方式互相配合实施。上述实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在上述实施方式中。
63.本发明还提出了一种基于深度学习处理器来加速软件raid系统,其中包括:
64.初始模块,用于通过异构编程的方式,构建能被调用运行在专用计算芯片上的加速库函数和运行在cpu上的磁盘冗余阵列管理程序,用以在数据的存储过程中将生成冗余保护数据的计算过程交由该专用加速芯片进行;
65.恢复模块,用于当磁盘冗余阵列中数据损坏时,获取损坏数据块的冗余保护数据,并通过该加速库函数,调用该专用加速芯片对该冗余保护数据执行异或xor运算,以恢复该损坏数据块;
66.存储模块,用于当目标数据存入磁盘冗余阵列时,通过该加速库函数,调用该专用加速芯片对该目标数据进行异或xor运算,得到该目标数据的冗余保护数据。
67.所述的基于深度学习处理器来加速软件raid系统,其中该专用加速芯片为深度学习处理器mlu或gpu。
68.所述的基于深度学习处理器来加速软件raid系统,其中该加速库函数包括:用于通过该专用加速芯片进行xor异或运算和块读写操作的函数、用于将块编号映射到磁盘的具体扇区并返回扇区的第一个逻辑块地址的函数、用于重写磁盘块的函数、用于通过该专用加速芯片将奇偶校验块与数据块进行异或运算计算从而生成恢复数据块的函数。
69.所述的基于深度学习处理器来加速软件raid系统,其中该磁盘冗余阵列管理程序为重构后的mdadm软件,用于管理磁盘冗余阵列;
70.通过异构编程的方式,根据该专用计算芯片的硬件架构以及其开发框架,编写生成、恢复冗余数据的该加速库函数,该加速库函数能在cpu上被mdadm软件调用;
71.重构mdadm软件的过程包括:在冗余保护数据生成和损坏数据恢复这2个重要的业务场景中,重构原来运行在cpu上的mdadm的函数,使其可以调用该加速库函数来加速业务处理时间。
72.本发明还提出了一种存储介质,用于存储执行所述任意一种基于深度学习处理器来加速软件raid方法的程序。
73.本发明还提出了一种客户端,用于任意一种基于深度学习处理器来加速软件raid系统。

技术特征:
1.一种基于深度学习处理器来加速软件raid方法,其特征在于,包括:步骤1、通过异构编程的方式,构建能被调用运行在专用计算芯片上的加速库函数和运行在cpu上的磁盘冗余阵列管理程序,用以在数据的存储过程中将生成冗余保护数据的计算过程交由该专用加速芯片进行;步骤2、当磁盘冗余阵列中数据损坏时,获取损坏数据块的冗余保护数据,并通过该加速库函数,调用该专用加速芯片对该冗余保护数据执行异或xor运算,以恢复该损坏数据块;步骤3、当目标数据存入磁盘冗余阵列时,通过该加速库函数,调用该专用加速芯片对该目标数据进行异或xor运算,得到该目标数据的冗余保护数据。2.如权利要求1所述的基于深度学习处理器来加速软件raid方法,其特征在于,该专用加速芯片为深度学习处理器mlu或gpu。3.如权利要求1所述的基于深度学习处理器来加速软件raid方法,其特征在于,该加速库函数包括:用于通过该专用加速芯片进行xor异或运算和块读写操作的函数、用于将块编号映射到磁盘的具体扇区并返回扇区的第一个逻辑块地址的函数、用于重写磁盘块的函数、用于通过该专用加速芯片将奇偶校验块与数据块进行异或运算计算从而生成恢复数据块的函数。4.如权利要求1所述的基于深度学习处理器来加速软件raid方法,其特征在于,该磁盘冗余阵列管理程序为重构后的mdadm软件,用于管理磁盘冗余阵列;通过异构编程的方式,根据该专用计算芯片的硬件架构以及其开发框架,编写生成、恢复冗余数据的该加速库函数,该加速库函数能在cpu上被mdadm软件调用;重构mdadm软件的过程包括:在冗余保护数据生成和损坏数据恢复这2个重要的业务场景中,重构原来运行在cpu上的mdadm的函数,使其可以调用该加速库函数来加速业务处理时间。5.一种基于深度学习处理器来加速软件raid系统,其特征在于,包括:初始模块,用于通过异构编程的方式,构建能被调用运行在专用计算芯片上的加速库函数和运行在cpu上的磁盘冗余阵列管理程序,用以在数据的存储过程中将生成冗余保护数据的计算过程交由该专用加速芯片进行;恢复模块,用于当磁盘冗余阵列中数据损坏时,获取损坏数据块的冗余保护数据,并通过该加速库函数,调用该专用加速芯片对该冗余保护数据执行异或xor运算,以恢复该损坏数据块;存储模块,用于当目标数据存入磁盘冗余阵列时,通过该加速库函数,调用该专用加速芯片对该目标数据进行异或xor运算,得到该目标数据的冗余保护数据。6.如权利要求5所述的基于深度学习处理器来加速软件raid系统,其特征在于,该专用加速芯片为深度学习处理器mlu或gpu。7.如权利要求5所述的基于深度学习处理器来加速软件raid系统,其特征在于,该加速库函数包括:用于通过该专用加速芯片进行xor异或运算和块读写操作的函数、用于将块编号映射到磁盘的具体扇区并返回扇区的第一个逻辑块地址的函数、用于重写磁盘块的函数、用于通过该专用加速芯片将奇偶校验块与数据块进行异或运算计算从而生成恢复数据块的函数。
8.如权利要求5所述的基于深度学习处理器来加速软件raid系统,其特征在于,该磁盘冗余阵列管理程序为重构后的mdadm软件,用于管理磁盘冗余阵列;通过异构编程的方式,根据该专用计算芯片的硬件架构以及其开发框架,编写生成、恢复冗余数据的该加速库函数,该加速库函数能在cpu上被mdadm软件调用;重构mdadm软件的过程包括:在冗余保护数据生成和损坏数据恢复这2个重要的业务场景中,重构原来运行在cpu上的mdadm的函数,使其可以调用该加速库函数来加速业务处理时间。9.一种存储介质,用于存储执行如权利要求1到4所述任意一种基于深度学习处理器来加速软件raid方法的程序。10.一种客户端,用于权利要求5至8中任意一种基于深度学习处理器来加速软件raid系统。

技术总结
本发明提出一种基于深度学习处理器来加速软件RAID方法和系统,包括:通过异构编程的方式,构建能被调用运行在专用计算芯片上的加速库函数和运行在CPU上的磁盘冗余阵列管理程序,用以在数据的存储过程中将生成冗余保护数据的计算过程交由该专用加速芯片进行;当磁盘冗余阵列中数据损坏时,获取损坏数据块的冗余保护数据,并通过该加速库函数,调用该专用加速芯片对该冗余保护数据执行异或XOR运算,以恢复该损坏数据块;当目标数据存入磁盘冗余阵列时,通过该加速库函数,调用该专用加速芯片对该目标数据进行异或XOR运算,得到该目标数据的冗余保护数据。本发明采用计算芯片完成异或运算,从而提供更快速的RAID服务。从而提供更快速的RAID服务。从而提供更快速的RAID服务。


技术研发人员:王涛
受保护的技术使用者:上海处理器技术创新中心
技术研发日:2023.06.19
技术公布日:2023/10/5
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐