一种基于RAID1的磁盘多线程性能优化的方法及装置与流程

文档序号:35226575发布日期:2023-08-24 22:42阅读:39来源:国知局
一种基于RAID1的磁盘多线程性能优化的方法及装置与流程

本发明属于磁盘性能优化,具体涉及一种基于raid1的磁盘多线程性能优化的方法及装置。


背景技术:

1、raid,是redundant arrays of independent disks的缩写,独立冗余磁盘阵列,简称为磁盘阵列。磁盘阵列是由很多块独立的磁盘组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。raid将数据切割成许多区段,分别存放在各个磁盘上。

2、当前针对多个服务同时运行访问磁盘数据的场景,对磁盘的随机io读写性能提出了很高的要求,以短视频及购物网站为例,数以万计的用户每时每刻都在访问不同领域不同内容以及不同物品。即便采用高性能的固态磁盘,虽然相比较于机械硬盘持续读取时性能可以提高5到6倍,但单队列但线程的随机4k性能却并不能达到好的效果,并且局限于固态硬盘自身性能速率最高也不能超过70mb/s,甚至能低至20mb/s。尤其针对数据中心的用户访问响应速度严重不能满足需求。

3、操作系统对磁盘进行多线程访问,而文件系统每次访问的最小单元是磁盘簇,考虑到权限和文件层目录,访问次数和数据量相当庞大。而数据中心的服务器应对的是成千上万的用户,每次多个用户访问都需要对上一次的访问结果进行计算后才知道下一次要访问哪些扇区哪些簇,也就是多个线程多个用户的随机访问。而多个服务同时运行访问磁盘数据依赖于磁盘的多线程深队列的读写性能,读写性能受限于磁盘硬件本身,即便使用存在冗余的raid阵列,以raid1为例,虽然原始数据繁忙时,可以从镜像拷贝中读取数据,某种程度上提高了读取性能,但由于数据得分别写入两块磁盘中并做比较,raid1的写入速度还是比较慢,不能满足数据中心所需的用户访问响应速度。

4、因此,针对上述缺陷,提供一种基于raid1的磁盘多线程性能优化的方法及装置,是非常有必要的。


技术实现思路

1、针对上述多服务同时运行依赖磁盘raid模式磁盘的多线程深队列的读写性能以及受限于硬盘硬件本身,当前数据中心的访问响应速度不能满足用户需求的缺陷,本发明提供一种基于raid1的磁盘多线程性能优化的方法及装置,以解决上述技术问题。

2、第一方面,本发明提供一种基于raid1的磁盘多线程性能优化的方法,包括如下步骤:

3、s1.将服务器的存储配置为raid1模式,并在每组raid1阵列的两个硬盘之间添加通信链路;

4、s2.根据存储的应用场景进行每个raid1阵列的两个磁盘间多线程读写均衡,优化存储的响应速度。

5、进一步地,步骤s1具体步骤如下:

6、s11.获取服务器内磁盘数量m以及所需配置raid1阵列数量n;

7、s12.根据所需配置raid阵列数量n从服务器的m个磁盘中选取2n个;

8、s13.添加raid卡,将选取的磁盘两个为一组配置为一个raid1阵列,建立raid卡上raid控制器与每个raid1阵列中两个磁盘的连接;

9、s14.在每个raid1阵列的两个磁盘间添加通信链路。

10、进一步地,步骤s13具体步骤如下:

11、s131.判断raid卡添加模式;

12、当为raid卡共享模式,进入步骤s132;

13、当为独立raid卡模式,进入步骤s134;

14、s132.服务器内添加一个raid卡;

15、s133.将选取的磁盘两个为一组配置为一个raid1阵列,建立raid卡上raid控制器与每个raid1阵列中两个磁盘的连接,进入步骤s14;

16、s134.根据所需配置raid阵列数量n配置n个raid卡;

17、s135.将选取的磁盘两个为一组配置为一个raid1阵列,建立raid1阵列与raid卡的一一对应关系;

18、s136.将raid卡上raid控制器与同一raid1阵列的两个磁盘建立连接。

19、进一步地,步骤s2具体步骤如下:

20、s21.获取存储的应用场景;

21、当应用场景为同时读写时,进入步骤s22;

22、当应用场景为读大文件时,进入步骤s23;

23、当应用场景为写大文件时,进入步骤s24;

24、s22.raid控制器设置raid1阵列中两个磁盘一个进行数据读取,一个进行数据发送,并根据读写任务量比较分配两个磁盘间的通信链路,结束;

25、s23.raid控制器从raid1阵列中两个磁盘中选择速率高的磁盘,通过两个磁盘间的通信链路对选择的磁盘进行双链路读取,结束;

26、s24.raid控制从raid1阵列中两个磁盘中选择速率高的磁盘,通过两个磁盘间的通路链路对选择磁盘进行双链路写入,并保留另一磁盘的原写入链路。

27、进一步地,步骤s21获取存储的应用场景;

28、当raid控制器同时接收到存储和读取文件请求时,判定为同时读写应用场景;

29、当raid控制器接收到读取文件请求,且读取文件大小大于设定阈值时,判定为读大文件场景;

30、当raid控制器接收到存储文件请求,且存储文件大小大于设定阈值时,判定为写大文件场景。

31、进一步地,步骤s22具体步骤如下:

32、s221.设定raid1阵列中两个磁盘一个为写磁盘,一个为读磁盘;

33、s222.设定raid控制器与写磁盘之间链路为写链路,设定raid控制器与读磁盘之间链路为读链路,设定写磁盘与读磁盘之间链路为辅助链路;

34、s223.raid控制器使用写链路向写磁盘执行存储任务,使用读链路向读磁盘执行读任务;

35、s224.raid控制器比较存储任务与读任务的任务量大小;

36、当存储任务大于读任务的任务量,且两者差值大于设定阈值时,进入步骤s225;

37、当存储任务小于读任务的任务量,且两者差值大于设定阈值时,进入步骤s226;

38、当两者差值小于设定阈值时,进入步骤s227;

39、s225.raid控制器使用辅助链路协助存储任务向读磁盘存储文件,结束;

40、s226.raid控制器使用辅助链路协助读任务从写磁盘读取文件,结束;

41、s227.raid控制分时段使用辅助链路协助存储任务向读磁盘存储文件以及协助读任务从写磁盘读取文件,结束。

42、进一步地,步骤s23具体步骤如下:

43、s231.设定raid1阵列中两个磁盘为第一读磁盘和第二读磁盘;

44、s232.设定raid控制器与第一读磁盘之间链路为第一读链路,设定raid控制器与第二读磁盘之间链路为第二读链路;

45、s233.raid控制器使用第一读链路从第一读磁盘读取文件,以及使用第二读链路从第二读磁盘读取文件;

46、s234.raid控制器比较第一读链路和第二读链路的读取速率;

47、当第一读链路大于第二读链路的读取速率,且两者的差值大于设定阈值,进入步骤s235;

48、当第二读链路大于第一读链路的读取速率,且两者的差值大于设定阈值,进入步骤s236;

49、s235.raid控制器将第二读链路与辅助链路进行复合,并使用复合链路从第一读磁盘读取文件,跳过第二读磁盘,形成raid控制器与第一读磁盘的双链路读取,结束;

50、s236.raid控制器将第一读链路与辅助链路进行复合,并使用复合链路从第二读磁盘读取文件,跳过第一读磁盘,形成raid控制器与第二读磁盘的双链路读取。

51、进一步地,步骤s24具体步骤如下:

52、s241.设定raid1阵列中两个磁盘为第一写磁盘和第二写磁盘;

53、s242.设定raid控制器与第一写磁盘之间链路为第一写链路,设定raid控制器与第二写磁盘之间链路为第二写链路;

54、s243.raid控制器使用第一写链路向第一写磁盘存储文件,以及使用第二写链路向第二写磁盘存储文件;

55、s244.raid控制器比较第一写链路和第二写链路的存储速率;

