一种分布式存储服务切换方法及装置与流程

文档序号:24527468发布日期:2021-04-02 10:04阅读:95来源:国知局
一种分布式存储服务切换方法及装置与流程

本申请涉及数据存储技术领域,特别涉及一种分布式存储服务切换方法及装置。



背景技术:

分布式存储,是将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。

传统的serversan(软件定义存储)分布式存储架构为:服务器上配置普通网卡,分布式存储软件运行在主机的x86cpu上。节点间通信采用tcp协议,经内核网络协议栈。各节点上分布式存储管理物理主机本地(pcie)的nvme设备。集群联动对外提供存储服务,并保证存储数据的一致性。

然而,传统的分布式存储架构中,运行在物理机上的分布式存储软件会占用物理机的cpu,内存等系统资源;与虚拟机共用物理机cpu资源,分布式存储软件占用的cpu数量会影响可建立的虚拟机数量。运行在物理机的分布式存储性能会受物理机os和虚拟机运行的影响。运行在物理机的分布式存储软件管理其本地存储资源,也需要消耗一部分系统资源,即通过系统调用访问抽象的块层。

为了解决上述问题,可以通过在存储服务器上配置nvme盘,智能网卡,及配置nvmeoftarget。智能网卡上有独立于物理服务器的cpu,如armcpu,在armcpu上运行分布式存储软件,分布式存储软件所管理数据盘是通过nvmeof连接到本主机的nvmeoftarget形成网络数据盘。多个arm存储结点组成分布式存储。

但是,基于智能网卡的分布式存储集群的可靠性受限于智能网卡的arm节点的数量,如最小分布式存储集群节点数为3。当3个智能网卡组成集群环境里的一个智能网卡故障时,集群里只有2个节点时,存在脑裂风险;当3个智能网卡组成集群环境里的超过两个智能网卡故障时,集群不能提供服务。

对一定数量节点的分布式存储,当集群少量节点down,剩余存储集群节点数量仍能满足要求,常规处理方法是触发数据平衡。当只有智能网卡故障,而磁盘是正常的,此时因为智能网卡故障,导致此节点不能正常读写磁盘,集群虽然还能提供存储服务,但新的存储io会分散到其他节点的磁盘上,最终引起整个集群的数据不均衡。



技术实现要素:

本申请提供了一种分布式存储服务切换方法及装置,用以解决现有技术中存在的由于智能网卡故障而导致分布式存储服务不可用的问题。

第一方面,本申请提供了一种分布式存储服务切换方法,应用于分布式存储系统,所述分布式存储系统中各存储服务器分别配置有对应的智能网卡,各智能网卡上运行分布式存储服务,所述各智能网卡分别与其对应的存储服务器上用于管理本地存储资源的控制器建立rdma通道,所述各存储服务器上部署有被设置为待启动状态的分布式存储服务,所述方法包括:

接收客户端发送的第一数据读写请求,并确定处理所述第一数据读写请求的目标存储服务器;

将所述第一数据读写请求发送给目标存储服务器对应的目标智能网卡,以使得所述目标智能网卡基于本地运行的分布式存储服务对所述第一数据读写请求进行数据处理;

若检测到所述目标智能网卡故障,则启动所述目标存储服务器上部署的被设置为待启动状态的分布式存储服务,以使得所述目标存储服务器基于本地运行的分布式存储服务对所述客户端发送的需所述目标存储服务器进行处理的第二数据读写请求进行数据处理。

可选地,所述目标智能网卡基于本地运行的分布式存储服务对所述第一数据读写请求进行数据处理的步骤包括:

所述目标智能网卡将所述第一数据读写请求发送至所述目标存储服务器上用于管理本地存储资源的控制器,其中,所述控制器通过其对应的rdma通道对所述第一数据读写请求进行数据处理。

可选地,所述目标智能网卡在正常运行时,基于预设的周期向所述目标存储服务器的内存中的第一指定位置写入心跳计数信息;

检测到所述目标智能网卡故障的步骤包括:

当检测到所述目标存储服务器的内存中的第一指定位置维护的心跳计数在预设时长内未增加时,确定检测到所述目标智能网卡故障。

可选地,所述目标存储服务器上部署的被设置为待启动状态的分布式存储服务启动之后,所述目标存储服务器基于预设的周期向内存中的第二指定位置写入心跳计数信息;

