基于对象存储的文件网关高可用实现方法及电子设备与流程

文档序号:26361009发布日期:2021-08-20 20:37阅读:176来源:国知局
基于对象存储的文件网关高可用实现方法及电子设备与流程

本发明涉及网络数据管理技术领域,具体涉及一种基于对象存储的文件网关高可用实现方法及电子设备。



背景技术:

在数据信息化时代,云、ai(artificialintelligence,人工智能)业务、大数据的快速发展带来了数据快速增长、设备多样化、业务快速响应的挑战,这就要求存储系统具有更海量的存储空间、更快捷的服务分发、更便捷的运维能力、更低廉的成本,传统的集中式存储系统已经不能满足大数据处理的需求。

“分布式”它指代了一种独特的系统架构类型,这种系统架构是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成。分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务,其目的是利用更多的机器处理更多的数据。

文件网关是一种可在本地和云上部署的、为用户提供标准存储协议的、可使应用系统存量数据无缝接入对象存储服务的解决方案。nfs(networkfilesystem,网络文件系统)文件网关可实现文件系统与对象存储之间的协议转换,使得nfs客户端可以像在本机上的文件一样操作远程主机的文件。对于开源文件网关产品大多是单节点架构设计,网关异常时会造成服务的中断,无法满足生产环境需求。

基于对象存储的nfs文件网关高可用实现方法,相关技术中是将文件系统元数据信息持久化到本地,通过第三方软件实现网关缓存的数据同步,达到网关高可用的目的。其主要实现步骤如下:客户端发送通过文件路径读写文件的io请求;主网关更新本地缓存的元数据信息(文件路径与文件句柄的映射关系);主网关操作完成后,通知客户端操作完成;通过第三方软件实时同步缓存文件或磁盘数据到备用网关;当主网关和备用网关切换时,由于缓存数据同步,备用网关正常提供服务,保证了网关的高可用。然而该方案存在如下技术问题:(1)该方案引入第三方软件,导致网关整体可靠性降低;(2)将单次写缓存操作变为两次写缓存操作,导致网关整体性能下降;(3)使用额外空间备份缓存,使得缓存利用率下降50%。

相关技术还提出了另一方案,具体为将文件系统元数据信息持久化到本地,通过网关缓存的数据同步达到网关缓存的高可用的目的。其主要实现步骤如下:客户端发送通过文件路径读写文件的io请求;主网关更新本地缓存的元数据信息(文件路径与文件句柄的映射关系);同步触发备用网关更新本地缓存的元数据信息(文件路径与文件句柄的映射关系);主备用网关操作均完成后,通知客户端操作完成;当主备用网关切换时,由于缓存同步,备用网关正常提供服务,保证了网关的高可用。然而该方案通过同步写主备网关的缓存数据实现网关缓存高可用,同样存在导致网关缓存容量可用率降为50%,使用成本升高,以及将单次写缓存操作变为两次写缓存操作,导致网关整体性能下降的问题。



技术实现要素:

本发明旨在至少在一定程度上解决相关技术中的技术问题之一。其中,相关技术中提供的网关高可用实现方案存在导致网关缓存容量可用率降低,使用成本升高,以及将单次写缓存操作变为两次写缓存操作导致的网关整体性能下降的问题。为此,本发明的第一个目的在于提出一种基于对象存储的文件网关高可用实现方法。

本发明的第二个目的在于提出一种电子设备。

为达到上述目的,本发明第一方面提出了一种基于对象存储的文件网关高可用实现方法,包括以下步骤:s1,接收获取文件元数据初始访问请求,根据所述访问请求,可获得文件所归属的桶信息、对象信息;s2,基于所述文件所归属的桶信息、对象信息,通过哈希计算生成文件句柄,而后获取文件元数据,并响应所述文件元数据和所述文件句柄,同时生成所述文件句柄与所述文件之间的文件句柄映射信息;s3,通过所述文件句柄确定保存所述文件句柄映射信息的文件句柄信息对象的名称;s4,持久化所述文件句柄映射信息至所述文件句柄信息对象中。

可选地,当接收到的访问请求所包含的文件句柄对应的文件元数据在缓存中不存在时,所述方法还包括步骤s5,所述的步骤s5具体包括:s5.1,根据所述文件句柄,计算出与所述文件句柄关联的文件句柄信息对象名;s5.2,根据所述文件句柄,在所述关联的文件句柄信息对象中查找获取与所述文件句柄对应的文件句柄映射信息,所述文件句柄映射信息包括所述文件所归属的桶信息和对象信息;s5.3,根据所述文件所归属的桶信息和对象信息,访问获取与所述文件句柄对应的所述文件元数据,而后在缓存中重建文件元数据。

可选地,所述文件句柄由创建所述文件句柄的系统时间、关联文件归属的容器名的哈希值、关联文件归属的对象名的哈希值和关联文件归属的对象id的哈希值组成。

可选地,所述文件句柄信息对象的名称由关联所述文件句柄的哈希值组成。

可选地,所述文件句柄映射信息存储在关联所述文件句柄信息对象的容器中,所述文件句柄映射信息由文件句柄创建时间、文件所归属的桶名称、桶id、文件所归属的对象的对象名称、对象id和对象创建时间组成。

可选地,所述的步骤s4具体包括:

s4.1,根据所述获取的文件元数据初始访问请求,获取与所述文件对应的文件句柄、文件句柄映射信息和文件句柄信息对象,以对所述文件句柄映射信息进行持久化;

s4.2,判断所述文件句柄信息对象是否存在;

s4.3,若否,则创建文件句柄信息对象;

s4.4,判断是否能够从所述文件句柄信息对象中获取文件句柄映射信息;

s4.5,若是,则结束持久化指令;

s4.6,若否,则执行持久化指令,以将所述文件句柄映射信息持久化至与所述文件句柄对应的所述文件句柄信息对象中。

可选地,当接收到的访问请求所包含的文件句柄对应的文件元数据在缓存中不存在时,所述方法还包括步骤s6,所述的步骤s6具体包括:

s6.1,根据所述文件句柄,通过哈希计算生成与所述文件句柄对应的所述文件句柄信息对象的名称;

s6.2,根据所述文件句柄和所述文件句柄信息对象获取对应的文件句柄映射信息;

s6.3,根据所述文件句柄映射信息判断所述文件归属的容器是否删除或修改;

s6.4,若是,则返回第一错误提示信息;

s6.5,若否,则进一步判断所述文件归属的对象是否删除或修改;

s6.6,若是,则返回第二错误提示信息;

s6.7,若否,则访问获取存储在所述文件归属的对象中与所述文件句柄对应的所述文件元数据。

可选地,对于所述对象存储系统中的文件句柄信息对象所在的容器,所述方法还包括步骤s7,所述的步骤s7具体包括:

s7.1,获取所述文件句柄信息对象所在的容器中的所有文件句柄信息对象;

s7.2,依次遍历获取每一所述文件句柄信息对象中的各个文件句柄映射信息;

s7.3,判断当前所述文件句柄信息对象中的各个文件句柄映射信息中的文件句柄创建时间是否超过预设时间;

s7.4,若是,则删除对应的所述文件句柄映射信息;

s7.5,若否,则查找下一所述文件句柄信息对象中的各个文件句柄映射信息中的文件句柄创建时间是否超过预设时间,直至遍历所有文件句柄信息对象。

为达到上述目的,本发明第二方面提出了一种电子设备,包括存储器、处理器以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器执行时,实现上述所述的基于对象存储的文件网关高可用实现方法。

本发明至少具有以下优点:

本发明通过根据文件元数据访问请求生成文件句柄与关联文件之间的文件句柄映射信息,并将该文件句柄映射信息持久化至对应的文件句柄信息对象中,以使主备用网关切换时,备用网关可根据接收到的文件句柄直接获取对应的文件所归属的桶信息、对象信息,进而从文件所归属的对象中获取文件元数据,而后在缓存中重建文件元数据,这样就无需做缓存同步,从而可提升文件网关的读写性能,提升缓存空间利用率,并且本发明无需第三方软件,可提升文件网关的可靠性。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

图1为本发明一实施例提供的基于对象存储的文件网关高可用实现方法的流程图;

图2为本发明一实施例提供的网关高可用架构示意图;

图3为本发明一实施例提供的文件句柄与文件句柄信息对象的映射关系图;

图4为本发明一实施例提供的文件句柄映射信息持久化流程图;

图5为本发明一实施例提供的文件元数据信息重构策略流程图;

图6为本发明一实施例提供的文件句柄映射信息过期回收策略流程图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

下面参考附图描述本实施例的基于对象存储的文件网关高可用实现方法及电子设备。

参考图1所示,本实施例提供的一种基于对象存储的文件网关高可用实现方法包括以下步骤:

步骤s1,接收获取文件元数据初始访问请求,根据所述访问请求,可获得文件所归属的桶信息、对象信息。