56、当第一写链路大于第二写链路的存储速率,且两者的差值大于设定阈值,进入步骤s245;

57、当第二写链路大于第一写链路的存储速率,且两者的差值大于设定阈值,进入步骤s246;

58、s245.raid控制器控制第二写链路向第二写磁盘存储文件的同时,还通过辅助链路向第一写磁盘存储文件,形成raid控制器与第一写磁盘的双链路存储,结束;

59、s246.raid控制器控制第一写链路向第一写磁盘存储文件的同时,还通过辅助链路向第二写磁盘存储文件,形成raid控制器与第二写磁盘的双链路存储。

60、第二方面,本发明提供一种磁盘多线程性能优化的装置,包括:

61、磁盘间链路添加模块,用于将服务器的存储配置为raid1模式,并在每组raid1阵列的两个硬盘之间添加通信链路;

62、读写均衡模块,用于根据存储的应用场景进行每个raid1阵列的两个磁盘间多线程读写均衡,优化存储的响应速度。

63、进一步地,磁盘间链路添加模块包括:

64、磁盘及需配置raid1阵列数量获取单元,用于获取服务器内磁盘数量m以及所需配置raid1阵列数量n;

65、磁盘选取单元,用于根据所需配置raid阵列数量n从服务器的m个磁盘中选取2n个;

66、raid1阵列建立单元,用于添加raid卡,将选取的磁盘两个为一组配置为一个raid1阵列,建立raid卡上raid控制器与每个raid1阵列中两个磁盘的连接;

67、辅助链路添加单元,用于在每个raid1阵列的两个磁盘间添加通信链路。

68、进一步地,raid1阵列建立单元包括:

69、raid卡添加模式判断子单元,用于判断raid卡添加模式;

70、单raid卡添加子单元,用于在raid卡共享模式,为服务器内添加一个raid卡;

71、raid控制器共享设置子单元,用于将选取的磁盘两个为一组配置为一个raid1阵列,建立raid卡上raid控制器与每个raid1阵列中两个磁盘的连接;

72、多raid卡添加子单元,用于独立raid卡模式,根据所需配置raid阵列数量n配置n个raid卡;

73、raid1阵列与raid卡并行映射子单元,用于将选取的磁盘两个为一组配置为一个raid1阵列,建立raid1阵列与raid卡的一一对应关系;

74、raid1阵列连接设置子单元,用于将raid卡上raid控制器与同一raid1阵列的两个磁盘建立连接。

75、进一步地,读写均衡模块包括:

76、应用场景获取单元,用于获取存储的应用场景;

77、通信链路分时分配单元,用于当应用场景为同时读写时,raid控制器设置raid1阵列中两个磁盘一个进行数据读取,一个进行数据发送,并根据读写任务量比较分配两个磁盘间的通信链路;

78、通信链路读取分配单元,用于当应用场景为读大文件时,raid控制器从raid1阵列中两个磁盘中选择速率高的磁盘,通过两个磁盘间的通信链路对选择的磁盘进行双链路读取;

79、通信链路存储分配单元,用于当应用场景为写大文件时,raid控制从raid1阵列中两个磁盘中选择速率高的磁盘,通过两个磁盘间的通路链路对选择磁盘进行双链路写入,并保留另一磁盘的原写入链路。

80、进一步地,应用场景获取单元获取应用场景;

81、当raid控制器同时接收到存储和读取文件请求时,判定为同时读写应用场景;

82、当raid控制器接收到读取文件请求,且读取文件大小大于设定阈值时,判定为读大文件场景;

83、当raid控制器接收到存储文件请求,且存储文件大小大于设定阈值时,判定为写大文件场景。

84、进一步地,通信链路分时分配单元包括:

85、读写磁盘分设子单元,用于设定raid1阵列中两个磁盘一个为写磁盘,一个为读磁盘;

86、读写链路分设子单元,用于设定raid控制器与写磁盘之间链路为写链路,设定raid控制器与读磁盘之间链路为读链路,设定写磁盘与读磁盘之间链路为辅助链路;