在检测到所述目标智能网卡恢复正常时,若所述目标存储服务器上部署的分布式存储服务的状态为待启动和/或所述目标存储服务器的内存中的第二指定位置维护的心跳计数在预设时长内未增加,则所述目标智能网卡启动分布式存储服务,并对所述客户端发送的需所述目标存储服务器进行处理的第三数据读写请求进行数据处理。

可选地,所述方法还包括:

在检测到所述目标智能网卡恢复正常时,若所述目标存储服务器上部署的分布式存储服务运行正常,则所述目标智能网卡向所述目标存储服务器发送切换指令,并启动计时器,以使得所述目标存储服务器将本地运行的分布式存储服务设置为待启动状态,并启动与所述目标智能网卡之间的rdma通道,以及向所述目标智能网卡发送切换完成指令;若所述目标智能网卡在接收到所述切换完成指令/在所述计时器超时时未接收到所述切换完成指令,则所述目标智能网卡启动分布式存储服务,并对所述客户端发送的需所述目标存储服务器进行处理的第三数据读写请求进行数据处理。

可选地,所述方法还包括:

在所述目标智能网卡上启动分布式存储服务时,将所述目标存储服务器存储资源中存储的元数据加载至所述目标存储服务器的内存中的第三指定位置,其中,在检测到所述目标智能网卡故障,启动所述目标存储服务器上部署的被设置为待启动状态的分布式存储服务时,所述目标存储服务器基于所述第三指定位置存储的元数据对所述第二数据读写请求进行数据处理。

第二方面,本申请提供了一种分布式存储服务切换装置,应用于分布式存储系统,所述分布式存储系统中各存储服务器分别配置有对应的智能网卡,各智能网卡上运行分布式存储服务,所述各智能网卡分别与其对应的存储服务器上用于管理本地存储资源的控制器建立rdma通道,所述各存储服务器上部署有被设置为待启动状态的分布式存储服务,所述装置包括:

接收单元,用于接收客户端发送的第一数据读写请求,并确定处理所述第一数据读写请求的目标存储服务器;

发送单元,用于将所述第一数据读写请求发送给目标存储服务器对应的目标智能网卡,以使得所述目标智能网卡基于本地运行的分布式存储服务对所述第一数据读写请求进行数据处理;

切换单元,用于在检测到所述目标智能网卡故障时,启动所述目标存储服务器上部署的被设置为待启动状态的分布式存储服务,以使得所述目标存储服务器基于本地运行的分布式存储服务对所述客户端发送的需所述目标存储服务器进行处理的第二数据读写请求进行数据处理。

可选地,所述目标智能网卡基于本地运行的分布式存储服务对所述第一数据读写请求进行数据处理的步骤包括:

所述目标智能网卡将所述第一数据读写请求发送至所述目标存储服务器上用于管理本地存储资源的控制器,其中,所述控制器通过其对应的rdma通道对所述第一数据读写请求进行数据处理。

可选地,所述目标智能网卡在正常运行时,基于预设的周期向所述目标存储服务器的内存中的第一指定位置写入心跳计数信息;

在检测到所述目标智能网卡故障时,所述切换单元具体用于:

当检测到所述目标存储服务器的内存中的第一指定位置维护的心跳计数在预设时长内未增加时,确定检测到所述目标智能网卡故障。

可选地,所述目标存储服务器上部署的被设置为待启动状态的分布式存储服务启动之后,所述目标存储服务器基于预设的周期向内存中的第二指定位置写入心跳计数信息;

所述切换单元还用于,在检测到所述目标智能网卡恢复正常时,若所述目标存储服务器上部署的分布式存储服务的状态为待启动和/或所述目标存储服务器的内存中的第二指定位置维护的心跳计数在预设时长内未增加,则所述目标智能网卡启动分布式存储服务,并对所述客户端发送的需所述目标存储服务器进行处理的第三数据读写请求进行数据处理。

可选地,所述切换单元还用于,在检测到所述目标智能网卡恢复正常时,若所述目标存储服务器上部署的分布式存储服务运行正常,则所述目标智能网卡向所述目标存储服务器发送切换指令,并启动计时器,以使得所述目标存储服务器将本地运行的分布式存储服务设置为待启动状态,并启动与所述目标智能网卡之间的rdma通道,以及向所述目标智能网卡发送切换完成指令;若所述目标智能网卡在接收到所述切换完成指令/在所述计时器超时时未接收到所述切换完成指令,则所述目标智能网卡启动分布式存储服务,并对所述客户端发送的需所述目标存储服务器进行处理的第三数据读写请求进行数据处理。

