CN112637337A - 一种数据处理方法及装置 - Google Patents
一种数据处理方法及装置 Download PDFInfo
- Publication number
- CN112637337A CN112637337A CN202011531229.XA CN202011531229A CN112637337A CN 112637337 A CN112637337 A CN 112637337A CN 202011531229 A CN202011531229 A CN 202011531229A CN 112637337 A CN112637337 A CN 112637337A
- Authority
- CN
- China
- Prior art keywords
- tgt
- rbd
- data
- state
- storage
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种数据处理方法及装置,该方法应用于Ceph中任一存储节点中的RBD服务端,该方法包括:在接收到存储节点中的支持第三代SCSI协议的第一TGT上的第一RBD客户端发送的保存指令时,将保存指令中携带的目标存储卷的PR数据保存到存储目标存储卷的OSD上;针对Ceph中除存储节点之外的任一其他存储节点中的第二TGT,若监测到RBD服务端与第二TGT之间的链路状态为正常状态,向第二TGT上的第二RBD客户端发送通知消息;在接收到所有第二TGT上的第二RBD客户端发送的用于通知已成功更改工作状态的通知确认消息时,向第一RBD客户端发送已成功保存PR数据的保存确认指令。本申请可降低系统维护成本。
Description
技术领域
本申请涉及存储技术领域,尤其涉及一种数据处理方法及装置。
背景技术
在分布式存储系统中,各存储节点之间通过内部网络连通组成存储集群,并通过外部网络提供存储服务;各用户设备通过外部网络连接到存储集群,并使用其提供的动态存储服务。
目前,在分布式存储系统中,通常利用分布式协调服务(ZooKeeper)集群,来实现各存储节点中的目标器(Taget,TGT)之间使用的存储卷对应的持久预留(PersistentReserve,PR)数据的一致性,以确保读/写数据的性能。
但是,在这种实现方式中,需要ZooKeeper节点参与,由于增加了新的故障点,导致系统维护成本较高;并且,ZooKeeper集群的存储能力有限,在存储卷的规格较大的情况下,需要存储的PR数据的总量较大,会影响ZooKeeper集群的整体性能。
发明内容
为克服相关技术中存在的问题,本申请提供了一种数据处理方法及装置。
根据本申请实施例的第一方面,提供一种数据处理方法,所述方法应用于分布式存储系统(Ceph)中任一存储节点中的RBD服务端,所述方法包括:
在接收到所述存储节点中的支持第三代小型计算机系统接口(Small ComputerSystem Interface,SCSI)协议的第一TGT上的第一RBD(RADOS Block Device)客户端发送的保存指令时,将所述保存指令中携带的目标存储卷对应的PR数据保存到存储所述目标存储卷的对象存储设备(Object Storage Device,OSD)上,其中,所述PR数据为所述第一TGT从接收的来自第一用户设备的PR命令中获得的;
针对所述Ceph中除所述存储节点之外的任一其他存储节点中的第二TGT,若监测到所述RBD服务端与所述第二TGT之间的链路状态为正常状态,则向所述第二TGT上的第二RBD客户端发送用于通知所述目标存储卷对应的PR数据发生变更的通知消息,以使所述第二TGT根据所述通知消息,将自身的工作状态更改为更新状态,所述更新状态用于指示所述第二TGT执行以下操作:在接收到来自第二用户设备的针对所述目标存储卷的读/写请求时,从所述OSD获取所述PR数据,在成功获取到所述PR数据后,将其保存到内存中,并将所述工作状态恢复为正常状态,根据所述内存中的所述PR数据,对所述读/写请求进行处理;
在接收到所有第二TG上的第二RBD客户端发送的用于通知已成功更改工作状态的通知确认消息时,向所述第一RBD客户端发送已成功保存所述PR数据的保存确认指令。
根据本申请实施例的第二方面,提供一种数据处理方法,所述方法应用于Ceph中任一存储节点中的支持第三代SCSI协议的第一TGT,所述方法包括:
在接收到第一用户设备发送的针对目标存储卷的PR命令时,从所述PR命令中获取PR数据;
通过自身上的第一RBD客户端向所述存储节点中的RBD服务端发送携带有所述PR数据的保存指令;
通过所述第一RBD客户端接收所述RBD服务端发送的已成功保存所述PR数据的保存确认指令;
其中,所述保存确认指令为所述RBD服务端在执行以下操作后发送的:
在接收到所述保存指令后,将所述PR数据保存到存储所述目标存储卷的OSD上;
针对所述Ceph中除所述存储节点之外的任一其他存储节点中的第二TGT,若监测到所述RBD服务端与所述第二TGT之间的链路状态为正常状态,则向所述第二TGT上的第二RBD客户端发送用于通知所述目标存储卷对应的PR数据发生变更的通知消息,以使所述第二TGT根据所述通知消息,将自身的工作状态更改为更新状态,所述更新状态用于指示所述第二TGT在接收到来自第二用户设备的针对所述目标存储卷的读/写请求时,从所述OSD获取所述PR数据,在成功获取到所述PR数据后,将其保存到内存中,并将所述工作状态恢复为正常状态,根据内存中的所述PR数据,对所述读/写请求进行处理;
接收每个第二TGT上的第二RBD客户端发送的用于通知已成功更改工作状态的通知确认消息。根据本申请实施例的第三方面,提供一种数据处理方法,所述方法应用于Ceph中任一存储节点中的支持第三代SCSI协议的第一TGT,所述方法包括:
在通过自身上的第一RBD客户端接收到所述Ceph中除所述存储节点之外的任一其他存储节点中的RBD服务端发送的用于通知目标存储卷对应的PR数据发生变更的通知消息时,将自身的工作状态更改为更新状态,其中,所述通知消息为所述RBD服务端在接收到所述其他存储节点中的第二TGT上的第二RBD客户端发送的保存指令时,将所述保存指令中携带的所述目标存储卷对应的PR数据保存到存储所述目标存储卷的OSD上,并在监测到所述RBD服务端与所述第一TGT之间的链路状态为正常状态后发送的,所述保存指令为所述第二TGT在接收到第一用户设备发送的PR命令时,从所述PR命令中获取到所述PR数据后发送的;
若在所述更新状态下接收到来自第二用户设备的针对所述目标存储卷的第一读/写请求时,从所述OSD获取所述PR数据;
在成功获取到所述PR数据后,将自身的工作状态恢复为正常状态,并将所述PR数据保存到内存中;
根据所述内存中的所述PR数据,对所述第一读/写请求进行处理。
根据本申请实施例的第四方面,提供一种数据处理装置,所述装置应用于Ceph中任一存储节点中的RBD服务端,所述装置包括:
保存模块,用于在接收到所述存储节点中的支持第三代SCSI协议的第一TGT上的第一RBD客户端发送的保存指令时,将所述保存指令中携带的目标存储卷对应的PR数据保存到存储所述目标存储卷的OSD上,其中,所述PR数据为所述第一TGT从接收的来自第一用户设备的PR命令中获得的;
通知模块,用于针对所述Ceph中除所述存储节点之外的任一其他存储节点中的第二TGT,若监测到所述RBD服务端与所述第二TGT之间的链路状态为正常状态,则向所述第二TGT上的第二RBD客户端发送用于通知所述目标存储卷对应的PR数据发生变更的通知消息,以使所述第二TGT根据所述通知消息,将自身的工作状态更改为更新状态,所述更新状态用于指示所述第二TGT执行以下操作:在接收到来自第二用户设备的针对所述目标存储卷的读/写请求时,从所述OSD获取所述PR数据,在成功获取到所述PR数据后,将其保存到内存中,并将所述工作状态恢复为正常状态,根据内存中的所述PR数据,对所述读/写请求进行处理;
发送模块,用于在接收到所有第二TGT上的第二RBD客户端发送的用于通知已成功更改工作状态的通知确认消息时,向所述第一RBD客户端发送已成功保存所述PR数据的保存确认指令。
根据本申请实施例的第五方面,提供一种数据处理装置,所述装置应用于Ceph中任一存储节点中的支持第三代SCSI协议的第一TGT,所述装置包括:
获取模块,用于在接收到第一用户设备发送的针对目标存储卷对应的PR命令时,从所述PR命令中获取PR数据;
发送模块,用于通过自身上的第一RBD客户端向所述存储节点中的RBD服务端发送携带有所述PR数据的保存指令;
接收模块,用于通过所述第一RBD客户端接收所述RBD服务端发送的已成功保存所述PR数据的保存确认指令;
其中,所述保存确认指令为所述RBD服务端在执行以下操作后发送的:
在接收到所述保存指令后,将所述PR数据保存到存储所述目标存储卷的OSD上;
针对所述Ceph中除所述存储节点之外的任一其他存储节点中的第二TGT,若监测到所述RBD服务端与所述第二TGT之间的链路状态为正常状态,则向所述第二TGT上的第二RBD客户端发送用于通知所述目标存储卷对应的PR数据发生变更的通知消息,以使所述第二TGT根据所述通知消息,将自身的工作状态更改为更新状态,所述更新状态用于指示所述第二TGT在接收到来自第二用户设备的针对所述目标存储卷的读/写请求时,从所述OSD获取所述PR数据,在成功获取到所述PR数据后,将其保存到内存中,并将所述工作状态恢复为正常状态,根据内存中的所述PR数据,对所述读/写请求进行处理;
接收每个第二TGT上的第二RBD客户端发送的用于通知已成功更改工作状态的通知确认消息。
根据本申请实施例的第六方面,提供一种数据处理装置,所述装置应用于Ceph中任一存储节点中的支持第三代SCSI协议的第一TGT,所述装置包括:
更改模块,用于在通过自身上的第一RBD客户端接收到所述Ceph中除所述存储节点之外的任一其他存储节点中的RBD服务端发送的用于通知目标存储卷对应的PR数据发生变更的通知消息时,将自身的工作状态更改为更新状态,其中,所述通知消息为所述RBD服务端在接收到所述其他存储节点中的第二TGT上的第二RBD客户端发送的保存指令时,将所述保存指令中携带的所述目标存储卷对应的PR数据保存到存储所述目标存储卷的OSD上,并在监测到所述RBD服务端与所述第一TGT之间的链路状态为正常状态后发送的,所述保存指令为所述第二TGT在接收到第一用户设备发送的PR命令时,从所述PR命令中获取到所述PR数据后发送的;
获取模块,用于若在所述更新状态下接收到来自第二用户设备的针对所述目标存储卷的第一读/写请求时,从所述OSD获取所述PR数据;
恢复模块,用于在成功获取到所述PR数据后,将自身的工作状态恢复为正常状态,并将所述PR数据保存到内存中;
处理模块,用于根据所述内存中的所述PR数据,对所述第一读/写请求进行处理。
本申请的实施例提供的技术方案可以包括以下有益效果:
在本申请实施例中,在Ceph中任一存储节点中的支持第三代SCSI协议的TGT接收到来自用户设备的针对任一存储卷的PR命令时,通过该存储节点中的RBD服务端将相关PR数据保存到相应OSD上,并由RBD服务端将该存储卷的PR数据发生变更的消息通知给Ceph中所有的其他存储节点中的TGT,以便这些TGT通过更改工作状态的方式协助实现PR数据的一致性,RBD服务端在确保其他存储节点中的TGT均执行完相关协助操作流程后,再通知该存储节点中的TGT成功保存相关PR数据,从而实现了各TGT之间使用此PR数据的一致性,确保了读/写数据的性能。
可见,上述这种处理方式,无需ZooKeeper集群参与,大大节省了系统维护成本;并且,将相关PR数据存储到OSD上,可以不受存储卷的规格限制,提高了用户体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本申请的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的一种数据处理方法的流程示意图之一;
图2为本申请实施例提供的一种数据处理方法的流程示意图之二;
图3为本申请实施例提供的一种数据处理方法的流程示意图之三;
图4为本申请实施例提供的Cehp的架构示意图;
图5为本申请实施例提供的一种数据处理装置的结构示意图之一;
图6为本申请实施例提供的一种数据处理装置的结构示意图之二;
图7为本申请实施例提供的一种数据处理装置的结构示意图之三。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
接下来对本申请实施例进行详细说明。
本申请实施例提供了一种数据处理方法,该方法应用于Ceph中任一存储节点中的RBD服务端,如图1所示,该方法可以包括如下步骤:
S11:在接收到存储节点中的支持第三代SCSI协议的第一TGT上的第一RBD客户端发送的保存指令时,将保存指令中携带的目标存储卷对应的PR数据保存到存储目标存储卷的OSD上。
在本步骤中,PR数据为第一TGT从接收的来自第一用户设备的PR命令中获得的。其中,PR命令可以是用于对目标存储卷进行加锁的命令,也可以是用于对目标存储卷进行释放锁的命令,还可以是其他操作类型的命令,在此不再一一列举。
S12:针对Ceph中除存储节点之外的任一其他存储节点中的第二TGT,若监测到RBD服务端与第二TGT之间的链路状态为正常状态,则向第二TGT上的第二RBD客户端发送用于通知目标存储卷对应的PR数据发生变更的通知消息,以使第二TGT根据通知消息,将自身的工作状态更改为更新状态。
其中,上述更新状态用于指示第二TGT执行以下操作:在接收到来自第二用户设备的针对目标存储卷的读/写请求时,从OSD获取PR数据,在成功获取到PR数据后,将其保存到内存中,并将工作状态恢复为正常状态,根据内存中的PR数据,对读/写请求进行处理。
需要说明的是,在本申请实施例中,RBD服务端向所有第二TGT发送的通知消息,仅是一条通知目标存储卷对应的PR数据发生变更的消息,并未携带实际的PR数据,之所以这样操作,主要是考虑到在存储节点较多时,PR数据可能会较大,直接将PR数据携带在通知消息中,会造成网络带宽占用率较高,影响读/写数据的性能。
对于每个第二TGT而言,在接收到此通知消息后,会将自身的工作状态更改为更新状态,后续在更新状态下接收到来自某用户设备的针对目标存储卷的读/写请求时,会先从存储目标存储卷的OSD获取目标存储卷对应的PR数据,在成功获取到该PR数据后,将其保存到内存中,并将工作状态恢复为正常状态,再根据内存中的该PR数据,对该读/写请求进行处理,从而实现PR数据的同步。
具体地,在本步骤中,RBD服务端可以通过以下方式监测RBD服务端与第二TGT之间的链路状态:
监测第二RBD客户端发送的心跳保活消息;
若在设定的保活周期内接收到心跳保活消息,则确定RBD服务端与第二TGT之间的链路状态为正常状态;
若在保活周期内未接收到心跳保活消息,则确定RBD服务端与第二TGT之间的链路状态为异常状态。
在RBD服务端与第二TGT之间的链路状态为异常状态的情形下,RBD服务端会一直等待,直到接收到心跳保活消息,即,直到RBD服务端与第二TGT之间的链路状态恢复为正常状态,再向第二TGT发送上述通知消息。
S13:在接收到所有第二TGT上的第二RBD客户端发送的用于通知已成功更改工作状态的通知确认消息时,向第一RBD客户端发送已成功保存PR数据的保存确认指令。
需要说明的是,对于RBD服务端而言,在接收到上述保存指令之后,先将目标存储卷对应的PR数据保存到对应的OSD上,由于OSD可以创建任意规格的存储卷,所以不受存储卷的规格限制;再将目标存储卷对应的PR数据发生变更的消息通知给Ceph中的其他存储节点中的第二TGT,等接收到所有第二TGT回复的通知确认消息之后,再向第一TGT发送已成功保存PR数据的保存确认指令,从而确保了Ceph中的各TGT之间使用目标存储卷对应的PR数据的一致性,即,实现了该PR数据的同步。
本申请实施例又提供了一种数据处理方法,该方法应用于Ceph中任一存储节点中的支持第三代SCSI协议的第一TGT,如图2所示,该方法可以包括如下步骤:
S21:在接收到第一用户设备发送的针对目标存储卷的PR命令时,从PR命令中获取目标存储卷对应的PR数据。
S22:通过自身上的第一RBD客户端向存储节点中的RBD服务端发送携带有PR数据的保存指令。
S23:通过第一RBD客户端接收RBD服务端发送的已成功保存PR数据的保存确认指令。
其中,保存确认指令为RBD服务端在执行以下操作后发送的:
在接收到保存指令后,将PR数据保存到存储目标存储卷的OSD上;
针对Ceph中除存储节点之外的任一其他存储节点中的第二TGT,若监测到RBD服务端与第二TGT之间的链路状态为正常状态,则向第二TGT上的第二RBD客户端发送用于通知目标存储卷对应的PR数据发生变更的通知消息,以使第二TGT根据通知消息,将自身的工作状态更改为更新状态。在这里,更新状态用于指示第二TGT在接收到来自第二用户设备的针对目标存储卷的读/写请求时,从OSD获取PR数据,在成功获取到PR数据后,将其保存到内存中,并将工作状态恢复为正常状态,根据内存中的PR数据,对读/写请求进行处理;
接收每个第二TGT上的第二RBD客户端发送的用于通知已成功更改工作状态的通知确认消息。
在本申请实施例中,对于第一TGT而言,在接收到上述保存确认指令之后,后续如果接收到来自其他用户设备的针对目标存储卷的读/写请求时,可以直接根据内存中目标存储卷对应的PR数据,对该读/写请求进行处理。
在这里,内存中目标存储卷对应的PR数据是第一TGT从PR命令中获取到目标存储卷对应PR数据之后保存的。
本申请实施例还提供了一种数据处理方法,该方法应用于Ceph中任一存储节点中的支持第三代SCSI协议的第一TGT,如图3所示,该方法可以包括如下步骤:
S31:在通过自身上的第一RBD客户端接收到Ceph中除存储节点之外的任一其他存储节点中的RBD服务端发送的用于通知目标存储卷对应的PR数据发生变更的通知消息时,将自身的工作状态更改为更新状态。
在本步骤中,上述通知消息为RBD服务端在接收到其他存储节点中的第二TGT上的第二RBD客户端发送的保存指令时,将保存指令中携带的目标存储卷对应的PR数据保存到存储目标存储卷的OSD上,并在监测到RBD服务端与第一TGT之间的链路状态为正常状态后发送的。
上述保存指令为第二TGT在接收到第一用户设备发送的PR命令时,从PR命令中获取到PR数据后发送的。
S32:若在更新状态下接收到来自第二用户设备的针对目标存储卷的第一读/写请求时,从OSD获取PR数据。
S33:在成功获取到PR数据后,将自身的工作状态恢复为正常状态,并将PR数据保存到内存中。
S33:根据内存中的PR数据,对第一读/写请求进行处理。
在本申请实施例中,第一TGT还可以执行以下操作:
若监测到RBD服务端与第一TGT之间的链路状态为异常状态,则将自身的工作状态更改为异常状态;
若在异常状态下接收到来自第三用户设备的针对目标存储卷的第二读/写请求时,对第二读/写请求进行阻塞。
具体地,在此操作流程中,第一TGT可以通过第一RBD客户端监测RBD服务端发送的心跳保活响应消息;
若在上述设定的保活周期内接收到心跳保活响应消息,则确定RBD服务端与第一TGT之间的链路状态为正常状态;
若在上述保活周期内未接收到心跳保活响应消息,则确定RBD服务端与第一TGT之间的链路状态为异常状态。
通过此操作流程,可以实现在RBD服务端与第一TGT之间的链路状态为异常状态下Ceph中各TGT之间使用目标存储卷对应的PR数据的一致性。
下面结合具体实施例对上述数据处理方法进行详细说明。
如图4所示,假设Ceph中有3个存储节点,分别为存储节点1、存储节点2和存储节点3。
假设存储节点1中的TGT1接收到用户设备1发送的针对存储卷1的PR命令,TGT1从PR命令中获取存储卷1对应的PR数据。
TGT1通过自身上的RBD客户端1向存储节点1中的RBD服务端1发送携带有该PR数据的保存指令;
RBD服务端1在接收到该保存指令时,将该保存指令中携带的该PR数据保存到存储存储卷1的OSD(图4中未示出)上,具体的存储过程为现有技术,在此不再一一详述。
针对存储节点2中的TGT2和存储节点3中的TGT3中的任一TGT,RBD服务端1在监测到RBD服务端1与该TGT之间的链路状态为正常状态时,向该TGT上的RBD客户端发送用于通知存储卷1对应的PR数据发生变更的通知消息。
该TGT在接收到该通知消息后,将自身的工作状态更改为更新状态,并向RBD服务端1发送用于通知已成功更改工作状态的通知确认消息。
以该TGT为TGT2为例,如果TGT2在更新状态下接收到用户设备2发送的针对存储卷1的读/写请求1,则TGT2从存储存储卷1的OSD获取该PR数据,在成功获取到该PR数据后,将自身的工作状态恢复为正常状态,并将该PR数据保存到内存中,根据内存中的该PR数据,对该读/写请求1进行处理;如果后续再接收到用户设备3发送的针对存储卷1的读/写请求2时,TGT2直接根据内存中的该PR数据,对读/写请求2进行处理。
RBD服务端1在接收到TGT2上的RBD客户端2和TGT3上的RBD客户端3发送的通知确认消息后,向RBD客户端1发送已成功保存该PR数据的保存确认指令。
TGT1通过RBD客户端1接收到该保存确认指令后,意味着该PR数据已在TGT1、TGT2和TGT3之间同步完成,后续如果接收到用户设备1发送的针对存储卷1的读/写请求3时,TGT1可以直接根据内存中的该PR数据,对读/写请求3进行处理。
由以上技术方案可以看出,在本申请实施例中,在Ceph中任一存储节点中的支持第三代SCSI协议的TGT接收到来自用户设备的针对任一存储卷的PR命令时,通过该存储节点中的RBD服务端将相关PR数据保存到相应OSD上,并由RBD服务端将该存储卷的PR数据发生变更的消息通知给Ceph中所有的其他存储节点中的TGT,以便这些TGT通过更改工作状态的方式协助实现PR数据的一致性,RBD服务端在确保其他存储节点中的TGT均执行完相关协助操作流程后,再通知该存储节点中的TGT成功保存相关PR数据,从而实现了各TGT之间使用此PR数据的一致性,确保了读/写数据的性能。
可见,上述这种处理方式,无需ZooKeeper集群参与,大大节省了系统维护成本;并且,将相关PR数据存储到OSD上,可以不受存储卷的规格限制,提高了用户体验。
基于同一发明构思,本申请还提供了一种数据处理装置,所述装置应用于Ceph中任一存储节点中的RBD服务端,其结构示意图如图5所示,具体包括:
保存模块51,用于在接收到所述存储节点中的支持第三代SCSI协议的第一TGT上的第一RBD客户端发送的保存指令时,将所述保存指令中携带的目标存储卷对应的PR数据保存到存储所述目标存储卷的OSD上,其中,所述PR数据为所述第一TGT从接收的来自第一用户设备的PR命令中获得的;
通知模块52,用于针对所述Ceph中除所述存储节点之外的任一其他存储节点中的第二TGT,若监测到所述RBD服务端与所述第二TGT之间的链路状态为正常状态,则向所述第二TGT上的第二RBD客户端发送用于通知所述目标存储卷对应的PR数据发生变更的通知消息,以使所述第二TGT根据所述通知消息,将自身的工作状态更改为更新状态,所述更新状态用于指示所述第二TGT执行以下操作:在接收到来自第二用户设备的针对所述目标存储卷的读/写请求时,从所述OSD获取所述PR数据,在成功获取到所述PR数据后,将其保存到内存中,并将所述工作状态恢复为正常状态,根据所述内存中的所述PR数据,对所述读/写请求进行处理;
发送模块53,用于在接收到所有第二TGT上的第二RBD客户端发送的用于通知已成功更改工作状态的通知确认消息时,向所述第一RBD客户端发送已成功保存所述PR数据的保存确认指令。
优选地,所述通知模块52,具体用于通过以下方式监测所述RBD服务端与所述第二TGT之间的链路状态:
监测所述第二RBD客户端发送的心跳保活消息;
若在设定的保活周期内接收到所述心跳保活消息,则确定所述RBD服务端与所述第二TGT之间的链路状态为正常状态;
若在所述保活周期内未接收到所述心跳保活消息,则确定所述RBD服务端与所述第二TGT之间的链路状态为异常状态。
基于同一发明构思,本申请又提供了一种数据处理装置,所述装置应用于Ceph中任一存储节点中的支持第三代小型计算机系统接口SCSI协议的第一TGT,其结构示意图如图6所示,具体包括:
获取模块61,用于在接收到第一用户设备发送的针对目标存储卷的PR命令时,从所述PR命令中获取所述目标存储卷对应的PR数据;
发送模块62,用于通过自身上的第一RBD客户端向所述存储节点中的RBD服务端发送携带有所述PR数据的保存指令;
接收模块63,用于通过所述第一RBD客户端接收所述RBD服务端发送的已成功保存所述PR数据的保存确认指令;
其中,所述保存确认指令为所述RBD服务端在执行以下操作后发送的:
在接收到所述保存指令后,将所述PR数据保存到存储所述目标存储卷的OSD上;
针对所述Ceph中除所述存储节点之外的任一其他存储节点中的第二TGT,若监测到所述RBD服务端与所述第二TGT之间的链路状态为正常状态,则向所述第二TGT上的第二RBD客户端发送用于通知所述目标存储卷对应的PR数据发生变更的通知消息,以使所述第二TGT根据所述通知消息,将自身的工作状态更改为更新状态,所述更新状态用于指示所述第二TGT在接收到来自第二用户设备的针对所述目标存储卷的读/写请求时,从所述OSD获取所述PR数据,在成功获取到所述PR数据后,将其保存到内存中,并将所述工作状态恢复为正常状态,根据内存中的所述PR数据,对所述读/写请求进行处理;
接收每个第二TGT上的第二RBD客户端发送的用于通知已成功更改工作状态的通知确认消息。
基于同一发明构思,本申请还提供了一种数据处理装置,所述装置应用于Ceph中任一存储节点中的支持第三代SCSI协议的第一TGT,其结构示意图如图7所示,具体包括:
更改模块71,用于在通过自身上的第一RBD客户端接收到所述Ceph中除所述存储节点之外的任一其他存储节点中的RBD服务端发送的用于通知目标存储卷对应的PR数据发生变更的通知消息时,将自身的工作状态更改为更新状态,其中,所述通知消息为所述RBD服务端在接收到所述其他存储节点中的第二TGT上的第二RBD客户端发送的保存指令时,将所述保存指令中携带的所述目标存储卷对应的PR数据保存到存储所述目标存储卷的OSD上,并在监测到所述RBD服务端与所述第一TGT之间的链路状态为正常状态后发送的,所述保存指令为所述第二TGT在接收到第一用户设备发送的PR命令时,从所述PR命令中获取到所述PR数据后发送的;
获取模块72,用于若在所述更新状态下接收到来自第二用户设备的针对所述目标存储卷的第一读/写请求时,从所述OSD获取所述PR数据;
恢复模块73,用于在成功获取到所述PR数据后,将自身的工作状态恢复为正常状态,并将所述PR数据保存到内存中;
处理模块74,用于根据所述内存中的所述PR数据,对所述第一读/写请求进行处理。
优选地,所述装置还包括:
监测模块(图7中未示出),用于监测所述RBD服务端与所述第一TGT之间的链路状态;
所述更改模块71,还用于在所述监测模块监测到所述链路状态为异常状态时,将自身的工作状态更改为异常状态;
阻塞模块(图7中未示出),用于若在所述异常状态下接收到来自第三用户设备的针对所述目标存储卷的第二读/写请求时,对第二读/写请求进行阻塞。
由以上技术方案可以看出,在本申请实施例中,在Ceph中任一存储节点中的支持第三代SCSI协议的TGT接收到来自用户设备的针对任一存储卷的PR命令时,通过该存储节点中的RBD服务端将相关PR数据保存到相应OSD上,并由RBD服务端将该存储卷的PR数据发生变更的消息通知给Ceph中所有的其他存储节点中的TGT,以便这些TGT通过更改工作状态的方式协助实现PR数据的一致性,RBD服务端在确保其他存储节点中的TGT均执行完相关协助操作流程后,再通知该存储节点中的TGT成功保存相关PR数据,从而实现了各TGT之间使用此PR数据的一致性,确保了读/写数据的性能。
可见,上述这种处理方式,无需ZooKeeper集群参与,大大节省了系统维护成本;并且,将相关PR数据存储到OSD上,可以不受存储卷的规格限制,提高了用户体验。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种数据处理方法,其特征在于,所述方法应用于分布式存储系统Ceph中任一存储节点中的RBD服务端,所述方法包括:
在接收到所述存储节点中的支持第三代小型计算机系统接口SCSI协议的第一目标器TGT上的第一RBD客户端发送的保存指令时,将所述保存指令中携带的目标存储卷对应的持久性预留PR数据保存到存储所述目标存储卷的对象存储设备OSD上,其中,所述PR数据为所述第一TGT从接收的来自第一用户设备的PR命令中获得的;
针对所述Ceph中除所述存储节点之外的任一其他存储节点中的第二TGT,若监测到所述RBD服务端与所述第二TGT之间的链路状态为正常状态,则向所述第二TGT上的第二RBD客户端发送用于通知所述目标存储卷对应的PR数据发生变更的通知消息,以使所述第二TGT根据所述通知消息,将自身的工作状态更改为更新状态,所述更新状态用于指示所述第二TGT执行以下操作:在接收到来自第二用户设备的针对所述目标存储卷的读/写请求时,从所述OSD获取所述PR数据,在成功获取到所述PR数据后,将其保存到内存中,并将所述工作状态恢复为正常状态,根据所述内存中的所述PR数据,对所述读/写请求进行处理;
在接收到所有第二TGT上的第二RBD客户端发送的用于通知已成功更改工作状态的通知确认消息时,向所述第一RBD客户端发送已成功保存所述PR数据的保存确认指令。
2.根据权利要求1所述的方法,其特征在于,通过以下方式监测所述RBD服务端与所述第二TGT之间的链路状态:
监测所述第二RBD客户端发送的心跳保活消息;
若在设定的保活周期内接收到所述心跳保活消息,则确定所述RBD服务端与所述第二TGT之间的链路状态为正常状态;
若在所述保活周期内未接收到所述心跳保活消息,则确定所述RBD服务端与所述第二TGT之间的链路状态为异常状态。
3.一种数据处理方法,其特征在于,所述方法应用于分布式存储系统Ceph中任一存储节点中的支持第三代小型计算机系统接口SCSI协议的第一目标器TGT,所述方法包括:
在接收到第一用户设备发送的针对目标存储卷的持久性预留PR命令时,从所述PR命令中获取所述目标存储卷对应的PR数据;
通过自身上的第一RBD客户端向所述存储节点中的RBD服务端发送携带有所述PR数据的保存指令;
通过所述第一RBD客户端接收所述RBD服务端发送的已成功保存所述PR数据的保存确认指令;
其中,所述保存确认指令为所述RBD服务端在执行以下操作后发送的:
在接收到所述保存指令后,将所述PR数据保存到存储所述目标存储卷的对象存储设备OSD上;
针对所述Ceph中除所述存储节点之外的任一其他存储节点中的第二TGT,若监测到所述RBD服务端与所述第二TGT之间的链路状态为正常状态,则向所述第二TGT上的第二RBD客户端发送用于通知所述目标存储卷对应的PR数据发生变更的通知消息,以使所述第二TGT根据所述通知消息,将自身的工作状态更改为更新状态,所述更新状态用于指示所述第二TGT在接收到来自第二用户设备的针对所述目标存储卷的读/写请求时,从所述OSD获取所述PR数据,在成功获取到所述PR数据后,将其保存到内存中,并将所述工作状态恢复为正常状态,根据所述内存中的所述PR数据,对所述读/写请求进行处理;
接收每个第二TGT上的第二RBD客户端发送的用于通知已成功更改工作状态的通知确认消息。
4.一种数据处理方法,其特征在于,所述方法应用于分布式存储系统Ceph中任一存储节点中的支持第三代小型计算机系统接口SCSI协议的第一目标器TGT,所述方法包括:
在通过自身上的第一RBD客户端接收到所述Ceph中除所述存储节点之外的任一其他存储节点中的RBD服务端发送的用于通知目标存储卷对应的持续性预留PR数据发生变更的通知消息时,将自身的工作状态更改为更新状态,其中,所述通知消息为所述RBD服务端在接收到所述其他存储节点中的第二TGT上的第二RBD客户端发送的保存指令时,将所述保存指令中携带的所述目标存储卷对应的PR数据保存到存储所述目标存储卷的对象存储设备OSD上,并在监测到所述RBD服务端与所述第一TGT之间的链路状态为正常状态后发送的,所述保存指令为所述第二TGT在接收到第一用户设备发送的PR命令时,从所述PR命令中获取到所述PR数据后发送的;
若在所述更新状态下接收到来自第二用户设备的针对所述目标存储卷的第一读/写请求时,从所述OSD获取所述PR数据;
在成功获取到所述PR数据后,将自身的工作状态恢复为正常状态,并将所述PR数据保存到内存中;
根据所述内存中的所述PR数据,对所述第一读/写请求进行处理。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若监测到所述RBD服务端与所述第一TGT之间的链路状态为异常状态,则将自身的工作状态更改为异常状态;
若在所述异常状态下接收到来自第三用户设备的针对所述目标存储卷的第二读/写请求时,对第二读/写请求进行阻塞。
6.一种数据处理装置,其特征在于,所述装置应用于分布式存储系统Ceph中任一存储节点中的RBD服务端,所述装置包括:
保存模块,用于在接收到所述存储节点中的支持第三代小型计算机系统接口SCSI协议的第一目标器TGT上的第一RBD客户端发送的保存指令时,将所述保存指令中携带的目标存储卷的持久性预留PR数据保存到存储所述目标存储卷的对象存储设备OSD上,其中,所述PR数据为所述第一TGT从接收的来自第一用户设备的PR命令中获得的;
通知模块,用于针对所述Ceph中除所述存储节点之外的任一其他存储节点中的第二TGT,若监测到所述RBD服务端与所述第二TGT之间的链路状态为正常状态,则向所述第二TGT上的第二RBD客户端发送用于通知所述目标存储卷对应的PR数据发生变更的通知消息,以使所述第二TGT根据所述通知消息,将自身的工作状态更改为更新状态,所述更新状态用于指示所述第二TGT执行以下操作:在接收到来自第二用户设备的针对所述目标存储卷的读/写请求时,从所述OSD获取所述PR数据,在成功获取到所述PR数据后,将其保存到内存中,并将所述工作状态恢复为正常状态,根据内存中的所述PR数据,对所述读/写请求进行处理;
发送模块,用于在接收到所有第二TGT上的第二RBD客户端发送的用于通知已成功更改工作状态的通知确认消息时,向所述第一RBD客户端发送已成功保存所述PR数据的保存确认指令。
7.根据权利要求6所述的装置,其特征在于,所述通知模块,具体用于通过以下方式监测所述RBD服务端与所述第二TGT之间的链路状态:
监测所述第二RBD客户端发送的心跳保活消息;
若在设定的保活周期内接收到所述心跳保活消息,则确定所述RBD服务端与所述第二TGT之间的链路状态为正常状态;
若在所述保活周期内未接收到所述心跳保活消息,则确定所述RBD服务端与所述第二TGT之间的链路状态为异常状态。
8.一种数据处理装置,其特征在于,所述装置应用于分布式存储系统Ceph中任一存储节点中的支持第三代小型计算机系统接口SCSI协议的第一目标器TGT,所述装置包括:
获取模块,用于在接收到第一用户设备发送的针对目标存储卷的持久性预留PR命令时,从所述PR命令中获取所述目标存储卷对应的PR数据;
发送模块,用于通过自身上的第一RBD客户端向所述存储节点中的RBD服务端发送携带有所述PR数据的保存指令;
接收模块,用于通过所述第一RBD客户端接收所述RBD服务端发送的已成功保存所述PR数据的保存确认指令;
其中,所述保存确认指令为所述RBD服务端在执行以下操作后发送的:
在接收到所述保存指令后,将所述PR数据保存到存储所述目标存储卷的对象存储设备OSD上;
针对所述Ceph中除所述存储节点之外的任一其他存储节点中的第二TGT,若监测到所述RBD服务端与所述第二TGT之间的链路状态为正常状态,则向所述第二TGT上的第二RBD客户端发送用于通知所述目标存储卷对应的PR数据发生变更的通知消息,以使所述第二TGT根据所述通知消息,将自身的工作状态更改为更新状态,所述更新状态用于指示所述第二TGT在接收到来自第二用户设备的针对所述目标存储卷的读/写请求时,从所述OSD获取所述PR数据,在成功获取到所述PR数据后,将其保存到内存中,并将所述工作状态恢复为正常状态,根据内存中的所述PR数据,对所述读/写请求进行处理;
接收每个第二TGT上的第二RBD客户端发送的用于通知已成功更改工作状态的通知确认消息。
9.一种数据处理装置,其特征在于,所述装置应用于分布式存储系统Ceph中任一存储节点中的支持第三代小型计算机系统接口SCSI协议的第一目标器TGT,所述装置包括:
更改模块,用于在通过自身上的第一RBD客户端接收到所述Ceph中除所述存储节点之外的任一其他存储节点中的RBD服务端发送的用于通知目标存储卷对应的持续性预留PR数据发生变更的通知消息时,将自身的工作状态更改为更新状态,其中,所述通知消息为所述RBD服务端在接收到所述其他存储节点中的第二TGT上的第二RBD客户端发送的保存指令时,将所述保存指令中携带的所述目标存储卷对应的PR数据保存到存储所述目标存储卷的对象存储设备OSD上,并在监测到所述RBD服务端与所述第一TGT之间的链路状态为正常状态后发送的,所述保存指令为所述第二TGT在接收到第一用户设备发送的PR命令时,从所述PR命令中获取到所述PR数据后发送的;
获取模块,用于若在所述更新状态下接收到来自第二用户设备的针对所述目标存储卷的第一读/写请求时,从所述OSD获取所述PR数据;
恢复模块,用于在成功获取到所述PR数据后,将自身的工作状态恢复为正常状态,并将所述PR数据保存到内存中;
处理模块,用于根据所述内存中的所述PR数据,对所述第一读/写请求进行处理。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
监测模块,用于监测所述RBD服务端与所述第一TGT之间的链路状态;
所述更改模块,还用于在所述监测模块监测到所述链路状态为异常状态时,将自身的工作状态更改为异常状态;
阻塞模块,用于若在所述异常状态下接收到来自第三用户设备的针对所述目标存储卷的第二读/写请求时,对第二读/写请求进行阻塞。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011531229.XA CN112637337B (zh) | 2020-12-22 | 2020-12-22 | 一种数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011531229.XA CN112637337B (zh) | 2020-12-22 | 2020-12-22 | 一种数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112637337A true CN112637337A (zh) | 2021-04-09 |
CN112637337B CN112637337B (zh) | 2022-02-22 |
Family
ID=75322018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011531229.XA Active CN112637337B (zh) | 2020-12-22 | 2020-12-22 | 一种数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112637337B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342785A (zh) * | 2021-07-06 | 2021-09-03 | 多点生活(成都)科技有限公司 | 数据处理方法和装置、服务端设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105892943A (zh) * | 2016-03-30 | 2016-08-24 | 上海爱数信息技术股份有限公司 | 一种分布式存储系统中块存储数据的访问方法及系统 |
US20170359243A1 (en) * | 2016-06-12 | 2017-12-14 | International Business Machines Corporation | Compute node cluster management |
CN107533438A (zh) * | 2015-08-14 | 2018-01-02 | 慧与发展有限责任合伙企业 | 存储器系统中的数据复制 |
CN109088921A (zh) * | 2018-07-24 | 2018-12-25 | 广东浪潮大数据研究有限公司 | 一种写操作处理方法、装置和计算机可读存储介质 |
CN110162378A (zh) * | 2018-02-13 | 2019-08-23 | 华为技术有限公司 | 一种资源调度的方法、装置、设备及系统 |
-
2020
- 2020-12-22 CN CN202011531229.XA patent/CN112637337B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107533438A (zh) * | 2015-08-14 | 2018-01-02 | 慧与发展有限责任合伙企业 | 存储器系统中的数据复制 |
CN105892943A (zh) * | 2016-03-30 | 2016-08-24 | 上海爱数信息技术股份有限公司 | 一种分布式存储系统中块存储数据的访问方法及系统 |
US20170359243A1 (en) * | 2016-06-12 | 2017-12-14 | International Business Machines Corporation | Compute node cluster management |
CN110162378A (zh) * | 2018-02-13 | 2019-08-23 | 华为技术有限公司 | 一种资源调度的方法、装置、设备及系统 |
CN109088921A (zh) * | 2018-07-24 | 2018-12-25 | 广东浪潮大数据研究有限公司 | 一种写操作处理方法、装置和计算机可读存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342785A (zh) * | 2021-07-06 | 2021-09-03 | 多点生活(成都)科技有限公司 | 数据处理方法和装置、服务端设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112637337B (zh) | 2022-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5982842B2 (ja) | コンピュータ障害監視プログラム、方法、及び装置 | |
CN103036719A (zh) | 一种基于主备集群服务器的跨地区服务容灾方法及装置 | |
CN110677282B (zh) | 一种分布式系统的热备份方法及分布式系统 | |
CN110933142A (zh) | 一种icfs集群网卡监控方法、装置和设备及介质 | |
CN113051110A (zh) | 集群切换方法、装置及设备 | |
CN105978721A (zh) | 一种集群系统中监控服务运行状态的方法、装置和系统 | |
CN109656753A (zh) | 一种应用于轨道交通综合监控系统的冗余热备系统 | |
CN109151082A (zh) | 一种多连接建立方法、装置和系统 | |
CN112367182B (zh) | 容灾主备用设备的配置方法及装置 | |
CN114764380A (zh) | 一种基于etcd的分布式集群控制方法和装置 | |
CN112637337B (zh) | 一种数据处理方法及装置 | |
CN111865659B (zh) | 主备控制器的切换方法和装置、控制器、网络设备 | |
CN108092829A (zh) | 集群分裂的处理方法、sdn控制器及存储介质 | |
CN113849127A (zh) | 基于san存储双活网络的仲裁方法、装置及电子设备 | |
CN105049263A (zh) | 一种数据处理方法和系统 | |
CN116185697A (zh) | 容器集群管理方法、装置、系统、电子设备及存储介质 | |
CN110895521A (zh) | 一种osd与mon的连接方法、装置、设备及存储介质 | |
CN114598593B (zh) | 消息处理方法、系统、计算设备及计算机存储介质 | |
CN105049264A (zh) | 一种数据处理方法和服务器端 | |
CN112787868B (zh) | 一种信息同步的方法和装置 | |
CN114116178A (zh) | 集群框架任务管理方法以及相关装置 | |
JP3266904B2 (ja) | 静的接続型ネットワークにおける監視システム | |
CN112732482A (zh) | 一种cifs业务备份切换方法、装置、设备及可读存储介质 | |
CN105159796A (zh) | 一种数据处理方法和服务器端 | |
CN110890989A (zh) | 一种通道连接方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |