掌桥专利:专业的专利平台
掌桥专利
首页

信息处理方法及装置

文献发布时间:2023-06-19 18:53:06


信息处理方法及装置

技术领域

本申请涉及数据存储领域,尤其涉及一种信息处理方法及装置。

背景技术

目前,随着信息化技术的发展,用于存储数据的数据中心的规模也越来越大。

在对数据中心进行扩容的过程中,由于扩容的新设备与原来的旧设备的厂商、型号的差异,可能导致新设备和旧设备所用的文件系统(file system,FS)相互独立。这就需要将业务对应的数据从旧文件系统迁移到新文件系统中,才能使该业务使用新文件系统,整个迁移过程中需要耗费大量人力、物力资源。

发明内容

本申请提供一种信息处理方法及装置,解决了文件系统扩容过程复杂、管理难度大的问题。

为达到上述目的,本申请采用如下技术方案:

第一方面,提供一种信息处理方法,包括:获取访问请求,该访问请求中携带有待访问数据对应的第一文件路径,第一文件路径包括预设的根目录。根据第一文件路径在预设的根目录下的路径,确定与第一文件路径对应的第一文件系统中的第二文件路径。其中,预设的根目录对应的命名空间下包括至少两种子路径,至少两种子路径分别对应至少两个不同文件系统中的文件路径。上述方法中,通过构建一个统一命名空间(即预设的跟目录对应的命名空间)。其中,多个文件系统中的文件路径,均可以映射到该统一命名空间中唯一的一条文件路径上。从而使业务侧与数据中心中的文件系统解耦合,即业务侧利用统一命名空间中的文件路径管理数据,对于数据中心中的文件系统不感知。这样一来,一方面当数据中心中的文件系统发生改变时(例如新增文件系统或减少文件系统时),仅需要对文件系统中文件路径与统一命名空间中文件路径进行修改即可,对业务侧不需要相应改动;另一方面,由于统一命名空间中可以对应多个文件系统的文件路径,因此一种业务可以使用多个文件系统,配置更加灵活。

在一种可能的设计中,上述根据第一文件路径在预设的根目录下的路径,确定与第一文件路径对应的第一文件系统中的第二文件路径,包括:根据第一文件路径在预设的根目录下的路径和挂载信息集合,确定待访问数据在第一文件系统中的第二文件路径。其中,挂载信息集合中,记录有预设的根目录对应的命名空间中的文件路径与所对应文件系统中的文件路径的对应关系。该设计中,可以预先存储预设根目录对应的命名空间中的文件路径与各文件系统中的文件路径的对应关系,这样一来便可以通过查询挂载信息集合的方式,确定访问请求中携带的第一文件路径所对应的文件系统中的文件路径。

在一种可能的设计中,该方法还包括:建立预设的根目录对应的命名空间下第一子目录与所述第一文件系统的对应关系;其中,第一子目录下的任一路径对应第一文件系统中的路径。将第一子目录与第一文件系统的对应关系,记录在挂载信息集合中。上述设计中,采用将预设根目录对应的命名空间下的不同子目录与不同文件系统对应,以使得文件系统中的任一路径对应与该文件系统对应的子目录下与上述路径相同的路径。例如,可以将文件系统131a与预设根目录“GNS:\”下的子目录“GNS:\fsA\”对应,其中文件系统131a中的任一路径与子目录“GNS:\fsA\”下的该路径对应。例如某个数据在文件系统131a中的文件路径为“fsA:\路径1”,则可知在预设根目录对应的命名空间下,该数据的文件路径为“GNS:\fsA\路径1”。再例如,某个数据在文件系统131a中的文件路径为“fsA:\路径2”,则可知在预设根目录对应的命名空间下,该数据的文件路径为“GNS:\fsA\路径2”,以此类推。

在一种可能的设计中,根据第二文件路径,确定待访问数据对应的存储地址,包括:根据第二文件路径,确定第一元数据节点。向第一元数据节点发送携带第二文件路径的地址请求。接收第一元数据节点发送的待访问数据对应的存储地址。通过上述设计,可以确定获取到待访问数据对应的存储地址,以便完成待访问数据的读写。

在一种可能的设计中,该方法还包括:当第一文件系统中的元数据节点的节点信息发生改变时,生成日志信息,并更新节点信息集合;日志信息中记录有节点信息的改变内容。上述设计中,在第一文件系统中的元数据节点的节点信息发生改变时,可以生成日志信息并更新节点信息集合。以便在节点信息集合更新失败后,可以通过触发日志回滚的方式,重新更新节点信息集合。

在一种可能的设计中,上述至少两个不同文件系统中,包括:不同类型的至少两种文件系统。上述设计中,由于预设根目录对应的命名空间下分别可以对应至少两个不同类型的文件系统,也就是说可以通过预设根目录下的不同文件路径,来访问不同类型文件系统。这样一来,对于一种业务而言,可以根据使用需要,将不同数据存储在不同文件系统中,以充分利用不同文件系统的特性。

第二方面,提供一种信息处理装置,包括:获取模块,用于获取访问请求,访问请求中携带有待访问数据对应的第一文件路径,第一文件路径包括预设的根目录。处理模块,用于根据第一文件路径在预设的根目录下的路径,确定与第一文件路径对应的第一文件系统中的第二文件路径;其中,预设的根目录对应的命名空间下包括至少两种子路径,至少两种子路径分别对应至少两个不同文件系统中的文件路径。处理模块,用于根据第二文件路径,确定待访问数据的存储地址。