87、读写任务执行子单元,用于在raid控制器使用写链路向写磁盘执行存储任务,使用读链路向读磁盘执行读任务;

88、读写任务量比较子单元,用于通过raid控制器比较存储任务与读任务的任务量大小;

89、辅助写子单元,用于当存储任务大于读任务的任务量,且两者差值大于设定阈值时,在raid控制器使用辅助链路协助存储任务向读磁盘存储文件;

90、辅助读子单元,用于当存储任务小于读任务的任务量,且两者差值大于设定阈值时,在raid控制器使用辅助链路协助读任务从写磁盘读取文件;

91、辅助链路分时读写子单元,用于存储任务与读任务的任务量大小差值小于设定阈值时,raid控制分时段使用辅助链路协助存储任务向读磁盘存储文件以及协助读任务从写磁盘读取文件。

92、进一步地,通信链路读取分配单元包括:

93、读磁盘设定子单元,用于设定raid1阵列中两个磁盘为第一读磁盘和第二读磁盘;

94、读链路设定子单元,用于设定raid控制器与第一读磁盘之间链路为第一读链路,设定raid控制器与第二读磁盘之间链路为第二读链路;

95、读链路分配子单元,用于在raid控制器使用第一读链路从第一读磁盘读取文件,以及使用第二读链路从第二读磁盘读取文件;

96、读速率比较子单元,用于在raid控制器比较第一读链路和第二读链路的读取速率;

97、辅助读快盘第一子单元,当第一读链路大于第二读链路的读取速率,且两者的差值大于设定阈值,在raid控制器将第二读链路与辅助链路进行复合,并使用复合链路从第一读磁盘读取文件,跳过第二读磁盘,形成raid控制器与第一读磁盘的双链路读取;

98、辅助读快盘第二子单元,用于当第二读链路大于第一读链路的读取速率,且两者的差值大于设定阈值,在raid控制器将第一读链路与辅助链路进行复合,并使用复合链路从第二读磁盘读取文件,跳过第一读磁盘,形成raid控制器与第二读磁盘的双链路读取。

99、进一步地,通信链路存储分配单元包括:

100、写磁盘设定子单元,设定raid1阵列中两个磁盘为第一写磁盘和第二写磁盘;

101、写链路设定子单元,用于设定raid控制器与第一写磁盘之间链路为第一写链路,设定raid控制器与第二写磁盘之间链路为第二写链路;

102、写链路分配子单元,用于在raid控制器使用第一写链路向第一写磁盘存储文件,以及使用第二写链路向第二写磁盘存储文件;

103、写速率比较子单元,用于在raid控制器比较第一写链路和第二写链路的存储速率;

104、辅助写快盘第一子单元,当第一写链路大于第二写链路的存储速率,且两者的差值大于设定阈值,在raid控制器控制第二写链路向第二写磁盘存储文件的同时,还通过辅助链路向第一写磁盘存储文件,形成raid控制器与第一写磁盘的双链路存储;

105、辅助写快盘第二子单元,用于当第二写链路大于第一写链路的存储速率,且两者的差值大于设定阈值,在raid控制器控制第一写链路向第一写磁盘存储文件的同时,还通过辅助链路向第二写磁盘存储文件,形成raid控制器与第二写磁盘的双链路存储。

106、第三方面,本发明提供一种设备,包括处理器和存储器;

107、其中,该存储器用于存储计算机程序,该处理器用于从存储器中调用并运行该计算机程序,使得设备执行上述第一方面所述的方法。

108、第四方面,本发明提供一种存储介质,

109、所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。

110、本发明的有益效果在于:

111、本发明提供的基于raid1的磁盘多线程性能优化的方法及装置,在现有raid1磁盘阵列的两个磁盘间设置辅助双向通信线路,实现raid卡与每个磁盘多一条可能的辅助通信线路,基于辅助通信链路可以实现两倍带宽实现两个磁盘之间多线程读写均衡,缩短等待响应时间,提升磁盘访问速度。

112、此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

113、由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1