可选地,所述装置还包括:

加载单元,在所述目标智能网卡上启动分布式存储服务时,所述加载单元将所述目标存储服务器存储资源中存储的元数据加载至所述目标存储服务器的内存中的第三指定位置,其中,在检测到所述目标智能网卡故障,启动所述目标存储服务器上部署的被设置为待启动状态的分布式存储服务时,所述目标存储服务器基于所述第三指定位置存储的元数据对所述第二数据读写请求进行数据处理。

第三方面,本申请实施例提供一种分布式存储服务切换装置,该装置包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如上述第一方面中任一项所述的方法的步骤。

第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行如上述第一方面中任一项所述方法的步骤。

综上可知,本申请实施例提供的分布式存储服务切换方法,接收客户端发送的第一数据读写请求,并确定处理所述第一数据读写请求的目标存储服务器;将所述第一数据读写请求发送给目标存储服务器对应的目标智能网卡,以使得所述目标智能网卡基于本地运行的分布式存储服务对所述第一数据读写请求进行数据处理;若检测到所述目标智能网卡故障,则启动所述目标存储服务器上部署的被设置为待启动状态的分布式存储服务,以使得所述目标存储服务器基于本地运行的分布式存储服务对所述客户端发送的需所述目标存储服务器进行处理的第二数据读写请求进行数据处理。

采用本申请实施例提供的分布式存储服务切换方法,在智能网卡故障无法提供分布式存储服服务时,可以启动预先部署在存储服务器上的分布式存储服务,避免了由于智能网卡故障而导致分布式存储系统不可用的问题,提升了分布式存储系统的可靠性,增强用户体验度。

附图说明

为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。

图1为本申请实施例提供的一种分布式存储系统的结构示意图;

图2为本申请实施例提供的一种分布式存储服务切换方法的详细流程图;

图3为本申请实施例提供的一种分布式存储服务切换装置的结构示意图;

图4为本申请实施例提供的另一种分布式存储服务切换装置的结构示意图。

具体实施方式

在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

下面结合具体应用场景对本申请实施例提供的分布式存储系统的结构进行详细说明。示例性的,参阅图1所示,为本申请提供的一种分布式存储系统的结构示意图,其中,该分布式存储系统包括3个存储服务器(存储服务器1,存储服务器2和存储服务器3),需要说明的是,本申请实施例中,各存储服务器上部署有被设置为待启动状态的分布式存储服务。各存储服务器配置有对应的智能网卡(智能网卡1,智能网卡2和智能网卡3),各存储服务器均包括用于存储数据的存储资源和用于管理本地存储资源的控制器,各智能网卡上运行分布式存储服务,各存储服务器配置的智能网卡与其对应的存储服务器上用于管理本地存储资源的控制器之间建立远程直接数据存取(remotedirectmemoryaccess,rdma)通道。每个控制器管理的存储资源可以由多个磁盘组成。磁盘具体可以是符合非易失性内存主机控制器接口规范(non-volatilememoryexpress,nvme)的磁盘,本说明书中可以称其为nvme磁盘。

也就是说,针对一个存储服务器而言,在其对应的智能网卡正常时,可由智能网卡提供分布式存储服务,采用其对应的智能网卡对客户端发送的需自身处理的数据读写请求进行数据处理,在智能网卡故障时,即可采用存储服务器本地部署的分布式存储服务对客户端发送的需自身处理的数据读写请求进行数据处理。

需要注意的是,上述系统结构以及设备数量、磁盘数量等都仅用于示例性说明,并不用于限定。

所谓智能网卡,是可以具有独立的中央处理器(centralprocessingunit,cpu)。智能网卡也可以叫作加速卡,具有一定的网络、存储加速能力,通常可以通过现场可编程门阵列(field-programmablegatearray,fpga)实现。由于智能网卡本身可以进行基于分布式存储的数据输入/输出的处理,因此可以将存储服务器的处理器从该业务中解放出来,只由智能网卡处理数据的输入/输出。