具体地,以nfs文件为例,nfs客户端可通过虚拟ip访问nfs服务端,向nfs服务端下发nfs文件元数据初始访问请求,其中nfs文件元数据初始访问请求可包括nfs的存储路径(由nfs文件的文件名称和nfs文件所在目录的文件句柄组成)。根据该存储路径可得到该nfs文件所归属的对桶信息、对象信息。

步骤s2,基于文件所归属的桶信息、对象信息,通过哈希计算生成文件句柄,而后获取文件元数据,并响应文件元数据和文件句柄,同时生成文件句柄与文件之间的文件句柄映射信息。

如图2所示,部署在nfs服务端中的主网关可响应该初始访问请求,主网关会获取所请求的nfs文件元数据;同时,主网关还生成与该nfs文件对应的文件句柄,并将它们一起发送至nfs客户端。当nfs客户端再次访问该nfs文件时,可以直接通过该nfs文件对应的文件句柄访问nfs文件。

其中,文件句柄是一个序列号,用于标识网络文件系统中唯一的一个文件。优选地,文件句柄可由所述关联文件所归属的桶信息、对象信息,通过哈希计算生成得到。在nfs协议中,nfs客户端初次访问nfs文件时,会根据文件名调用lookup协议来获取文件句柄和文件元数据信息,nfs服务端返回文件句柄给nfs客户端,nfs客户端缓存文件句柄到内存中。若nfs客户端再次访问该文件,则可直接向nfs服务端传入文件句柄。

可选地,主网关还生成该文件句柄与文件之间的文件句柄映射信息。其中,该文件句柄映射信息由文件句柄创建时间、关联文件所归属的桶名称、桶id、关联文件所归属的对象的对象名称、对象id和对象创建时间组成.

步骤s3,通过文件句柄确定保存文件句柄映射信息的文件句柄信息对象的名称。

具体地,如图3所示,文件句柄信息对象存储在关联的容器中,文件句柄信息对象的名称的命名格式为固定前缀,关联文件句柄的哈希值的组合;

步骤s4,持久化文件句柄映射信息至文件句柄信息对象中。

如图3所示,对象存储系统中包括一个存储文件句柄信息对象的桶(bucket),所述桶包括若干个文件句柄信息对象,每一文件句柄信息对象中包括若干个文件句柄映射信息。其中,文件句柄映射信息存储在对应的文件句柄信息对象中,且文件句柄映射信息与文件句柄一一对应。

存储在文件句柄信息对象中的每条记录都是由第一数据(key)和第二数据(value)组成的键值对。第一数据key的命名为关联的文件句柄,第二数据的内容为文件句柄映射信息。

具体地,一个nfs文件对应一个键值对记录在文件句柄信息对象的map中。在生成一个nfs文件句柄的文件句柄映射信息后,可将该文件句柄映射信息持久化至文件句柄信息对象的map中。

本实施例中,对文件句柄信息对象与第一数据key采用特定的命名方式,可使得通过文件句柄能够准确确定出关联文件句柄映射信息存放的位置。

可选地,当接收到的访问请求所包含的文件句柄对应的文件元数据在缓存中不存在时,该方法还包括步骤s5,所述的步骤s5具体包括:

s5.1,根据文件句柄,计算出与文件句柄关联的文件句柄信息对象名。

s5.2,根据文件句柄,在关联的文件句柄信息对象中查找获取与文件句柄对应的文件句柄映射信息,文件句柄映射信息包括文件所归属的桶信息和对象信息。

s5.3,根据文件所归属的桶信息和对象信息,访问获取与文件句柄对应的文件元数据,而后在缓存中重建文件元数据。

如图2所示,当主备用网关切换,备用网关接收到nfs文件访问请求所包含的文件句柄对应的文件元数据在缓存中不存在时,备用网关可根据文件句柄,先计算出文件句柄信息对象名称,后在文件句柄信息对象中查找获取与文件句柄对应的文件句柄映射信息,然后备用网关根据文件句柄映射信息中的文件所归属的桶信息和对象信息,向对象存储系统访问获取存储在文件所归属的对象中的nfs文件元数据,这样就在缓存中重建了nfs文件元数据,从而达到网关的高可用目的。

可选地,在本发明所述的步骤s4具体包括:

s4.1,根据获取的文件元数据初始访问请求,获取与文件对应的文件句柄、文件句柄映射信息和文件句柄信息对象,以对文件句柄映射信息进行持久化;s4.2,判断文件句柄信息对象是否存在;s4.3,若否,则创建文件句柄信息对象;s4.4,判断是否能够从文件句柄信息对象中获取文件句柄映射信息;s4.5,若是,则结束持久化指令;s4.6,若否,则执行持久化指令,以将文件句柄映射信息持久化至与文件句柄对应的文件句柄信息对象中。