在一种可能的设计中,处理模块,用于根据第一文件路径在预设的根目录下的路径,确定与第一文件路径对应的第一文件系统中的第二文件路径,包括:处理模块,用于根据第一文件路径在预设的根目录下的路径和挂载信息集合,确定待访问数据在第一文件系统中的第二文件路径。其中,挂载信息集合中,记录有预设的根目录对应的命名空间中的文件路径与所对应文件系统中的文件路径的对应关系。

在一种可能的设计中,处理模块,还用于建立预设的根目录对应的命名空间下第一子目录与第一文件系统的对应关系;其中,第一子目录下的任一路径对应第一文件系统中的路径。处理模块,还用于将第一子目录与第一文件系统的对应关系,记录在挂载信息集合中。

在一种可能的设计中,处理模块,用于根据第二文件路径,确定待访问数据对应的存储地址,包括:处理模块,用于根据第二文件路径,确定第一元数据节点。处理模块,用于向第一元数据节点发送携带第二文件路径的地址请求。处理模块,用于接收第一元数据节点发送的待访问数据对应的存储地址。

在一种可能的设计中,处理模块,还用于当第一文件系统中的元数据节点的节点信息发生改变时,生成日志信息,并更新节点信息集合。日志信息中记录有节点信息的改变内容。

在一种可能的设计中,至少两个不同文件系统中,包括:不同类型的至少两种文件系统。

第三方面,提供一种存储设备,包括:处理器和接口,处理器通过接口接收或发送数据,处理器用于实现如上述第一方面或第一方面中各设计中的方法。

第四方面,提供一种文件存储系统,包括:路由设备以及存储节点。其中路由设备用于执行如上述第一方面或第一方面中各设计中的方法。

第五方面,提供一种路由设备,包括存储器和处理器,存储器用于存储计算机指令,处理器用于从存储器中调用并运行计算机指令,以实现如上述第一方面或第一方面中各设计中的方法。

第六方面,提供一种计算机可读存储介质,存储介质中存储有计算机程序,当计算机程序被处理器执行时,实现如上述第一方面或第一方面中各设计中的方法。

第七方面,提供一种计算机程序产品,计算机程序产品包括指令,当指令在处理器上运行时,实现如上述第一方面或第一方面中各设计中的方法。

上述第二方面至第七方面的有益效果可以参加第一方面和第一方面中各设计的有益效果,在此不再赘述。

附图说明

图1为本申请提供的一种存储系统的架构示意图之一;

图2为本申请提供的一种存储系统扩容的方法示意图;

图3为本申请提供的一种存储系统的架构示意图之二;

图4为本申请提供的一种存储系统的架构示意图之三;

图5为本申请提供的一种信息处理方法的流程示意图;

图6为本申请提供的一种存储系统的架构示意图之四;

图7为本申请提供的一种信息处理装置的结构示意图之一;

图8为本申请提供的一种信息处理装置的结构示意图之二。

具体实施方式

下面将结合本实施例中的附图,对本实施例中的技术方案进行描述。其中,为了便于清楚描述本实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。同时,在本实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。

为了便于理解本实施例,首先对本实施例所涉及的相关技术进行介绍:

示例性的,如图1所示为本实施例提供的一种存储系统的架构示意图。在图1所示的存储系统中,可以通过在业务集群110中运行应用程序来实现相应业务的功能。其中,业务集群110中可以包括一个或多个计算设备,该计算设备可以为应用服务器,如图1中示例性的示出两个应用服务器,即应用服务器111和应用服务器112。该应用服务器可以为物理机也可以是虚拟机、容器。该应用服务器包括但不限于桌面电脑、服务器、笔记本电脑以及移动电子设备等等。应用服务器所运行的操作系统包括但不限于窗口(Windows)、Linux以及Android等等。需要说明的是,图1中示例性的以业务集群的形式,来描述实现业务功能的计算设备。在实际应用中用于实现业务功能的计算设备也可以是单一的计算设备而不需要由多个设备构成业务集群。

其中,应用服务器可以通过交换机(图中未示出)访问数据中心130以读写数据。其中,交换机只是一个可选设备,应用服务器也可以直接通过网络与数据中心130通信。或者,交换机也可以替换成以太网交换机、InfiniBand交换机、RoCE(RDMA over ConvergedEthernet)交换机等。

数据中心130用于存储实现业务过程中需存储的数据。具体的,数据中心中一个或多个存储设备,这些存储设备构成数据中心的物理存储资源,用于存储数据。

具体的,在物理存储资源中所有的数据都是由0和1构成,而存储在物理存储资源上的一连串01组合对我们来说无法分辨和管理,因此可以用“文件”这个概念对这些数据进行组织,用于区分不同用途的数据,按照不同应用程序要求的结构方式组成不同类型的文件。当文件很多时,可以按照某种划分方式给这些文件分组,每个组文件放在同一目录(也可以称文件夹)里面。而且目录下面除了文件还可以由下一级目录(可以称为子目录或子文件夹),所有的文件、目录形成一个树状结构。这个树状结构即为一个文件系统。

示例性的,如图1中,数据中心130中包括用于管理物理存储资源132中数据的文件系统131。其中,文件系统131中包括一个树状结构,用于对物理存储资源132中数据进行结构化管理、存储。其中,物理存储资源132中可以包括一个或多个存储设备(图中未示出),用于存储数据。

在文件系统中,为了便于数据查找,从根目录开始逐级目录往下,一直到文件本身,把这些目录、子目录、文件的名称用特殊的字符(例如Windows\DOS操作系统中用“\”,类Unix操作系统中用“\”)拼接起来,这样的一串字符称为文件路径。例如,Linux中的“\etc\systemd\system.conf”或者Windows中的“C:\Windows\System32\taskmgr.exe”。路径是访问某个具体的文件的唯一标识。例如,Windows下的D:\data\file.exe就是一个文件的路径,它表示D分区下的data目录下的file.exe文件。

