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

存储设备、数据处理方法和存储系统与流程

2021-10-24 09:15:00 来源:中国专利 TAG:数据处理 存储设备 存储系统 方法


1.本技术涉及存储技术领域,特别是涉及一种存储设备、数据处理方法和存储系统。


背景技术:

2.在传统的存储系统(例如图1所示)中,存储设备(也可称为存储器)通过在用户节点cpu中运行软件raid(redundant arrays of independent disks,独立硬盘冗余阵列)、或是通过主机总线适配器hba硬件raid控制器(也称为raid卡)来保证数据的完整性。
3.其中,在用户节点cpu中运行软件raid时会占用该cpu数量可观的系统资源,而用户节点cpu作为存储系统中的性能瓶颈,在其因为运行软件raid而被占用了部分系统资源时,一方面会限制了用户节点能够驱动的jbof/jbod设备的数量,另一方面也对该cpu自身的运算吞吐量有极高的需求,从而推高了整个系统的成本。此外,采用raid算法的存储系统,在经历一段时期的使用后,其整体性能会被越来越多的数据恢复任务拖累,无论是访问需要恢复的数据还是未被损坏的数据,数据读写的效率都会受到影响。
4.另外,市场上的raid控制器会受到其型号或其厂商的限制,能够驱动的硬盘数量十分有限,通常只能驱动8块,最高24块硬盘,这样就限制了存储服务器(即用户节点)的厂商根据差异化的负载需求定制存储设备的能力。


技术实现要素:

