存储设备、存储方法、计算设备及存储介质与流程

未命名 09-09 阅读:100 评论:0


1.本技术涉及计算机存储技术领域,特别涉及一种存储设备、存储方法、计算设备及存储介质。


背景技术:

2.随着硬件生产工艺的发展,计算设备中各类硬件的精密度也越来越高,随之而来的,是硬件的可靠性降低的问题,例如,硬件生产制程缩小导致脏污残留对硬件的影响变大。
3.计算设备经常被作为存储设备,应用于数据存储系统中,目前,业界常用的存储设备通常是在一个物理机上运行一套操作系统(operating system,os),且该操作系统基于物理机底层的中央处理器(central processing unit,cpu)、内存以及外部设备等硬件资源运行。
4.但是,基于上述架构的存储设备,在硬件的可靠性降低导致发生故障的情况下,例如,多核cpu中的某个cpu内核发生故障,会触发cpu控制器复位,导致访问任务受到影响,使得设备的可靠性大大降低。


技术实现要素:

5.本技术提供了一种存储设备、存储方法、计算设备及存储介质,能够有效提升设备的可靠性。该技术方案如下:
6.第一方面,提供了一种存储设备,所述存储设备包括管理设备和硬件资源,所述硬件资源分为多个硬件资源组,每个所述硬件资源组上运行有一套操作系统;所述管理设备用于:
7.当所述多个硬件资源组中的第一硬件资源组故障,将所述第一硬件资源组运行的第一操作系统执行的访问任务迁移到所述多个硬件资源组中的第二硬件资源组,由所述第二硬件资源组运行的第二操作系统执行所述访问任务。
8.其中,硬件资源包括存储设备的内存、cpu和外部设备,例如,该存储设备的内存可以是双列直插内存模块(dual inline memory module,dimm),该存储设备的外部设备包括外部存储器、网卡以及显示器等设备。
9.通过上述技术方案,保证了数据存储系统的单个节点中多个操作系统之间的故障隔离,在设备发生故障的情况下,可以将访问任务迁移到互相隔离的其他操作系统中继续执行,而不会触发控制器复位,达到了前端对故障无感知的效果,大大提升了设备的可靠性。
10.在一种可能实施方式中,所述第一硬件资源组和所述第二硬件资源组的规格相同。
11.通过上述技术方案,使得各个操作系统的数据处理能力均衡,保证故障发生时设备的可用性。
12.在一种可能实施方式中,所述管理设备还用于:监控所述多个硬件资源组的状态。
13.通过上述技术方案,通过管理设备监控硬件资源,可以合理规划存储设备的硬件资源,并能够及时地发现硬件资源组以及硬件资源组运行的操作系统的故障,进一步提升了设备的可靠性。
14.在一种可能实施方式中,所述存储设备还包括网卡,所述网卡支持单根输入输出虚拟化sr-iov功能,所述网卡的第一虚拟功能vf分配给所述第一硬件资源组,所述网卡的第二虚拟功能vf分配给所述第二硬件资源组。
15.通过上述技术方案,使用硬件共享技术将网卡虚拟分配给各个硬件资源组,从而为各个硬件资源组运行的操作系统提供可靠的物理通信资源,基于此,保证了各个操作系统在硬件资源上的相互隔离,有效提升了设备的可靠性。
16.在一种可能实施方式中,所述管理设备还用于接收所述第一硬件资源组发送的故障信息;所述故障信息指示所述第一操作系统发生故障。
17.通过上述技术方案,第一操作系统能够通过故障信息的方式,及时地将访问任务中断的情况告知目标服务器,以进行操作系统的切换,从而实现访问任务的迁移,以前端无感知的方式保证了业务的连续性,有效提升了设备的可靠性。
18.在一种可能实施方式中,所述管理设备还用于接收所述第二操作系统发送的第一接管请求,所述第一接管请求用于接管所述第一操作系统执行的访问任务。
19.在一种可能实施方式中,所述第二操作系统,用于若在第一时长内未接收到所述第一操作系统的心跳消息,则确定所述第一操作系统发生故障。
20.其中,该心跳消息是指发送方定时发送的消息,接收方接收到该心跳消息,则能够确定该发送方处于运行状态。
21.通过上述技术方案,各个操作系统之间能够互相感知,从而在任一操作系统发生故障的情况下,未发生故障的操作系统能够快速响应,主动发起接管请求,以灵活的方式保证业务的连续性,在有效提升设备的可靠性的同时,提升了存储设备的可用性。
22.在一种可能实施方式中,所述管理设备还用于接收所述第一操作系统故障恢复后发送的第二接管请求,所述第二接管请求指示接管已经迁移至所述第二操作系统的所述访问任务。
23.通过上述技术方案,第一操作系统在故障排除之后,能够重新接管迁移至第二操作系统中执行的访问任务,以减轻第二操作系统的负载,保证存储设备中各个操作系统之间的负载均衡,进一步保障存储设备的可用性,有效提升了设备的可靠性。
24.在一种可能实施方式中,所述管理设备对应于一个目标硬件资源组,所述管理设备用于对所述多套操作系统进行配置。
25.通过上述技术方案,在管理设备出现故障的情况下,目标硬件资源组以外的硬件资源组不会受到影响,使得该硬件资源组运行的操作系统能够正常执行访问任务,降低了管理设备对业务进程的影响,实现管理侧与业务侧的解耦,有效提升了存储设备的稳定性与可靠性。
26.在一种可能实施方式中,所述管理设备,还用于若在第二时长内未接收到所述第一操作系统的心跳消息,则确定所述第一操作系统发生故障。
27.在一种可能实施方式中,所述管理设备,还用于在所述第一操作系统故障恢复后,
拉起所述第一操作系统。
28.在一种可能实施方式中,所述目标硬件资源组所包括的硬件资源少于所述硬件资源组。
29.上述技术方案中,该管理设备对应的目标硬件资源组所包括的硬件资源少于上述硬件资源组。因此,提供管理与配置功能的管理设备受硬件故障影响的可能性会大大降低,从而有效提升了存储设备的可靠性。
30.在一种可能实施方式中,所述目标硬件资源组包括内存的一部分和cpu的一部分;所述硬件资源组包括内存的一部分、cpu的一部分和外部设备的一部分。
31.第二方面,提供了一种存储方法,应用于存储设备中,所述存储设备包括管理设备和硬件资源,所述硬件资源分为多个硬件资源组,每个所述硬件资源组上运行有一套操作系统;
32.所述方法包括:
33.当所述多个硬件资源组中的第一硬件资源组故障,将所述第一硬件资源组运行的第一操作系统执行的访问任务迁移到所述多个硬件资源组中的第二硬件资源组,由所述第二硬件资源组运行的第二操作系统执行所述访问任务。
34.其中,硬件资源包括存储设备的内存、cpu和外部设备,例如,该存储设备的内存可以是双列直插内存模块(dual inline memory module,dimm),该存储设备的外部设备包括外部存储器、网卡以及显示器等设备。
35.通过上述技术方案,保证了数据存储系统的单个节点中多个操作系统之间的故障隔离,在设备发生故障的情况下,可以将访问任务迁移到互相隔离的其他操作系统中继续执行,而不会触发控制器复位,达到了前端对故障无感知的效果,大大提升了设备的可靠性。
36.在一种可能实施方式中,所述第一硬件资源组和所述第二硬件资源组的规格相同。
37.通过上述技术方案,使得各个操作系统的数据处理能力均衡,保证故障发生时设备的可用性。
38.在一种可能实施方式中,所述方法还包括:所述管理设备监控所述多个硬件资源组的状态。
39.通过上述技术方案,通过管理设备监控硬件资源,可以合理规划存储设备的硬件资源,并能够及时地发现硬件资源组以及硬件资源组运行的操作系统的故障,进一步提升了设备的可靠性。
40.在一种可能实施方式中,所述存储设备还包括网卡,所述网卡支持单根输入输出虚拟化sr-iov功能,所述网卡的第一虚拟功能vf分配给所述第一硬件资源组,所述网卡的第二虚拟功能vf分配给所述第二硬件资源组。
41.通过上述技术方案,使用硬件共享技术将网卡虚拟分配给各个硬件资源组,从而为各个硬件资源组运行的操作系统提供可靠的物理通信资源,基于此,保证了各个操作系统在硬件资源上的相互隔离,有效提升了设备的可靠性。
42.在一种可能实施方式中,所述方法还包括:所述管理设备接收所述第一硬件资源组发送的故障信息;所述故障信息指示所述第一操作系统发生故障。
43.通过上述技术方案,第一操作系统能够通过故障信息的方式,及时地将访问任务中断的情况告知目标服务器,以进行操作系统的切换,从而实现访问任务的迁移,以前端无感知的方式保证了业务的连续性,有效提升了设备的可靠性。
44.在一种可能实施方式中,所述方法还包括:所述管理设备接收所述第二操作系统发送的第一接管请求,所述第一接管请求用于接管所述第一操作系统执行的访问任务。
45.在一种可能实施方式中,所述方法还包括:所述第二操作系统若在第一时长内未接收到所述第一操作系统的心跳消息,则确定所述第一操作系统发生故障。
46.其中,该心跳消息是指发送方定时发送的消息,接收方接收到该心跳消息,则能够确定该发送方处于运行状态。
47.通过上述技术方案,各个操作系统之间能够互相感知,从而在任一操作系统发生故障的情况下,未发生故障的操作系统能够快速响应,主动发起接管请求,以灵活的方式保证业务的连续性,在有效提升设备的可靠性的同时,提升了存储设备的可用性。
48.在一种可能实施方式中,所述方法还包括:所述管理设备接收所述第一操作系统故障恢复后发送的第二接管请求,所述第二接管请求指示接管已经迁移至所述第二操作系统的所述访问任务。
49.通过上述技术方案,第一操作系统在故障排除之后,能够重新接管迁移至第二操作系统中执行的访问任务,以减轻第二操作系统的负载,保证存储设备中各个操作系统之间的负载均衡,进一步保障存储设备的可用性,有效提升了设备的可靠性。
50.在一种可能实施方式中,所述管理设备对应于一个目标硬件资源组,所述方法还包括:所述管理设备对所述多个硬件资源组进行配置。
51.通过上述技术方案,在管理设备出现故障的情况下,目标硬件资源组以外的硬件资源组不会受到影响,使得该硬件资源组运行的操作系统能够正常执行访问任务,降低了管理设备对业务进程的影响,实现管理侧与业务侧的解耦,有效提升了存储设备的稳定性与可靠性。
52.在一种可能实施方式中,所述方法还包括:
53.所述管理设备若在第二时长内未接收到所述第一操作系统的心跳消息,则确定所述第一操作系统发生故障。
54.在一种可能实施方式中,所述方法还包括:
55.所述管理设备在所述第一操作系统故障恢复后,拉起所述第一操作系统。
56.在一种可能实施方式中,所述目标硬件资源组所包括的硬件资源少于所述硬件资源组。
57.上述技术方案中,该管理设备对应的目标硬件资源组所包括的硬件资源少于上述硬件资源组。因此,提供管理与配置功能的管理设备受硬件故障影响的可能性会大大降低,从而有效提升了存储设备的可靠性。
58.在一种可能实施方式中,所述目标硬件资源组包括内存的一部分和cpu的一部分;所述硬件资源组包括内存的一部分、cpu的一部分和外部设备的一部分。
59.第三方面,提供了一种计算设备,所述计算设备包括管理设备和硬件资源,所述硬件资源分为多个硬件资源组,所述硬件资源包括处理器和存储器,所述存储器用于存储所述管理设备和每个所述硬件资源组对应的至少一段程序代码,所述至少一段程序代码由所
述处理器加载并执行如第二方面所述的存储方法。
60.第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储至少一段程序代码,所述至少一段程序代码用于执行如第二方面所述的存储方法。
61.第五方面,提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如第二方面所述的存储方法。
附图说明
62.图1是本技术实施例提供的一种实施环境的示意图;
63.图2是本技术实施例提供的一种计算设备的硬件结构示意图;
64.图3是本技术实施例提供的一种存储设备的架构示意图;
65.图4是本技术实施例提供的一种硬件共享的示意图;
66.图5是本技术实施例提供的一种存储方法的流程图;
67.图6是本技术实施例提供的一种操作系统切换过程的示意图;
68.图7是本技术实施例提供的一种存储方法的流程图。
具体实施方式
69.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
70.图1是本技术实施例提供的一种实施环境的示意图,参见图1,该实施环境包括存储设备110、存储单元120以及目标服务器130。其中,存储设备110用于为目标服务器130提供数据存储服务,存储设备110基于从目标服务器130接收到的访问任务,将数据写入存储单元120,或者,从存储单元120中读取数据并返回给目标服务器130。
71.其中,存储设备110包括管理设备和硬件资源,该硬件资源分为多个硬件资源组,每个硬件资源组上运行有一套操作系统。在一些实施例中,存储设备110通过将多个目标服务器130的访问任务分别下发至多个硬件资源组运行的多套操作系统中执行,来并行地为多个目标服务器130提供数据存储服务。在一些实施例中,该访问任务包括针对存储单元120中所存储数据的数据读写指令。
72.在一些实施例中,上述硬件资源包括cpu、内存以及外部设备。在一些实施例中,该外部设备包括网络接口卡(network interface card,nic)。网络接口卡简称网卡,也称网络适配器,是一种插在计算设备(如服务器)扩展槽内的扩展卡,用于将计算设备接入网络。可选地,网卡与物理传输介质(如双绞线、同轴电缆或光纤)相连,通过网络传输介质与网络交换数据。在一些实施例中,网卡可以是无线网卡,能够在无线局域网的覆盖范围内无线连接到网络。网络通常为因特网、但也能够是任何网络,包括但不限于局域网(local area network,lan)、城域网(metropolitan area network,man)、广域网(wide area network,wan)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合,本技术实施例对此不做限定。
73.可选地,上述网络接口卡是支持高速串行计算机扩展总线标准(peripheral component interconnect express,pcie)的pcie卡。pcie卡支持高速串行点对点双通道高带宽传输,连接在pcie卡上的各个设备被分配独立的通道带宽来进行数据传输,不共享总
线带宽。
74.在一些实施例中,该存储设备110与存储单元120之间、存储设备110与目标服务器130之间,能够通过有线网络或者无线网络方式通信连接,该无线网络或有线网络使用标准通信技术和/或协议。例如,该存储设备110通过第一网卡,从目标服务器130接收到访问任务,按照该访问任务指示的数据读写指令,通过第二网卡对存储单元120进行数据读写。
75.在一些实施例中,存储单元120是由多个分散的存储资源构成的分布式存储设备,也即是,通过网络连接将多个物理机上的存储资源进行整合所构建出的虚拟的存储设备。可选地,该存储单元120可以包括固态硬盘、机械硬盘或其他类型存储介质,本技术实施例对此不作限定。
76.在介绍了上述实施环境和设备架构的基础上,接下来对本技术实施例的应用场景进行介绍。
77.本技术实施例提供的存储设备能够作为数据存储系统中,连接目标服务器与存储单元的节点,例如,用于管理和控制存储资源的存储服务器,该存储服务器能够对所连接的磁盘阵列(也即是存储单元)进行管理,从而高效地为客户主机(也即是目标服务器)提供可靠的数据存储服务。
78.图2是本技术实施例提供的一种计算设备的硬件结构示意图,参见图2,该计算设备200能够作为上述数据存储系统中的存储设备、存储单元和目标服务器。其中,计算设备200可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,cpu)201和一个或一个以上的存储器202,上述处理器201和存储器202统称为硬件资源。
79.其中,处理器201可以是网络处理器(network processor,np)、中央处理器(central processing unit,cpu)、特定应用集成电路(application-specific integrated circuit,asic)或用于控制本技术方案程序执行的集成电路。该处理器201可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。存储器202可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其它类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。其中,处理器201和存储器202可以分离设置,也可以集成在一起。当然,该计算设备200还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该计算设备200还可以包括其他用于实现设备功能的部件,在此不做赘述。
80.在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由计算设备中的处理器执行以完成下述实施例中的存储方法。例如,该计算机可读存储介质可以是只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、只读光盘(compact disc read-only memory,cd-rom)、磁带、软盘和光数据存储设备等。
81.接下来对本技术实施例提供的存储设备进行介绍。
82.图3是本技术实施例提供的一种存储设备的架构示意图,参见图3,其中,存储设备300包括管理设备和硬件资源,该硬件资源分为多个硬件资源组,每个硬件资源组上运行有一套操作系统。
83.其中,该硬件资源包括该存储设备300的内存、cpu和外部设备。在一些实施例中,该存储设备300的内存可以是双列直插内存模块(dual inline memory module,dimm),dimm的各个信号通路之间独立传输信号,因此可以满足复杂场景下多路数据信号的传输需求。在一些实施例中,该存储设备300的外部设备包括外部存储器、网卡以及显示器等设备。
84.参见图3,该硬件资源包括多个硬件资源组,每个硬件资源组包括该硬件资源中的一部分硬件资源。其中,每个硬件资源组上运行有一套操作系统,因此,该多个硬件资源组对应于多套操作系统。该多套操作系统包括第一硬件资源组310运行的第一操作系统320和第二硬件资源组330运行的第二操作系统340。其中,该管理设备350对应于硬件资源包括的一个目标硬件资源组360,该目标硬件资源组360包括存储设备300的硬件资源中内存的一部分和cpu的一部分。
85.其中,第一操作系统320对应的第一硬件资源组310则包括:内存的一部分,例如,第一操作系统320所占用的内存条311;cpu的一部分,例如,多核cpu中第一操作系统320所占用的cpu内核312;外部设备的一部分,例如,第一操作系统320所占用的外部存储器313。在一些实施例中,该多个硬件资源组所包括的硬件资源的规格相同,例如,每个硬件资源组都包括相同数量的cpu内核、相同大小的内存空间以及相同数量的外部存储器。基于此,使得各个操作系统的数据处理能力均衡,保证故障发生时设备的可用性。
86.当然,根据不同的业务处理需求以及硬件资源的实际情况,能够对各个硬件资源组所包括的实际硬件资源进行相应的调整,例如,为了提升某一个操作系统的数据处理能力,增加其对应的硬件资源组包括的内存,而其余硬件资源组所包括的内存保持相同,本技术实施例对此不做限定。
87.在一些实施例中,基于互相隔离的硬件资源组,各个操作系统的内核态进程分别运行在独立的内核空间中,并在各自对应的上层用户空间中运行用户态进程,例如,数据运算进程和控制进程等,参见图3。
88.可以理解地,该管理设备对应的目标硬件资源组所包括的硬件资源少于上述硬件资源组。基于此,提供管理与配置功能的管理设备受硬件故障影响的可能性会大大降低,从而有效提升了存储设备的可靠性。
89.在一些实施例中,该管理设备350用于对该多套操作系统进行配置。其中,初始的配置过程包括:根据业务处理需求划分存储设备300的硬件资源,得到多个硬件资源组;将硬件资源组配置给各个操作系统。可选地,各个操作系统经过初始的配置之后,将自身的配置信息持久化至对应的内存中,便于操作系统在重启之后能够直接读取。
90.在一些实施例中,该管理设备350还用于监控上述多个硬件资源组的状态。该管理设备通过监控硬件资源组包括的cpu、内存以及外部设备等硬件资源使用情况,能够及时地发现硬件资源组是否达到性能瓶颈或发生故障。在另一些实施例中,该管理设备监控进程消耗硬件资源的情况,以及时地了解各个硬件资源组运行的操作系统的运行状态,例如,是否发生故障。通过上述技术方案,通过管理设备监控硬件资源,可以合理规划存储设备的硬
件资源,并能够及时地发现硬件资源组以及硬件资源组运行的操作系统的故障,进一步提升了设备的可靠性。
91.在一些实施例中,管理设备350的配置过程还包括对外部设备的分配,例如,该外部设备包括网卡,在由管理设备驱动网卡的示例下,管理设备基于硬件共享技术,将网卡提供的物理通信资源分配给上述多套操作系统。在一些实施例中,网卡是支持单根输入输出虚拟化技术(single root i/o virtualization,sr-iov)的pcie设备,通过运行在管理设备中的sr-iov管理驱动程序,能够基于pcie设备虚拟化出多个可用的虚拟功能(virtualization function,vf),并将虚拟功能分配给相应的硬件资源组,使相应硬件资源组运行的操作系统无需通过管理设备的驱动,即可直接访问pcie设备,以接收访问任务。可选地,将虚拟功能分配给操作系统的方式包括:建立虚拟功能的编号和操作系统的信息之间的映射关系;以配置信息的方式在该操作系统对应的内存中存储该映射关系。在一些实施例中,该操作系统的信息可以是操作系统的序列号,本技术实施例对此不做限定。通过上述技术方案,使用硬件共享技术将网卡虚拟分配给各个硬件资源组,从而为各个硬件资源组运行的操作系统分别提供可靠的物理通信资源,基于此,保证了各个操作系统在硬件资源上的相互隔离,有效提升了设备的可靠性。
92.为了便于理解,本技术实施例提供了一种硬件共享的示意图,参见图4,由管理设备驱动支持sr-iov的pcie设备。管理设备中运行的sr-iov管理驱动程序用于将该pcie设备提供的物理功能(physical functions,pf)虚拟化为n个vf,并通过映射的方式,指定给各个硬件资源组运行的操作系统,其中,n为正整数。参见图4,操作系统1能够使用vf0来访问pcie设备,操作系统2能够使用vf1来访问pcie设备,该操作系统1与操作系统2中都运行有设备管理进程,用于管理通过vf访问到的pcie设备。
93.通过上述的配置过程,操作系统即可接收并执行访问任务,并且,在管理设备出现故障的情况下,目标硬件资源组以外的硬件资源组不会受到影响,使得该硬件资源组运行的操作系统能够正常执行访问任务,降低了管理设备对业务进程的影响,实现管理侧与业务侧的解耦,有效提升了存储设备的稳定性与可靠性。
94.在一些实施例中,该管理设备在基于多个硬件资源组配置多套操作系统之后,将各个操作系统拉起,也即是,将各个操作系统设置为运行状态,使得各个操作系统能够接收并执行访问任务。
95.为了便于理解上述存储设备执行访问任务的过程,下面基于图1提供的实施环境和图3提供的存储设备的架构,以存储设备110、存储单元120以及目标服务器130之间的交互过程为例,对本技术实施例提供的存储方法进行说明。图5是本技术实施例提供的一种存储方法的流程图,参见图5,该方法包括:
96.501、存储设备的网卡将来自于目标服务器的访问任务发送给第一硬件资源组运行的第一操作系统。
97.本技术实施例中的存储设备参照图3所提供的架构,在此不作赘述。
98.在一些实施例中,由该存储设备的网卡对接收到的访问任务转发给目标服务器指定的操作系统。例如,存储设备的网卡从接收到的访问任务中,读取操作系统的信息,并基于该操作系统的信息,查询网卡的虚拟功能与操作系统的信息之间的映射关系,从而通过对应的虚拟功能将访问任务转发给该目标服务器指定的第一操作系统。在一些实施例中,
该操作系统的信息是操作系统的序列号,本技术实施例对此不做限定。
99.在一些实施例中,在目标服务器与存储设备建立连接时,双方会交换相关信息,以进行后续的数据读写过程。例如,目标服务器从存储设备获取各个操作系统的序列号。当然,该目标服务器还能够事先存储各个操作系统的序列号,本技术实施例对此不做限定。
100.502、该第一操作系统基于该访问任务,对存储单元进行读写。
101.在一些实施例中,该访问任务中携带有目标服务器的标识和任务标识等信息,该信息能够用于确定访问任务中的数据在存储单元中的存储位置。例如,待读取数据所在的存储单元的逻辑单元号(logical unit number,lun)以及待读取数据在存储单元中的位置偏移量等。
102.可选地,该第一操作系统基于多个进程执行该访问任务。在一些实施例中,该第一操作系统中的管控进程基于该访问任务中该目标服务器的标识以及任务标识等信息,查询本次访问任务的待读取数据在存储单元中的存储位置信息;该第一操作系统中的数据处理进程根据该管控进程查询出的存储位置信息,从存储单元中对应的存储位置读取该待读取数据。
103.503、该第一操作系统在发生故障的情况下,向目标服务器发送故障信息,该故障信息指示该第一操作系统发生故障。
104.在一些实施例中,故障可以包括但不限于以下任意项:1、操作系统的cpu内核发生故障,访问任务中断;2、操作系统的内存出现通过内存错误检查和纠正功能无法纠正的错误(uncorrected error,uce),访问任务中断;3、操作系统的内核安全漏洞或软件漏洞(bug),访问任务中断。
105.在本技术实施例中,该第一操作系统在发生故障的情况下,通过向目标服务器发送故障信息,指示该第一操作系统发生故障,导致访问任务中断。在一些实施例中,该故障信息指示访问任务执行失败,并携带错误代码,以指示所发生的故障的信息。本技术实施例对故障信息的形式不做限定。
106.上述过程是以该第一操作系统在执行访问任务的过程中发生故障为例进行说明,在另一些实施例中,若该第一操作系统在未执行访问任务的情况下发生故障,该第一操作系统能够向与其保持通信的节点发送故障信息,来指示第一操作系统发生故障。而与该第一操作系统保持通信的节点接收到该故障信息,则不会将访问任务发送给该第一操作系统,直到该第一操作系统从故障中恢复。
107.504、该目标服务器响应于接收到该故障信息,将访问任务发送至第二硬件资源组运行的第二操作系统。
108.其中,该第二硬件资源组参考图3所提供的存储设备的架构,在此不作赘述。
109.在一些实施例中,该故障信息包括该第二操作系统的信息。基于此,该目标服务器接收到该故障信息,即可确定将该第一操作系统的访问任务发送至该第二操作系统。在这种示例下,该目标服务器响应于接收到该故障信息,将该访问任务中操作系统的信息更新为该第二操作系统的信息,以指示存储设备的网卡将该访问任务转发给该第二操作系统执行。
110.在一些实施例中,该目标服务器中存储有各个操作系统的信息,该目标服务器接收到该故障信息,则读取除第一操作系统外的其他操作系统的信息,并从中确定接管该访
问任务的第二操作系统。在一些实施例中,该目标服务器中存储有操作系统之间的接管关系,该接管关系指示当操作系统发生故障时,由哪一个操作系统接管其访问任务。例如,该第一操作系统与该第二操作系统存在接管关系,则该目标服务器在接收到该第一操作系统的故障信息的情况下,基于该接管关系,确定将该访问任务迁移至该第二操作系统执行。
111.需要说明的是,上述在目标服务器将该访问任务中操作系统的信息替换为该第二操作系统的信息的过程发生在数据链路层,上层应用层中的应用程序并不会接收到该故障信息,也就无法感知该第一操作系统发生了故障,因此,通过上述技术方案,实现了前端对故障无感知的效果,有效提升了设备的可靠性。
112.上述步骤503至504是以该目标服务器接收故障信息并切换执行访问任务的操作系统为例进行说明。在一些实施例中,数据存储系统还包括转发节点,该转发节点能够用于接收故障信息并切换操作系统,从而实现访问任务的迁移。可选地,该转发节点是数据存储系统中的交换机。在这种示例下,该转发节点基于从存储设备接收到的故障信息,更新从目标服务器接收到的访问任务中操作系统的信息,以将该第一操作系统的访问任务转发至该存储设备的第二操作系统中执行。可选地,该转发节点能够通过例如连通测试等方式,感知存储设备的操作系统是否发生故障,从而及时且快速地切换操作系统。通过上述技术方案,以转发节点来感知操作系统的故障,并进行操作系统的切换,提升故障场景下操作系统切换的灵活性,从而高效地实现访问任务的迁移,有效提升设备的可靠性。
113.在另一些实施例中,由该存储设备的网卡接收该第一操作系统返回的故障信息,基于该故障信息切换执行访问任务的操作系统。在这种示例下,该网卡接收到该故障信息时,在前端能够继续接收来自该目标服务器(或转发节点)的访问任务,以保持业务的连续性,并基于该故障信息,在后端切换转发该访问任务的接口,以将该访问任务转发至第二操作系统执行。通过上述技术方案,能够进一步保持业务的连续性,以提升设备的可靠性。
114.505、该第二操作系统接收来自于该目标服务器的该访问任务,基于该访问任务,对存储单元进行读写。
115.本步骤参考步骤501至502,在此不作赘述。
116.在一些实施例中,上述步骤503至步骤504所描述的操作系统切换过程,能够将故障导致的业务中断时间从2到10分钟,减少至到1到3秒,实现了秒级切换,从而在前端无法感知到故障发生的短时间内将故障排除,并能够保持业务的连续性,设备的可靠性显著提升。
117.通过上述技术方案,保证了数据存储系统的单个节点中多个操作系统之间的故障隔离,在设备发生故障的情况下,可以将访问任务迁移到互相隔离的其他操作系统中继续执行,而不会触发控制器复位,达到了前端对故障无感知的效果,大大提升了设备的可靠性。
118.通过上述技术方案,第一操作系统能够通过故障信息的方式,及时地将访问任务中断的情况告知目标服务器,在数据链路层实现对操作系统的切换,从而实现访问任务的迁移,以前端无感知的方式保证了业务的连续性,有效提升了设备的可靠性。
119.为了便于理解上述从第一操作系统切换至第二操作系统的过程,本技术实施例提供了一种操作系统切换过程的示意图,参见图6,其中,该目标服务器发送的访问任务a和访问任务b通过前端网卡610,分发至第一操作系统620和第二操作系统630中执行,第一操作
系统620和第二操作系统630分别基于接收到的访问任务,通过后端网卡650对存储单元进行读写。在第一操作系统620发生故障的情况下,前端网卡610将访问任务a发送至第二操作系统630中执行。由第二操作系统630基于访问任务a以及访问任务b对存储单元进行读写。其中,该第一操作系统以及该第二操作系统中运行有管控进程和数据处理进程(参考步骤502中的描述)。
120.506、若该故障恢复,该第一操作系统向目标服务器发送第二接管请求,该第二接管请求指示接管已经迁移至该第二操作系统的该访问任务。
121.在一些实施例中,该第二接管请求携带该第一操作系统的信息以及该第二操作系统的信息,以指示该目标服务器将该第一操作系统的访问任务重新发送给该第一操作系统执行。例如,该第二接管请求携带该第一操作系统的操作系统序列号以及该第二操作系统的操作系统序列号。
122.在一些实施例中,该第一操作系统进行故障排除的方式可以包括下述任意项:1、人工更换故障部件;2、故障域内复位重启;3、内存错误检查和纠正功能。可以理解地,第一操作系统的硬件资源组与其他操作系统的硬件资源组之间相互隔离,因此,第一操作系统在排除故障的过程中,仅在自身的故障域中进行,不会影响到其他操作系统的正常运行。例如,在第一操作系统的cpu内核发生故障的情况下,由于各个操作系统所占用的cpu内核不同,因此,对第一操作系统的故障cpu内核进行更换不会影响到其他操作系统的内核。又例如,第一操作系统的内存出现uce,由于各个操作系统所占用的内存不同,因此,该第一操作系统在所占用的内存中,隔离uce以进行故障排除的过程,并不会影响到其他操作系统正常使用其对应的内存。
123.在一些实施例中,在排除故障之后,该第一操作系统向管理设备发送恢复消息。该管理设备在接收到该第一操作系统的恢复消息的情况下,确定该第一操作系统故障恢复,重新拉起该第一操作系统,也即是,重新将该操作系统设置为运行状态。在另一些实施例中,在排除故障之后,该第一操作系统通过从内存中读取持久化的配置信息,恢复至运行状态,并向管理设备发送恢复消息,以告知管理设备自身故障恢复。基于此,该第一操作系统在恢复至运行状态后,向该目标服务器发送第二接管请求。
124.通过上述技术方案,保证了各个操作系统的故障互相隔离,使得第一操作系统进行故障排除的过程中,接管其访问任务的第二操作系统能够正常运行,设备的可靠性有效提升。
125.507、该目标服务器响应于接收到该第二接管请求,将该第一操作系统的访问任务发送至该第一操作系统。
126.本步骤参考步骤504,在此不作赘述。
127.508、该第一操作系统接收来自于该目标服务器的该访问任务,基于该访问任务,对存储单元进行读写。
128.本步骤参考步骤505,在此不作赘述。
129.通过上述技术方案,第一操作系统在故障排除之后,能够重新接管迁移至第二操作系统中执行的访问任务,以减轻第二操作系统的负载,保证存储设备中各个操作系统之间的负载均衡,进一步保障存储设备的可用性,有效提升了设备的可靠性。
130.通过上述技术方案,保证了数据存储系统的单个节点中多个操作系统之间的故障
隔离,在设备发生故障的情况下,可以将访问任务迁移到互相隔离的其他操作系统中继续执行,而不会触发控制器复位,达到了前端对故障无感知的效果,大大提升了设备的可靠性。
131.进一步地,通过上述技术方案,基于存储设备的硬件资源的不同部分,来分别运行多套相互隔离的操作系统,使得设备的故障域缩小到单个操作系统中,在保证各个操作系统之间故障隔离的同时,大大缩短了排除故障所需的时间,提升了故障排除的效率,从而有效提升设备的可靠性。
132.上述图5对应的实施例中,步骤503至步骤505的过程,是对发生故障的第一操作系统主动向目标服务器上报故障,由目标服务器切换执行访问任务的操作系统的切换方式进行说明。在一些实施例中,该多套操作系统之间通过定时发送心跳消息进行互相感知,进而在任一操作系统发生故障的情况下,其他操作系统能够主动发起接管,进行操作系统的切换,实现访问任务的迁移,也即是,上述步骤503至步骤505能够被替换为下述步骤701至步骤704。图7是本技术实施例提供的一种存储方法的流程图,参见图7,该方法包括:
133.701、第二操作系统若在第一时长内未接收到第一操作系统的心跳消息,则确定该第一操作系统发生故障。
134.在本技术实施例中,心跳消息是指发送方定时发送的消息,接收方接收到该心跳消息,则能够确定该发送方处于运行状态。
135.步骤701中,该第一操作系统与该第二操作系统之间,能够通过收发心跳消息,来互相感知对方是否处于运行状态。在一些实施例中,该管理设备也能够通过收发心跳消息,来确定各个操作系统的运行状态,从而能够在第二时长内未接收到该第一操作系统的心跳消息的情况下,确定该第一操作系统发生故障。
136.702、该第二操作系统在该第一操作系统发生故障的情况下,向目标服务器发送第一接管请求,该第一接管请求指示接管该第一操作系统的访问任务。
137.在一些实施例中,该第一接管请求携带该第一操作系统的信息以及第二操作系统的信息,以指示该目标服务器将该第一操作系统的访问任务发送给该第二操作系统执行。例如,该第一接管请求携带该第一操作系统的操作系统序列号以及第二操作系统的操作系统序列号。
138.在一些实施例中,该存储设备中设置有仲裁单元,在多个第二操作系统针对第一操作系统发起接管请求的情况下,该仲裁单元能够根据预设规则,从多个第二操作系统中确定接管的访问任务的目标第二操作系统。其中,根据预设规则确定目标第二操作系统的过程可以是:根据各个操作系统的硬件资源配置或当前运行情况,将资源配置最佳或运行情况最稳定的第二操作系统确定为目标第二操作系统,本技术实施例对预设规则不做限定。
139.可以理解地,各个操作系统通过网卡与目标服务器进行通信,因此,能够在网卡转发各个操作系统的请求之前,通过仲裁单元来对各个操作系统的接管请求进行处理,以解决可能存在的冲突。基于此,通过仲裁单元选择合适的操作系统来接管访问任务,能够进一步保障设备的可靠性。
140.703、该目标服务器响应于接收到该第一接管请求,将该第一操作系统的访问任务发送至该第二操作系统。
141.本步骤参考步骤504,在此不作赘述。
142.704、该第二操作系统接收并执行来自于该目标服务器的该访问任务。
143.本步骤参考步骤505,在此不作赘述。
144.在一些实施例中,该第一操作系统在排除故障之后,向其他操作系统以及管理设备发送心跳消息。该管理设备在重新接收到该第一操作系统的心跳消息的情况下,确定该第一操作系统故障恢复,重新拉起该第一操作系统,也即是,重新将该操作系统设置为运行状态。在另一些实施例中,在排除故障之后,该第一操作系统通过从内存中读取持久化的配置信息,恢复至运行状态,并向其他操作系统以及管理设备发送心跳消息,以告知接收方自身故障恢复。
145.通过上述技术方案,保证了数据存储系统的单个节点中多个操作系统之间的故障隔离,在设备发生故障的情况下,可以将访问任务迁移到互相隔离的其他操作系统中继续执行,而不会触发控制器复位,达到了前端对故障无感知的效果,大大提升了设备的可靠性。
146.进一步地,通过上述技术方案,各个操作系统之间能够互相感知,从而在任一操作系统发生故障的情况下,未发生故障的操作系统能够快速响应,主动发起接管请求,以灵活的方式保证业务的连续性,在有效提升设备的可靠性的同时,提升了设备的可用性。
147.需要说明的是,本技术所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本技术中的访问任务所涉及到的数据都是在充分授权的情况下获取的。
148.本技术中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种所述示例的范围的情况下,第一操作系统可以被称为第二操作系统,并且类似地,第二操作系统可以被称为第一操作系统。第一操作系统和第二操作系统都可以是操作系统,并且在某些情况下,可以是单独且不同的操作系统。
149.本技术中术语“至少一个”的含义是指一个或多个,本技术中术语“多个”的含义是指两个或两个以上,例如,多个操作系统是指两个或两个以上的操作系统。
150.以上描述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
151.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以程序产品的形式实现。该程序产品包括一个或多个程序指令。在计算设备上加载和执行该程序指令时,全部或部分地产生按照本技术实施例中的流程或功能。
152.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件
来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
153.以上所述,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。

技术特征:
1.一种存储设备,其特征在于,所述存储设备包括管理设备和硬件资源,所述硬件资源分为多个硬件资源组,每个所述硬件资源组上运行有一套操作系统;所述管理设备用于:当所述多个硬件资源组中的第一硬件资源组故障,将所述第一硬件资源组运行的第一操作系统执行的访问任务迁移到所述多个硬件资源组中的第二硬件资源组,由所述第二硬件资源组运行的第二操作系统执行所述访问任务。2.根据权利要求1所述的设备,其特征在于,所述第一硬件资源组和所述第二硬件资源组的规格相同。3.根据权利要求1或2所述的设备,其特征在于,所述管理设备还用于:监控所述多个硬件资源组的状态。4.根据权利要求1或2所述的设备,其特征在于,所述存储设备还包括网卡,所述网卡支持单根输入输出虚拟化sr-iov功能,所述网卡的第一虚拟功能vf分配给所述第一硬件资源组,所述网卡的第二虚拟功能vf分配给所述第二硬件资源组。5.根据权利要求1所述的设备,其特征在于,所述管理设备还用于接收所述第一硬件资源组发送的故障信息;所述故障信息指示所述第一操作系统发生故障。6.根据权利要求1所述的设备,其特征在于,所述管理设备还用于接收所述第二操作系统发送的第一接管请求,所述第一接管请求用于接管所述第一操作系统执行的访问任务。7.根据权利要求6所述的设备,其特征在于,所述第二操作系统,用于若在第一时长内未接收到所述第一操作系统的心跳消息,则确定所述第一操作系统发生故障。8.根据权利要求1所述的设备,其特征在于,所述管理设备还用于接收所述第一操作系统故障恢复后发送的第二接管请求,所述第二接管请求指示接管已经迁移至所述第二操作系统的所述访问任务。9.一种存储方法,其特征在于,应用于存储设备中,所述存储设备包括管理设备和硬件资源,所述硬件资源分为多个硬件资源组,每个所述硬件资源组上运行有一套操作系统;所述方法包括:当所述多个硬件资源组中的第一硬件资源组故障,将所述第一硬件资源组运行的第一操作系统执行的访问任务迁移到所述多个硬件资源组中的第二硬件资源组,由所述第二硬件资源组运行的第二操作系统执行所述访问任务。10.根据权利要求9所述的方法,其特征在于,所述第一硬件资源组和所述第二硬件资源组的规格相同。11.根据权利要求9或10所述的方法,其特征在于,所述方法还包括:所述管理设备监控所述多个硬件资源组的状态。12.根据权利要求9或10所述的方法,其特征在于,所述存储设备还包括网卡,所述网卡支持单根输入输出虚拟化sr-iov功能,所述网卡的第一虚拟功能vf分配给所述第一硬件资源组,所述网卡的第二虚拟功能vf分配给所述第二硬件资源组。13.根据权利要求9所述的方法,其特征在于,所述方法还包括:所述管理设备接收所述第一硬件资源组发送的故障信息;所述故障信息指示所述第一操作系统发生故障。14.根据权利要求9所述的方法,其特征在于,所述方法还包括:所述管理设备接收所述第二操作系统发送的第一接管请求,所述第一接管请求用于接
管所述第一操作系统执行的访问任务。15.根据权利要求14所述的方法,其特征在于,所述方法还包括:所述第二操作系统若在第一时长内未接收到所述第一操作系统的心跳消息,则确定所述第一操作系统发生故障。16.根据权利要求9所述的方法,其特征在于,所述方法还包括:所述管理设备接收所述第一操作系统故障恢复后发送的第二接管请求,所述第二接管请求指示接管已经迁移至所述第二操作系统的所述访问任务。17.一种计算设备,其特征在于,所述计算设备包括管理设备和硬件资源,所述硬件资源包括多个硬件资源组,所述硬件资源包括处理器和存储器,所述存储器用于存储所述管理设备和每个所述硬件资源组对应的至少一段程序代码,所述至少一段程序代码由所述处理器加载并执行如权利要求9至权利要求16中任一项所述的存储方法。18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储至少一段程序代码,所述至少一段程序代码用于执行如权利要求9至权利要求16中任一项所述的存储方法。19.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如权利要求9至权利要求16中任一项所述的存储方法。

技术总结
本申请公开了一种存储设备、存储方法、计算设备及存储介质,属于计算机存储技术领域。本申请实施例提供的技术方案中,基于存储设备的硬件资源的不同部分,来分别运行多套相互隔离的操作系统,在第一硬件资源组运行的第一操作系统发生故障的情况下,将第一操作系统的访问任务迁移到第二硬件资源组运行的第二操作系统中执行。通过上述技术方案,保证了数据存储系统的单个节点中多个操作系统之间的故障隔离,在设备发生故障的情况下,可以将访问任务迁移到互相隔离的其他操作系统中继续执行,而不会触发控制器复位,达到了前端对故障无感知的效果,大大提升了设备的可靠性。大大提升了设备的可靠性。大大提升了设备的可靠性。


技术研发人员:高军 黎亮 屈欢
受保护的技术使用者:华为技术有限公司
技术研发日:2022.02.24
技术公布日:2023/9/7
版权声明

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

飞行汽车 https://www.autovtol.com/

分享:

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

相关推荐