一种双控存储阵列异步逻辑单元访问方法技术

技术编号:26341987 阅读:44 留言:0更新日期:2020-11-13 20:29
本发明专利技术涉及一种双控存储阵列异步逻辑单元访问方法,属于计算机存储技术领域。本发明专利技术提供的异步逻辑单元访问方式,两个控制器可各自访问不同的逻辑单元实现双控双活。两个控制器不需要通过通信协商对同一个逻辑单元的访问控制,而是通过目标端口的配置,将主机负载均衡分配在两个控制器上,是一种“带外”的控制方式。这种异步逻辑单元访问方式较同步逻辑单元访问方式可显著降低控制器间通信开销,显著提升逻辑单元访问效率,提高逻辑单元的访问性能。

An asynchronous logic unit access method for dual control storage array

【技术实现步骤摘要】
一种双控存储阵列异步逻辑单元访问方法
本专利技术涉及计算机存储
,具体涉及一种双控存储阵列异步逻辑单元访问方法。
技术介绍
双控存储阵列根据两个控制器的工作访问逻辑单元的方式不同,分为同步逻辑单元访问和异步逻辑单元访问。如果两个控制器同时访问同一个逻辑单元,我们称为同步逻辑单元访问,如果两个控制器同时访问不同的逻辑单元,我们称为异步逻辑单元访问。如果访问同一个逻辑单元,需要保证控制器访问逻辑单元同一个物理块的IO处理完毕,才能让另一个控制器访问该物理块。同时写同一个物理块必然导致不可预期的数据破坏,这在技术上实现难度更高,要求两个控制器建立实时通信链路,协商物理块访问冲突解决机制,对性能有一定的影响。异步逻辑单元访问由于两个控制器访问不同的存储逻辑单元,因此没有此问题。作为双控双活的两种实现方式,同步逻辑单元的访问方式中两个控制器对同一个逻辑单元进行访问,两个控制器的协同通过内部心跳或者非透明桥等机制,需要实现条带层面的锁机制,是一种“带内”的控制方式。同步逻辑单元访问必然带来两个控制器的通信开销。
技术实现思路
(一)要解决的技术问题本专利技术要解决的技术问题是:如何设计一种异步逻辑单元访问控制方法,实现逻辑单元的双控双活及故障接管。(二)技术方案为了解决上述技术问题,本专利技术提供了一种双控存储阵列异步逻辑单元访问方法,该方法中,对于无需状态转换,故障转移时即为就绪状态的逻辑单元,采用基于ALUA的Active/Active模式的实现方式进行访问控制;对于需要一定的故障转移时间,在故障转移时间类实现主备切换的逻辑单元,采用基于ALUA的Active/Standby的实现方式进行访问控制。优选地,该方法中,采用基于ALUA的Active/Active模式的实现方式进行访问控制具体包括以下步骤:a.设备组的初始化:建立设备组,设置两个设备组,每个设备组设置两个目标组,将第一控制器的目标端口归入第一目标组,将第二控制器的目标端口归入第二目标组,同时将第一设备组的第一目标组中的ALUA状态设置为active状态,将第一设备组的第二目标组中的ALUA状态设置为standby状态,将第二设备组中的第一目标组中的ALUA状态设为standby状态,第二设备组的第二目标组中的ALUA状态设为active状态,其中第一设备组归置以第一控制器为属主的逻辑单元设备,第二设备组归置以第二控制器为属主的逻辑单元设备;b.逻辑单元分配:逻辑单元分配时,首先建立设备,并将设备映射到指定的目标端口上,有两种方式可指定逻辑单元属主控制器:方法1:指定逻辑单元号为奇数的属主为第一控制器,将该逻辑单元对应设备放入第一设备组,指定逻辑单元号为偶数的属主为第二控制器,将该逻辑单元对应设备放入第二设备组;方法2:根据输入参数决定逻辑单元属主,输入ALUA属主参数为1,则该逻辑单元对应设备放入第一设备组,如果输入ALUA属主参数为2,则将该逻辑单元对应设备放入第二设备组;c.主机发起端获取端口信息:发起端通过GETALUASTATE命令获取到两个控制器的分组信息,且两个控制器的分组信息保持一致,即第一设备组中目标端口分组1为active模式,目标端口分组2为standby模式,第二设备组中目标端口分组1为standby状态,目标端口分组2为active状态;d.路径故障转移:主机多路径程序根据ALUA状态,计算每个控制器路径优先级,优先访问active状态路径,当该优先路径发生故障时,多路径程序根据预先设定的策略,访问standby状态路径,同时对该路径目标端口发出SETALUASTATE命令,提升该路径目标端口状态为active。优选地,该方法中,采用基于ALUA的Active/Standby的实现方式进行访问控制具体包括以下步骤:a.设备组的初始化:建立设备组,设置一个设备组,该设备组设置2个目标组,第一目标组为第一控制器上的目标端口,第二目标组为第二控制器上的目标端口,该设备组中目标组的ALUA状态,根据控制器的属性决定,第一控制器为主控制器,则第一目标组的ALUA状态为active,第二目标组的ALUA状态为standby;第二控制器为主控制器,则第一目标组的ALUA状态为standby,第二目标组的ALUA状态为active;b.逻辑单元分配:逻辑单元分配时,指定该逻辑单元设备归置到步骤a所初始化的设备组;c.主机发起端获取端口信息:发起端通过GETALUASTATE命令获取到两个控制器的分组信息,且两个控制器的分组信息保持一致,即如果第一控制器为主控制器,则第一目标组为active状态,第二目标组为standby状态,如果第二控制器为主控制器,则第一目标组为standby状态,第二目标组为active状态;d.路径故障转移:主机多路径程序根据ALUA状态,计算每个控制器路径优先级,优先访问active状态路径,当该优先路径发生故障时,另一个控制器将对应目标组的ALUA状态转换为transitioning状态,执行状态转换程序,完成后设置该目标组状态为active状态,主机多路径程序检测到另一个控制器的路径状态为active状态后,访问该路径,从而完成故障转移。优选地,基于ALUA的Active/Active模式的实现方式是一种主动状态转换方式。优选地,基于ALUA的Active/Active模式的实现方式中,主机通过GETALUASTATE命令实时检测端口信息,当存在端口获取不到状态信息时,主机将该路径状态标记为fail,并通过SETALUASTATE命令将另一个目标端口设置为Active,以实现控制器逻辑单元IO访问的无缝切换,上层应用无感知。优选地,基于ALUA的Active/Standby的实现方式是一种被动状态转换。优选地,基于ALUA的Active/Standby的实现方式中,控制器逻辑单元在转换状态下,可以做准备工作,包括配置和缓存恢复。优选地,基于ALUA的Active/Standby的实现方式中,控制器逻辑单元在转换状态下,可以实现复制、压缩、重删功能。本专利技术又提供了一种所述的方法的实现方法,该方法中,设计5个设备组,dgroup0,dgroup1,dgroup2,dgroup3,dgroup4,五个设备组中dgroup0用于Active/Standby控制的LUN,dgroup1和dgroup2用于Active/Active控制的IPLUN,dgroup3和dgroup4用于Active/Active控制的FCLUN,两个控制器目的端口组的状态信息保持一致,始发器端通过SPC-3ALUASCSI指令查询端口组状态,其中dgroup0组的tgroup1组中的端口状态根据A控制器属性确定,tgroup2组中的端口状态根据B控制器属性确定,如果控制器属性为MASTER,则对应组中的端口组状态为Active,如果控制器属性为SLAVE,则该组中的端口组状态为standby。本专利技术还本文档来自技高网...

【技术保护点】
1.一种双控存储阵列异步逻辑单元访问方法,其特征在于,该方法中,对于无需状态转换,故障转移时即为就绪状态的逻辑单元,采用基于ALUA的Active/Active模式的实现方式进行访问控制;对于需要一定的故障转移时间,在故障转移时间类实现主备切换的逻辑单元,采用基于ALUA的Active/Standby的实现方式进行访问控制。/n

【技术特征摘要】
1.一种双控存储阵列异步逻辑单元访问方法,其特征在于,该方法中,对于无需状态转换,故障转移时即为就绪状态的逻辑单元,采用基于ALUA的Active/Active模式的实现方式进行访问控制;对于需要一定的故障转移时间,在故障转移时间类实现主备切换的逻辑单元,采用基于ALUA的Active/Standby的实现方式进行访问控制。


2.如权利要求1所述的方法,其特征在于,该方法中,采用基于ALUA的Active/Active模式的实现方式进行访问控制具体包括以下步骤:
a.设备组的初始化:建立设备组,设置两个设备组,每个设备组设置两个目标组,将第一控制器的目标端口归入第一目标组,将第二控制器的目标端口归入第二目标组,同时将第一设备组的第一目标组中的ALUA状态设置为active状态,将第一设备组的第二目标组中的ALUA状态设置为standby状态,将第二设备组中的第一目标组中的ALUA状态设为standby状态,第二设备组的第二目标组中的ALUA状态设为active状态,其中第一设备组归置以第一控制器为属主的逻辑单元设备,第二设备组归置以第二控制器为属主的逻辑单元设备;
b.逻辑单元分配:逻辑单元分配时,首先建立设备,并将设备映射到指定的目标端口上,通过以下两种方式之一指定逻辑单元属主控制器:
方法1:指定逻辑单元号为奇数的属主为第一控制器,将该逻辑单元对应设备放入第一设备组,指定逻辑单元号为偶数的属主为第二控制器,将该逻辑单元对应设备放入第二设备组;
方法2:根据输入参数决定逻辑单元属主,输入ALUA属主参数为1,则该逻辑单元对应设备放入第一设备组,如果输入ALUA属主参数为2,则将该逻辑单元对应设备放入第二设备组;
c.主机发起端获取端口信息:发起端通过GETALUASTATE命令获取到两个控制器的分组信息,且两个控制器的分组信息保持一致,即第一设备组中目标端口分组1为active模式,目标端口分组2为standby模式,第二设备组中目标端口分组1为standby状态,目标端口分组2为active状态;
d.路径故障转移:主机多路径程序根据ALUA状态,计算每个控制器路径优先级,优先访问active状态路径,当该优先路径发生故障时,多路径程序根据预先设定的策略,访问standby状态路径,同时对该路径目标端口发出SETALUASTATE命令,提升该路径目标端口状态为active。


3.如权利要求2所述的方法,其特征在于,该方法中,采用基于ALUA的Active/Standby的实现方式进行访问控制具体包括以下步骤:
a.设备组的初始化:建立设备组,设置一个设备组,该设备组设置2个目标组,第一目标组为第一控制器上的目标端口,第二目标组为第二控制器上的目标端口,该设备组中目标组的ALUA状态,根据控制器的属性决定,第一控制器为主控制器,则第一目标组的ALUA状态为active,第二目标组的ALUA状态为standby;第二控制器为主控制器,则第一目标组的ALUA状态为standby,第二目标组的ALUA状态为active;<...

【专利技术属性】
技术研发人员:田鹏宋珺于殿祥
申请(专利权)人:北京计算机技术及应用研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1