5.本发明针对上述不足或缺点,提供了一种存储设备、数据处理方法和存储系统,本发明提供的存储设备能即插即用以及支持混合存储的方式,用户节点无需做任何软件或硬件方面的调整即可使用,而用户节点只能识别到一整块硬盘,因而无需对各物理硬盘的健康状况或运行状态做监控或任何处理,也无需担心数据完整性的问题。
6.本发明根据第一方面提供了一种存储设备,在一个实施例中,该存储设备包括主机总线适配器hba、扩展器expander和多块物理硬盘,该hba和该多块物理硬盘通过该expander连接,
7.该存储设备还包括与该hba连接的中央处理器cpu、以及与该cpu连接的冗余硬盘,该冗余硬盘作为所述存储设备的系统启动盘;
8.该cpu用于将该多块物理硬盘配置为raid阵列,并将该hba虚拟化,以及将该多块物理硬盘虚拟化为一块逻辑硬盘,使得与该存储设备连接的用户节点将该存储设备识别为包括该hba、该expander和该逻辑硬盘的存储设备。
9.在一个实施例中,该cpu还用于在接收到任一该物理硬盘发送给该用户节点的s.m.a.r.t.信息时,对接收到的s.m.a.r.t.信息进行处理,将处理后的s.m.a.r.t.信息发送给该用户节点。
10.在一个实施例中,该cpu还用于对各该物理硬盘的健康状态和运行状态进行监控,在监控到任一该物理硬盘出现数据损坏时,执行raid算法或ec算法对损坏的数据进行修复。
11.在一个实施例中,该cpu还用于在监控到该多块物理硬盘中的出现故障的硬盘数量达到预设阈值时,向该用户节点发送警告信息。
12.在一个实施例中,该存储设备为jbof设备或jobd设备。
13.在一个实施例中,该存储设备中包括的物理硬盘的类型为smr机械硬盘或zns固态硬盘。
14.在一个实施例中,该cpu还用于:
15.获取该用户节点指示随机写入的待存储数据;
16.按照预设zone大小信息将该待存储数据打包为数据包;
17.以顺序写入的方式将打包得到的数据包写入该多个物理硬盘。
18.在一个实施例中,该冗余硬盘为固态硬盘,该冗余硬盘为该存储设备的系统启动盘。
19.在一个实施例中,该冗余硬盘为nvme ssd硬盘。
20.在一个实施例中,该cpu通过pcie接口与该冗余硬盘和该hba连接,该hba和该expander通过sas接口连接,该expander和该多块物理硬盘通过sas接口连接,该存储设备和该用户节点通过sas接口连接。
21.本发明根据第三方面提供了一种数据处理方法,在一个实施例中,该方法应用于设置在存储设备的中央处理器cpu,该存储设备包括该cpu、冗余硬盘、主机总线适配器hba、扩展器expander和多块物理硬盘,该方法包括:
22.将该多块物理硬盘配置为raid阵列;
23.将该hba虚拟化,以及将该多块物理硬盘虚拟化为一块逻辑硬盘,使得与该存储设备连接的用户节点将该存储设备识别为包括该hba、该expander和该逻辑硬盘的存储设备。
24.在一个实施例中,该方法还包括:在接收到任一该物理硬盘发送给该用户节点的s.m.a.r.t.信息时,对接收到的s.m.a.r.t.信息进行处理,将处理后的s.m.a.r.t.信息发送给该用户节点。
25.在一个实施例中,该方法还包括:对各该物理硬盘的健康状态和运行状态进行监控,在监控到任一该物理硬盘出现数据损坏时,执行raid算法或ec算法对损坏的数据进行修复。
26.在一个实施例中,该方法还包括:在监控到该多块物理硬盘中的出现故障的硬盘数量达到预设阈值时,向该用户节点发送警告信息。
27.在一个实施例中,该方法还包括:
28.获取该用户节点指示随机写入的待存储数据;
29.按照预设zone大小信息将该待存储数据打包为数据包;
30.以顺序写入的方式将打包得到的数据包写入该多个物理硬盘。
31.本发明根据第三方面提供了一种存储系统,该存储系统包括存储设备、和连接该存储设备的用户节点,该存储设备为前述任一项实施例所提供的存储设备。
32.本发明实施例提供的存储设备,相比传统存储设备,增设了与主机总线适配器hba连接的中央处理器cpu和连接该cpu的存储有计算机程序的冗余硬盘,通过cpu执行该计算机程序来实现将存储设备中的物理硬盘配置为raid阵列,将该hba虚拟化,以及将存储设备中的物理硬盘虚拟化为一块逻辑硬盘,使得与存储设备连接的用户节点识别不出存储设备
中的cpu和冗余硬盘,用户节点识别到的存储设备与其连接传统存储设备时所识别到的一样,包含该hba、扩展器expander和一块存储空间超大的硬盘,因而本发明实施例提供的存储设备可以实现即插即用,用户节点无需做任何软件或硬件方面的调整即可使用存储设备,并且用户节点无法识别出存储设备中包含的物理硬盘,而只能识别到cpu配置后的一整块硬盘,因而用户节点无需对存储设备中的各物理硬盘的健康状况或运行状态做监控或任何处理,也无需担心数据完整性的问题,此外,用户节点的厂商可以根据差异化的负载需求定制存储设备的能力。
附图说明
33.图1为传统的存储系统的示意图;
34.图2为一个实施例中由存储设备中cpu执行的步骤的示意图;
35.图3

1为一个实施例中提供的存储设备的架构示意图;
36.图3