作为一个示例,如图4所示,nfs文件网关在接收到nfs文件元数据初始访问请求(如create/mkdir/symlink/lookup等接口)后,可通过参数可获取文件所归属的对象信息,然后生成文件句柄和文件句柄映射信息,并计算获取与该文件句柄对应的文件句柄信息对象名称,以对该文件句柄映射信息进行保存。进一步地,网关判断文件句柄信息对象是否存在,若不存在,则创建文件句柄信息对象,然后判断文件句柄信息对象中是否存在与所述文件句柄对应的文件句柄信息。若存在,则不进行持久化,若存在,则将文件句柄映射信息持久化到对应的文件句柄信息对象中。

当nfs客户端通过文件句柄访问的nfs文件元数据在缓存中不存在时,需要根据文件句柄获取文件的元数据,并在缓存中重构nfs文件元数据,以保证访问请求的正确执行。

在本发明的一个实施例中,当接收到nfs文件访问请求所包含文件句柄对应的nfs文件元数据在缓存中不存在时,该方法还包括步骤s6,所述的步骤s6具体包括:

s6.1,根据文件句柄,通过哈希计算生成与文件句柄对应的文件句柄信息对象的名称;s6.2,根据文件句柄和文件句柄信息对象获取对应的文件句柄映射信息;s6.3,根据文件句柄映射信息判断文件归属的容器是否删除或修改;s6.4,若是,则返回第一错误提示信息;s6.5,若否,则进一步判断文件归属的对象是否删除或修改;s6.6,若是,则返回第二错误提示信息;s6.7,若否,则访问获取存储在文件归属的对象中与文件句柄对应的nfs文件元数据。

作为一个示例,如图5所示,备用网关在接收到文件句柄后,当备用网关文件句柄对应的nfs文件元数据不在缓存中时,然后根据文件句柄获取文件句柄信息对象,再根据文件句柄和文件句柄信息对象获取文件句柄映射信息。进一步地,可获取文件句柄映射信息记录的文件所归属的容器并判断是否已删除或修改。若是,则返回第一错误提示信息estale,若否,则判断文件句柄映射信息记录的文件所归属的对象是否已删除或修改。若是,则返回第二错误提示信息estale,若否,则访问获取存储在文件所归属的对象中与文件句柄对应的nfs文件元数据信息。

进一步地,对于对象存储系统中文件句柄信息对象所在的容器,还方法还包括步骤s7,所述的步骤s7具体包括:s7.1,获取文件句柄信息对象所在的容器中的所有文件句柄信息对象;s7.2,依次遍历获取每一文件句柄信息对象中的各个文件句柄映射信息;s7.3,判断当前文件句柄信息对象中的各个文件句柄映射信息中的文件句柄创建时间是否超过预设时间;s7.4,若是,则删除对应的文件句柄映射信息;s7.5,若否,则查找下一文件句柄信息对象中的各个文件句柄映射信息中的文件句柄创建时间是否超过预设时间,直至遍历所有文件句柄信息对象。

具体地,持久化在文件句柄信息对象中的文件句柄映射信息需要一定的回收策略来回收无效的数据,以优化存储结构。如图6所示,在启动nfs网关进程时,可同时启动回收线程。回收线程可定时(如默认配置6小时)遍历每个容器中的文件句柄信息对象的所有文件句柄映射信息,然后判断每一文件句柄映射信息中的文件句柄创建时间是否超过预设时间(如默认配置30天)。若超过,则删除对应的文件句柄映射信息,反之对其进行保留,直至遍历所有文件句柄信息对象。

进一步地,本实施例还提出了一种电子设备,包括存储器、处理器以及存储在存储器上的计算机程序,该计算机程序被处理器执行时,实现上述的基于对象存储的文件网关高可用实现方法。

本实施例的基于对象存储的文件网关高可用实现方法通过根据文件元数据初始访问请求生成文件句柄与存储文件元数据的文件所归属的对象之间的文件句柄映射信息,并将该文件句柄映射信息持久化至对应的文件句柄信息对象中,以使主备用网关切换时,备用网关可根据接收到的文件句柄直接获取对应的文件元数据,无需做缓存同步,从而可提升文件网关的读写性能,提升缓存空间利用率,并且本发明无需第三方软件,可提升文件网关的可靠性。

需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

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