System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,具体涉及一种存储盘信息的获取方法、控制器、设备及存储介质。
技术介绍
1、随着存储系统的发展,其可应用的场景变得越来越复杂,例如在一种存储系统中,前端设备与主机进行交互,用于接收和处理主机下发的指令或请求;存储系统的后端通过网络链路,如计算机扩展总线标准(peripheral component interconnect express,pcie)链路或网络架构fabric链路接入存储设备。当后端需要将多个存储盘,例如jbod或ebof中的盘,接入存储系统时,需要申请存储系统资源进行并发处理,以发现存储系统接入的存储设备/盘。
2、通常情况下,基于标准自旋锁,通过遍历查找每个存储设备/盘,以发现存储系统接入的存储设备/盘,进而获取存储盘信息。但这种方式,需要执行发现一个存储设备/盘的完整的总任务,再执行发现下一个存储设备/盘的下一个完整的总任务,进而发现存储系统所有接入的存储设备/盘,进而获取存储盘信息,导致发现存储系统接入的存储设备/盘效率低以及获取存储盘信息效率低。
技术实现思路
1、有鉴于此,本专利技术提供了一种存储盘信息的获取方法、控制器、设备及存储介质,以解决发现存储系统接入的存储设备/盘效率低以及获取存储盘信息效率低的问题。
2、第一方面,本专利技术提供了一种存储盘信息的获取方法,应用于存储系统的存储控制器;该方法包括:接收集群发送的发现请求,并基于发现请求确定目标子任务,目标子任务为总任务包括的多个子任务之一,总任务用于获
3、基于上述第一方面的方法,在接收集群发送的发现请求时,基于发现请求确定目标子任务及目标线程,并将资源锁添加到目标线程中,通过已添加资源锁的目标线程执行目标子任务,资源锁确保了在同一时刻只有一个线程可以访问共享资源。明显的,将总任务分为多个子任务,并在执行每个子任务前添加资源锁,这样可以防止多个线程同时修改同一份数据而导致数据不一致的问题。此外,在目标子任务执行完成时,释放资源锁,使得该目标线程还可以并行执行其他总任务中的目标子任务。与相关技术中,执行完一个总任务后,再执行下一个总任务相比,本专利技术可以并行执行多个总任务中的子任务,可以提高发现存储系统接入的存储盘效率以及获取存储盘信息效率。
4、在一种可选的实施方式中,如果目标子任务不是最后一个子任务,则继续执行下一个子任务,直到多个子任务中的所有子任务均执行完成,获取到配置信息,将配置信息上报给集群。
5、基于上述方法,目标子任务不是最后一个子任务,即表明总任务未执行完,因此,需要进一步执行下一个子任务,以获取配置信息。
6、在一种可选的实施方式中,多个子任务的数量为5,根据目标子任务,在至少一种对应关系中查找与目标子任务对应的线程,作为目标线程,包括:若目标子任务为5个子任务中的第一个子任务,则根据第一对应关系,确定第一个子任务对应的目标线程为第一线程,第一对应关系为第一个子任务与第一线程的对应关系。
7、获取资源锁,并将资源锁添加到目标线程中,通过已添加资源锁的目标线程执行目标子任务,包括:获取资源锁,开启状态机,并通过已添加资源锁的第一线程,状态机用于检测总任务是否执行完成;遍历存储控制器所在域内关联的存储盘,得到当前时刻存储系统中启动状态的所有存储盘。
8、基于上述方法,可以确定第一个子任务对应的第一线程,并发现当前时刻存储系统接入的存储盘中处于启动状态的所有存储盘。
9、在一种可选的实施方式中,根据目标子任务,在至少一种对应关系中查找与目标子任务对应的线程,作为目标线程,包括:若目标子任务为5个子任务中的第二个子任务至第四个子任务中任意一个时,则根据至少一个对应关系,确定第二个子任务至第四个子任务对应的目标线程为第二线程;
10、获取资源锁,并将资源锁添加到目标线程中,通过已添加资源锁的目标线程执行目标子任务,包括:当目标子任务为第二个子任务时,获取资源锁,通过已添加资源锁的第二线程获取所有存储盘中任意一个存储盘的基础信息;或者,当目标子任务为第三个子任务时,获取资源锁,通过已添加资源锁的第二线程获取任意一个存储盘的逻辑单元信息状态;或者,当目标子任务为第四个子任务时,获取资源锁,通过已添加资源锁的第二线程判断域内所有存储盘中每个存储盘是否均获取到基础信息和逻辑单元信息状态;或者,当目标子任务为第五个子任务时,获取资源锁,通过已添加资源锁的第二线程对所有存储盘中接入状态变化的存储盘重新执行总任务。
11、基于上述方法,可以基于第二线程可以执行第二个子任务到第五个子任务中任意一个子任务,进而基于第二线程执行完总任务,以发现存储系统接入的存储盘。
12、在一种可选的实施方式中,通过已添加资源锁的第二线程获取所有存储盘中任意一个存储盘的基础信息,包括:通过已添加资源锁的第二线程获取任意一个存储盘的端口类型,并基于端口类型,确定端口类型对应的发现指令序列;通过已添加资源锁的第二线程执行发现指令序列,获取任意一个存储盘的基础信息。
13、基于上述方法,可以基于存储盘的端口类型,可以确定端口类型对应的发现指令序列,进而获取存储盘的基础信息。
14、在一种可选的实施方式中,基础信息包括任意一个存储盘的目标设备类型,逻辑单元信息状态包括机箱信息和存储盘信息,通过已添加资源锁的第二线程获取任意一个存储盘的逻辑单元信息状态,包括:获取任意一个存储盘的预设设备类型;在目标设备类型与预设设备类型一致的情况下,通过已添加资源锁的第二线程接收每个存储盘反馈的机箱信息和存储盘信息。
15、基于上述方法,可以比较存储盘的基础信息包括的目标设备类型和预设设备类型,以确定当前时刻接入的存储盘是否是期望接入的存储盘,进而在目标设备类型与预设设备类型一致的情况下,获取存储盘的逻辑单元信息状态。
16、在一种可选的实施方式中,在域内所有存储盘中每个存储盘均获取到基础信息和逻辑单元信息状态的情况下,将已获取基础信息和逻辑单元信息状态的存储盘进行注册,并基于已注册的存储盘的基础信息和逻辑单元信息状态,生成配置信息。
17、基于上述方法,可以在获取到域内所有存储盘的基础信息和逻辑单元信息状态,基于基础信息和逻辑单元信息状态,得到配置信息,并发现存储系统接入的存储盘。
18、第二方面,本专利技术提供了一种存储控制器,存储控制器包括:收发模块,用于接收集群发送的发现请求,并基于发现请求确定目标子任务,目标子任务为总任务包括的多个子任务之一,总任务用于获取存储系本文档来自技高网...
【技术保护点】
1.一种存储盘信息的获取方法,其特征在于,应用于存储系统的存储控制器;所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述多个子任务的数量为5,所述根据所述目标子任务,在至少一种对应关系中查找与所述目标子任务对应的线程,作为目标线程,包括:
4.根据权利要求3所述的方法,其特征在于,所述根据所述目标子任务,在至少一种对应关系中查找与所述目标子任务对应的线程,作为目标线程,包括:
5.根据权利要求4所述的方法,其特征在于,所述通过已添加所述资源锁的第二线程获取所述所有存储盘中任意一个存储盘的基础信息,包括:
6.根据权利要求5所述的方法,其特征在于,所述基础信息包括所述任意一个存储盘的目标设备类型,所述逻辑单元信息状态包括机箱信息和存储盘信息,所述通过已添加所述资源锁的第二线程获取所述任意一个存储盘的逻辑单元信息状态,包括:
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
8.一种存储控制器,其特征在于,所述存储控制器
9.一种计算机设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的存储盘信息的获取方法。
...【技术特征摘要】
1.一种存储盘信息的获取方法,其特征在于,应用于存储系统的存储控制器;所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述多个子任务的数量为5,所述根据所述目标子任务,在至少一种对应关系中查找与所述目标子任务对应的线程,作为目标线程,包括:
4.根据权利要求3所述的方法,其特征在于,所述根据所述目标子任务,在至少一种对应关系中查找与所述目标子任务对应的线程,作为目标线程,包括:
5.根据权利要求4所述的方法,其特征在于,所述通过已添加所述资源锁的第二线程获取所述所有存储盘中任意一个存储盘的基础...
【专利技术属性】
技术研发人员:张少华,苑忠科,李大生,
申请(专利权)人:苏州元脑智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。