2为一个实施例中用户节点识别到的存储设备的架构示意图
37.图4为另一个实施例中由存储设备中cpu执行的步骤的示意图;
38.图5为又一个实施例中由存储设备中cpu执行的步骤的示意图。
具体实施方式
39.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅用以解释本技术,并不用于限定本技术。
40.在传统的存储系统中,为了保证存储设备中数据的完整性,一种方式是在用户节点cpu中运行软件raid,另一种方式是增设raid控制器。然而对于前一种方式,在用户节点cpu中运行软件raid时会占用该cpu数量可观的系统资源,而用户节点cpu作为存储系统中的性能瓶颈,在其因为运行软件raid而被占用了部分系统资源时,一方面会限制了用户节点能够驱动的jbof/jbod设备的数量,另一方面也对该cpu自身的运算吞吐量有极高的需求,从而推高了整个系统的成本。此外,采用raid算法的存储系统,在经历一段时期的使用后,其整体性能会被越来越多的数据恢复任务拖累,无论是访问需要恢复的数据还是未被损坏的数据,数据读写的效率都会受到影响。而对于后一种方式,市场上的raid控制器会受到其型号或其厂商的限制,无法支持混合存储的方式,并且这种方式能够驱动的硬盘数量十分有限,通常只能驱动8块,最高24块硬盘,这样就限制了存储服务器(即用户节点)的厂商根据差异化的负载需求定制存储设备的能力。为此,本发明提供了一种存储设备。
41.在一个实施例中,本发明提供的存储设备包括主机总线适配器hba、扩展器expander和多块物理硬盘,该hba和该多块物理硬盘通过该expander连接,该存储设备还包括与该hba连接的中央处理器cpu、以及与该cpu连接的冗余硬盘,该冗余硬盘作为该存储设备的系统启动盘。
42.其中,该cpu用于执行图2所示的步骤:
43.s110:将该多块物理硬盘配置为raid阵列;
44.s120:将该hba虚拟化,以及将该多块物理硬盘虚拟化为一块逻辑硬盘,使得与该存储设备连接的用户节点将该存储设备识别为包括该hba、该expander和该逻辑硬盘的存
储设备。
45.其中,该存储设备中的hba用于启动和初始化存储设备中的物理硬盘,expander用于扩展hba能够驱动的硬盘数量。用户节点可以是存储服务器。
46.本发明实施例针对现有技术的不足,提供了一种低成本、高效率、高度灵活的解决方案。如图3

1所示,本发明实施例在传统存储设备原有架构的基础上,增设了与主机总线适配器hba连接的中央处理器cpu和连接该cpu的存储有计算机程序的冗余硬盘,该cpu执行该计算机程序即可实现将存储设备中的物理硬盘配置为raid阵列,以及通过虚拟化技术将存储设备中的hba和硬盘虚拟化,也就是将原本需要依靠用户节点cpu执行的用于实现raid阵列的工作移至存储设备中的cpu执行,以及利用虚拟化技术使得用户节点的操作系统识别到的存储设备与其以往连接的传统存储设备是一样的(例如图3

2所示),即用户节点的操作系统不会识别出存储设备中增设的cpu和冗余硬盘,而只是识别到存储设备中的hba和expander、以及一块存储空间超大的硬盘(为了方便区分,将存储设备中实际存在的硬盘称为物理硬盘,将用户节点识别到的硬盘称为逻辑硬盘),这样用户节点无需做任何软件或硬件方面的调整即可使用存储设备,并且由于用户节点识别到的一块硬盘,因而无需对存储设备中的各硬盘的健康状况或运行状态做监控或任何处理,也无需担心数据完整性的问题(即用于实现raid阵列的工作,该工作现由存储设备中的cpu独立完成),从而将用户节点cpu从繁杂的硬盘设备监控和数据恢复任务中解放出来,同时,传统存储设备通过raid控制器能够驱动的硬盘数量会受raid控制器型号或厂商的限制,通常只能驱动8块,最高24块硬盘,而本实施例的存储设备则是通过存储设备本地的cpu来驱动硬盘,这种方式能够驱动更多的硬盘(理论上不受限制),从而客户可以根据差异化的负载需求定制存储设备的硬件配置,进而在存储设备的基础上灵活搭建任何形式的存储系统(例如file,block,object等)。
47.在一个实施例中,该存储设备为jbof设备或jobd设备。其中,jbod全称为just a bunch of disks,中文名称可称为磁盘簇;jbof全称为just a bunch of flash,中文名称可称为闪存簇。
48.该存储设备在使用时通过sas接口连接用户节点,存储设备中的cpu负责处理所有数据、设备错误处理、数据重建、数据编码/解码等工作。其中包括处理所有来自用户节点的信息和存储设备中的各物理硬盘发出的信息。该来自用户节点的信息可以包括用户节点发出的随机写入指令、随机读取指令、顺序写入指令和顺序读取指令中的一项或多项。存储设备中的各物理硬盘发出的信息会在存储设备中的expander和hba的控制下传输至cpu,具体可以通过为该hba和expander编写固件的方式来让hba和expander将各物理硬盘发出的信息传输到存储设备中的cpu。假如物理硬盘发出的信息是要发送给用户节点的,那么cpu会接收到该信息后再将该信息发送给用户节点,cpu可以根据该信息的类型来对该信息进行相应的处理,处理之后再发送给用户节点。
49.示例性地,物理硬盘发出的信息可以是s.m.a.r.t.信息,该cpu可以通过执行冗余硬盘中存储的计算机程序来实现以下步骤:在接收到任一该物理硬盘发送给该用户节点的s.m.a.r.t.信息时,对接收到的s.m.a.r.t.信息进行处理,将处理后的s.m.a.r.t.信息发送给该用户节点。其中,s.m.a.r.t全称“self

