CN102984268B - 用于高可用集群的scsi共享存储资源访问方法及装置 - Google Patents
用于高可用集群的scsi共享存储资源访问方法及装置 Download PDFInfo
- Publication number
- CN102984268B CN102984268B CN201210528641.5A CN201210528641A CN102984268B CN 102984268 B CN102984268 B CN 102984268B CN 201210528641 A CN201210528641 A CN 201210528641A CN 102984268 B CN102984268 B CN 102984268B
- Authority
- CN
- China
- Prior art keywords
- scsi
- storage resources
- module
- storage resource
- shares
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种用于高可用集群的SCSI共享存储资源访问方法及装置,方法步骤如下:1)识别集群的SCSI访问命令,如果访问目标为SCSI共享存储资源则执行步骤2);2)读取访问目标对应的SCSI共享存储资源的锁状态信息;判断是否被加锁,如果已被加锁则退出;如果未被加锁则执行步骤3);3)对SCSI共享存储资源加锁;4)挂载SCSI共享存储资源、操作并操作完毕后卸载;5)对SCSI共享存储资源解锁;装置包括资源代理模块、共享存储资源锁模块和SCSI协议适配模块。本发明在集群发生心跳故障时仍能够保持存储资源内部数据一致性,具有可靠性高、可移植性好、可扩展性高、适用范围广的优点。
Description
技术领域
本发明涉及计算机集群技术领域,具体涉及一种用于高可用集群的SCSI共享存储资源访问方法及装置。
背景技术
HA高可用集群是指一组通过HA高可用软件协调管理完成工作的计算机系统,该计算机系统中的单个计算机通常称为节点,当集群中有某个节点失效的情况下,该节点上的任务会自动转移到其他正常的节点上继续提供服务。共享存储是指能够被两个或多个节点同时访问的存储系统,目前共享存储设备普遍采用基于SCSI协议的硬件设备。SCSI协议是一种规范,最新的标准为SCSI-3。SCSI协议的主要功能是在主机和存储设备之间传送命令、状态和块数据。SCSI总线通讯在初始者(initiator)和目标(target)这两个实体之间进行,初始者发出命令或数据,目标处理命令或数据;一个初始者可以将一个目标设置为保留(Reserve)状态来独占使用,处于保留(Reserve)状态下的目标只能够被设置它的初始者访问和释放,其它的初始者对它的访问和释放都将是无效的。
HA高可用集群遇到最大的挑战是节点间心跳通信出现问题。如果心跳通信出现问题,节点间的通信将会无效,导致每个节点都认为其它节点处于非正常状态,并将自己提升为主节点,夺取共享资源并对其进行操作。如果多个节点都同时进行对共享资源的操作,会导致数据无法保持一致性,破坏共享存储资源。
发明内容
本发明要解决的技术问题是提供一种在集群发生心跳故障时仍能够保持存储资源数据一致性、可靠性高、可移植性好、可扩展性高、适用范围广的用于高可用集群的SCSI共享存储资源访问方法及装置。
为了解决上述技术问题,本发明采用的技术方案为:
一种用于高可用集群的SCSI共享存储资源访问装置,包括:
资源代理模块,用于接收转发集群的SCSI访问命令以及接收来自SCSI共享存储资源的返回数据;
共享存储资源锁模块,用于执行对SCSI共享存储资源的状态读取命令、加锁命令、解锁命令,向资源代理模块返回SCSI共享存储资源的状态信息以及返回数据;
SCSI协议适配模块,用于连接适配不同类型的SCSI共享存储资源;
所述资源代理模块、共享存储资源锁模块、SCSI协议适配模块依次相连,所述资源代理模块在接收SCSI访问命令后预先通过共享存储资源锁模块读取SCSI共享存储资源的状态信息,所述资源代理模块仅在SCSI访问命令的访问目标为SCSI共享存储资源时依次通过共享存储资源锁模块、SCSI协议适配模块对所述访问目标对应的SCSI共享存储资源执行加锁并依次挂载、操作、卸载所述SCSI共享存储资源,所述资源代理模块在卸载完成后通过共享存储资源锁模块、SCSI协议适配模块对所述访问目标对应的SCSI共享存储资源执行解锁。
作为本发明用于高可用集群的SCSI共享存储资源访问装置的进一步改进:所述SCSI协议适配模块包括用于连接SCSI光纤存储设备的光纤通道适配模块、用于连接SCSI并行存储设备的互锁模块、用于连接SCSI IEEE 1394火线存储设备的串行总线模块和用于连接SCSI串行存储设备的串行存储模块,所述光纤通道适配模块、互锁模块、串行总线模块和串行存储模块分别与所述共享存储资源锁模块相连。
本发明用于高可用集群的SCSI共享存储资源访问方法具有下述优点:
1、本发明通过识别集群的SCSI访问命令,根据访问目标对应的SCSI共享存储资源的状态信息再决定继续访问还是退出,并通过在访问时加锁、访问完毕后解锁来禁止集群中其他节点访问该共享存储资源,主节点在使用共享存储资源完毕后,对共享存储资源解锁,释放共享存储资源的控制,其它节点才能够访问共享存储资源,在集群发生心跳故障时仍能够保持存储资源内部数据一致性,具有可靠性高的优点。
2、本发明由于独立应用模块,与具体的应用模块无关,具有很好的可移植性。
3、本发明具有良好的可扩展性,既可以用于与高可用集群的HA软件配合使用、解决高可用集群的共享存储资源的心跳故障导致的内部数据损坏问题,也可以单独使用防止共享存储资源的数据被多个指令抢占执行,具有可扩展性高、适用范围广的优点。
本发明用于高可用集群的SCSI共享存储资源访问装置由于具有与用于高可用集群的SCSI共享存储资源访问方法相对应的结构部件,因此也应当具有前述用于高可用集群的SCSI共享存储资源访问方法相对应的优点。
附图说明
图1为本发明实施例方法的基本实施流程示意图。
图2为本发明实施例装置的框架结构示意图。
图3为本发明实施例资源代理模块以及共享存储资源锁模块的工作流程示意图。
图例说明:1、资源代理模块;2、共享存储资源锁模块;3、SCSI协议适配模块。
具体实施方式
如图1所示,本实施例用于高可用集群的SCSI共享存储资源访问方法的实施步骤如下:
1)识别集群的SCSI访问命令,如果当前SCSI访问命令的访问目标为SCSI共享存储资源则跳转执行步骤2);
2)读取访问目标对应的SCSI共享存储资源的锁状态信息;根据锁状态信息判断SCSI共享存储资源是否被加锁,如果已被加锁则退出当前SCSI访问命令;如果未被加锁则执行步骤3);
3)对SCSI共享存储资源加锁;
4)挂载SCSI共享存储资源,对SCSI共享存储资源进行操作,并在操作完毕后卸载SCSI共享存储资源;
5)对SCSI共享存储资源解锁。
其中,步骤1)的详细步骤包括:
1.1)接收集群的SCSI访问命令,对SCSI访问命令进行解析,如果解析出错则退出,如果解析正确则执行步骤1.2);
1.2)获取集群当前的SCSI共享存储资源列表;
1.3)根据SCSI访问命令解析结果判断SCSI访问命令的访问目标是否在SCSI共享存储资源列表中存在相匹配的SCSI共享存储资源,如果存在相匹配的SCSI共享存储资源则跳转执行步骤2);如果不存在相匹配的SCSI共享存储资源则直接退出当前SCSI访问命令。
其中,步骤2)中具体是指通过SCSI协议的“READ”命令读取当前SCSI访问命令对应的SCSI共享存储资源的状态信息;步骤3)中具体是指通过SCSI协议的“RESERVE”命令对SCSI共享存储资源加锁;步骤5)中具体是指通过SCSI协议的“RELEASE”命令对SCSI共享存储资源解锁。
如图2所示,本实施例用于高可用集群的SCSI共享存储资源访问装置包括:
资源代理模块1,用于接收转发集群的SCSI访问命令以及接收来自SCSI共享存储资源的返回数据;
共享存储资源锁模块2,用于执行对SCSI共享存储资源的状态读取命令、加锁命令、解锁命令,向资源代理模块1返回SCSI共享存储资源的状态信息以及返回数据;
SCSI协议适配模块3,用于连接适配不同类型的SCSI共享存储资源;
资源代理模块1、共享存储资源锁模块2、SCSI协议适配模块3依次相连,资源代理模块1在接收SCSI访问命令后预先通过共享存储资源锁模块2读取SCSI共享存储资源的状态信息,资源代理模块1仅在SCSI访问命令的访问目标为SCSI共享存储资源时依次通过共享存储资源锁模块2、SCSI协议适配模块3对访问目标对应的SCSI共享存储资源执行加锁并依次挂载、操作、卸载SCSI共享存储资源,资源代理模块1在卸载完成后通过共享存储资源锁模块2、SCSI协议适配模块3对访问目标对应的SCSI共享存储资源执行解锁。
本实施例中,资源代理模块1提供并封装了对应用程序操作的接口,实现了应用程序的启动、探查和停止操作,是具体实例中与HA高可用软件相结合的调用接口。共享存储资源锁模块2是对共享存储资源锁可执行程序的封装,每次调用时只需要执行相应的SCSI命令即可,它将完成实际的加锁和解锁操作。HA高可用软件需要对共享存储资源进行操作,通过资源代理模块1来调用共享存储资源锁模块,HA高可用软件只需要监控资源代理模块1的操作返回值来进行下一步操作。共享存储资源锁模块2通过调用SCSI命令来完成对应操作,SCSI主要命令包括RESERVE,RELEASE和READ操作。SCSI命令工作在SCSI 协议下,SCSI协议包含了光纤通道,互锁,串行总线和串行存储几种协议,通过对应的协议分别与对应的设备进行通信;如果共享存储资源被解锁成功,则可以使用或释放共享存储资源,否则不能对共享存储资源进行除解锁以外的其它任何操作。
如图3所示,本实施例中的资源代理模块1和共享存储资源锁模块2的工作步骤如下:
A1)资源代理模块1接收SCSI命令,执行SCSI命令解析。如果SCSI命令格式正确,则执行步骤A2);如果SCSI命令格式不正确则打印帮助信息输出给用户并退出。
A2)资源代理模块1获取SCSI共享存储资源列表(即SCSI设备列表)。
A3)资源代理模块1判断SCSI命令的目标设备是否为SCSI设备。如果是SCSI设备则执行步骤A4),否则打印帮助信息输出给用户并退出。
A4)共享存储资源锁模块2根据SCSI命令执行加锁,解锁,测试和查询操作。
当执行的为加锁命令时,首先检测SCSI设备是否已加锁,如果已经加锁则执行步骤A5);如果未加锁则对SCSI设备进行加锁,然后执行步骤A5)。
当执行的为解锁命令时,首先检测SCSI设备是否已加锁,如果已经加锁则执行步骤A5);如果已加锁则对SCSI设备进行解锁,然后执行步骤A5)。
当执行的为测试命令时,则打印SCSI设备和加解锁状态信息,然后执行步骤A5)。
当执行的为查询命令时,打印SCSI设备的详细信息,然后执行步骤A5)。
A5)资源代理模块1根据共享存储资源锁模块2返回的结果提示用户并退出。
SCSI协议适配模块3包括用于连接SCSI光纤存储设备的光纤通道适配模块31、用于连接SCSI并行存储设备的互锁模块32、用于连接SCSI IEEE 1394火线存储设备的串行总线模块33和用于连接SCSI串行存储设备的串行存储模块34,光纤通道适配模块31、互锁模块32、串行总线模块33和串行存储模块34分别与共享存储资源锁模块2相连,通过光纤通道适配模块31、互锁模块32、串行总线模块33和串行存储模块34能够实现与诸如SCSI磁盘、SCSI磁带、SCSI光存储等SCSI共享存储设备的连接访问。
本实施例的SCSI共享存储资源均采用SCSI协议,HA高可用集群主节点在使用SCSI共享存储设备前,利用SCSI Reserve机制(SCSI保留机制)向基于SCSI协议的SCSI共享存储设备发送特定的SCSI命令实现对共享磁盘加锁,禁止集群中其他节点访问该共享存储资源;主节点在使用共享存储资源完毕后,对共享存储资源解锁,释放共享存储资源的控制,其它节点才能够访问共享存储资源,能够解决集群出现心跳异常时多个节点同时操作SCSI共享存储资源导致数据破坏的问题。当高可用集群主节点在挂载和卸载资源前后加入共享存储资源锁进行保护,步骤如下:1.高可用集群主节点识别共享存储资源,判定该资源当前未被加锁使用;2.高可用集群主节点对共享存储资源加锁;3.高可用集群主节点挂载共享存储资源;4.高可用集群主节点使用完毕共享存储资源,卸载共享存储资源;5.高可用集群主节点对共享存储资源解锁。本实施例中对共享存储资源锁利用SCSI Reserve机制对共享存储资源进行加锁和解锁,加锁和解锁的步骤如下:1.解析命令参数,如果不正确,则终止执行;2.获取SCSI设备列表;3.判断目标设备是否为SCSI设备且可以访问,如果不是,则终止执行;4.执行加锁,解锁,查询或测试操作;5.判断操作是否成功,报告当前状态后退出程序。高可用集群主节点在使用共享资源时对共享资源进行加锁,此时其它节点无法对共享资源进行访问,没有了对共享资源的操作权,保证共享资源在一个时间只能够被一个用户所操作,从而降低了破坏共享资源的可能性。
本实施例用于高可用集群的SCSI共享存储资源访问装置的工作步骤如下:
B1)资源代理模块1识别集群的SCSI访问命令,如果当前SCSI访问命令的访问目标为SCSI共享存储资源则资源代理模块1跳转执行步骤2);
B2)资源代理模块1通过共享存储资源锁模块2发送SCSI协议的“READ”命令,读取访问目标对应的SCSI共享存储资源的锁状态信息;资源代理模块1根据读取的锁状态信息判断SCSI共享存储资源是否被加锁,如果已被加锁则退出当前SCSI访问命令;如果未被加锁则执行步骤3);
B3)资源代理模块1通过共享存储资源锁模块2发送SCSI协议的“RESERVE”命令对SCSI共享存储资源加锁;
B4)挂载SCSI共享存储资源,对SCSI共享存储资源进行操作,并在操作完毕后卸载SCSI共享存储资源;
B5)资源代理模块1通过共享存储资源锁模块2发送SCSI协议的“RELEASE”命令对SCSI共享存储资源解锁。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (2)
1.一种用于高可用集群的SCSI共享存储资源访问装置,其特征在于包括:
资源代理模块(1),用于接收转发集群的SCSI访问命令以及接收来自SCSI共享存储资源的返回数据;
共享存储资源锁模块(2),用于执行对SCSI共享存储资源的状态读取命令、加锁命令、解锁命令,向资源代理模块(1)返回SCSI共享存储资源的状态信息以及返回数据;
SCSI协议适配模块(3),用于连接适配不同类型的SCSI共享存储资源;
所述资源代理模块(1)、共享存储资源锁模块(2)、SCSI协议适配模块(3)依次相连,所述资源代理模块(1)在接收SCSI访问命令后预先通过共享存储资源锁模块(2)读取SCSI共享存储资源的状态信息,所述资源代理模块(1)仅在SCSI访问命令的访问目标为SCSI共享存储资源时依次通过共享存储资源锁模块(2)、SCSI协议适配模块(3)对所述访问目标对应的SCSI共享存储资源执行加锁并依次挂载、操作、卸载所述SCSI共享存储资源,所述资源代理模块(1)在卸载完成后通过共享存储资源锁模块(2)、SCSI协议适配模块(3)对所述访问目标对应的SCSI共享存储资源执行解锁。
2.根据权利要求1所述的用于高可用集群的SCSI共享存储资源访问装置,其特征在于:所述SCSI协议适配模块(3)包括用于连接SCSI光纤存储设备的光纤通道适配模块(31)、用于连接SCSI并行存储设备的互锁模块(32)、用于连接SCSI IEEE 1394火线存储设备的串行总线模块(33)和用于连接SCSI串行存储设备的串行存储模块(34),所述光纤通道适配模块(31)、互锁模块(32)、串行总线模块(33)和串行存储模块(34)分别与所述共享存储资源锁模块(2)相连。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210528641.5A CN102984268B (zh) | 2012-12-11 | 2012-12-11 | 用于高可用集群的scsi共享存储资源访问方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210528641.5A CN102984268B (zh) | 2012-12-11 | 2012-12-11 | 用于高可用集群的scsi共享存储资源访问方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102984268A CN102984268A (zh) | 2013-03-20 |
CN102984268B true CN102984268B (zh) | 2015-04-15 |
Family
ID=47858001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210528641.5A Expired - Fee Related CN102984268B (zh) | 2012-12-11 | 2012-12-11 | 用于高可用集群的scsi共享存储资源访问方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102984268B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104954392A (zh) * | 2014-03-24 | 2015-09-30 | 中国移动通信集团河北有限公司 | 一种云盘及其实现方法、装置 |
CN105141400B (zh) * | 2015-07-30 | 2018-08-21 | 杭州华为数字技术有限公司 | 一种高可用性集群管理方法及相关设备 |
CN106897028B (zh) * | 2017-02-23 | 2020-02-07 | 郑州云海信息技术有限公司 | 一种共享存储的管理方法及系统 |
CN107608738B (zh) * | 2017-10-12 | 2021-03-02 | 苏州浪潮智能科技有限公司 | 启动对象存储设备的方法、装置及计算机可读存储介质 |
CN108363613A (zh) * | 2017-12-28 | 2018-08-03 | 杭州马猴烧韭科技有限公司 | 一种独占锁的加锁方法、电子设备及存储介质 |
CN109460285A (zh) * | 2018-11-01 | 2019-03-12 | 郑州云海信息技术有限公司 | 一种虚拟化平台中存储系统的挂载方法及相关装置 |
CN111367467B (zh) * | 2018-12-26 | 2022-11-04 | 浙江宇视科技有限公司 | 一种存储资源挂载方法、装置、服务器及分布式系统 |
CN110489388A (zh) * | 2019-08-16 | 2019-11-22 | 上海霄云信息科技有限公司 | 一种用于分布式网络存储系统中scsi锁的实现方法及设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101800763A (zh) * | 2009-02-05 | 2010-08-11 | 威睿公司 | 使用网络和基于碟片上的方案的混合锁定 |
-
2012
- 2012-12-11 CN CN201210528641.5A patent/CN102984268B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101800763A (zh) * | 2009-02-05 | 2010-08-11 | 威睿公司 | 使用网络和基于碟片上的方案的混合锁定 |
Also Published As
Publication number | Publication date |
---|---|
CN102984268A (zh) | 2013-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102984268B (zh) | 用于高可用集群的scsi共享存储资源访问方法及装置 | |
US20070288585A1 (en) | Cluster system | |
US8051321B2 (en) | Cluster system and node switching method | |
US20060146809A1 (en) | Method and apparatus for accessing for storage system | |
US11184435B2 (en) | Message transmission method and apparatus in cluster file system | |
US11223515B2 (en) | Cluster system, cluster system control method, server device, control method, and non-transitory computer-readable medium storing program | |
EP2642388B1 (en) | Standby system device, control method, and program thereof | |
US8539149B2 (en) | Storage system and communications method | |
CN110870286B (zh) | 容错处理的方法、装置和服务器 | |
CN110391928B (zh) | 一种使用电子开关执行主备切换的通信方法和设备 | |
US8918670B2 (en) | Active link verification for failover operations in a storage network | |
CN114356215A (zh) | 一种分布式集群及分布式集群锁的控制方法 | |
JP2014532236A (ja) | 接続方法 | |
US10795848B2 (en) | Dual way communication method, system, and master device thereof | |
US20100309909A1 (en) | Communication apparatus, control method for communication apparatus, and computer program | |
CN105264494B (zh) | 鉴权处理装置和方法 | |
CN115208590A (zh) | 一种跨域通信系统、方法及存储介质 | |
US8775695B2 (en) | Specific identification information management device, information processing device, and specific identification information setting method | |
WO2012106876A1 (zh) | 计算机系统中子网管理方法、总线适配器及计算机系统 | |
CN111490911B (zh) | 网关故障信息收集方法、装置、网络设备及存储介质 | |
JP5763030B2 (ja) | 二重化ネットワーク制御システムおよび二重化ネットワーク制御方法 | |
CN112181705B (zh) | 基于多控制器的管理存储控制方法及存储设备 | |
US20150006874A1 (en) | System and method for managing data used for activation of operating systems | |
CN116737628A (zh) | 服务器设备与其输入输出装置 | |
JPH11327937A (ja) | 資源排他制御システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150415 Termination date: 20201211 |
|
CF01 | Termination of patent right due to non-payment of annual fee |