基于故障域技术的数据管理方法和装置转让专利

申请号 : CN201610088158.8

文献号 : CN107085546A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 周茂青

申请人 : 深圳市深信服电子科技有限公司

摘要 :

本发明涉及一种基于故障域技术的数据管理方法,该方法包括:获取文件创建操作请求,所述文件创建操作请求中携带故障域级别设定参数;根据所述故障域级别设定参数获取至少一个的目标域标识;根据所述至少一个的目标域标识确定存储域标识;在所述存储域标识对应的主机上创建文件副本。上述方法用户可以根据需要设定文件副本创建到的故障域级别,这样可实现用户对文件副本创建的存储位置和范围的控制,使数据管理更加的灵活,同时,用户控制不同文件副本创建到不同故障域级别,可以使分布式存储系统的存储资源得到更加充分、有效的利用,避免了存储资源的浪费。此外,还提供了一种基于故障域技术的数据管理装置。

权利要求 :

1.一种基于故障域技术的数据管理方法,所述方法包括:获取文件创建操作请求,所述文件创建操作请求中携带故障域级别设定参数;

根据所述故障域级别设定参数获取至少一个的目标域标识;

根据所述至少一个的目标域标识确定存储域标识;

在所述存储域标识对应的主机上创建文件副本。

2.根据权利要求1所述的方法,其特征在于,所述根据所述至少一个的目标域标识确定存储域标识的步骤,包括:获取所述至少一个的目标域标识对应的至少一个可用的最底层域标识;

从所述至少一个可用的最底层域标识中选取预设数量的最底层域标识作为存储域标识。

3.根据权利要求1所述的方法,其特征在于,所述文件创建操作请求中还携带创建数量;

所述根据所述至少一个的目标域标识确定存储域标识的步骤,包括:根据所述创建数量依次从所述至少一个的目标域标识中确定一个当前目标域标识,获取与所述当前目标域标识对应的至少一个可用的最底层域标识,从所述至少一个可用最底层域标识中选取一个最底层域标识作为存储域标识。

4.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取文件访问请求,所述文件访问请求中携带请求访问的文件标识;

获取与所述请求访问的文件标识对应的至少一个可访问域标识;

从所述至少一个可访问域标识中选取任意一个可访问域标识,根据选取的可访问域标识及所述请求访问的文件标识确定可访问的文件副本进行读取。

5.根据权利要求4所述的方法,其特征在于,所述方法还包括:当所述根据选取的可访问域标识及所述请求访问的文件标识确定可访问的文件副本进行读取失败时,获取所述选取的可访问域标识对应的上一级可访问域标识,根据获取的上一级可访问域标识及所述请求访问的文件标识确定可访问的文件副本进行读取。

6.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取对文件的修改操作请求,所述修改操作请求中携带文件标识;

根据预先存储的文件标识与存储域标识之间的对应关系,获取与所述文件标识对应的存储域标识,根据所述存储域标识获取对应的存储主机标识;

从所述存储主机标识对应的主机上查找与文件标识对应的文件副本,对查找到的文件副本进行对应的修改操作。

7.一种基于故障域技术的数据管理装置,其特征在于,所述装置包括:请求获取模块,用于获取文件创建操作请求,所述文件创建操作请求中携带故障域级别设定参数;

目标域标识获取模块,用于根据所述故障域级别设定参数获取至少一个的目标域标识;

存储域标识确定模块,根据所述至少一个的目标域标识确定存储域标识;

文件创建模块,用于在所述存储域标识对应的主机上创建文件副本。

8.根据权利要求7所述的装置,其特征在于,所述存储域标识确定模块还用于获取所述至少一个的目标域标识对应的至少一个可用的最底层域标识;从所述至少一个可用的最底层域标识中选取预设数量的最底层域标识作为存储域标识。

9.根据权利要求7所述的装置,其特征在于,所述文件创建操作请求中还携带创建数量;

所述存储域标识确定模块还用于根据所述创建数量依次从所述至少一个的目标域标识中确定一个当前目标域标识,获取与所述当前目标域标识对应的至少一个可用的最底层域标识,从所述至少一个可用最底层域标识中选取一个最底层域标识作为存储域标识。

10.根据权利要求7所述的装置,其特征在于,所述请求获取模块还用于获取文件访问请求,所述文件访问请求中携带请求访问的文件标识;