文件系统有很多类型,按照文件系统所管理的物理存储资源的不同位置,分为集中式文件系统和分布式文件系统(distributed file system,DFS)。

其中,集中式文件系统可以理解为文件系统所管理的物理存储资源位于本地节点(即文件系统所属节点)上的文件系统。

分布式文件系统可以理解为文件系统管理的物理存储资源不一定直接连接在本地节点上,而是可以通过计算机网络与本地节点相连的文件系统,或者分布式文件系统可以理解为若干不同的逻辑磁盘分区或卷标组合在一起而形成的完整的有层次的文件系统。

示例性的,如图1中,相对于业务集群110而言,文件系统131可以理解为一种分布式文件系统。业务集群110中的应用服务器可以通过通信接口(也可以理解为文件系统131的客户端)与文件系统131连接,以便进行数据访问。

分布式文件系统为分布在网络上任意位置的资源提供一个逻辑上的树形文件系统结构,从而使用户访问分布在网络上的共享文件更加简便。分布式文件系统采用客户端\服务器端(Client\Server)架构。数据保存在服务器端,而客户端的应用程序能够像访问本地文件系统一样访问位于远程服务器上的文件。在客户端通常都对文件数据进行缓存,以提高读写性能和系统可扩展性。其中,按照所采用文件访问协议的不同,常见的分布式文件系统(distributed file system,DFS)包括:网络文件系统(network file system,NFS)、通用互联网文件系统(common internet file system,CIFS)、Lustre文件系统以及BeeGFS文件系统等等。

进一步的,随着数据中心中存储的数据量的规模越来越大,就需要增加存储设备(即物理存储资源)以扩大数据中心的容量。而由于新旧存储设备所采用的文件系统可能不同,这就使得数据中心中可能存在多个相互独立的文件系统。这就使得数据中心的运行维护存在诸多不便。

示例性的,假设在数据中心130中原本包括由文件系统131a,该文件系统131a中存储有两种业务(称为业务A和业务B)的数据。此时,业务A和业务B都通过访问文件系统131a管理业务对应的数据。之后,在对数据中心130扩容后,如图2中的(a)所示,在数据中心130中还包括用于管理新增物理存储资源的文件系统131b。此时,数据中心130中包括两个相互独立的文件系统,即文件系统131a和文件系统131b。

在对数据中心130扩容文件系统131b后,为了使数据中心130中的业务能够使用文件系统131b所管理的物理存储资源,就需要将数据中心130中的一个或多个业务对应的数据全部迁移到文件系统131b中(也可以理解为将数据全部迁移到文件系统131b所管理的物理存储资源),并重新为被迁移业务配置文件系统131b。具体的,以下举例介绍两种可能的实现方式:

第一种实现方式中,可以采用不同业务使用不同文件系统的方式。具体的,如图2中的(b)所示,可以采用为业务A配置使用文件系统131a、业务B配置使用文件系统131b的方式,来达到两个文件系统分别为业务集群中的业务A和业务B提供服务的目的。示例性的,业务A对应的数据,使用文件系统131a对应的根目录“fsA:\”作为文件路径的根目录;业务B对应的数据,使用文件系统131b对应的根目录“fsB:\”作为文件路径的根目录。

这种实现方式中,需要将业务B的数据从文件系统131a所管理的物理存储资源迁移到文件系统131b所管理的物理存储资源中,并且重新为业务B配置文件系统131b。因此,一方面,由于在文件系统中业务对应的数据往往分布繁杂,所以上述迁移过程非常的复杂和漫长,这一过程中需要考虑设备替换、保护前期投资、业务切换等各方面可能存在的问题。另一方面,对于被迁移的业务而言,由于业务使用的文件系统发生改变,因此需要在业务集群侧进行相应的改动,以适用新的文件系统。因此,上述设计存在扩容难度大,操作过程复杂的问题。

第二种实现方式中,可以采用将旧文件系统对应的数据全部迁移到新的文件系统中的方式。具体的,如图2中(c)所示,可以将业务A和业务B对应的数据,全部从从文件系统131a所管理的物理存储资源迁移到文件系统131b所管理的物理存储资源。此时,业务A和业务B可以按照使用文件系统131a的方式来使用文件系统131b,因此业务侧可以不感知迁移过程,不需要改动。

可以看出,这种实现方式中,也存在整个迁移过程工作量大,迁移周期长的问题。另外,该实现方式中在数据迁移过程中,还需要占用额外软硬件来利用数据迁移引擎完成迁移。

为了避免由于数据中心中存在多个文件系统,而使得数据中心的运行维护存在诸多不便的问题,本实施例中考虑到针对一个数据中心中的多个文件系统,可以构建一个统一命名空间(global name space)。其中,多个文件系统中的文件路径,均可以映射到该统一命名空间中唯一的一条文件路径上。例如,数据中心中包括两个文件系统,两个文件系统的根目录分别为“fsA:\”和“fsB:\”,统一命名空间的根目录为“GNS:\”,可以将两个文件系统中的文件路径“fsA:\”和“fsB:\”分别映射到统一命名空间的文件路径“GNS:\fsA”和“GNS:\fsB”上。这样一来,业务侧(例如业务集群中的应用服务器)可以使用该统一命名空间中的文件路径来管理数据。当需要访问数据时,可以先根据被访问数据在统一命名空间中的文件路径,确定该被访问数据所对应的文件系统以及该文件系统中的文件路径;然后利用文件系统中的文件路径,确定被访问数据的存储地址,以便完成被访问数据的读\写操作。通过上述构建统一命名空间的这种方式,可以使业务侧与数据中心中的文件系统解耦合,即业务侧利用统一命名空间中的文件路径管理数据,对于数据中心中的文件系统不感知。这样一来,一方面当数据中心中的文件系统发生改变时(例如新增文件系统或减少文件系统时),仅需要对文件系统中文件路径与统一命名空间中文件路径进行修改即可,对业务侧不需要相应改动;另一方面,由于统一命名空间中可以对应多个文件系统的文件路径,因此一种业务可以使用多个文件系统,配置更加灵活。