示例性的,参阅图2所示,为本申请实施例提供的一种分布式存储服务切换方法的详细流程图,该方法应用于分布式存储系统,该分布式存储系统中各存储服务器分别配置有对应的智能网卡,各智能网卡上运行分布式存储服务,该各智能网卡分别与其对应的存储服务器上用于管理本地存储资源的控制器建立rdma通道,该各存储服务器上部署有被设置为待启动状态的分布式存储服务,该方法包括以下步骤:

步骤200:接收客户端发送的第一数据读写请求,并确定处理上述第一数据读写请求的目标存储服务器。

具体地,分布式存储系统在接收到客户端发送的数据读写请求之后,作为管理节点的管理设备会将该数据读写请求分配给分布式存储系统中的一个存储服务器来进行处理,即管理设备会将该数据读写请求发送给用于处理该数据读写请求的存储服务器对应的智能网卡。需要说明的是,上述目标存储服务器为分布式存储系统中任一存储服务器。

进一步的,本申请实施例中,需预先在智能网卡运行分布式存储服务,具体地,智能网卡基于用户配置进行初始化操作,以使得上述智能网卡运行分布式存储服务,并使得上述智能网卡与其对应的存储服务器上用于管理本地存储资源的控制器建立rdma数据通道。

具体的,本申请实施例中,智能网卡基于用户配置进行初始化操作,以使得上述智能网卡运行分布式存储服务时,一种较佳地实现方式为,智能网卡基于用户下发的配置指令,在本地运行分布式存储服务,并与其它运行有分布式存储服务的智能网卡组成分布式存储服务集群。

也就是说,本申请实施例中,将分布式存储服务运行在智能网卡上。

进一步的,智能网卡基于用户配置进行初始化操作,以使得上述智能网卡与其对应的存储服务器上用于管理本地存储资源的控制器建立rdma数据通道时,一种较佳的实现方式为,智能网卡基于用户下发的配置命令,在本地配置nvmeoverfabrics协议,作为initiator端与其对应的存储服务器上用于管理本地存储资源的控制器建立rdma数据通道,其中,上述智能网卡对应的存储服务器上用于管理本地存储资源的控制器被配置为nvmeoverfabrics协议的target端。

具体地,智能网卡基于用户下发的配置命令,在本地配置nvmeoverfabrics协议,作为initiator端与其对应的存储服务器上用于管理本地存储资源的控制器建立远程直接数据存取rdma数据通道时,一种较佳地实现方式为,智能网卡基于用户下发的配置命令,在本地配置rdma的ip地址,作为initiator端,使用nvmeoverfabrics协议中的initiator工具连接其对应的存储服务器上用于管理本地存储资源的控制器;其中,上述智能网卡对应的存储服务器上用于管理本地存储资源的控制器基于用户下发的配置命令,在本地具有rdma能力的网卡接口上配置rdma的ip地址,并在具有nvme-oftargetofflad能力的网卡芯片上配置nvmeoverfabrics协议,作为target端。也就是说,各存储服务器上控制器包括的网卡芯片是集成有rdma功能和nvme-oftargetofflad能力的网卡芯片。

例如,初始化每个存储服务器分别对应的智能网卡以及每个控制器,为每个智能网卡和每个控制器配置nvmeoverfabrics协议,将智能网卡作为initiator端,将控制器作为target端进行连接,启动分布式存储服务。

可选地,上述初始化过程具体可以包括以下步骤:

步骤1:每个智能网卡上可以配置出用于存放其对应的存储服务器中存储数据对应的元数据的区域,因此也可以称为元数据区域。在初始化过程中,将存储资源中存储的元数据加载至元数据区域。

另一种较佳地实现方式为,在存储服务器的内存中配置出用于存放该存储服务器上的存储资源中的存储数据对应的元数据的区域,因此也可以称为元数据区域。那么,在初始化过程中,将存储资源中的元数据加载至内存的元数据区域中。

步骤2:每个控制器可以配置rdma的网际互连协议地址(internetprotocol,ip),并配置nvmeoverfabrics协议,作为target端。

步骤3:每个智能网卡可以配置rdma的ip地址,并配置nvmeoverfabrics协议,作为initiator端,使用nvmeoverfabrics协议中的initiator工具连接其对应的控制器,启动分布式存储服务。

其中,启动分布式存储服务具体可以包括:每个智能网卡将分配的磁盘进行标记并记录在本地,将与分配的磁盘中的存储数据对应的元数据通过rdma协议写入智能网卡配置的元数据区域中。

每个智能网卡可以通过rdma协议以及与存储数据对应的元数据,对存储数据进行输入/输出的处理。

