一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种服务器高性能磁盘分布式存储方法及装置与流程

2022-05-27 01:52:36 来源:中国专利 TAG:


1.本发明属于分布式存储技术领域,具体涉及一种服务器高性能磁盘分布式存储方法及装置。


背景技术:

2.nvme代表“nvm express”,或称非易失性内存主机控制器接口规范,nvme是non-volatile memory express的简称,是一个逻辑设备接口规范。nvme技术带来出众的存储空间、速度和兼容性。由于nvme ssd利用pcie插槽,因此传输的数据量是同等sata ssd产品的25倍;除了传输更多数据,nvme命令的速度是ahci驱动程序命令的2倍;此外,作为nvme的每秒输入/输出操作的iops的值超过100万,是ahci硬盘的900%;并且,得益于自身的兼容性,nvme还直接与系统cpu通信,具有惊人的速度。
3.随着nvmessd的普及,nvmessd将成为服务器主流磁盘,在单台服务器上使用nvmessd时,单块磁盘使用时,性能几乎无损耗,但是nvmessd上的数据安全性无法保证,存在单点故障问题,因此通常会采取做raid的方法,而做raid的方式大大降低了整体的io性能,无法高效利用nvmessd性能。
4.现有采用raid方式的方案主要有两种:
5.一:采用raid卡方案,此种方案保障了nvmessd的高可用,但是无法发挥多块磁盘的性能。目前raid卡最多能够支持4块nvmessd,raid卡通过pcie插槽连接cpu。一方面pcie插槽的带宽限制了nvmessd的性能;另一方面,在raid5模式下,校验盘读写性能严重影响了整体的写性能。
6.二:在系统下做软raid方法,此种方法突破了raid卡4块磁盘限制,但是多个nvmessd做raid5时,系统需要单独一个进程处理校验盘,校验进程的处理速度限制了多块磁盘的写性能。
7.此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种服务器高性能磁盘分布式存储方法及装置,是非常有必要的。


技术实现要素:

8.针对现有技术的上述无法充分利用高性能磁盘nvmessd的性能,无法解决服务器磁盘单点故障问题的缺陷,本发明提供一种服务器高性能磁盘分布式存储方法及装置,以解决上述技术问题。
9.第一方面,本发明提供一种服务器高性能磁盘分布式存储方法,包括如下步骤:
10.s1.为服务器系统配置若干块nvmessd磁盘,并将每个nvmessd磁盘均划分为元数据区和数据区;
11.s2.在服务器系统创建工作进程,工作进程对各nvmessd磁盘进行优先级排序,以及接收客户端io请求;
12.s3.当客户端io请求为io写请求时,工作进程根据nvmessd磁盘优先级排序选择第
一目标磁盘及第二目标磁盘,向第一目标磁盘的数据区进行数据块写入,并向第二目标磁盘数据区进行数据块拷贝,再并行向每个nvmessd磁盘的元数据区写入元数据信息;
13.s4.当客户端io请求为io读请求时,工作进程根据nvmessd磁盘优先级排序选择第三目标磁盘,从第三目标磁盘的元数据区读取元数据信息,再根据元数据信息及nvmessd磁盘优先级排序选择第四目标磁盘,从第四目标磁盘的数据区读取数据块,并在数据块一致性校验通过后,向客户端返回。
14.进一步地,步骤s1具体步骤如下:
15.s11.获取服务器系统下配置的各nvmessd磁盘;
16.s12.将每个nvmessd磁盘划分为元数据区和数据区,并设置元数据区存储元数据信息,以及设置数据区存储数据块。所述元数据信息包括数据块所在位置及大小信息。
17.进一步地,步骤s2具体步骤如下:
18.s21.在服务器系统创建主进程、计算进程、数据写进程、数据拷贝进程、元数据写进程、元数据读进程以及数据读进程;
19.s22.主进程接收客户端io请求,并判断客户端io请求类型;
20.当客户端io请求类型为io写请求时,进入步骤s3;
21.当客户端io请求类型为io读请求时,进入步骤s4。主进程负责与客户端进行通信,接收客户端请求,同时负责其他进程调度;计算进程负责计算磁盘繁忙程度以及磁盘使用率,根据两者结果进行磁盘优先级排序;数据写进程负责往磁盘的数据区写入数据,需要根据磁盘优先级排序选择要写入的磁盘,同时调用数据拷贝进程;数据拷贝进程负责数据块拷贝工作,根据磁盘优先级排序选择需要拷贝的磁盘,同时将数据块拷贝到该磁盘上;拷贝进程数量需要结合副本数量,一个副本启用一个数据拷贝进程,n个副本启用n个进程;元数据写进程负责数据块信息写入到磁盘的元数据区,同时负责磁盘元数据区信息的索引维护;元数据读进程根据计算进程对磁盘优先级排序结果,从其中选择一块磁盘的元数据区读取所请求的数据块信息,如数据块大小、数据块位置等信息;数据读进程负责在磁盘上读取数据块以及进行数据一致性校验,同时将结果反馈给客户端。
22.进一步地,步骤s3具体步骤如下:
23.s31.主进程启动计算进程,根据磁盘繁忙程度以及磁盘剩余容量对各nvmessd磁盘进行优先级排序,并将nvmessd磁盘优先级排序结果通知主进程;其中磁盘繁忙程度最低,且磁盘剩余容量最大的nvmessd磁盘优先级最高;
24.s32.主进程根据nvmessd磁盘优先级排序结果分配第一目标磁盘,以及根据所需副本数量及nvmessd磁盘优先级排序结果分配第二目标磁盘;
25.s33.主进程启动数据写进程,数据写进程向第一目标磁盘写入数据块,并根据所需副本数量启动对应数量的数据拷贝进程;
26.s34.各数据拷贝进程向各第二目标磁盘的数据区进行数据块拷贝,并在拷贝完成后通知主进程;
27.s35.主进程启动各元数据写进程,各元数据写进程并行向各nvmessd磁盘的元数据区写入元数据信息;
28.s36.主进程接收到各元数据写进程的完成信息后,将写完成结果通知客户端。
29.进一步地,步骤s4具体步骤如下:
30.s41.主进程启动计算进程,根据磁盘繁忙程度以及磁盘剩余容量对各nvmessd磁盘进行优先级排序,并将nvmessd磁盘优先级排序结果通知主进程;其中磁盘繁忙程度最低,且磁盘剩余容量最大的nvmessd磁盘优先级最高;
31.s42.主进程根据nvmessd磁盘优先级排序结果分配第三目标磁盘;
32.s43.主进程启动元数据读进程,从第三目标磁盘的元数据区读取元数据信息,并根据元数据信息确定目标数据块及其副本所在的各nvmessd磁盘;
33.s44.主进程接收元数据读进程返回的目标数据块及其副本所在的各nvmessd磁盘,再结合nvmessd磁盘优先级排序选择第四目标磁盘;
34.s45.主进程启动数据读进程,从第四目标磁盘读取目标数据块,并对目标数据块进行一致性校验,并在一致性校验通过后,将目标数据块反馈给客户端。
35.第二方面,本发明提供一种服务器高性能磁盘分布式存储装置,包括:
36.nvmessd磁盘配置及划分模块,用于为服务器系统配置若干块nvmessd磁盘,并将每个nvmessd磁盘均划分为元数据区和数据区;
37.工作进程创建模块,用于在服务器系统创建工作进程,工作进程对各nvmessd磁盘进行优先级排序,以及接收客户端io请求;
38.数据写模块,用于当客户端io请求为io写请求时,工作进程根据nvmessd磁盘优先级排序选择第一目标磁盘及第二目标磁盘,向第一目标磁盘的数据区进行数据块写入,并向第二目标磁盘数据区进行数据块拷贝,再并行向每个nvmessd磁盘的元数据区写入元数据信息;
39.数据读模块,用于当客户端io请求为io读请求时,工作进程根据nvmessd磁盘优先级排序选择第三目标磁盘,从第三目标磁盘的元数据区读取元数据信息,再根据元数据信息及nvmessd磁盘优先级排序选择第四目标磁盘,从第四目标磁盘的数据区读取数据块,并在数据块一致性校验通过后,向客户端返回。
40.进一步地,nvmessd磁盘配置及划分模块包括:
41.nvmessd磁盘获取单元,用于获取服务器系统下配置的各nvmessd磁盘;
42.nvmessd磁盘分区单元,用于将每个nvmessd磁盘划分为元数据区和数据区,并设置元数据区存储元数据信息,以及设置数据区存储数据块。
43.进一步地,工作进程创建模块包括:
44.工作进程创建单元,用于在服务器系统创建主进程、计算进程、数据写进程、数据拷贝进程、元数据写进程、元数据读进程以及数据读进程;
45.io请求类型判断单元,用于主进程接收客户端io请求,并判断客户端io请求类型。
46.进一步地,数据写模块包括:
47.计算进程第一启动单元,用于主进程启动计算进程,根据磁盘繁忙程度以及磁盘剩余容量对各nvmessd磁盘进行优先级排序,并将nvmessd磁盘优先级排序结果通知主进程;其中磁盘繁忙程度最低,且磁盘剩余容量最大的nvmessd磁盘优先级最高;
48.磁盘第一分配单元,用于主进程根据nvmessd磁盘优先级排序结果分配第一目标磁盘,以及根据所需副本数量及nvmessd磁盘优先级排序结果分配第二目标磁盘;
49.数据写单元,用于数据写进程向第一目标磁盘写入数据块,并根据所需副本数量启动对应数量的数据拷贝进程;
50.数据拷贝单元,用于各数据拷贝进程向各第二目标磁盘的数据区进行数据块拷贝,并在拷贝完成后通知主进程;
51.元数据写单元,用于主进程启动各元数据写进程,各元数据写进程并行向各nvmessd磁盘的元数据区写入元数据信息;
52.写完成通知单元,用于主进程接收到各元数据写进程的完成信息后,将写完成结果通知客户端。
53.进一步地,数据读模块包括:
54.计算进程第二启动单元,用于主进程启动计算进程,根据磁盘繁忙程度以及磁盘剩余容量对各nvmessd磁盘进行优先级排序,并将nvmessd磁盘优先级排序结果通知主进程;其中磁盘繁忙程度最低,且磁盘剩余容量最大的nvmessd磁盘优先级最高;
55.磁盘第二分配单元,用于主进程根据nvmessd磁盘优先级排序结果分配第三目标磁盘;
56.元数据读单元,用于主进程启动元数据读进程,从第三目标磁盘的元数据区读取元数据信息,并根据元数据信息确定目标数据块及其副本所在的各nvmessd磁盘;
57.磁盘第三分配单元,用于主进程接收元数据读进程返回的目标数据块及其副本所在的各nvmessd磁盘,再结合nvmessd磁盘优先级排序选择第四目标磁盘;
58.数据读单元,用于主进程启动数据读进程,从第四目标磁盘读取目标数据块,并对目标数据块进行一致性校验,并在一致性校验通过后,将目标数据块反馈给客户端。
59.本发明的有益效果在于:
60.本发明提供的服务器高性能磁盘分布式存储方法及装置,根据cpu多核心多进程的特点,通过多个写进程将io数据分布式存储到多块磁盘上,充分利用nvmessd高iops特点,充分发挥了nvmessd的性能,同时解决了服务器磁盘单点故障问题。
61.此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
62.由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
63.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
64.图1是本发明的服务器高性能磁盘分布式存储方法实施例1流程示意图。
65.图2是本发明的服务器高性能磁盘分布式存储方法实施例2流程示意图。
66.图3是本发明的服务器高性能磁盘分布式存储装置示意图。
67.图中,1-nvmessd磁盘配置及划分模块;1.1-nvmessd磁盘获取单元;1.2-nvmessd磁盘分区单元;2-工作进程创建模块;2.1-工作进程创建单元;2.2-io请求类型判断单元;3-数据写模块;3.1-计算进程第一启动单元;3.2-磁盘第一分配单元;3.3-数据写单元;3.4-数据拷贝单元;3.5-元数据写单元;3.6-写完成通知单元;4-数据读模块;4.1-计算进程第二启动单元;4.2-磁盘第二分配单元;4.3-元数据读单元;4.4-磁盘第三分配单元。
具体实施方式
68.为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
69.ahci,是advanced host controller interface的简称,高级主机控制器接口,是一种由英特尔制定的技术标准,它允许软件与sata存储设备沟通的硬件机制,可让sata存储设备激活高级sata功能,例如原生指令队列及热插拔。
70.实施例1:
71.如图1所示,本发明提供一种服务器高性能磁盘分布式存储方法,包括如下步骤:
72.s1.为服务器系统配置若干块nvmessd磁盘,并将每个nvmessd磁盘均划分为元数据区和数据区;
73.s2.在服务器系统创建工作进程,工作进程对各nvmessd磁盘进行优先级排序,以及接收客户端io请求;
74.s3.当客户端io请求为io写请求时,工作进程根据nvmessd磁盘优先级排序选择第一目标磁盘及第二目标磁盘,向第一目标磁盘的数据区进行数据块写入,并向第二目标磁盘数据区进行数据块拷贝,再并行向每个nvmessd磁盘的元数据区写入元数据信息;
75.s4.当客户端io请求为io读请求时,工作进程根据nvmessd磁盘优先级排序选择第三目标磁盘,从第三目标磁盘的元数据区读取元数据信息,再根据元数据信息及nvmessd磁盘优先级排序选择第四目标磁盘,从第四目标磁盘的数据区读取数据块,并在数据块一致性校验通过后,向客户端返回。
76.实施例2:
77.如图2所示,本发明提供一种服务器高性能磁盘分布式存储方法,包括如下步骤:
78.s1.为服务器系统配置若干块nvmessd磁盘,并将每个nvmessd磁盘均划分为元数据区和数据区;具体步骤如下:
79.s11.获取服务器系统下配置的各nvmessd磁盘;
80.s12.将每个nvmessd磁盘划分为元数据区和数据区,并设置元数据区存储元数据信息,以及设置数据区存储数据块;
81.s2.在服务器系统创建工作进程,工作进程对各nvmessd磁盘进行优先级排序,以及接收客户端io请求;具体步骤如下:
82.s21.在服务器系统创建主进程、计算进程、数据写进程、数据拷贝进程、元数据写进程、元数据读进程以及数据读进程;
83.s22.主进程接收客户端io请求,并判断客户端io请求类型;
84.当客户端io请求类型为io写请求时,进入步骤s3;
85.当客户端io请求类型为io读请求时,进入步骤s4;
86.s3.当客户端io请求为io写请求时,工作进程根据nvmessd磁盘优先级排序选择第一目标磁盘及第二目标磁盘,向第一目标磁盘的数据区进行数据块写入,并向第二目标磁盘数据区进行数据块拷贝,再并行向每个nvmessd磁盘的元数据区写入元数据信息;具体步
骤如下:
87.s31.主进程启动计算进程,根据磁盘繁忙程度以及磁盘剩余容量对各nvmessd磁盘进行优先级排序,并将nvmessd磁盘优先级排序结果通知主进程;其中磁盘繁忙程度最低,且磁盘剩余容量最大的nvmessd磁盘优先级最高;
88.s32.主进程根据nvmessd磁盘优先级排序结果分配第一目标磁盘,以及根据所需副本数量及nvmessd磁盘优先级排序结果分配第二目标磁盘;
89.s33.主进程启动数据写进程,数据写进程向第一目标磁盘写入数据块,并根据所需副本数量启动对应数量的数据拷贝进程;
90.s34.各数据拷贝进程向各第二目标磁盘的数据区进行数据块拷贝,并在拷贝完成后通知主进程;
91.s35.主进程启动各元数据写进程,各元数据写进程并行向各nvmessd磁盘的元数据区写入元数据信息;
92.s36.主进程接收到各元数据写进程的完成信息后,将写完成结果通知客户端;
93.s4.当客户端io请求为io读请求时,工作进程根据nvmessd磁盘优先级排序选择第三目标磁盘,从第三目标磁盘的元数据区读取元数据信息,再根据元数据信息及nvmessd磁盘优先级排序选择第四目标磁盘,从第四目标磁盘的数据区读取数据块,并在数据块一致性校验通过后,向客户端返回;具体步骤如下:
94.s41.主进程启动计算进程,根据磁盘繁忙程度以及磁盘剩余容量对各nvmessd磁盘进行优先级排序,并将nvmessd磁盘优先级排序结果通知主进程;其中磁盘繁忙程度最低,且磁盘剩余容量最大的nvmessd磁盘优先级最高;
95.s42.主进程根据nvmessd磁盘优先级排序结果分配第三目标磁盘;
96.s43.主进程启动元数据读进程,从第三目标磁盘的元数据区读取元数据信息,并根据元数据信息确定目标数据块及其副本所在的各nvmessd磁盘;
97.s44.主进程接收元数据读进程返回的目标数据块及其副本所在的各nvmessd磁盘,再结合nvmessd磁盘优先级排序选择第四目标磁盘;
98.s45.主进程启动数据读进程,从第四目标磁盘读取目标数据块,并对目标数据块进行一致性校验,并在一致性校验通过后,将目标数据块反馈给客户端。
99.实施例3:
100.如图3所示,本发明提供一种服务器高性能磁盘分布式存储装置,包括:
101.nvmessd磁盘配置及划分模块1,用于为服务器系统配置若干块nvmessd磁盘,并将每个nvmessd磁盘均划分为元数据区和数据区;nvmessd磁盘配置及划分模块1包括:
102.nvmessd磁盘获取单元1.1,用于获取服务器系统下配置的各nvmessd磁盘;
103.nvmessd磁盘分区单元1.2,用于将每个nvmessd磁盘划分为元数据区和数据区,并设置元数据区存储元数据信息,以及设置数据区存储数据块;
104.工作进程创建模块2,用于在服务器系统创建工作进程,工作进程对各nvmessd磁盘进行优先级排序,以及接收客户端io请求;工作进程创建模块2包括:
105.工作进程创建单元2.1,用于在服务器系统创建主进程、计算进程、数据写进程、数据拷贝进程、元数据写进程、元数据读进程以及数据读进程;
106.io请求类型判断单元2.2,用于主进程接收客户端io请求,并判断客户端io请求类
型;
107.数据写模块3,用于当客户端io请求为io写请求时,工作进程根据nvmessd磁盘优先级排序选择第一目标磁盘及第二目标磁盘,向第一目标磁盘的数据区进行数据块写入,并向第二目标磁盘数据区进行数据块拷贝,再并行向每个nvmessd磁盘的元数据区写入元数据信息;数据写模块3包括:
108.计算进程第一启动单元3.1,用于主进程启动计算进程,根据磁盘繁忙程度以及磁盘剩余容量对各nvmessd磁盘进行优先级排序,并将nvmessd磁盘优先级排序结果通知主进程;其中磁盘繁忙程度最低,且磁盘剩余容量最大的nvmessd磁盘优先级最高;
109.磁盘第一分配单元3.2,用于主进程根据nvmessd磁盘优先级排序结果分配第一目标磁盘,以及根据所需副本数量及nvmessd磁盘优先级排序结果分配第二目标磁盘;
110.数据写单元3.3,用于数据写进程向第一目标磁盘写入数据块,并根据所需副本数量启动对应数量的数据拷贝进程;
111.数据拷贝单元3.4,用于各数据拷贝进程向各第二目标磁盘的数据区进行数据块拷贝,并在拷贝完成后通知主进程;
112.元数据写单元3.5,用于主进程启动各元数据写进程,各元数据写进程并行向各nvmessd磁盘的元数据区写入元数据信息;
113.写完成通知单元3.6,用于主进程接收到各元数据写进程的完成信息后,将写完成结果通知客户端;
114.数据读模块4,用于当客户端io请求为io读请求时,工作进程根据nvmessd磁盘优先级排序选择第三目标磁盘,从第三目标磁盘的元数据区读取元数据信息,再根据元数据信息及nvmessd磁盘优先级排序选择第四目标磁盘,从第四目标磁盘的数据区读取数据块,并在数据块一致性校验通过后,向客户端返回;数据读模块4包括:
115.计算进程第二启动单元4.1,用于主进程启动计算进程,根据磁盘繁忙程度以及磁盘剩余容量对各nvmessd磁盘进行优先级排序,并将nvmessd磁盘优先级排序结果通知主进程;其中磁盘繁忙程度最低,且磁盘剩余容量最大的nvmessd磁盘优先级最高;
116.磁盘第二分配单元4.2,用于主进程根据nvmessd磁盘优先级排序结果分配第三目标磁盘;
117.元数据读单元4.3,用于主进程启动元数据读进程,从第三目标磁盘的元数据区读取元数据信息,并根据元数据信息确定目标数据块及其副本所在的各nvmessd磁盘;
118.磁盘第三分配单元4.4,用于主进程接收元数据读进程返回的目标数据块及其副本所在的各nvmessd磁盘,再结合nvmessd磁盘优先级排序选择第四目标磁盘;
119.数据读单元4.5,用于主进程启动数据读进程,从第四目标磁盘读取目标数据块,并对目标数据块进行一致性校验,并在一致性校验通过后,将目标数据块反馈给客户端。
120.尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献