下面结合实例,对本实施例所提供技术方案进行介绍。如图3所示,为应用本实施例所提供技术方案的一种存储系统架构的示意图。

该存储系统中包括:用于实现业务功能的业务集群110和用于存储数据的数据中心130。业务集群110中可以包括一个或多个应用服务器。例如图3中业务集群110包括应用服务器111和应用服务器112。数据中心130中包括多个用于管理不同物理存储资源的文件系统,如图3中数据中心130包括文件系统131a、文件系统131b和文件系统131c。

其中,数据中心130中所包括文件系统中各文件系统,分别可以对应一个或多个存储设备,构成该文件系统所管理的物理存储资源。示例性的,以图3中文件系统131a为例,文件系统131a中可以包括一个或多个元数据节点(如图3中包括元数据节点131a1和元数据节点131a2)以及一个或多个存储节点(如图3中包括存储节点131a3、存储节点131a4和存储节点131a5)。其中,存储节点用于存储实现业务功能的相应数据(为区别元数据,下文将实现业务功能的数据,称为业务数据)。元数据节点用于存储业务数据的元数据,例如业务数据在存储节点中的存储地址等。

另外,对于图3中业务集群110和数据中心130的其他描述,可参照上文对图1和图2中对业务集群110和数据中心130的相应描述内容,在此不再赘述。

另外,该存储系统还包括路由网关120,路由网关120用于为业务集群110提供文件访问接口,当接收到来自业务集群的访问请求时,根据访问请求中携带的统一命名空间的文件路径,确定待访问数据所对应的文件系统以及文件系统中的文件路径,并利用文件系统中的文件路径访问文件系统。其中,路由网关120具体可以包括用于实现上述功能的路由设备121,以及用于存储实现上述功能所需要的数据的路由配置库122,例如路由配置库122中可以存储有统一命名空间中的文件路径与文件系统中的文件路径的对应关系、路由设备121的工作状态信息等等。其中,路由配置库122可以位于路由设备121内部,或者路由配置库122还可以独立于路由设备121而存储在其他设备中,对此本实施例可以不做限制。

另外,在实际应用过程中,在一种实现方式中,路由网关120的功能可以由独立于数据中心中各文件系统的硬件设备来实现。在另一种实现方式中,路由网关120可以位于数据中心中文件系统中,路由网关120的功能可以由数据中心中文件系统中的部分软/硬件装置的来实现。本实施例中,对于路由网关120所属设备在存储系统中的位置可以不做限定。

另外,需要说明的是,在实际应用中,存储系统中还可以包括多个路由网关,示例性的如图4中包括路由网关120a、路由网关120b和路由网关120c。其中多个路由网关分别位于存储系统中不同节点上。多个路由网关存在主从关系,即多个路由网关中包括至少一个主路由网关和至少一个从路由网关。在对数据中心130中存储的数据进行读写操作的场景下,业务集群110可以优先将访问请求发送至主路由网关,以实现数据访问;当主路由网关出现故障或负载超负荷等工作异常时,可以将访问请求发送至从路由网关,以实现数据访问。这样可以提高系统可靠性。

下面以图3所述存储系统为例,对本实施例所提供技术方案进行详细介绍。需要说明的是,当存储系统中存在多个路由网关时,也可以适用本实施例以下技术方案的内容,对此本实施例不做限制。

具体的,在业务集群110运行过程中,当业务集群110向数据中心130中写入或读取数据(下文称为待访问数据)时,本实施例提供一种信息处理方法,如图5所示,包括:

S201、业务集群110向路由网关120发送访问请求。

其中,访问请求中携带有待访问数据对应的第一文件路径。其中,第一文件路径中包括预设的根目录(下文中简称为预设根目录)。

示例性的,上述访问请求可以为远程过程调用(Remote Procedure Call,RPC)请求。

其中,在实际实施过程中,路由网关120可以理解为能够实现本实施例中路由网关120所实现功能的各类设备。具体的,在应用过程中,路由网关120也可以称为“路由器”或“路由设备”等名称。容易理解的,本实施例中对于路由网关的具体名称可以不做限制。

S202、在路由网关120获取到访问请求后,路由网关120根据第一文件路径在预设根目录下的路径,确定与第一文件路径对应的第一文件系统中的第二文件路径。

具体的,预设根目录对应的命名空间下可以包括至少两种子路径。其中,至少两种子路径分别对应至少两个不同文件系统中的文件路径。即预设根目录对应的命名空间下的一条路径,可以映射到至少两个文件系统中的一个文件系统中的一个文件路径。

换句话讲,本实施例中通过构建一个统一命名空间(即预设根目录对应的命名空间),并且使数据中心中所包括的多个文件系统中的文件路径,映射到该统一命名空间中唯一的一条文件路径上。例如,图3中数据中心130中包括的三个文件系统,文件系统131a、文件系统131b和文件系统131c的根目录分别为“fsA:\”、“fsB:\”和“fsC:\”,统一命名空间的预设根目录为“GNS:\”。

然后,当业务集群110向数据中心130中写入或读取待访问数据时,路由网关120在获取到业务集群110发送的携带有包括预设根目录的第一文件路径(也就是说,第一文件路径为上述统一命名空间中的文件路径)后,便可以根据第一文件路径在预设根目录下的路径,确定与第一文件路径对应的第一文件系统中的文件路径(即第二文件路径)。

示例性的,假设一份业务数据存储在文件系统131a中,该业务数据在文件系统131a中的文件路径为“fsA:\Windows\System32\taskmgr.exe”,并且文件系统131a中的上述文件路径“fsA:\Windows\System32\taskmgr.exe”映射到预设根目录“GNS:\”下的文件路径为“GNS:\fsA\Windows\System32\taskmgr.exe”。那么当需要访问该业务数据时,可以由业务集群110向路由网关120发送携带文件路径“GNS:\fsA\Windows\System32\taskmgr.exe”(即S202中的第一文件路径)的访问请求,然后路径网关120便可以根据文件路径“GNS:\fsA\Windows\System32\taskmgr.exe”确定文件系统131a(即S202中的第一文件路径)中的文件路径“fsA:\Windows\System32\taskmgr.exe”,以便利用文件路径“fsA:\Windows\System32\taskmgr.exe”访问文件系统131a完成业务数据的读和/或写操作。

需要说明的是,在S202中路由网关120获取到的访问请求,可以是S201中由业务集群110直接发送给路由网关120的;也可以是路由网关120内部生成的。例如,S202中路由网关120获取到的访问请求,可以是路由网关120接收到业务集群110发送的访问请求后,所生成的用于触发执行S202的任意一种路由网关120的内部指令,对此本实施例可以不做限定。

在一种实现方式中,本实施例中,预设根目录对应的命名空间下包括的至少两种路径分别对应的至少两个文件系统,具体包括不同类型的文件系统。

其中,不同类型的文件系统,可以包括文件访问方式不同、所采用通信协议不同或所使用存储介质的类型不同等的文件系统。例如,上述至少两个文件系统中包括了:NFS文件系统和Lustre文件系统,两种类型的文件系统。

在上述实现方式中,由于预设根目录对应的命名空间下分别可以对应至少两个不同类型的文件系统,也就是说可以通过向路由网关发送包括预设根目录的不同文件路径的这种方式,来访问不同文件系统。这样一来,对于一种业务而言,可以根据使用需要,将不同数据存储在不同文件系统中,以充分利用不同文件系统的特性。

在一种实现方式中,路由网关120中可以预先存储有预设根目录对应的命名空间中的文件路径与各文件系统中的文件路径的对应关系,下文中为便于描述将这些对应关系称为挂载信息集合。这样一来,当路由网关120接收到访问请求后,便可以通过查询挂载信息集合的方式,确定访问请求中携带的第一文件路径所对应的文件系统中的文件路径。因此,上述S202具体可以包括:

S2021、路由网关120根据第一文件路径在预设根目录下的路径和挂载信息集合,确定与第一文件路径对应的第一文件系统中的第二文件路径。

其中,挂载信息集合中,记录有预设根目录对应的命名空间中的文件路径与所对应文件系统中的文件路径的对应关系。

进而,在一种实现方式中,如图5所示,在执行S202之前,该方法还包括:

S203、路由网关120建立挂载信息集合。

具体的,当路由网关120包括路由设备121和路由配置库122时,该挂载信息集合可以存储在路由配置库122中,当路由设备121获取到访问请求后可以通过访问路由配置库122中存储的挂载信息集合,进而确定第一文件系统中的第二文件路径。

例如,下表1所示为一种挂载信息集合的示例:

表1

其中,“统一命名空间中的文件路径”一栏记录了预设根目录(即“GNS:\”)对应的命名空间中的各种文件路径,“文件系统中的文件路径”一栏记录了预设根目录(即“GNS:\”)对应的命名空间中的各种文件路径所对应的文件系统中的文件路径。进而,在路由网关120接收到携带第一文件路径的访问请求后,便可以通过在表1的“统一命名空间中的文件路径”一项中查找第一文件路径,从而找到第一文件路径对应的文件系统中的文件路径。

需要说明的是,表1仅示例性的以列表形式描述了挂载信息集合中可能记录的对应关系,在实际应用过程中,挂载信息集合也可以采用其他存储方式,例如挂载信息集合可以采用树状结构等结构化的存储方式来存储。

在一种可能的设计中,本实施例中可以采用将预设根目录对应的命名空间下的不同子目录与不同文件系统对应,以使得文件系统中的任一路径对应与该文件系统对应的子目录下与上述路径相同的路径。

其中,需要说明的是,本实施例中为了便于理解,将一个文件系统或命名空间中从根目录开始的完整的一条路径称为“文件路径”,将文件路径中一个目录(可以是根目录,也可以是子目录)下的部分路径称为“路径”。下文中类似情况,若无特别说明,可以做相同理解。

例如,可以将文件系统131a与预设根目录“GNS:\”下的子目录“GNS:\fsA\”对应,其中文件系统131a中的任一路径与子目录“GNS:\fsA\”下的该路径对应。例如某个数据在文件系统131a中的文件路径为“fsA:\路径1”,则可知在预设根目录对应的命名空间下,该数据的文件路径为“GNS:\fsA\路径1”。再例如,某个数据在文件系统131a中的文件路径为“fsA:\路径2”,则可知在预设根目录对应的命名空间下,该数据的文件路径为“GNS:\fsA\路径2”,以此类推。

示例性的,基于上述设计,挂载信息集合中的内容可以如下表2所示:

表2

其中,“文件系统所对应的根目录”一栏记录了各个文件系统的根目录,“统一命名空间中的子目录”一栏记录了各个文件系统对应的预设根目录对应的命名空间下的子目录。这样一来,在路由网关120接收到携带第一文件路径的访问请求后,例如第一文件路径为“GNS:\fsA\路径1”,便可以通过在表1的“统一命名空间中的子目录”一项中查找第一文件路径中包括的子目录“GNS:\fsA”,从而确定第一文件路径对应的文件系统,然后再根据第一文件路径中上述子目录下的路径“\路径1”,确定第一文件路径所对应文件系统中的文件路径(即第二文件路径)为“fsA:\路径1”。

基于上述设计,在S203建立挂载信息集合的过程中,S203具体可以包括:

S2031、路由网关120建立预设根目录对应的命名空间下第一子目录与第一文件系统的对应关系。

其中,第一子目录下的任一路径对应第一文件系统中与该路径相同的路径。

S2032、路由网关120将第一子目录与第一文件系统的对应关系,记录在挂载信息集合中。

示例性的,通过分别对图3中数据中心130中的三个文件系统,按照S2031-S2032的方式,建立预设根目录对应的命名空间下子目录与文件系统的对应关系,并将该对应关系记录在挂载信息集合中,从而可以得到挂载信息集合如上述表2所示。进而便可以在路由网关120接收到携带第一文件路径的访问请求后,利用该挂载信息集合,确定第一文件路径所对应文件系统中的文件路径。

另外,如图5所示,该方法还可以包括:

S204、路由网关120根据第二文件路径,确定待访问数据对应的存储地址。

具体的,在通过202确定了与第一文件路径对应的第一文件系统中的第二文件路径后,便可以根据第二文件路径确定待访问数据对应的存储地址,进而根据存储地址完成对数据的读写操作。

在一种实现方式中,S204具体可以包括:

S2041、路由网关120根据第二文件路径,确定第一元数据节点。

其中,第一元数据节点可以为第一文件系统中的主元数据节点,或者第一文件系统中存储有本次待访问数据的元数据的元数据节点。

其中,第一文件系统中可以包括一个或多个元数据节点,各元数据节点中记录有文件系统中全部或部分数据的元数据,数据的元数据具体包括数据的存储地址和文件路径的对应关系。

示例性的,如图3中,文件系统131a(可以为上文第一文件系统)中包括元数据节点131a1和元数据节点131a2。其中,元数据节点131a1和元数据节点131a2中记录有文件系统131a中全部或部分数据的元数据。

具体的,在一种示例中,元数据节点131a1和元数据节点131a2中记录有文件系统131a中全部数据的元数据;此时元数据节点131a1和元数据节点131a2可以为主备关系;在需要访问文件系统131a中的数据的情况下,可以优先选择主元数据节点(例如元数据节点131a1)来获取数据的存储地址,当主元数据节点工作异常时,则选择从元数据节点(例如元数据节点131a2)来获取数据的存储地址。该示例中上述第一元数据节点可以为元数据节点131a1(即主元数据节点)。在另一种示例中,元数据节点131a1和元数据节点131a2中记录有文件系统131a中部分数据的元数据;在需要访问文件系统131a中的数据的情况下,可以先确定本次访问的数据的元数据在哪个元数据节点上,然后再从该元数据节点获取数据的存储地址。该示例中上述第一元数据节点可以为元数据节点131a1和元数据节点131a2中存储有本次待访问数据的元数据的元数据节点。

在一种可能的设计中,上述S2041具体可以包括:路由网关120根据第二文件路径以及节点信息集合,确定第一文件系统中的第一元数据节点。

其中,节点信息集合中,记录有第一文件系统中各元数据节点的节点信息。

具体的,元数据节点的节点信息,可以包括该元数据节点的访问地址(例如IP地址)、该元数据节点的主从类型(主元数据节点/从元数据节点)、该元数据节点上记录的业务数据的元数据的范围(即该元数据节点上记录有哪些业务数据的元数据)等等。换句话讲,上述元数据节点的节点信息,具体可以包括用于确定本次访问请求所对应的元数据节点的各种信息。上述仅罗列了几种常用的信息类型(即元数据节点的访问地址、该元数据节点为主元数据节点还是从元数据节点和该元数据节点上记录的业务数据的元数据的范围)。对于上述元数据节点的节点信息中所包括信息的具体种类,本实施例可以不做限制。

另外,在一种可能的设计中,为了使得路由网关120可以根据第二文件路径,确定本次访问对应的第一文件系统中的元数据节点,如图5所示,本实施例中在S2041之前还可以包括:

S205、路由网关120获取上述至少两个文件系统中各文件系统中元数据节点的节点信息,建立节点信息集合。具体的,元数据节点的节点信息,可以包括该元数据节点的访问地址(例如IP地址)、该元数据节点为主元数据节点还是从元数据节点、该元数据节点上记录的业务数据的元数据的范围(即该元数据节点上记录有哪些业务数据的元数据)等等。

在通过S2041确定出第一文件系统中的第一元数据节点后,该方法还包括:

S2042、路由网关120向第一元数据节点发送携带第二文件路径的地址请求。

其中,第一元数据节点在接收到该地址请求后,可以根据第二文件路径确定待访问数据在第一文件系统中的存储地址,然后将该存储地址反馈给路由网关120。进而,该方法还包括:

S2043、路由网关120接收第一元数据节点发送的待访问数据的存储地址。

另外,在路由网关120通过上述S204的步骤,确定待访问数据的存储地址后,如图5所示,该方法还可以包括:

S206、路由网关120将待访问数据的存储地址发送至业务集群110。

具体的,在业务集群110接收到待访问数据的存储地址后,便可以根据待访问数据的存储地址,访问第一文件系统中的存储节点。以完成待访问数据的读/写操作。

另外,在一种实现方式中,如图5所示,该方法还包括:

S207、路由网关120当第一文件系统中的元数据节点的节点信息发生改变时,生成日志(log)信息,并更新节点信息集合。

其中,log信息中记录有上述节点信息的改变内容。

具体的,一方面,考虑到随着文件系统的运行,文件系统中元数据节点的节点信息可能发生变化。例如,元数据节点的访问地址发生改变,或者元数据节点的主从类型发生改变,或者元数据节点上记录的业务数据的元数据的范围发生改变。因此,当元数据节点的节点信息发生改变后,为了保证文件系统中数据的正常访问,需要更新路由网关120中的节点信息集合,即保持节点信息集合与文件系统中元数据节点的节点信息的同步。另一方面,考虑到在元数据节点的节点信息发生改变时,可能会有同步节点信息集合失败的情况发生。例如,元数据节点的节点信息已经改变,但路由网关没有相应更新节点信息集合的这种情况。因此,本实施例中在第一文件系统中的元数据节点的节点信息发生改变时,可以生成日志信息并更新节点信息集合。以便在节点信息集合更新失败后,可以通过触发日志回滚的方式,重新更新节点信息集合。

示例性的,路由网关120可以周期性检测节点信息集合中存储的节点信息与文件系统中元数据节点的节点信息是否一致。当检测到节点信息集合中存储的节点信息与文件系统中元数据节点的节点信息存在不一致的情况时,触发日志回滚的方式,重新更新节点信息集合。

上述实现方式中,通过当第一文件系统中的元数据节点的节点信息发生改变时,生成日志信息的方式,从而当出现节点信息集合中的节点信息与元数据节点的实际节点信息不一致的情况时,可以通过触发日志回滚的方式,重新更新节点信息集合,以提高系统稳定性。

上述实施例中,主要以路由网关120与数据中心130中的文件系统相互独立的场景为例,对本实施例所提供的信息处理方法进行介绍。下面对路由网关120位于数据中心130的文件系统中的存储系统的结构进行介绍:

具体的,在路由网关120位于数据中心130中的文件系统中的场景下,存储系统的架构如图6所示。

其中,该存储系统中包括用于实现业务功能的业务集群310和用于存储数据的数据中心330。其中,业务集群310中可以包括一个或多个应用服务器。例如图6中业务集群310包括应用服务器311和应用服务器312。其中,对于业务集群310以及业务集群310中的一个或多个应用服务器的功能和工作过程可参照上文业务集群110的相关描述,在此不再赘述。

另外,数据中心330中包括多个用于管理不同物理存储资源的文件系统,如图6中数据中心330包括文件系统331a、文件系统331b和文件系统331c。其中,文件系统331a、文件系统331b和文件系统331c之间可以进行通信,具体通信方式本实施例可以不做限定。

其中,文件系统331c中包括路由网关331c1。具体的,当业务集群310需要访问数据中心330以进行读/写数据操作时,业务集群310向文件系统331c中的路由网关331c1发送携带包括预设根目录的文件路径的访问请求,路由网关331c1在接收到该访问请求后,可以按照上述图5所示信息处理方法,获取待访问数据的存储地址,然后路由网关将该存储地址发送至业务集群310,以便业务集群310访问该存储地址,完成读写操作。其中,路由网关331c1的具体功能可以由文件系统中一个或多个存储设备的部分或全部硬件部件实现。

另外,除与路由网关331a1相关的部分外,对于数据中心330包括的各文件系统的结构和功能,可参照上文对数据中心130中各文件系统的描述,在此不再赘述。

下面对图6所示存储系统的运行过程进行介绍:

示例性的,在数据中心330中还未扩容文件系统331c时,即数据中心330中仅包括文件系统331a和文件系统331b。此时业务集群310可以按照相关技术的方式访问文件系统331a和文件系统331b,例如业务集群310可以通过文件系统331a和文件系统331b对应的通信接口,分别向文件系统331a和文件系统331b发送该文件系统中的文件路径,以访问文件系统中的数据。

然后,可以通过以下S401-S404的方式,将文件系统331c添加至数据中心330中:

S401、安装部署文件系统331c对应的硬件设备,创建文件系统331c的命名空间。

S402、在业务集群310侧,添加分配给文件系统331c的业务。

S403、在文件系统331c中配置路由网关331c1,建立挂载信息集合。

其中,挂载信息集合中包括文件系统331a和文件系统331b中的文件路径与文件系统331c的命名空间下的文件路径的对应关系。

例如,将文件系统331a和文件系统331b中的文件路径,分别映射到文件系统331c的根目录(即文件系统331c的命名空间下)下的一个子目录下。

S404、将文件系统331a和文件系统331b的路由策略配置为转发模式,以使得文件系统331a和文件系统331b将接收到的来自于业务集群310的访问请求全部转发至文件系统331c,具体可以是转发到文件系统331c中的路由网关331c1中。

在通过上述方式将文件系统331c添加至数据中心330后,便可以通过业务集群310发送携带文件系统331c的命名空间下的文件路径的访问请求,然后路由网关331c1按照图5所示的方法确定待访问数据的存储地址(其中,该存储地址可以是文件系统331a、文件系统331b或文件系统331c中的存储地址)并将存储地址反馈给业务集群310,以便业务集群310完成读/写操作。

另外,本实施例提供一种信息处理装置,该信息处理装置可以执行本实施例中的部分或全部步骤,例如该信息处理装置能够执行上述方法中路由网关所执行的各步骤。这些步骤或操作仅是示例,本实施例中信息处理装置还可以执行其他操作或执行上述部分或全部步骤的变形。此外,各个步骤可以按照本申请实施例呈现的不同的顺序来执行,并且有可能并非要执行本申请实施例中的全部操作。

可以理解的是,为了实现上述实施例中功能,信息处理装置包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的模块及方法步骤,本申请能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。

如图7所示为本实施例提供的一种信息处理装置的结构示意图。该信息处理装置可以用于实现上述方法实施例中部分或全部步骤的功能,因此能够实现上述方法实施例所具备的有益效果。示例性的,在本实施例中,该信息处理装置可以包括路由设备;再示例性的,当路由网关的功能集成在文件系统中时,该信息处理装置还可以包括文件系统中的存储设备中的部分或全部硬件部件。

如图7所示,该信息处理装置50包括获取模块501和处理单元502中的一项或多项。该信息处理装置50用于实现图5所对应的方法实施例中一项或多项步骤的功能。

例如,当信息处理装置50用于实现图5所示的方法时,获取模块501用于执行S201。处理模块502用于执行S202-S207中的一项或多项。

相关上述获取模块501和处理模块502更详细的描述,可以参照上述图5所对应的方法实施例中相关描述,在此不再赘述。

图8为本实施例提供的另一种信息处理装置的结构示意图。该信息处理装置60可以为芯片或片上系统。其中,该信息处理装置60可以包括:处理器601、通信线路606、内存603以及至少一个通信接口602中的部分或全部部件。

其中,处理器601用于执行本实施例所提供的信息处理方法。

具体的,处理器601可以包含通用中央处理器(central processing unit,CPU),处理器601还可以包含微处理器、现场可编程逻辑门阵列(Field Programmable GateArray,FPGA)、数字信号处理器(digital signal processing,DSP)或者特定应用集成电路(application-specific integrated circuit,ASIC)、或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。

在具体实现中,作为一种实施例,处理器601可以包括一个或多个CPU,例如图8中的CPU0和CPU1。

在具体实现中,作为一种实施例,装置60可以包括多个处理器,例如图8中的处理器601和处理器605。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理例如计数据(算机程序指令)的处理核。

另外,内存603可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlinkDRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。内存603可以是独立存在,通过通信线路606与处理器601相连接。内存603也可以和处理器601集成在一起。

其中,内存603存储有计算机指令。其中,如图8所示,在内存603中存储的计算机指令,可以包括用于实现上述获取模块501和处理模块502的功能的软件模块。处理器601可以通过执行内存603中存储的计算机指令,用于执行本实施例所提供的信息处理方法。

可选的,本实施例中的计算机执行指令也可以称之为应用程序代码,本实施例对此不作具体限定。

另外,通信接口602,也可称为接口。通信接口602使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local area networks,WLAN)等。

另外,通信线路606用于将信息处理装置60中各部件连接。具体的,通信线路606可以包括数据总线、电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为通信线路606。

在具体实现中,作为一种实施例,信息处理装置60还可以包括存储介质604。存储介质604用于存储计算机指令以及实现本实施例技术方案的各种数据。以便信息处理装置60在执行本实施例上述信息处理方法时,将存储介质604中存储的计算机指令和各种数据加载至内存603中,以使得处理器601可以通过执行内存603中存储的计算机指令,用于执行本实施例所提供的信息处理方法。

应理解,根据本实施例的信息处理装置60可对应于本实施例中的信息处理装置50,并可以对应于执行根据本实施例的信息处理方法的相应主体,并且信息处理装置60中的各个模块的上述和其它操作和/或功能分别为了实现图5中的各个方法的相应流程,为了简洁,在此不再赘述。

作为一种可能的实施例,本实施例还提供一种文件存储系统,该文件存储系统中包括路由网关以及存储节点。其中,路由网关用于执行上述方法实施例中的部分或全部步骤,存储节点用于存储实现业务所需要的数据。示例性的,该文件存储系统可以为图6中的文件系统331c。

本实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM、闪存、ROM、PROM、EPROM、EEPROM、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于网络设备或终端设备中。当然,处理器和存储介质也可以作为分立组件存在于网络设备或终端设备中。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其它可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital video disc,DVD);还可以是半导体介质,例如,SSD。

在本实施例中,如果没有特殊说明以及逻辑冲突,不同的实现方式之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。

本实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上,其它量词与之类似。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。此外,对于单数形式“a”,“an”和“the”出现的元素(element),除非上下文另有明确规定,否则其不意味着“一个或仅一个”,而是意味着“一个或多于一个”。例如,“a device”意味着对一个或多个这样的device。再者,至少一个(at least one of).......”意味着后续关联对象中的一个或任意组合,例如“A、B和C中的至少一个”包括A,B,C,AB,AC,BC,或ABC。在本实施例的文字描述中,字符“/”,一般表示前后关联对象是一种“或”的关系;在本实施例的公式中,字符“/”,表示前后关联对象是一种“相除”的关系。

可以理解的是,在本实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本实施例的范围。上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定。

相关技术
  • 信息处理装置、喷墨记录装置和信息处理方法
  • 装置、信息处理装置、程序和信息处理方法
  • 车载信息处理装置、车载装置及车载信息处理方法
  • 信息处理装置、信息处理方法和信息处理系统
  • 信息处理方法、信息处理装置和信息处理程序
  • 信息处理方法、用于使计算机实施该信息处理方法的程序、实施该信息处理方法的信息处理装置及信息处理系统
  • 接收装置、接收装置中的信息处理方法、传输装置、信息处理装置和信息处理方法
技术分类

06120115723635