本申请实施例中,在使能各存储服务器的rdma数据通道时,一种较佳地实现方式为,为各存储服务器具有rdma能力的网卡接口配置ip地址如1.1.1.2,1.1.2.2,......,可使用rocev2协议。

在使能各智能网卡的rdma数据通道时,一种较佳地实现方式为,为各智能网卡上具有rdma能力的网卡接口配置ip地址1.1.1.1,1.1.2.1,……,可使用rocev2协议。

也就是说,各存储服务器使能rdma数据通道,即为存储服务器1上具有rdma能力的网卡接口配置ip地址(如ip11),各智能网卡使能rdma数据通道,即为智能网卡1上具有rdma能力的网卡接口配置ip地址(ip21),其中,存储服务器1对应的智能网卡为智能网卡1,那么,智能网卡1即可作为initiator端,采用ip地址被配置为ip11的网卡接口与存储服务器1上ip地址被被配置为ip21的网卡接口之间建立rdma数据通道。

步骤210:将上述第一数据读写请求发送给目标存储服务器对应的目标智能网卡,以使得上述目标智能网卡基于本地运行的分布式存储服务对上述第一数据读写请求进行数据处理。

具体地,分布式存储系统中的管理设备会将该第一数据读写请求发送给用于处理该数据读写请求的目标存储服务器对应的目标智能网卡,目标智能网卡在接收到该第一数据读写请求时,基于本地运行的分布式存储服务对该第一数据读写请求进行数据处理。

例如,目标智能网卡上运行的分布式存储服务启动时,若确定目标存储服务器上部署的分布式存储服务的运行状态为待启动状态,则可以通过rdma写入的方式从磁盘加载元数据到目标存储服务器的内存中,在启动完成后,提供分布式存储服务。

本申请实施例中,目标智能网卡基于本地运行的分布式存储服务对上述第一数据读写请求进行数据处理时,一种较佳地实现方式为,上述目标智能网卡将上述第一数据读写请求发送至上述目标存储服务器上用于管理本地存储资源的控制器,其中,上述控制器通过其对应的rdma通道对上述第一数据读写请求进行数据处理。

例如,目标智能网卡在接收到第一数据读写请求之后,将该第一数据读写请求发送至对应的目标存储服务器中的控制器,控制器在接收到该第一数据读写请求时,解析该第一数据读写请求,并通过与目标智能网卡间建立的rdma数据通道发起dma操作,并将数据读写结果返回给目标智能网卡。即目标智能网卡直接访问目标存储服务器上的存储资源,对存储资源进行读写操作。

步骤220:若检测到上述目标智能网卡故障,则启动上述目标存储服务器上部署的被设置为待启动状态的分布式存储服务,以使得上述目标存储服务器基于本地运行的分布式存储服务对上述客户端发送的需上述目标存储服务器进行处理的第二数据读写请求进行数据处理。

本申请实施例中,在目标存储服务器的内存中预先设置有第一指定位置,目标智能网卡在正常运行时,会基于预设的周期向上述目标存储服务器的内存中的第一指定位置写入心跳计数信息;当然,在目标存储服务器的内存中还预先设置有第二指定位置,目标存储服务器上部署的被设置为待启动状态的分布式存储服务启动之后,上述目标存储服务器基于预设的周期向内存中的第二指定位置写入心跳计数信息。

进一步地,还可以将目标存储服务器上部署的分布式存储服务器的运行状态(待启动/运行)写入上述第二指定位置。实际应用中,可以通过内存访问的方式可以访问上述第一指定位置和第二指定位置写入/读取数据。

那么,在检测上述目标智能网卡故障时,一种较佳地实现方式为,当检测到上述目标存储服务器的内存中的第一指定位置维护的心跳计数在预设时长内未增加时,确定检测到上述目标智能网卡故障。

也就是说,当目标智能网卡上的分布式存储服务正常运行时,定期将心跳计数写入目标存储服务器的内存中的第一指定位置,即第一指定位置的心跳计数会随着时间变化而增加,那么,当检测到预设时长内该心跳计数未增加,则确定目标智能网卡发生故障。

例如,当目标智能网卡故障(如,软件crash),目标智能网卡无法再向第一指定区域写入心跳计数。目标存储服务器会定期检查第一指定位置的心跳计数,若确定一定时间内第一指定位置的心跳计数不再增加,则判定目标智能网卡异常。需进入切换过程。