所述装置还包括:

可访问域标识获取模块,用于获取与所述请求访问的文件标识对应的至少一个可访问域标识;

文件读取模块,用于从所述至少一个可访问域标识中选取任意一个可访问域标识,根据选取的可访问域标识及所述请求访问的文件标识确定可访问的文件副本进行读取。

11.根据权利要求10所述的装置,其特征在于,所述文件读取模块还用于当所述根据选取的可访问域标识及所述请求访问的文件标识确定可访问的文件副本进行读取失败时,获取所述选取的可访问域标识对应的上一级可访问域标识,根据获取的上一级可访问域标识及所述请求访问的文件标识确定可访问的文件副本进行读取。

12.根据权利要求7所述的装置,其特征在于,所述请求获取模块还用于获取对文件的修改操作请求,所述修改操作请求中携带文件标识;

所述装置还包括:

存储主机标识获取模块,用于根据预先存储的文件标识与存储域标识之间的对应关系,获取与所述文件标识对应的存储域标识,根据所述存储域标识获取对应的存储主机标识;

文件修改模块,用于从所述存储主机标识对应的主机上查找与文件标识对应的文件副本,对查找到的文件副本进行对应的修改操作。

说明书 :

基于故障域技术的数据管理方法和装置

技术领域

[0001] 本发明涉及计算机技术领域,特别是涉及一种基于故障域技术的数据管理方法和装置。

背景技术

[0002] 传统的分布式文件系统为了提高文件的可用性,一般会在分布式存储集群中保存一个文件的多个副本。这样一来,在访问文件时,其中的一个副本无法访问时,则可访问另一个副本,从而提高文件的可用性。而为了保证各个副本之间的隔离,通常是将每个文件副本存储在不同的故障域中,其中,故障域是指在同一分布式系统内划分的一组物理基础结构(包括机架、主机、插座、路由器等)。该组物理基础结构不会与任何其他物理基础结构共享单点故障,从而实现一个故障域存在单点故障时,不影响其他故障域,进而保证不影响其他故障域中的副本的访问。
[0003] 传统的分布式存储系统中,通常是将一个或多个机架划分为一个单级的故障域,这样用户能控制文件副本的存储位置仅是机架级别的,而不能做到控制文件存储在机房级别或数据中心级别。明显地,传统方法非常的不灵活,进而不利于存储资源的合理利用。

发明内容

