本发明涉及数据存储技术领域,尤其涉及一种数据存储方法、装置、计算机设备和存储介质。
背景技术:
目前,存储领域中对接客户端最通用的对外接口为小型计算机系统接口(internetsmallcomputersysteminterface,iscsi)。iscsi利用tcp/ip协议作为沟通渠道,并利用iscsi协议交换scic命令。存储设备在作为存储服务器对接iscsi客户端时,一般采用多路径冗余(multipath)的方式来实现链路上的冗余,从而保证存储的高可用。
multipath的数据存储方式具有多个处于活跃状态的服务端,客户端的启动器(initiator)会在活跃的各个服务端的目标器(target)之间进行输入/输出(i/o)路径的切换,以使两个服务端共同完成数据的存储。然而,此种数据存储方式,当initiator由第一个target切换为第二个target时,若第一个target将需要存储的数据写入磁盘的时间晚于第二个target将需要存储的数据写入磁盘的时间,则会导致第二个target写入磁盘的数据出现被第一个target写入磁盘的数据覆盖的风险。
技术实现要素:
有鉴于此,本发明实施例提供一种数据存储方法、装置、计算机设备和存储介质,以避免出现写入磁盘的数据被误覆盖的情况。
第一方面,本发明实施例提供了一种数据存储方法,包括:
当成为本节点组的主节点时,获取本节点组的目标通信地址;
将所述目标通信地址设置为本节点的节点通信地址;
通过小型计算机系统接口接收客户端基于所述目标通信地址向本节点组发送的数据存储请求,并依据所述数据存储请求存储数据
第二方面,本发明实施例提供了一种数据存储装置,包括:
地址获取模块,用于在成为本节点组的主节点时,获取本节点组的目标通信地址;
地址设置模块,用于将所述目标通信地址设置为本节点的节点通信地址;
数据存储模块,用于通过小型计算机系统接口接收客户端基于所述目标通信地址向本节点组发送的数据存储请求,并依据所述数据存储请求存储数据。
第三方面,本发明实施例提供了一种计算机设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例所述的数据存储方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其该程序被处理器执行时实现如本发明实施例所述的数据存储方法。
在上述存储数据的技术方案中,节点组中的某一节点在成为本节点组的主节点时,获取本节点组的目标通信地址,将该目标通信地址设置为本节点的节点通信地址,通过小型计算机系统接口接收客户端基于该目标通信地址向本节点组发送的数据存储请求,并依据该数据存储请求存储数据。本发明实施例通过采用上述技术方案,数据存储系统中的每个节点组仅通过本节点组中的主节点对外提供数据存储服务,节点组中的从节点相对于客户端而言不可见,能够避免客户端在同一节点组的不同节点中进行切换,进而避免出现某一节点所写入的数据被同节点组中的其他节点写入的数据误覆盖的情况,保证数据存储系统中所存储数据的完整性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明实施例一提供的一种数据存储方法的流程示意图;
图2为本发明实施例二提供的一种数据存储方法的流程示意图;
图3为本发明实施例三提供的一种数据存储装置的结构框图;
图4为本发明实施例四提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
实施例一
本发明实施例一提供一种数据存储方法。该方法可以由数据存储装置执行,其中,该装置可以由软件和/或硬件实现,可集成在数据存储系统的各数据存储节点中,典型的,可以集成在分布式数据存储系统的各数据存储节点中。图1为本发明实施例一提供的一种数据存储方法的流程示意图。如图1所示,本实施例提供的数据存储方法包括:
s110、当成为本节点组的主节点时,获取本节点组的目标通信地址。
其中,目标通信地址可以理解为执行本实施例所提供的数据存储方法的主节点所属的节点组对外提供的通信地址。数据存储系统中可以设置有多个节点组,每个节点组中包含主节点和从节点,各节点组对外只提供一个通信地址(如虚拟ip地址),并通过主节点采用该通信地址对外提供数据存储服务。本实施例中提供的数据存储方法可由各节点组中的主节点执行,当某一主节点执行本实施例提供的数据存储方法时,本节点组可以理解为该主节点所属的节点组,目标通信地址可以理解为该主节点所属的节点组对外提供的通信地址,该通信地址可以存储于该节点组的各节点中,也可以存储于数据存储系统的主控节点中。在实施例中,数据存储系统中的不同节点组对应的存储设备或存储卷可以相同或不相同;同一节点组中的不同节点对应的存储卷可以不相同,以便于在某一节点对应的存储卷出现故障时,可以采用该节点组中的其他节点对应的存储卷存储数据,从而进一步提高数据存储系统的可用性。
具体的,节点组中的任意一个节点在被工作人员指定或选举成为本节点组中的主节点之后,即节点组中任意一个节点在监测到自身成为本节点组的主节点之后,可以自本地获取本节点组的目标通信地址,或者,向数据存储系统的主控节点发送通信地址获取请求,并接收数据存储系统的主控节点基于该通信地址获取请求返回的本节点组的目标通信地址。
在一个实施方式中,本实施例提供的数据存储方法还可以包括:在成为本节点组的主节点之前,接收本节点组中的原始主节点发送的心跳包,并当在预设时间长度内未接收所述原始主节点发送的心跳包时,发起选举,以选举得到本节点组的当前主节点。
其中,预设时间长度可以由工作人员根据需要进行设置,如当节点组中的原始主节点按照预先设置的某一周期长度周期性地向节点组中的各从节点发送心跳包时,该预设时间长度可以设置为该周期长度的2倍或3倍等,本实施例不对此进行限制。
在上述实施方式中,当节点组中的原始主节点无法正常提供存储服务时,如当节点组中的原始主节点发生故障或延迟较高时,节点组中的从节点可以通过选举的方式重新确定节点组中的当前主节点,并采用该当前主节点替代节点组中的原始主节点对外提供存储服务。此时,示例性的,节点组中的原始主节点可以周期性地向本节点组中的各从节点发送心跳包;相应的,节点组中的各从节点接收原始主节点发送的心跳包,实时监测当前时刻距离本节点最后一次接收到原始主节点发送的心跳包的时间间隔是否达到预设时间长度,在该时间间隔达到预设时间长度时,发起选举,并在选举成为本节点组的主节点时,获取本节点组中的目标通信地址,将该目标通信地址设置为本节点的节点通信地址,以替代本节点组中的原始主节点对外提供数据存储服务。
在本实施例中,当节点组中的某一从节点选举成为本节点组的当前主节点后,该当前主节点还可以周期性地向本节点组中的从节点发送心跳包,以便于本节点组中的从节点在当前主节点无法正常提供存储服务时,重新选取本节点组的主节点。此时,优选的,本实施例提供的数据存储方法还可以包括:周期性地向本节点组中的从节点发送心跳包,以使本节点组中的从节点确定本节点的节点状态。
s120、将所述目标通信地址设置为本节点的节点通信地址。
其中,节点通信地址可以理解为数据存储系统中的数据存储节点的通信地址。
具体的,节点组中的当前主节点在成为本节点组的主节点时,即在自身在本节点组中的身份由从节点切换为主节点时,可以获取本节点组中的目标通信地址,并将该目标通信地址设置为自身的节点通信地址,以便于后续接收客户端依据节点组的目标通信地址向本节点组发送数据存储请求,并进行处理。
s130、通过小型计算机系统接口接收客户端基于所述目标通信地址向本节点组发送的数据存储请求,并依据所述数据存储请求存储数据。
在本实施例中,数据存储系统中的各节点可以设置有小型计算机系统接口(internetsmallcomputersysteminterface,iscsi),并可以通过iscsi与客户端或数据存储系统中的其他节点进行通信。
示例性的,客户端在需要通过某一节点组存储数据时,在scsi协议及tcp/ip协议下,依据该节点组的目标通信地址向该节点组发送数据存储请求;由于该节点组中的当前主节点将节点组的目标通信地址设置为了自身的节点通信地址,故,当客户端依据目标通信地址向节点组发送数据存储请求时,节点组中的当前主节点即可以通过自身的iscsi接收到客户端发送的数据存储请求,并对该数据存储请求所请求存储的数据进行存储。此外,当前主节点在将数据存储请求所请求存储的数据存储完成后,还可以进一步向客户端返回存储响应信息,通过该存储响应信息提醒客户端数据存储成功,以便客户端继续执行后续数据存储操作。
可以理解的是,当同一节点组中的不同节点所对应的存储设备或存储卷不相同时,当前主节点在将数据存储请求所请求存储的数据存储到自身对应的存储设备或存储卷中之后,还可以将该数据请求所请求存储的数据同步给节点组中的各从节点进行存储,以确保主节点中的某一从节点选举成为新的主节点后,能够基于客户端的请求读取或更新该数据存储请求所请求存储的数据,此时,优选的,所述依据所述数据存储请求存储数据,包括:存储所述数据存储请求请求存储的目标数据,并向本节点组中的其他节点发送数据存储指令,以通过所述数据存储指令指示本节点组中的其他节点存储所述目标数据。
本实施例提供额数据存储方法,节点组中的某一节点在成为本节点组的主节点时,获取本节点组的目标通信地址,将该目标通信地址设置为本节点的节点通信地址,通过小型计算机系统接口接收客户端基于该目标通信地址向本节点组发送的数据存储请求,并依据该数据存储请求存储数据。本实施例通过采用上述技术方案,数据存储系统中的每个节点组仅通过本节点组中的主节点对外提供数据存储服务,节点组中的从节点相对于客户端而言不可见,能够避免客户端在同一节点组的不同节点中进行切换,进而避免出现某一节点所写入的数据被同节点组中的其他节点写入的数据误覆盖的情况,保证数据存储系统中所存储数据的完整性。
实施例二
图2为本发明实施例二提供的一种数据存储方法的流程示意图。本实施例在上述实施例的基础上进行优化,进一步地,本实施例提供的数据存储方法还可以包括:控制客户端与本节点组中的原始主节点断开通信连接。
进一步地,在所述获取本节点组的目标通信地址之前,还包括:自访问控制列表中删除本节点的访问控制标识,并在所述访问控制列表中为本节点组中的原始主节点添加访问控制标识,其中,所述访问控制标识用于禁止所述访问控制标识对应的节点与非本节点组中的节点建立通信连接。
相应的,如图2所示,本实施例提供的数据存储方法包括:
s210、当成为本节点组的主节点时,控制客户端与本节点组中的原始主节点断开通信连接。
其中,原始主节点可以理解为执行本步骤的节点在成为其所属节点组的主节点之前,其所属节点组中的主节点。
在本实施例中,节点组中的从节点在替代本节点组中的原始主节点,成为本节点组中的主节点后,可以控制客户端与该原始主节点断开连接,以避免出现客户端继续与原始主节点通信的情况,确保在选举得到新的主节点后,客户端不会继续向节点组中的原始主节点继续发送数据存储请求。此外,节点组中的从节点在替代本节点组中的原始主节点成为本节点组中的主节点后,还可以进一步控制数据存储系统中未位于本节点组中的节点同本节点组中的原始主节点断开连接,以避免出现未位于本节点组中的节点继续基于已建立的通信连接向本节点组中的原始主节点发送通信信息的情况,以下以此种情况为例进行说明。
示例性的,节点组中的某一从节点在成为本节点组中的主节点之后,可以向数据存储系统中除本节点组中的节点之外的其他节点以及与原始主节点建立通信连接的客户端发送断开连接指令,通过该断开连接指令指示数据存储系统中除本节点组中的节点之外的其他节点以及与原始主节点建立通信连接的客户单断开其与该原始主节点之间的通信连接;相应的,数据存储系统中的相应节点以及与原始主节点建立通信连接的客户端在接收到该主节点发送的断开连接指令之后,可以基于该断开连接指令,断开其与发送该断开连接指令的主节点所属节点组中的原始主节点之间的通信连接。
此外,本实施例提供的数据存储方法还可以包括:向数据存储系统中其他节点组的主节点发送第一连接建立请求,以与其他节点组的主节点建立通信连接。
其中,第一连接建立请求可以理解为节点组中的主节点向本节点组之外的其他节点发送的通信连接建立请求。
在本实施例中,节点组中的某一从节点在替代其所属节点组中的原始主节点成为其所属节点组中新的主节点后,可以与数据存储系统中其他节点组中的主节点建立通信连接,以便后续与其他节点组中的主节点进行通信。此时,示例性的,节点组中的某一从节点在替代其所属节点组中的原始主节点成为其所属节点组中新的主节点后,可以基于数据存储系统中其他节点组对外提供的通信地址,向数据存储系统中其他节点组中的主节点发送第一连接建立请求;相应的,其他节点组中的主节点在接收到该第一连接建立请求之后,可以查询访问控制列表,判断发送该第一连接建立请求的节点是否具有访问控制标识,若是,则拒绝该第一连接建立请求;若否,则基于该第一连接建立请求与发送该第一连接建立请求的主节点建立通信连接。
可以理解的是,节点组中的某一从节点在替代其所属节点组中的原始主节点成为其所属节点组中新的主节点之后,也可以判断本节点是否具有与数据存储系统中除本节点组中的节点之外的其他节点进行通信的需求,若是,则向具有通信需求的其他节点发送第一连接建立请求,以与该其他节点建立通信连接;若否,则可以不向数据存储系统中除本节点之外的其他节点发送第一连接建立请求,直至具有与某一其他节点进行通信的需求或接收到某一其他节点发送的第二连接建立请求为止。
s220、自访问控制列表中删除本节点的访问控制标识,并在所述访问控制列表中为本节点组中的原始主节点添加访问控制标识,其中,所述访问控制标识用于禁止所述访问控制标识对应的节点与非本节点组中的节点建立通信连接。
其中,访问控制标识可以理解为用于指示节点是否能够进行访问的标识,当某一节点具有访问控制标识时,则说明该节点处于不可访问的状态,即不可与该节点建立通信连接;访问控制列表可以理解为用于记录数据存储系统中的各节点是否设置有访问控制标识的表单,其可以存储于数据存储系统所配置的数据库中。
在本实施例中,节点组中的某一从节点在替代本节点组中的原始主节点成为本节点组中的主节点之后,可以删除访问控制列表中记录的本节点的访问控制标识,在控制列表中为本节点组中的原始主节点添加访问控制标识,以将本节点调整为可访问状态,并将本节点组中的原始主节点调整为不可访问状态,避免出现本节点组中的原始主节点在恢复正常后主动与数据存储系统中除本节点组中的节点之外的其他节点建立通信连接的情况。
在一个实施方式中,本实施例提供的数据存储方法还可以包括:当接收到其他节点组中的节点发送的第二连接建立请求时,查询所述访问控制列表,以确定所述发送所述连接建立请求的节点是否设置有访问控制标识;如果所述发送所述连接建立请求的节点设置有访问控制标识,则拒绝所述第二连接建立请求;如果发送所述连接建立请求的节点未设置访问控制标识,则基于所述第二连接建立请求与发送所述连接建立请求的节点建立通信连接。
其中,第二连接建立请求可以理解为节点组中的主节点接收到的、除本节点组中的节点之外的其他节点发送的通信连接建立请求。
在上述实施方式中,数据存储系统中的节点在需要与数据存储系统某一节点组中的主节点建立通信连接时,可以基于该节点组对外提供的通信地址,向该节点组中的主节点发送第二连接建立请求;相应的,节点组中的主节点在接收到非本节点组中的节点发送的第二连接建立请求时,可以基于访问控制列表判断发送该第二连接建立请求的节点是否设置有访问控制标识,若是,则不执行建立通信连接的操作,并可以进一步向该节点返回拒绝响应信息;若否,则可以基于该第二连接建立请求,与发送该第二连接建立请求的节点建立通信连接。
s230、获取本节点组的目标通信地址。
s240、将所述目标通信地址设置为本节点的节点通信地址。
s250、通过小型计算机系统接口接收客户端基于所述目标通信地址向本节点组发送的数据存储请求,存储所述数据存储请求请求存储的目标数据,并向本节点组中的其他节点发送数据存储指令,以通过所述数据存储指令指示本节点组中的其他节点存储所述目标数据。
在一个实施方式中,本实施例提供的数据存储方法还可以包括:当接收到本节点组中的目标节点发送的数据存储指令时,查询所述访问控制列表,以确定所述目标节点是否设置有访问控制标识;如果所述目标节点设置有访问控制标识,则拒绝所述数据存储指令;如果所述目标节点未设置访问控制标识,则基于所述数据存储指令存储数据。
其中,数据存储指令可以理解为本节点接收到的、由本节点组中的其他节点发送的、指示本节点存储数据的指令;目标节点可以理解为发送该数据存储指令的节点。
在上述实施方式中,节点组中的任意一个节点在接收到本节点组中的其他节点发送的数据存储指令时,可以判断发送该数据存储指令的节点是否设置有访问控制标识,若是,则不对该数据存储指令进行响应,即不执行基于该数据存储指令的数据存储操作;若否,则基于该数据存储指令,存储该数据存储指令所指示存储的数据,从而,当节点组中的原始主节点继续基于其任务队列中已经接收到的但尚未执行的数据存储请求,通过发送数据存储指令指示节点组中的节点存储数据时,确保原始主节点发送的数据存储指令不会被执行,进而使得原始主节点的任务队中的数据存储请求执行失败,避免出现已选举出新的主节点后,原始主节点继续执行客户端发送的数据存储请求的情况。本实施例提供的数据存储方法,在成为本节点组的主节点时,控制客户端与本节点组中的原始主节点断开通信连接,自访问控制列表中删除本节点的访问控制标识,在访问控制列表中为本节点组中的原始主节点添加访问控制标识,不仅能够将本节点调整为可访问状态,还能够将本节点组中的原始主节点调整为不可访问状态,并控制本节点组中的原始主节点停止执行自身尚未执行的数据存储任务,进而降低节点组中的原始主节点被误访问的概率,并进一步提高数据存储系统中所存储数据的完整性。
实施例三
本发明实施例三提供一种数据存储装置。该装置可以由软件和/或硬件实现,可集成在数据存储系统的各数据存储节点中,典型的,可以集成在分布式数据存储系统的各数据存储节点中,可通过执行数据存储方法存储数据。图3为本发明实施例三提供的一种数据存储装置的结构框图。如图3所示,本实施例提供的数据存储装置可以包括:地址获取模块301、地址设置模块302和数据存储模块303,其中,
地址获取模块301,用于在成为本节点组的主节点时,获取本节点组的目标通信地址;
地址设置模块302,用于将所述目标通信地址设置为本节点的节点通信地址;
数据存储模块303,用于通过小型计算机系统接口接收客户端基于所述目标通信地址向本节点组发送的数据存储请求,并依据所述数据存储请求存储数据。
本实施例提供额数据存储装置,节点组中的某一节点在成为本节点组的主节点时,通过地址获取模块获取本节点组的目标通信地址,通过地址设置模块将该目标通信地址设置为本节点的节点通信地址,通过数据存储模块通过小型计算机系统接口接收客户端基于该目标通信地址向本节点组发送的数据存储请求,并依据该数据存储请求存储数据。本实施例通过采用上述技术方案,数据存储系统中的每个节点组仅通过本节点组中的主节点对外提供数据存储服务,节点组中的从节点相对于客户端而言不可见,能够避免客户端在同一节点组的不同节点中进行切换,进而避免出现某一节点所写入的数据被同节点组中的其他节点写入的数据误覆盖的情况,保证数据存储系统中所存储数据的完整性。
进一步地,本实施例提供的数据存储装置还可以包括:连接断开模块,用于控制客户端与本节点组中的原始主节点断开通信连接。
进一步地,本实施例提供的数据存储装置还可以包括:标识删除模块,用于在所述获取本节点组的目标通信地址之前,自访问控制列表中删除本节点的访问控制标识,并在所述访问控制列表中为本节点组中的原始主节点添加访问控制标识,其中,所述访问控制标识用于禁止所述访问控制标识对应的节点与非本节点组中的节点建立通信连接。
在上述方案中,所述数据存储模块303可以用于:通过小型计算机系统接口接收客户端基于所述目标通信地址向本节点组发送的数据存储请求,存储所述数据存储请求请求存储的目标数据,并向本节点组中的其他节点发送数据存储指令,以通过所述数据存储指令指示本节点组中的其他节点存储所述目标数据。
进一步地,本实施例提供的数据存储装置还可以包括:指令处理模块,用于在接收到本节点组中的目标节点发送的数据存储指令时,查询所述访问控制列表,以确定所述目标节点是否设置有访问控制标识;如果所述目标节点设置有访问控制标识,则拒绝所述数据存储指令;如果所述目标节点未设置访问控制标识,则基于所述数据存储指令存储数据。
进一步地,本实施例提供的数据存储装置还可以包括:选举模块,用于在成为本节点组的主节点之前,接收本节点组中的原始主节点发送的心跳包,并当在预设时间长度内未接收所述原始主节点发送的心跳包时,发起选举,以选举得到本节点组的当前主节点。
进一步地,本实施例提供的数据存储装置还可以包括:心跳包发送模块,用于周期性地向本节点组中的从节点发送心跳包,以使本节点组中的从节点确定本节点的节点状态。
本发明实施例三提供的数据存储装置可执行本发明任意实施例提供的数据存储方法,具备执行数据存储方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的数据存储方法。
实施例四
图4为本发明实施例四提供的一种计算机设备的结构示意图,如图4所示,该计算机设备包括处理器40和存储器41,还可以包括输入装置42和输出装置43;计算机设备中处理器40的数量可以是一个或多个,图4中以一个处理器40为例;计算机设备中的处理器40、存储器41、输入装置42和输出装置43可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器41作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的数据存储方法对应的程序指令/模块(例如,数据存储装置中的地址获取模块301、地址设置模块302和数据存储模块303)。处理器40通过运行存储在存储器41中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的数据存储方法。
存储器41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置42可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置43可包括显示屏等显示设备。
本发明实施例四还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种数据存储方法,该方法包括:
当成为本节点组的主节点时,获取本节点组的目标通信地址;
将所述目标通信地址设置为本节点的节点通信地址;
通过小型计算机系统接口接收客户端基于所述目标通信地址向本节点组发送的数据存储请求,并依据所述数据存储请求存储数据。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的数据存储方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述数据存储装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
1.一种数据存储方法,其特征在于,包括:
当成为本节点组的主节点时,获取本节点组的目标通信地址;
将所述目标通信地址设置为本节点的节点通信地址;
通过小型计算机系统接口接收客户端基于所述目标通信地址向本节点组发送的数据存储请求,并依据所述数据存储请求存储数据。
2.根据权利要求1所述的方法,其特征在于,还包括:
控制客户端与本节点组中的原始主节点断开通信连接。
3.根据权利要求1所述的方法,其特征在于,在所述获取本节点组的目标通信地址之前,还包括:
自访问控制列表中删除本节点的访问控制标识,并在所述访问控制列表中为本节点组中的原始主节点添加访问控制标识,其中,所述访问控制标识用于禁止所述访问控制标识对应的节点与非本节点组中的节点建立通信连接。
4.根据权利要求3所述的方法,其特征在于,所述依据所述数据存储请求存储数据,包括:
存储所述数据存储请求请求存储的目标数据,并向本节点组中的其他节点发送数据存储指令,以通过所述数据存储指令指示本节点组中的其他节点存储所述目标数据。
5.根据权利要求4所述的方法,其特征在于,还包括:
当接收到本节点组中的目标节点发送的数据存储指令时,查询所述访问控制列表,以确定所述目标节点是否设置有访问控制标识;
如果所述目标节点设置有访问控制标识,则拒绝所述数据存储指令;
如果所述目标节点未设置访问控制标识,则基于所述数据存储指令存储数据。
6.根据权利要求1-5任一所述的方法,其特征在于,还包括:
在成为本节点组的主节点之前,接收本节点组中的原始主节点发送的心跳包,并当在预设时间长度内未接收所述原始主节点发送的心跳包时,发起选举,以选举得到本节点组的当前主节点。
7.根据权利要求6所述的方法,其特征在于,还包括:
周期性地向本节点组中的从节点发送心跳包,以使本节点组中的从节点确定本节点的节点状态。
8.一种数据存储装置,其特征在于,包括:
地址获取模块,用于在成为本节点组的主节点时,获取本节点组的目标通信地址;
地址设置模块,用于将所述目标通信地址设置为本节点的节点通信地址;
数据存储模块,用于通过小型计算机系统接口接收客户端基于所述目标通信地址向本节点组发送的数据存储请求,并依据所述数据存储请求存储数据。
9.一种计算机设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的数据存储方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的数据存储方法。
技术总结