具体地,切换过程如下:目标存储服务器关闭nvmeof服务;启动本地部署的被设置为待启动状态的分布式存储服务,此时,由于目标智能网卡已将最新的元数据写入目标存储服务器的内存中,目标存储服务器在启动分布式存储服务时,不再需要从磁盘加载元数据;若确定启动成功,则定期将心跳计数,写入第二指定区域(可通过内存访问写入),确定转换成功;进一步地,目标存储服务器还可以将本地部署的分布式存储服务的运行状态写入第二指定区域。若确定启动不成功,则不会定期将心跳计数写入第二指定区域,确定转换失败。

需要说明的是,本申请实施例中,在上述目标智能网卡上启动分布式存储服务时,将上述目标存储服务器存储资源中存储的元数据加载至上述目标存储服务器的内存中的第三指定位置,其中,在检测到上述目标智能网卡故障,启动上述目标存储服务器上部署的被设置为待启动状态的分布式存储服务时,上述目标存储服务器基于上述第三指定位置存储的元数据对上述第二数据读写请求进行数据处理。

也就是说,启动智能网卡启动分布式存储服务时,将磁盘中的元数据加载至存储服务器内存的指定位置中,智能网卡在基于存储服务器内存的指定位置中存储的元数据对数据读写请求进行处理的同时,会更新元数据内容;当检测到智能网卡故障,将分布式存储服务切换至存储服务器时,存储服务器内存的指定位置中存储的元数据为最新的元数据,那么,存储服务器无需再执行元数据加载的操作,直接使用存储服务器内存的指定位置中存储的元数据对后续接收到的数据读写请求进行数据处理即可。

进一步地,在检测到上述目标智能网卡恢复正常时,若上述目标存储服务器上部署的分布式存储服务的状态为待启动和/或上述目标存储服务器的内存中的第二指定位置维护的心跳计数在预设时长内未增加,则上述目标智能网卡启动分布式存储服务,并对上述客户端发送的需上述目标存储服务器进行处理的第三数据读写请求进行数据处理。

例如,修复目标智能网卡故障后,判断目标存储服务器上部署的分布式存储服务是否正常运行,具体地,从第二指定区域获取目标存储服务器上部署的分布式存储服务的运行状态,若为待启动状态,则目标智能网卡直接启动本地的分布式存储服务,若为运行(已启动)状态,则继续从第二指定区域获取目标存储服务器写入的心跳计数,根据心跳计数判断目标存储服务器上部署的分布式存储服务是否正常运行,若否,则目标智能网卡直接启动本地的分布式存储服务,采用本地的分布式存储服务对后续需要目标存储服务器进行处理的数据读写请求进行数据处理。

更进一步地,在检测到上述目标智能网卡恢复正常时,若上述目标存储服务器上部署的分布式存储服务运行正常,则上述目标智能网卡向上述目标存储服务器发送切换指令,并启动计时器,以使得上述目标存储服务器将本地运行的分布式存储服务设置为待启动状态,并启动与上述目标智能网卡之间的rdma通道,以及向上述目标智能网卡发送切换完成指令;若上述目标智能网卡在接收到上述切换完成指令/在上述计时器超时时未接收到上述切换完成指令,则上述目标智能网卡启动分布式存储服务,并对上述客户端发送的需上述目标存储服务器进行处理的第三数据读写请求进行数据处理。

例如,修复目标智能网卡故障后,判定目标存储服务器上部署的分布式存储服务运行正常,则向目标存储服务器发送acquire命令,启动acquire命令处理定时器,等待接收acquirefinish命令;目标存储服务器在接收acquire命令时,关闭本地运行的分布式存储服务,开启nvme-oftarget服务,并将本地部署的分布式存储服务的运行状态写入第二指定区域,以及向目标智能网卡发送acquirefinish命令;若目标智能网卡在定时器超时前接收到acquirefinish命令或在定时器超时后仍未接收到acquirefinish命令,则目标智能网卡直接启动本地的分布式存储服务,采用本地的分布式存储服务对后续需要目标存储服务器进行处理的数据读写请求进行数据处理。

基于与上述方法实施例同样的发明构思,示例性的,参阅图3所示,为本申请实施例提供的一种分布式存储服务切换装置的结构示意图,应用于分布式存储系统,所述分布式存储系统中各存储服务器分别配置有对应的智能网卡,各智能网卡上运行分布式存储服务,所述各智能网卡分别与其对应的存储服务器上用于管理本地存储资源的控制器建立rdma通道,所述各存储服务器上部署有被设置为待启动状态的分布式存储服务,该装置包括:

接收单元30,用于接收客户端发送的第一数据读写请求,并确定处理所述第一数据读写请求的目标存储服务器;

发送单元31,用于将所述第一数据读写请求发送给目标存储服务器对应的目标智能网卡,以使得所述目标智能网卡基于本地运行的分布式存储服务对所述第一数据读写请求进行数据处理;

切换单元32,用于在检测到所述目标智能网卡故障时,启动所述目标存储服务器上部署的被设置为待启动状态的分布式存储服务,以使得所述目标存储服务器基于本地运行的分布式存储服务对所述客户端发送的需所述目标存储服务器进行处理的第二数据读写请求进行数据处理。

可选地,所述目标智能网卡基于本地运行的分布式存储服务对所述第一数据读写请求进行数据处理的步骤包括:

所述目标智能网卡将所述第一数据读写请求发送至所述目标存储服务器上用于管理本地存储资源的控制器,其中,所述控制器通过其对应的rdma通道对所述第一数据读写请求进行数据处理。

可选地,所述目标智能网卡在正常运行时,基于预设的周期向所述目标存储服务器的内存中的第一指定位置写入心跳计数信息;

在检测到所述目标智能网卡故障时,所述切换单元32具体用于:

当检测到所述目标存储服务器的内存中的第一指定位置维护的心跳计数在预设时长内未增加时,确定检测到所述目标智能网卡故障。

可选地,所述目标存储服务器上部署的被设置为待启动状态的分布式存储服务启动之后,所述目标存储服务器基于预设的周期向内存中的第二指定位置写入心跳计数信息;

所述切换单元32还用于,在检测到所述目标智能网卡恢复正常时,若所述目标存储服务器上部署的分布式存储服务的状态为待启动和/或所述目标存储服务器的内存中的第二指定位置维护的心跳计数在预设时长内未增加,则所述目标智能网卡启动分布式存储服务,并对所述客户端发送的需所述目标存储服务器进行处理的第三数据读写请求进行数据处理。

可选地,所述切换单元32还用于,在检测到所述目标智能网卡恢复正常时,若所述目标存储服务器上部署的分布式存储服务运行正常,则所述目标智能网卡向所述目标存储服务器发送切换指令,并启动计时器,以使得所述目标存储服务器将本地运行的分布式存储服务设置为待启动状态,并启动与所述目标智能网卡之间的rdma通道,以及向所述目标智能网卡发送切换完成指令;若所述目标智能网卡在接收到所述切换完成指令/在所述计时器超时时未接收到所述切换完成指令,则所述目标智能网卡启动分布式存储服务,并对所述客户端发送的需所述目标存储服务器进行处理的第三数据读写请求进行数据处理。

可选地,所述装置还包括:

加载单元,在所述目标智能网卡上启动分布式存储服务时,所述加载单元将所述目标存储服务器存储资源中存储的元数据加载至所述目标存储服务器的内存中的第三指定位置,其中,在检测到所述目标智能网卡故障,启动所述目标存储服务器上部署的被设置为待启动状态的分布式存储服务时,所述目标存储服务器基于所述第三指定位置存储的元数据对所述第二数据读写请求进行数据处理。

以上这些单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(applicationspecificintegratedcircuit,简称asic),或,一个或多个微处理器(digitalsingnalprocessor,简称dsp),或,一个或者多个现场可编程门阵列(fieldprogrammablegatearray,简称fpga)等。再如,当以上某个单元通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(centralprocessingunit,简称cpu)或其它可以调用程序代码的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,简称soc)的形式实现。

进一步地,本申请实施例提供的分布式存储服务切换装置,从硬件层面而言,所述分布式存储服务切换装置的硬件架构示意图可以参见图4所示,所述分布式存储服务切换装置可以包括:存储器40和处理器41,

存储器40用于存储程序指令;处理器41调用存储器40中存储的程序指令,按照获得的程序指令执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。

可选地,本申请还提供一种分布式存储服务切换设备,包括用于执行上述方法实施例的至少一个处理元件(或芯片)。

可选地,本申请还提供一种程序产品,例如计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使该计算机执行上述方法实施例。

这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1