GlusterFS客户端热升级组件及方法与流程

    专利查询2024-01-02  116


    glusterfs客户端热升级组件及方法
    技术领域
    1.本发明涉及一种在云存储、分布式存储等领域中应用的glusterfs客户端热升级组件及方法。


    背景技术:

    2.glusterfs是一种分布式文件系统,相比于moosefs、openafs、googlefs等分布式文件系统,glusterfs具有高扩展性、高可用性、高性能、可横向扩展等优点。
    3.然而,在现有技术中,glusterfs客户端在程序需要进行升级的时候,需要先将使用其分布式文件系统服务的客户端服务程序停止,然后进行客户端升级,升级完毕后再重启客户端服务。因此,在升级过程中严重影响客户端服务的使用。


    技术实现要素:

    4.本发明是鉴于如上所述的问题而完成的,提出了一种glusterfs客户端热升级组件及方法,在glusterfs客户端进行升级的时候不会对用户的使用产生影响,使用户完全感觉不到后端存储客户端的升级。
    5.根据本发明的一个方面,提供一种glusterfs客户端热升级组件,其特征在于,具备:
    6.控制单元,控制glusterfs客户端的热升级处理;以及
    7.第一客户服务单元,提供客户服务,其中,
    8.所述控制单元在接收到热升级命令时,根据最新的配置文件来创建第二客户服务单元,在进行所述第二客户服务单元的初始化处理之后实施所述第一客户服务单元和所述第二客户服务单元的服务切换处理,将新的i/o操作下发到所述第二客户服务单元,等待从所述第一客户服务单元返回已下发给所述第一客户服务单元的i/o操作的结果,并且在从所述第一客户服务单元返回已下发的所有的i/o操作的结果的情况下,进行所述第一客户服务单元的销毁处理。
    9.根据本发明的另一个方面,提供一种glusterfs客户端热升级方法,是用于glusterfs客户端热升级组件的热升级方法,其特征在于,
    10.所述glusterfs客户端热升级组件具备:
    11.控制单元,控制glusterfs客户端的热升级处理;以及
    12.第一客户服务单元,提供客户服务,
    13.所述glusterfs客户端热升级方法包括控制步骤,在该控制步骤中,使所述控制单元在接收到热升级命令时,根据最新的配置文件来创建第二客户服务单元,在进行所述第二客户服务单元的初始化处理之后实施所述第一客户服务单元和所述第二客户服务单元的服务切换处理,将新的i/o操作下发到所述第二客户服务单元,等待从所述第一客户服务单元返回已下发给所述第一客户服务单元的i/o操作的结果,并且在从所述第一客户服务单元返回已下发的所有的i/o操作的结果的情况下,进行所述第一客户服务单元的销毁处
    理。
    14.根据本发明,在热升级过程中升级前后软件包中的动态链接库能够实现无缝加载切换,在glusterfs客户端程序升级过程中不会妨碍用户服务的使用,用户服务不会受到影响。并且,根据本发明,glusterfs客户端的升级可以在任意时间点进行,具有不受升级时间的限制的优点,可以实现媒体存储7*24小时的无间断服务。
    15.以下通过本发明的优选的实施方式的详细描述,本发明的其它特征及其优点将会变得清楚。
    附图说明
    16.构成说明书的一部分的附图描述了本发明的实施方式,并且连同说明书一起用于解释本发明的原理。
    17.图1是示出本实施方式的glusterfs客户端热升级组件的结构的示意图。
    18.图2是示出控制单元的内部模块结构的示意图。
    19.图3是示出glusterfs客户端热升级处理的流程图。
    20.图4是示出glusterfs客户端热升级处理的过程的示意图。
    具体实施方式
    21.下面,参照附图,详细地说明本发明的优选的实施方式。另外,在以下描述中为了清楚和简洁起见,可能省略了对公知的结构、功能和配置的描述。
    22.在附图中,在功能上相同的要素有时也用相同的编号来表示。此外,附图示出依照本发明的原理的实施方式和结构例,但这些只是用于理解本发明,而绝非用于限定地解释本发明。本说明书的记述只不过是典型的例示,在任何意义下都并非限定本发明的权利要求书或者应用例。
    23.在本实施方式中,为了使本领域技术人员实施本发明而充分详细地进行了说明,但需要理解其它实施方式也能够实现,能够不脱离本发明的技术思想的范围和精神而进行结构/构造的变更、各种要素的置换。因此,不应将以下的记述限定于此来解释。
    24.另外,为了便于说明和观察,在附图中关于各结构单元的连接关系,仅示出了说明所需的连接关系,在产品方面未必示出所有的控制线、信息线等的连接关系。
    25.图1是示出本实施方式的glusterfs客户端热升级组件的结构的示意图。在图1中,glusterfs客户端热升级组件1是glusterfs客户端的构成要素之一,其包括控制单元2以及客户服务单元3。此处,控制单元2主要负责glusterfs客户端热升级的整体处理,客户服务单元3用于提供客户服务。
    26.图2是示出控制单元的内部模块结构的示意图。在图2中,控制单元2包括根据配置文件来创建客户服务单元的服务模块创建单元21、对所创建的客户服务单元的各个功能模块加载各自的新动态链接库而进行初始化处理的初始化单元22、以及实施新旧客户服务单元的服务切换处理和旧客户服务单元的销毁处理的服务切换单元23。
    27.此外,图3是示出glusterfs客户端热升级处理的流程图,图4是示出glusterfs客户端热升级处理的过程的示意图。
    28.下面,使用图3和图4来说明glusterfs客户端热升级处理。
    29.首先,在步骤s1中,在需要进行客户端热升级处理的客户端机器上安装最新的glusterfs客户端安装包,之后发出热升级命令。glusterfs客户端安装包既可以通过硬盘、u盘等存储介质安装到客户端机器上,也可以通过因特网等网络而下载到客户端机器上并安装。另外,热升级命令既可以通过由用户操作客户端机器的操作部来发出,也可以从外部通过因特网等网络向客户端机器发出。
    30.在步骤s2中,在收到热升级命令后,各客户端机器中的glusterfs客户端热升级组件1所具备的控制单元2从管理集群的未图示的glusterd获取最新的配置文件,根据配置文件来创建新的客户服务单元3a。此处,由控制单元2所具备的服务模块创建单元21根据最新的配置文件来创建新的客户服务单元3a。此外,glusterd是glusterfs的集群管理系统,其主要负责glusterfs的集群信息管理、命令行操作、服务进程管理等。glusterd部署于每一个存储节点上,用于管理本地的服务进程状态,并与其他节点的glusterd进程通信,保证集群信息一致。
    31.在步骤s3中,控制单元2对客户服务单元3a的各个功能模块加载各自的新动态链接库*.so(例如dht.so等),进行初始化处理而与服务端建立tcp连接。此处,由控制单元2所具备的初始化单元22进行客户服务单元3a的初始化处理。
    32.在客户服务单元3a的初始化处理结束后,在步骤s4中,控制单元2所具备的服务切换单元23将与原来的客户服务单元3关联的fd(文件描述符)表及inode(索引节点)表中的内容复制到与新的客户服务单元3a关联的fd表和inode表,执行客户服务单元3和客户服务单元3a的服务切换处理。fd是例如进程文件描述表的索引,在inode表中存储有例如表示文件的创建者、文件的创建日期、文件的大小等的元信息。
    33.接下来,在客户服务单元3和客户服务单元3a的服务切换处理结束后,在步骤s5中,服务切换单元23将新的i/o(输入/输出)操作下发到客户服务单元3a,而针对原来的客户服务单元3,仅等待从客户服务单元3返回已下发的所有的i/o操作的结果。
    34.接下来,在步骤s6中,在从客户服务单元3返回已下发的所有的i/o操作的结果的情况下,服务切换单元23释放与客户服务单元3相关的fd表及inode表中的fd和inode对象,进行客户服务单元3的销毁处理。此时,与客户服务单元3有关的各个模块会关闭自己打开的动态链接库*.so(具体表现为从磁盘上删除),然后销毁各个模块的内存对象。由此,完成glusterfs客户端热升级处理。
    35.根据本发明,在热升级过程中升级前后软件包中的动态链接库能够实现无缝加载切换,在glusterfs客户端程序升级过程中不会妨碍用户服务的使用,用户服务不会受到影响。并且,根据本发明,glusterfs客户端的升级可以在任意时间点进行,具有不受升级时间的限制的优点,可以实现媒体存储7*24小时的无间断服务。
    36.另外,本发明特别适用于媒体存储-分布式文件存储,在数次热升级过程中都能充分保证用户服务不受影响。例如在glusterfs搭配nfs(network file system,网络文件服务)应用中,在glusterfs客户端升级时,不需要事先停止nfsd服务。
    37.本领域技术人员应当知道,本发明中记载的结构可以被实施为系统、装置、方法或作为计算机程序产品的计算机可读媒体。因此,本发明可以被实施为各种形式,例如完全的硬件实施例、完全的软件实施例(包括固件、常驻软件、微程序代码等),或者也可实施为软件与硬件的实施形式,例如为电路、模块或系统。此外,本发明也可以以任何有形的媒体形
    式实施为计算机程序产品,其保存有计算机可执行的程序代码。
    38.关于本发明的叙述,可以理解每一个流程图和/或框图中的每一个块,以及流程图和/或框图中的块的任何组合,根据需要也可以使用计算机程序指令来实施。这些计算机程序指令可供通用型计算机或特殊计算机的处理器或其它可编程数据处理装置所组成的机器来执行,而指令经由计算机或其它可编程数据处理装置处理以便实施流程图和/或框图中所说明的功能或操作。
    39.在附图中显示的本发明的实施方式的各种功能及操作的流程图及框图中的每个块可表示一模块、区段、或部分的程序代码,其包括一个或多个可执行指令,以实施指定的逻辑功能。另外应当注意,在某些其它的实施例中,块所示的功能可以不按图中所示的顺序进行。举例来说,两个图示相连接的块事实上也可以同时执行,或根据所涉及的功能在某些情况下也可以按图标相反的顺序执行。此外还需注意,每个框图和/或流程图的块,以及框图和/或流程图中块的组合,可藉由基于专用硬件的系统来实施,或者藉由专用硬件与计算机指令的组合,来执行特定的功能或操作。
    40.以上已经描述了本发明的各实施例,上述说明是示例性的,不限于所披露的各实施例。在不脱离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

    技术特征:
    1.一种glusterfs客户端热升级组件,其特征在于,具备:控制单元,控制glusterfs客户端的热升级处理;以及第一客户服务单元,提供客户服务,其中,所述控制单元在接收到热升级命令时,根据最新的配置文件来创建第二客户服务单元,在进行所述第二客户服务单元的初始化处理之后实施所述第一客户服务单元和所述第二客户服务单元的服务切换处理,将新的i/o操作下发到所述第二客户服务单元,等待从所述第一客户服务单元返回已下发给所述第一客户服务单元的i/o操作的结果,并且在从所述第一客户服务单元返回已下发的所有的i/o操作的结果的情况下,进行所述第一客户服务单元的销毁处理。2.根据权利要求1所述的glusterfs客户端热升级组件,其特征在于,所述控制单元具备:服务模块创建单元,根据所述最新的配置文件来创建所述第二客户服务单元;初始化单元,对所述第二客户服务单元的各个功能模块加载各自的新动态链接库,进行所述初始化处理;以及服务切换单元,通过将与所述第一客户服务单元关联的fd表及inode表中的内容复制到与所述第二客户服务单元关联的fd表和inode表,实施所述第一客户服务单元和所述第二客户服务单元的服务切换处理。3.根据权利要求2所述的glusterfs客户端热升级组件,其特征在于,所述服务切换单元通过释放与所述第一客户服务单元相关的fd表及inode表中的fd及inode对象,进行所述第一客户服务单元的销毁处理。4.根据权利要求1~3中的任一项所述的glusterfs客户端热升级组件,其特征在于,通过由用户操作所述glusterfs客户端的操作部来发出所述热升级命令。5.根据权利要求1~3中的任一项所述的glusterfs客户端热升级组件,其特征在于,从外部经由网络向所述glusterfs客户端发出所述热升级命令。6.一种glusterfs客户端热升级方法,是用于glusterfs客户端热升级组件的热升级方法,其特征在于,所述glusterfs客户端热升级组件具备:控制单元,控制glusterfs客户端的热升级处理;以及第一客户服务单元,提供客户服务,所述glusterfs客户端热升级方法包括控制步骤,在该控制步骤中,使所述控制单元在接收到热升级命令时,根据最新的配置文件来创建第二客户服务单元,在进行所述第二客户服务单元的初始化处理之后实施所述第一客户服务单元和所述第二客户服务单元的服务切换处理,将新的i/o操作下发到所述第二客户服务单元,等待从所述第一客户服务单元返回已下发给所述第一客户服务单元的i/o操作的结果,并且在从所述第一客户服务单元返回已下发的所有的i/o操作的结果的情况下,进行所述第一客户服务单元的销毁处理。7.根据权利要求6所述的glusterfs客户端热升级方法,其特征在于,所述控制步骤包括:服务模块创建步骤,根据所述最新的配置文件来创建所述第二客户服务单元;初始化步骤,对所述第二客户服务单元的各个功能模块加载各自的新动态链接库,进
    行所述初始化处理;以及服务切换步骤,通过将与所述第一客户服务单元关联的fd表及inode表中的内容复制到与所述第二客户服务单元关联的fd表和inode表,实施所述第一客户服务单元和所述第二客户服务单元的服务切换处理。8.根据权利要求7所述的glusterfs客户端热升级方法,其特征在于,在所述服务切换步骤中,通过释放与所述第一客户服务单元相关的fd表及inode表中的fd及inode对象,进行所述第一客户服务单元的销毁处理。9.根据权利要求6~8中的任一项所述的glusterfs客户端热升级方法,其特征在于,通过由用户操作所述glusterfs客户端的操作部来发出所述热升级命令。10.根据权利要求6~8中的任一项所述的glusterfs客户端热升级方法,其特征在于,从外部经由网络向所述glusterfs客户端发出所述热升级命令。

    技术总结
    本发明提供一种GlusterFS客户端热升级组件及方法。GlusterFS客户端热升级组件具备:控制单元,控制GlusterFS客户端的热升级处理;以及第一客户服务单元,提供客户服务,其中,控制单元在接收到热升级命令时,根据最新的配置文件来创建第二客户服务单元,在进行第二客户服务单元的初始化处理之后实施第一客户服务单元和第二客户服务单元的服务切换处理,将新的I/O操作下发到第二客户服务单元,等待从第一客户服务单元返回已下发给第一客户服务单元的I/O操作的结果,并且在从第一客户服务单元返回已下发的所有的I/O操作的结果的情况下,进行第一客户服务单元的销毁处理。进行第一客户服务单元的销毁处理。进行第一客户服务单元的销毁处理。


    技术研发人员:徐启亮 黄润怀 李旭
    受保护的技术使用者:天翼云科技有限公司
    技术研发日:2020.11.23
    技术公布日:2022/5/25
    转载请注明原文地址:https://tc.8miu.com/read-20540.html

    最新回复(0)