monitoring analysis and reporting technology”,中文名称为“自我检测、分析及报告技术”,其是应用于硬盘中的一种数据安全技术,在硬盘工作时,监测系统对硬盘中的电机、电路、磁盘、磁头的运行状态进行分析,
当确认出现异常时就会发出警告。
50.进一步地,存储设备中的物理硬盘可以采用常见的机械硬盘(hdd),固态硬盘(ssd),也可以采用smr机械硬盘或zns固态硬盘;存储设备中的冗余硬盘为固态硬盘,该冗余硬盘用于作为该存储设备的系统启动盘,这样cpu不会受到用户节点的bios(basic input output system,基本输入输出系统)的限制。进一步地,该冗余硬盘可以是nvme(non

volatit controller interface,高级主机控制接口)ssd硬盘。存储设备中的cpu可以分别通过pcie接口与冗余硬盘和hba连接,hba和expander之间可以通过sas接口连接,该expander和该多块物理硬盘可以通过sas接口连接。
51.在一个实施例中,在存储设备中的物理硬盘的类型为smr机械硬盘或zns固态硬盘时,该cpu还用于执行图4所示的步骤:
52.s210:获取该用户节点指示随机写入的待存储数据;
53.s220:按照预设zone大小信息将待存储数据打包为数据包;
54.s230:以顺序写入的方式将打包得到的数据包写入该多个物理硬盘。
55.其中,预设zone大小信息用于限定数据包的大小,数据包的大小可以以smr机械硬盘或zns固态硬盘厂商所定义的zone的大小为准。待存储数据是指用户节点发出的随机写入指令关联的写入数据。
56.在本实施例中,由于smr机械硬盘或zns固态硬盘要求数据必须以顺序方式写入硬盘(数据读取不受影响),因此,存储设备中的cpu在接收到来自用户节点的随机写入指令后,先按照预设zone大小信息将待存储数据打包成较大的数据包,再以顺序写入的方式将打包好的数据表写入硬盘,这样可以抵消smr机械硬盘或zns固态硬盘的随机写入劣势,从而最大化smr机械硬盘或zns固态硬盘的存储密度和省电优势(相较普通硬盘拥有约20%的存储密度提升),提高了写入效率和存储空间利用率,充分发挥了smr机械硬盘或zns固态硬盘容量大的特点,同时避免掉入随机写的性能陷阱。
57.在一个实施例中,通过存储设备中的cpu来执行预设的raid算法,以将存储设备包含的物理硬盘配置为raid阵列。cpu会建立并维护raid阵列中的逻辑地址至各物理硬盘中的物理地址之间的映射关系,cpu可以在接收到用户节点的用于读取数据的指令(如顺序读取指令或随机读取指令)时,通过该映射关系找到该指令相关联的逻辑地址所对应的物理地址,进而可以从该物理地址读取到该指令要读取的数据。其中,raid阵列是指独立冗余磁盘阵列,可简称为磁盘阵列。raid阵列的级别可以根据实际场景的需求来调整,比如可以是raid1