[0004] 基于此,有必要针对上述问题,提供一种更灵活的、提高存储资源的合理利用率的基于故障域技术的数据管理方法,此外,还提供一种基于故障域技术的数据管理装置。
[0005] 一种基于故障域技术的数据管理方法,该方法包括:
[0006] 获取文件创建操作请求,文件创建操作请求中携带故障域级别设定参数;
[0007] 根据故障域级别设定参数获取至少一个的目标域标识;
[0008] 根据至少一个的目标域标识确定存储域标识;
[0009] 在存储域标识对应的主机上创建文件副本。
[0010] 在其中一个实施例中,根据至少一个的目标域标识确定存储域标识的步骤,包括:
[0011] 获取至少一个的目标域标识对应的至少一个可用的最底层域标识;
[0012] 从至少一个可用的最底层域标识中选取预设数量的最底层域标识作为存储域标识。
[0013] 在其中一个实施例中,文件创建操作请求中还携带创建数量;
[0014] 根据至少一个的目标域标识确定存储域标识的步骤,包括:
[0015] 根据创建数量依次从至少一个的目标域标识中确定一个当前目标域标识,获取与当前目标域标识对应的至少一个可用的最底层域标识,从至少一个可用最底层域标识中选取一个最底层域标识作为存储域标识。
[0016] 在其中一个实施例中,该方法还包括:
[0017] 获取文件访问请求,文件访问请求中携带请求访问的文件标识;
[0018] 获取与请求访问的文件标识对应的至少一个可访问域标识;
[0019] 从至少一个可访问域标识中选取任意一个可访问域标识,根据选取的可访问域标识及请求访问的文件标识确定可访问的文件副本进行读取。
[0020] 在其中一个实施例中,该方法还包括:
[0021] 当根据选取的可访问域标识及请求访问的文件标识确定可访问的文件副本进行读取失败时,获取选取的可访问域标识对应的上一级可访问域标识,根据获取的上一级可访问域标识及请求访问的文件标识确定可访问的文件副本进行读取。
[0022] 在其中一个实施例中,该方法还包括:
[0023] 获取对文件的修改操作请求,修改操作请求中携带文件标识;
[0024] 根据预先存储的文件标识与存储域标识之间的对应关系,获取与文件标识对应的存储域标识,根据存储域标识获取对应的存储主机标识;
[0025] 从存储主机标识对应的主机上查找与文件标识对应的文件副本,对查找到的文件副本进行对应的修改操作。
[0026] 一种基于故障域技术的数据管理装置,该装置包括:
[0027] 请求获取模块,用于获取文件创建操作请求,文件创建操作请求中携带故障域级别设定参数;
[0028] 目标域标识获取模块,用于根据故障域级别设定参数获取至少一个的目标域标识;
[0029] 存储域标识确定模块,根据至少一个的目标域标识确定存储域标识;
[0030] 文件创建模块,用于在存储域标识对应的主机上创建文件副本。
[0031] 在其中一个实施例中,存储域标识确定模块还用于获取至少一个的目标域标识对应的至少一个可用的最底层域标识;从至少一个可用的最底层域标识中选取预设数量的最底层域标识作为存储域标识。
[0032] 在其中一个实施例中,文件创建操作请求中还携带创建数量;
[0033] 存储域标识确定模块还用于根据创建数量依次从至少一个的目标域标识中确定一个当前目标域标识,获取与当前目标域标识对应的至少一个可用的最底层域标识,从至少一个可用最底层域标识中选取一个最底层域标识作为存储域标识。
[0034] 在其中一个实施例中,请求获取模块还用于获取文件访问请求,文件访问请求中携带请求访问的文件标识;
[0035] 该装置还包括:
[0036] 可访问域标识获取模块,用于获取与请求访问的文件标识对应的至少一个可访问域标识;
[0037] 文件读取模块,用于从至少一个可访问域标识中选取任意一个可访问域标识,根据选取的可访问域标识及请求访问的文件标识确定可访问的文件副本进行读取。
[0038] 在其中一个实施例中,文件读取模块还用于当根据选取的可访问域标识及请求访问的文件标识确定可访问的文件副本进行读取失败时,获取选取的可访问域标识对应的上一级可访问域标识,根据获取的上一级可访问域标识及请求访问的文件标识确定可访问的文件副本进行读取。
[0039] 在其中一个实施例中,请求获取模块还用于获取对文件的修改操作请求,修改操作请求中携带文件标识;
[0040] 该装置还包括:
[0041] 存储主机标识获取模块,用于根据预先存储的文件标识与存储域标识之间的对应关系,获取与文件标识对应的存储域标识,根据存储域标识获取对应的存储主机标识;
[0042] 文件修改模块,用于从存储主机标识对应的主机上查找与文件标识对应的文件副本,对查找到的文件副本进行对应的修改操作。
[0043] 上述基于故障域技术的数据管理方法和装置,获取文件创建操作请求,文件创建操作请求中携带故障域级别设定参数;根据故障域级别设定参数获取至少一个的目标域标识;根据至少一个的目标域标识确定存储域标识;在存储域标识对应的主机上创建文件副本。用户在创建文件时设定将文件副本创建到的故障域级别,这样可实现用户对文件副本创建的存储位置和范围的控制,使数据管理更加的灵活,同时,用户控制不同文件副本创建到不同故障域级别,可以使分布式存储系统的存储资源得到更加充分、有效的利用,避免了存储资源的浪费。

附图说明

[0044] 图1为一个实施例中基于故障域技术的数据管理方法的流程示意图;
[0045] 图2为一个实施例中故障域之间的层级关系示意图;
[0046] 图3为一个实施例中存储域标识获取方法的流程示意图;
[0047] 图4为一个实施例中文件读取方法的流程示意图;
[0048] 图5为一个实施例中对文件进行修改操作的方法的流程示意图;
[0049] 图6为一个实施例中基于故障域技术的数据管理装置的结构示意图;
[0050] 图7为另一个实施例中基于故障域技术的数据管理装置的结构示意图;
[0051] 图8为又一个实施例中基于故障域技术的数据管理装置的结构示意图。

具体实施方式

[0052] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。
[0053] 如图1所示,在一个实施例中,提供了一种基于故障域技术的数据管理方法,该方法具体包括以下步骤:
[0054] 步骤102,获取文件创建操作请求,文件创建操作请求中携带故障域级别设定参数。
[0055] 本实施例中,服务器中预先设置了划分了故障域级别,并存储了故障域级别的配置信息。其中,故障域级别可以划分为一级故障域(即数据中心层级)、二级故障域(如机房层级)、三级故障域(如若干个机架层级)、四级故障域(单个机架层级)等。可以理解,故障域划分的层级的多少,可以根据实际需要进行对应的调整。
[0056] 更进一步,可以理解,对划分在同一层级故障域中的故障域物理基础结构的物理放置位置不作限定,比如,同一层级故障域中的若干个机架的物理放置位置可以不在同一机房中。
[0057] 用户通过终端创建文件,具体的,用户在创建文件时设定文件创建的故障域级别,即要将文件创建到的故障域级别。
[0058] 进一步,终端响应于用户的文件创建操作,获取文件创建的故障域级别设定参数,根据获取的故障域级别设定参数生成文件创建操作请求,并进一步将生成的文件创建操作请求发送至服务器。服务器获取文件创建操作请求中携带的故障域级别设定参数。其中,故障域级别设定参数包括故障域级别标识。进一步,还可以包括故障域级别标识对应的上级故障域标识。比如,设定文件创建的故障域级别为三级,则用户需要设定在哪个一级故障域下的哪个二级故障域下的三级故障域中创建文件,那么,故障域级别设定参数包括故障域级别标识L3,故障域级别标识L3对应的上级故障域标识,即为一级故障域标识f1和二级故障域标识f1.1。
[0059] 步骤104,根据故障域级别设定参数获取至少一个的目标域标识。
[0060] 可以理解,一个故障域级别可以对应至少一个的故障域。比如,设定的故障域级别是一级,即数据中心层级,而分布式存储集群中建了一个双活数据中心(Dual Active Data Center,两个数据中心都处于运行当中,且互为备份),分为数据中心A和数据中心B,即数据中心A为一个一级故障域,数据中心B为一个一级故障域,那么当故障域级别设定为一级时,则对应了两个故障域。
[0061] 进一步,服务器中预先存储了故障域级别配置信息,具体的,预先存储了故障域级别标识与故障域标识的对应关系,比如,一级故障域标识L1,对应的故障域标识为数据中心A的故障域标识f1和数据中心B的故障域标识f2。
[0062] 服务器在获取故障域级别设定参数后,会根据故障域级别设定参数和预先存储的故障域级别配置信息获取至少一个的目标域标识。
[0063] 具体的,在一个实施例中,当故障域级别标识对应的故障域级别为一级时,故障域级别设定参数包括故障域级别标识,则根据预先存储的故障域级别标识与故障域标识的对应关系,获取故障域级别标识对应的至少一个的目标域标识。其中,目标域即为需要将文件创建到的故障域,用于反映文件创建的层级,可以为最底层故障域,也可以为非最底层故障域。进一步结合上述例子进行解释说明,比如获取故障域标识L1时,根据预先存储的故障域级别标识与故障域标识的对应关系获取与L1对应的故障域标识为f1和f2,则获取的f1和f2即为目标域标识,即需要将文件创建到目标域标识f1对应的数据中心A中和目标域标识f2对应的数据中心B中。
[0064] 在另一个实施例中,当故障域级别标识对应的故障域级别为除一级以外的其它级别时,故障域级别设定参数包括故障域级别标识,以及故障域级别标识对应的上级故障域标识,则根据故障域级别标识对应的上级故障域标识获取与故障域级别标识对应的至少一个目标域标识。结合步骤102中的例子进行解释说明,故障域级别标识为L3,故障域级别标识L3对应的上级故障域标识为一级故障域标识f1和二级故障域标识f1.1,则根据f1查找到f1.1,确定f1.1对应的下一级故障域标识,即为L3对应的目标域标识。
[0065] 步骤106,根据至少一个的目标域标识确定存储域标识。
[0066] 本实施例中,服务器中预先存储了故障域之间的层级关系,如图2所示,图2为一个实施例中故障域之间的层级关系,其中f1和f2为一级故障域,f1.1和f1.2为f1下的二级故障域,f2.1和f2.2为f2下的二级故障域,f1.1.1和f1.1.2为f1.1下的三级故障域,f1.2.1和f1.2.2为f1.2下的三级故障域,f2.1.1和f2.1.2为f2.1下的三级故障域,f2.2.1和f2.2.2为f2.2下的三级故障域。根据存储的故障域之间的层级关系,确定与目标域标识对应的存储域标识。其中,存储域为实际存储文件的故障域。可以理解,因为其他层级的域是用于划分存储范围,而文件最终都会创建存储在最底层域中,因此存储域为最底层域,可以为一个或多个机架。
[0067] 进一步,因目标域标识不少于一个,针对每个目标域标识确定存储域标识,因此可以理解,确定的存储域标识不少于一个。
[0068] 步骤108,在存储域标识对应的主机上创建文件副本。
[0069] 本实施例中,服务器中预先存储了故障域标识与主机标识之间的对应关系,该对应关系反映了一个故障域中所包含的主机,可以理解,一个故障域标识对应不少于一个的主机标识。服务器在确定存储域标识之后,会进一步在确定的存储域标识对应的主机上创建文件副本。
[0070] 具体的,根据故障域标识与主机标识之间的对应关系,从确定的每一个存储域标识对应的主机标识中按序或随机的选取至少一个主机标识,在选取的至少一个主机标识对应的主机上创建文件副本。更具体的,可以是从确定的每一个存储域标识对应的主机标识中按序或者随机的选取一个主机标识,在选取的一个主机标识对应的主机上创建文件副本。也可以是,选取与确定的每一个存储子域标识对应的所有主机标识,并在所有主机标识对应的所有主机上创建文件副本。还可以是,从确定的每一个存储子域标识对应的主机标识中按序或者随机的选取预设数量的主机标识,在选取的预设数量的主机标识对应的主机上创建文件副本。需要说明的是,选取的主机标识数量的多少可以根据实际情况进行设定,本实施例中对此并不作限定。
[0071] 本实施例中,将分布式存储集群的故障域划分层级,用户可以根据需要指定文件的故障域级别,将文件副本创建到不同层级的故障域中,这样可以实现用户对文件副本创建的存储位置和范围的控制,使数据管理更加的灵活,同时,用户控制不同文件副本创建的不同故障域级别,可以使分布式存储系统的存储资源得到更加有效的利用,避免了存储资源的浪费。
[0072] 如图3所示,在一个实施例中,根据至少一个的目标域标识确定存储域标识的步骤(简称存储域标识获取步骤)具体包括以下步骤:
[0073] 步骤302,获取至少一个的目标域标识对应的至少一个可用的最底层域标识。
[0074] 本实施例中,根据服务器中预先存储的故障域之间的层级关系,获取目标域标识对应的最底层域标识。可以理解,一个目标域标识可以对应至少一个的最底层域标识,因为所获取的目标域标识可以是任意位于任意层级的故障域标识,既可以是最底层域标识,也可以是非最底层域标识,当获取的目标域标识为非最底层域标识时,则该目标域标识可以对应一个或多个最底层域标识。结合图2所示,目标域标识为f1.1时,对应的最底层域标识为f1.1.1和f1.1.2。
[0075] 服务器会根据预设周期对分布式存储集群中所有最底层域的使用状态进行检测,比如可以检测最底层域中的所有物理基础设备的使用状态,并将使用状态检测结果与最底层域标识进行关联存储。
[0076] 进一步,在获取目标域标识对应的最底层域标识之后,会根据存储的最底层域标识与使用状态检测结果的对应关系,判断获取的对应的最底层域标识对应的最底层域的使用状态是否正常,获取对应的使用状态为正常的最底层域标识作为可用的最底层域标识。可以理解,可用的最底层标识为一个或多个。进一步,可以将获取的可用的最底层域标识以一个列表的形式进行汇总存储,即生成可用的最底层域标识列表。也可以以关联的方式实现,即将目标域标识与可用的最底层域标识进行关联。
[0077] 步骤304,从至少一个可用的最底层域标识中选取预设数量的最底层域标识作为存储域标识。
[0078] 本实施例中,服务器中预先设置了存储域的数量,即预先设置了文件副本创建到的故障域数量。因此,在从确定的至少一个可用的最底层域标识中选取预设数量的最底层域标识作为存储域标识。具体的,可以按序的或随机的选取预设数量的最底层域标识。
[0079] 进一步,可以通过随机算法(比如哈希算法)来随机选取预设数量的最底层域标识。具体的,可以以文件在终端创建的目录及文件名为基础数据进行哈希计算,得到文件的哈希值,根据计算得到的哈希值从至少一个可用的最底层域标识中选取预设数量的最底层域标识作为存储域标识,比如,可用的最底层域标识有20个,计算出的哈希值为12,那么可以选取第12个最底层域标识作为存储域标识。其中,文件在终端的创建目录可以从文件创建操作请求中获取。
[0080] 需要说明的是,在确定一个存储域标识后,使该存储域标识不参与下一次的随机选取。现结合上个例子进行解释说明,即为第二次随机选取时,可用的最底层域标识有19个,可以从这19个最底层域标识中选取第12个最底层域标识作为第二个存储域标识。
[0081] 具体的,可以是将存储域标识作标记,使其不参与下一次的随机选取,也可以是将该存储域标识从可用的最底层域标识列表中移动至存储域标识列表中使其不参与下一次的随机选取。可以理解,本发明实施例对使存储域标识不参与下一次的随机选取的实现方式不作具体限定,只要满足能够使存储域标识不参与下一次随机选取即可。通过使存储域标识不参加下一次随机选取,实现获取多个不重复的存储域标识,使文件副本创建在不同的故障域中,以提高文件的可用性。
[0082] 本实施例中,通过预先设定了存储域的数量,根据目标域标识获取预设数量的存储域标识,不需要用户再对存储域的数量进行选定,节省了用户的操作成本。
[0083] 在一个实施例中,文件创建操作请求中还携带创建数量,根据至少一个的目标域标识确定存储域标识的步骤包括:根据创建数量依次从至少一个的目标域标识中确定一个当前目标域标识,获取与当前目标域标识对应的至少一个可用的最底层域标识,从至少一个可用最底层域标识中选取一个最底层域标识作为存储域标识。
[0084] 本实施例中,用户在进行文件创建操作时,选定了文件的创建数量,因此,服务器获取的文件创建操作请求中携带了用户选定的创建数量。服务器会根据创建数量依次从至少一个的目标域标识中确定一个当前目标域标识,获取与当前目标域标识对应的至少一个可用的最底层域标识,从至少一个可用最底层域标识中选取一个最底层域标识作为存储域标识。具体的,可以按序或随机选取一个最底层域标识作为存储域标识。
[0085] 进一步,可以使已经确定为存储域的最底层域标识不参与下一次的选取,可以通过对其进行标记或从待选取的最底层域标识列表中移动至存储域标识列表的方式来实现。
[0086] 同样结合图2进行解释说明。比如目标域标识为f1和f2,创建数量为3,则依次根据f1和f2确定3个存储域标识。具体的,先获取f1对应的至少一个的最底层域标识,即为f1.1.1、f1.1.2、f1.2.1及f1.2.2,从中选取一个f1.1.1作为第一个存储域标识,接着再获取f2对应的至少一个的最底层域标识,即为f2.1.1、f2.1.2、f2.2.1及f2.2.2,从中选取一个f2.1.2作为第二个存储域标识。接着,再从f1对应的至少一个的最底层域标识,即为f1.1.2、f1.2.1及f1.2.2中选取f1.1.2作为第三个存储域标识。
[0087] 本实施例,根据创建数量依次获取各目标域标识对应的一个最底层域标识作为存储域标识,能够使文件副本创建在不同的目标域标识中,实现了用户对文件副本创建位置的控制。
[0088] 如图4所示,在一个实施例中,该方法还包括文件读取的步骤,具体包括以下步骤:
[0089] 步骤402,获取文件访问请求,文件访问请求中携带请求访问的文件标识。
[0090] 步骤404,获取与请求访问的文件标识对应的至少一个可访问域标识。
[0091] 本实施例中,用户通过终端对创建的文件进行访问操作,终端获取所访问的文件对应的文件标识并生成文件访问请求,将文件访问请求发送至服务器。服务器获取文件访问请求中携带的请求访问的文件标识。服务器会进一步获取与该请求访问的文件标识对应的可访问标识,其中,可访问域标识可以为一个或多个。
[0092] 可以理解,在进行文件创建时,服务器中存储了文件标识与所创建到的故障域标识(即目标域标识)之间的对应关系。根据服务器存储的文件标识与目标域标识之间的对应关系,获取请求访问的文件标识对应的目标域标识。在一个实施例中,获取的目标域标识即为可访问域标识。在另一个实施例中,对获取的目标域标识对应的故障域的使用状态进行检测,从中选取使用状态正常的故障域标识作为可访问域标识。
[0093] 步骤406,从至少一个可访问域标识中选取任意一个可访问域标识,根据选取的可访问域标识及请求访问的文件标识确定可访问的文件副本进行读取。
[0094] 进一步,服务器或根据从至少一个可访问域标识中选取任意一个可访问域标识。可以理解,所选取的任意一个可访问域标识可以是最底层域标识,也可以是非最底层域标识。
[0095] 在一个实施例中,服务器中在创建文件副本时,记录了目标标识与存储域标识的对应关系,并且记录了存储文件副本的主机标识与存储域标识之间的对应关系,即记录了存储主机标识与存储域标识之间的对应关系。服务器在从至少一个可访问域标识中选取任意一个可访问域标识后,根据上述两个对应关系,获取与选取的可访问域标识对应的存储主机标识。进一步,从对应的存储主机标识对应的主机中查找到与请求访问的文件标识对应的可访问文件副本进行读取。可以理解,可访问域标识对应的存储主机标识为可以为多个,当从一个存储主机标识对应的主机中读取失败时,则从另一个存储主机标识对应的主机中进行读取操作。
[0096] 在另一个实施例中,服务器中存储了故障域标识及对应的至少一个的主机标识。服务器从至少一个可访问域标识中选取任意一个可访问域标识后,根据存储的故障域标识域主机标识之间的对应关系,获取与选取的可访问域标识对应的主机标识,从对应的主机标识对应的主机中逐个查找与请求访问的文件标识对应的文件副本,当查找到对应的文件副本时则进行读取,当未查找到或者读取失败时则继续查找对应的下一个主机,直至读取成功。
[0097] 在又一个实施例中,可以根据选取的可访问域标识确定对应的最底层域标识,获取与最底层域标识对应的主机标识,其中,主机标识为至少一个,从主机标识对应的主机中逐个查找与请求访问的文件标识对应的可访问文件副本进行读取,直至读取成功。当在选取的可访问域标识对应的最底层域标识中读取文件副本失败时,则获取该最底层域标识的上一级故障域标识。获取与上一级故障域标识对应的主机标识,从主机标识对应的主机中逐个查找与请求访问的文件标识对应的可访问文件副本进行读取,直至读取成功。
[0098] 可以理解,如果最底层域上一级故障域进行文件副本读取失败时,则再进一步上溯故障域进行文件副本读取,直至上溯到所选取的可访问域标识对应的故障域级别。
[0099] 比如,如表1所示,表1中为一个实施例中的可访问域标识列表,选取的可访问域标识为f1.1,f1.1对应的最底层域标识为f1.1.1、f1.1.2,那么服务器会依次查询最底层域标识f1.1.1和f1.1.2对应的主机标识,从对应的主机标识中查找与请求访问的文件标识对应的文件副本进行读取。当从f1.1.1和f1.1.2对应的主机中都无法成功读取文件副本时,则获取最底层域标识对应的上一级故障域标识f1.1和f1.2。获取上一级故障域标识f1.2对应的最底层域标识f1.2.1和f1.2.2,进而获取f1.2.1和f1.2.2对应的主机标识,依次从对应主机上查找与请求访问的文件标识对应的文件副本进行读取。
[0100]
[0101] 表1
[0102] 本实施例中,通过可访问域标识下的域层级的上溯来查找需访问的文件,可以较快的查找到请求访问的文件对应的文件副本,进一步提高了文件的可用性。
[0103] 在一个实施例中,该方法还包括当根据选取的可访问域标识及请求访问的文件标识确定可访问的文件副本进行读取失败时,获取选取的可访问域标识对应的上一级可访问域标识,根据获取的上一级可访问域标识及请求访问的文件标识确定可访问的文件副本进行读取的步骤。
[0104] 同样结合上述例子及表1进行解释说明,当选取的可访问域标识f1.1这一层级读取文件副本失败时,则获取对应的上一级的可访问域标识,即获取上一级(即一级故障域)的可访问域标识f1和f2,获取f2对应的最底层域标识f2.1.1、f2.1.2、f2.2.1和f2.2.2,进而获取f2.1.1、f2.1.2、f2.2.1和f2.2.2对应的主机标识,依次从对应主机上查找与请求访问的文件标识对应的文件副本进行读取。
[0105] 本实施例中,通过可访问域层级的上溯可以在访问文件副本时实现不同数据中心之间的无缝切换,提高文件的可用性。
[0106] 如图5所示,在一个实施例中,该方法还包括对文件进行修改操作的步骤,具体包括以下步骤:
[0107] 步骤502,获取对文件的修改操作请求,修改操作请求中携带文件标识。
[0108] 步骤504,根据预先存储的文件标识与存储域标识之间的对应关系,获取与文件标识对应的存储域标识,根据存储域标识获取对应的存储主机标识。
[0109] 本实施例中,终端检测到用户对文件进行的修改操作,生成对文件的修改操作请求发送至服务器,其中,修改操作请求中携带文件标识。可以理解,修改操作包括对文件进行写入数据的操作、修改文件大小的操作以及删除文件操作等。服务器接收终端发送的对文件的修改操作请求,获取修改操作请求中携带的文件标识。进一步,可以理解,在进行文件副本创建时,服务器中存储了文件标识与存储域标识之间的对应关系,服务器中存储了存储域标识与存储主机标识之间的对应关系,服务器根据上述对应关系,获取文件标识对应的存储域标识,根据存储域标识获取对应的存储主机标识。
[0110] 可以理解,存储主机标识为一个或多个。
[0111] 步骤506,从存储主机标识对应的主机上查找与文件标识对应的文件副本,对查找到的文件副本进行对应的修改操作。
[0112] 因为存储主机标识为一个或多个,因此查找到的文件副本为一个或多个,对查找到的一个或多个文件副本进行对应的修改操作,即进行终端检测到的用户对文件进行的修改操作。
[0113] 如图6所示,在一个实施例中,提供一种基于故障域技术的数据管理装置,该装置包括:
[0114] 请求获取模块602,用于获取文件创建操作请求,文件创建操作请求中携带故障域级别设定参数。
[0115] 目标域标识获取模块604,用于根据故障域级别设定参数获取至少一个的目标域标识。
[0116] 存储域标识确定模块606,根据至少一个的目标域标识确定存储域标识。
[0117] 文件创建模块608,用于在存储域标识对应的主机上创建文件副本。
[0118] 在一个实施例中,存储域标识确定模块606还用于获取至少一个的目标域标识对应的至少一个可用的最底层域标识,从至少一个可用的最底层域标识中选取预设数量的最底层域标识作为存储域标识。
[0119] 在一个实施例中,文件创建操作请求中还携带创建数量。本实施例中,存储域标识确定模块606还用于根据创建数量依次从至少一个的目标域标识中确定一个当前目标域标识,获取与当前目标域标识对应的至少一个可用的最底层域标识,从至少一个可用最底层域标识中选取一个最底层域标识作为存储域标识。
[0120] 如图7所示,在一个实施例中,请求获取模块602还用于获取文件访问请求,文件访问请求中携带请求访问的文件标识。该装置还包括:
[0121] 可访问域标识获取模块610,用于获取与请求访问的文件标识对应的至少一个可访问域标识。
[0122] 文件读取模块612,用于从至少一个可访问域标识中选取任意一个可访问域标识,根据选取的可访问域标识及请求访问的文件标识确定可访问的文件副本进行读取。
[0123] 在一个实施例中,文件读取模块612还用于当根据选取的可访问域标识及请求访问的文件标识确定可访问的文件副本进行读取失败时,获取选取的可访问域标识对应的上一级可访问域标识,根据获取的上一级可访问域标识及请求访问的文件标识确定可访问的文件副本进行读取。
[0124] 如图8所示,在一个实施例中,请求获取模块602还用于获取对文件的修改操作请求,修改操作请求中携带文件标识。该装置还包括:
[0125] 存储主机标识获取模块614,用于根据预先存储的文件标识与存储域标识之间的对应关系,获取与文件标识对应的存储域标识,根据存储域标识获取对应的存储主机标识。
[0126] 文件修改模块616,用于从存储主机标识对应的主机上查找与文件标识对应的文件副本,对查找到的文件副本进行对应的修改操作。
[0127] 以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0128] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。