raid6、raid10、raid50等。本实施例通过增设的cpu来实现raid阵列,能够提高空间利用率,系统固定的开销小于存储设备所有物理设备的裸容量的30%。
58.通过存储设备中的cpu将各物理硬盘配置为一整块超大的存储空间,这样用户节点只需要根据cpu提供的地址空间来发起相关操作(比如读取数据、写入数据等),而不需要管理存储设备中各物理硬盘。其中,cpu会对存储设备中的各物理硬盘进行管理,包括监控各物理硬盘的运行状态、健康状态、可用存储空间等等。具体地,cpu在为用户节点提供服务之前,首先需要对存储设备中的各物理硬盘进行划分地址等一系列工作,以raid阵列的级别的raid5为例,cpu可以先对物理硬盘分配地址、划分条带,地址的分配最小的粒度是分块,每个分块上标记的阿拉伯数字就是raid系统为其分配的地址,该地址可称为阵列内地址或块内偏移,用户节点就是根据cpu为其提供的阵列内地址来发起相关操作。
59.在一个实施例中,该cpu还用于执行如图5所示的步骤:
60.s310:对存储设备中的各物理硬盘的健康状态和运行状态进行监控;
61.s320:在监控到任一该物理硬盘出现数据损坏时,执行raid算法或ec(纠删码)算法对损坏的数据进行修复。
62.本实施例中,当数据损坏或硬盘宕机发生时,cpu将自动发起数据修复和存储空间调整,用户节点的操作系统不需要对存储设备中的已损坏的设备做任何操作或管理,这样用户节点的读写效率不会受到影响,而机房/数据中心的运维人员也不需要对已损坏的设备做拆卸、替换等操作,历史数据显示,80%的系统宕机来自于人为错误,因而这样可以显著降低因人为错误所导致的存储系统宕机的概率。
63.进一步地,该cpu还用于执行以下步骤:在监控到该多块物理硬盘中的出现故障的硬盘数量达到预设阈值时,向该用户节点发送警告信息。
64.本实施例中,当cpu发现存储设备中积累了足够多的故障硬盘时,可以自行向用户节点发出警告,使其可以及时启动数据备份工作;同时it运维人员也可以做出更换硬件设备的安排,防止该存储设备出现可用逻辑存储空间小于设计值的情况发生。
65.基于相同的发明构思,本发明还提供了一种数据处理方法,在一个实施例中,该方法应用于设置在存储设备的中央处理器cpu,该存储设备包括该cpu、冗余硬盘、主机总线适配器hba、扩展器expander和多块物理硬盘,该方法包括:
66.将该多块物理硬盘配置为raid阵列;
67.将该hba虚拟化,以及将该多块物理硬盘虚拟化为一块逻辑硬盘,使得与该存储设备连接的用户节点将该存储设备识别为包括该hba、该expander和该逻辑硬盘的存储设备。
68.在一个实施例中,该方法还包括:在接收到任一该物理硬盘发送给该用户节点的s.m.a.r.t.信息时,对接收到的s.m.a.r.t.信息进行处理,将处理后的s.m.a.r.t.信息发送给该用户节点。
69.在一个实施例中,该方法还包括:对各该物理硬盘的健康状态和运行状态进行监控,在监控到任一该物理硬盘出现数据损坏时,执行raid算法或ec算法对损坏的数据进行修复。
70.在一个实施例中,该方法还包括:在监控到该多块物理硬盘中的出现故障的硬盘数量达到预设阈值时,向该用户节点发送警告信息。
71.在一个实施例中,该方法还包括:
72.获取该用户节点指示随机写入的待存储数据;
73.按照预设zone大小信息将该待存储数据打包为数据包;
74.以顺序写入的方式将打包得到的数据包写入该多个物理硬盘。
75.关于上述各方法实施例中提供的数据处理方法的相关说明可参见前述关于存储设备实施例中的描述,在此不再赘述。
76.基于相同的发明构思,本发明还提供了一种存储系统,该存储系统包括存储设备和连接该存储设备的用户节点,该存储设备为前述任一实施例所提供的存储设备。
77.本领域普通技术人员可以理解实现上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,
本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
78.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
79.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