一种服务器及其访问卷的方法转让专利

申请号 : CN200910252493.7

文献号 : CN101763313B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 罗姣林张国彬刘卯银

申请人 : 成都市华为赛门铁克科技有限公司

摘要 :

本发明实施例涉及存储技术领域,公开了一种服务器及其访问卷的方法,该方法包括:根据对需要访问的卷的访问偏移量从第一列表中确定出需要访问的块,所述第一列表,用于存储所述卷划分成的至少二个相同大小的块的信息;根据确定出的块,从第二列表中确定出所述需要访问的块对应的存储控制器,所述第二列表,用于存储所述卷划分成的每一个块对应的存储控制器的信息;发送读数据请求或者写数据请求至所述需要访问的块对应的存储控制器进行处理。本发明实施例可以降低服务器的读数据请求或写数据请求到达需要访问的块的时延,以及减少服务器读数据请求或写数据请求对存储控制器的内存资源的占用。

权利要求 :

1.一种服务器访问卷的方法,其特征在于,包括:

根据对需要访问的卷的访问偏移量从第一列表中确定出需要访问的块,所述第一列表,用于存储所述卷划分成的至少二个相同大小的块的信息;

根据确定出的块,从第二列表中确定出所述需要访问的块对应的存储控制器,所述第二列表,用于存储所述卷划分成的每一个块对应的一个存储控制器的信息;

发送读数据请求或者写数据请求至所述需要访问的块对应的存储控制器进行处理。

2.根据权利要求1所述的方法,其特征在于,还包括:

从元数据服务器中获取所述卷划分成的至少二个相同大小的块的信息,以及获取所述卷划分成的每一个块对应的一个存储控制器的信息;

将所述卷划分成的至少二个相同大小的块的信息写入所述第一列表存储;

将所述卷划分成的每一个块对应的一个存储控制器的信息写入所述第二列表存储。

3.根据权利要求2所述的方法,其特征在于,所述从元数据服务器中获取所述卷划分成的至少二个相同大小的块的信息,以及获取所述卷划分成的每一个块对应的一个存储控制器的信息包括:接收元数据服务器发送的所述卷划分成的至少二个相同大小的块的信息,以及所述卷划分成的每一个块对应的一个存储控制器的信息。

4.根据权利要求2所述的方法,其特征在于,若所述服务器装载有多路径软件,则服务器从元数据服务器中获取所述卷划分成的至少二个相同大小的块的信息,以及获取所述卷划分成的每一个块对应的一个存储控制器的信息包括:所述多路径软件初始化时,从元数据服务器中获取所述卷划分成的至少二个相同大小的块的信息,以及所述卷划分成的每一个块对应的一个存储控制器的信息。

5.根据权利要求1至4任一项所述的方法,其特征在于,所述根据对需要访问的卷的访问偏移量从第一列表中确定出需要访问的块包括:将所述卷的访问偏移量除以第一列表存储的所述卷划分成的块的大小,获得商值,取所述商值的整数部分并加1,获得需要访问的块。

6.一种服务器,其特征在于,包括:

第一确定模块,用于根据对需要访问的卷的访问偏移量从第一列表中确定出需要访问的块,所述第一列表,用于存储所述卷划分成的至少二个相同大小的块的信息;

第二确定模块,用于根据所述第一确定模块确定出的块,从第二列表中确定出所述需要访问的块对应的存储控制器,所述第二列表,用于存储所述卷划分成的每一个块对应的一个存储控制器的信息;

发送模块,用于发送读数据请求或者写数据请求至所述第二确定模块确定出的所述需要访问的块对应的存储控制器进行处理。

7.根据权利要求6所述的服务器,其特征在于,还包括:

获取模块,用于从元数据服务器中获取所述卷划分成的至少二个相同大小的块的信息,以及获取所述卷划分成的每一个块对应的一个存储控制器的信息;

写入模块,用于将所述卷划分成的至少二个相同大小的块的信息写入所述第一列表存储,以及将所述卷划分成的每一个块对应的一个存储控制器的信息写入所述第二列表存储。

8.根据权利要求7所述的服务器,其特征在于,所述获取模块包括:接收子模块,用于接收元数据服务器发送的所述卷划分成的至少二个相同大小的块的信息,以及所述卷划分成的每一个块对应的一个存储控制器的信息。

9.根据权利要求7所述的服务器,其特征在于,所述获取模块包括:多路径软件子模块,用于在所述多路径软件初始化时,从元数据服务器中获取所述卷划分成的至少二个相同大小的块的信息,以及所述卷划分成的每一个块对应的一个存储控制器的信息。

10.根据权利要求6至9任一项所述的服务器,其特征在于,所述第一确定模块具体用于将所述卷的访问偏移量除以第一列表存储的所述卷划分成的块的大小,获得商值,取所述商值的整数部分并加1,获得需要访问的块。

说明书 :

一种服务器及其访问卷的方法

技术领域

[0001] 本发明涉及存储技术领域,尤其涉及一种服务器及其访问卷的方法。

背景技术

[0002] 在多存储控制器存储架构中,卷是一种用于存储数据的逻辑介质。每一个卷被标记了一个不同的标识(ID),用于区别卷的不同。其中,每一个卷可以划分成多个相同大小的块,块是存储数据的最小单位。一个卷划分成的多个相同大小的块可以分散到存储架构的多个存储控制器上,使得一个块对应了一个存储控制器。每一个存储控制器都可以通过交换机和服务器连接,当服务器需要往某一个卷写入数据时,各个存储控制器可以将服务器的数据并行地写入该卷划分成的多个块中;当服务器需要从某一个卷中读取的数据时,各个存储控制器可以并行地从该卷划分成的多个块中读取数据并返回给服务器,各个存储控制器并行处理可以达到更高的性能。
[0003] 服务器有时可以对某一个卷的某一个块进行数据的读或写,例如,服务器在接收到外部输入指令或者运行某一程序时,可以向映射该卷ID的存储控制器(每一个存储控制器可以在服务器上映射一个或多个卷ID)发送携带了卷的访问偏移量的读数据请求或者写数据请求,根据该卷的访问偏移量,该存储控制器可以确定出服务器需要访问哪一个块,进而查询到服务器需要访问的块所对应的存储控制器,若查询到的存储控制器是其他存储控制器,则通过存储控制器之间的高速互联线将该读数据请求或者写数据请求转发到对应的存储控制器进行处理。其中,相应的存储控制器可以根据服务器的写请求将服务器的数据写入服务器需要访问的块中,或者,可以根据服务器的读请求将服务器需要访问的块的数据读取并返回给服务器,从而实现服务器访问卷。
[0004] 由上述可知,存储控制器查询服务器需要访问的块所对应的存储控制器是其他存储控制器时,需要转发服务器的读数据请求或者写数据请求到相应的存储控制器,导致服务器的读数据请求或者写数据请求到达需要访问的块的时延增大;另外,存储控制器还需要暂存服务器的读数据请求或者写数据请求,然后再转发,占用了该存储控制器的内存资源。

发明内容

[0005] 本发明实施例提供了一种服务器及其访问卷的方法,能够实现服务器访问卷。
[0006] 为解决上述技术问题,本发明实施例提供如下技术方案:
[0007] 本发明实施例提供了一种多存储控制器存储架构的访问方法,包括:
[0008] 根据对需要访问的卷的访问偏移量从第一列表中确定出需要访问的块,所述第一列表,用于存储所述卷划分成的至少二个相同大小的块的信息;
[0009] 根据确定出的块,从第二列表中确定出所述需要访问的块对应的存储控制器,所述第二列表,用于存储所述卷划分成的每一个块对应的一个存储控制器的信息;
[0010] 发送读数据请求或者写数据请求至所述需要访问的块对应的存储控制器进行处理。
[0011] 本发明实施例提供了一种服务器,包括:
[0012] 第一确定模块,用于根据对需要访问的卷的访问偏移量从第一列表中确定出需要访问的块,所述第一列表,用于存储所述卷划分成的至少二个相同大小的块的信息;
[0013] 第二确定模块,用于根据所述第一确定模块确定出的块,从第二列表中确定出所述需要访问的块对应的存储控制器,所述第二列表,用于存储所述卷划分成的每一个块对应的一个存储控制器的信息;
[0014] 发送模块,用于发送读数据请求或者写数据请求至所述第二确定模块确定出的所述需要访问的块对应的存储控制器进行处理。
[0015] 与现有的技术相比,本发明实施例将卷划分成的至少二个相同大小的块的信息,以及每一个块对应的存储控制器的信息存储在服务器上,当需要访问卷时,服务器可以根据卷的访问偏移量确定出需要访问的块,进而确定出该块对应的存储控制器,服务器可以将读数据请求或写数据请求直接发送给确定出的存储控制器进行处理。这样,避免了存储控制器查询服务器需要访问的块所对应的存储控制器是其他存储控制器时,需要转发服务器的读数据请求或写数据请求到相应的存储控制器的情况,从而可以降低服务器的读数据请求或者写数据请求到达需要访问的块的时延,以及减少服务器读数据请求或者写数据请求对存储控制器的内存资源的占用。

附图说明

[0016] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0017] 图1为本发明实施例中提供的一种服务器访问卷的方法的流程图;
[0018] 图2为本发明实施例中提供的另一种服务器访问卷的方法的流程图;
[0019] 图3为本发明实施例中提供的一种服务器的结构示意图;
[0020] 图4为本发明实施例中提供的另一种服务器的结构示意图;
[0021] 图5为本发明实施例中提供的又一种服务器的结构示意图。

具体实施方式

[0022] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0023] 实施例一:
[0024] 请参阅图1,图1为本发明实施例中提供的一种服务器访问卷的方法的流程图。如图1所示,该方法可以包括:
[0025] 101:根据对需要访问的卷的访问偏移量从第一列表中确定出需要访问的块;
[0026] 举例来说,服务器在接收到外部输入指令或者运行某一程序时,对某一个卷进行访问。在本实施例和后续的实施例中,服务器对某一个卷进行访问可以包括:服务器从某一个卷中读取数据,或者服务器将数据写入某一个卷中进行存储。
[0027] 其中,上述的第一列表可以存储卷划分成的至少二个相同大小的块的信息。在本发明实施例中,块的信息可以是块的序号,或者是块的标识等等。第一列表的格式可以类似于下面的表1。其中,表1中存储了N(N为自然数)个块的序号,这N个块是由卷ID划分成的,且大小相同。
[0028]卷ID 块1 块2 块3 块N
[0029] 表1
[0030] 进一步地的,上述的表1所示的第一列表中可以设置多个行,分别用于存储多个卷划分成的相同大小的块的信息,其中,多个卷的卷ID不同,本发明实施例不作限定。
[0031] 102:根据确定出的块,从第二列表中确定出该块对应的存储控制器;
[0032] 其中,上述的第二列表可以存储卷划分成的每一个块对应的存储控制器的信息。在本发明实施例中,每一个块对应的存储控制器的信息可以是每一个块对应的存储控制器的序号或者标识。第二列表的格式可以类似于下面的表2。其中,表2中存储了N(N为自然数)个存储控制器的序号,每一个块对应了一个存储控制器。
[0033]卷ID 存储控制器
块1 存储控制器1
块2 存储控制器2
块3 存储控制器3
块N 存储控制器N
[0034] 表2
[0035] 进一步地的,上述的表2所示的第二列表中可以设置多个列,分别用于存储多个卷划分成的相同大小的块,其中,在同一个卷划分成的多个相同大小的块中,每一个块可以分别对应一个不同的存储控制器,或者,几个块也可以同时对应同一个存储控制器,本发明实施例不作限定。
[0036] 103:发送读数据请求或者写数据请求至该块对应的存储控制器进行处理。
[0037] 由于各个存储控制器可以通过交换机和服务器连接,所以当上述的102确定出服务器需要访问的块之后,可以读数据请求或者写数据请求发送至交换机,由交换机转发至该块对应的存储控制器进行处理。
[0038] 其中,该块对应的存储控制器可以根据服务器的写数据请求将服务器的数据写入服务器需要访问的块中,或者,可以根据服务器的读数据请求将服务器需要访问的块的数据读取并通过交换机返回给服务器,从而实现服务器访问卷。
[0039] 进一步地,在本发明实施例提供的服务器访问卷的方法中,还可以包括:
[0040] 从元数据服务器(Meta Data Server,MDS)中获取卷划分成的至少二个相同大小的块的信息,以及该卷划分成的每一个块对应的存储控制器的信息,将卷划分成的至少二个相同大小的块的信息写入上述的第一列表存储,将该卷划分成的每一个块对应的存储控制器的信息写入上述的第二列表存储。
[0041] 举例来说,服务器从MDS中获取卷划分成的至少二个相同大小的块的信息,以及该卷划分成的每一个块对应的存储控制器信息具体可以为:
[0042] 服务器接收MDS发送的卷划分成的至少二个相同大小的块的信息,以及每一个块对应的存储控制器的信息。
[0043] 举例来说,服务器从MDS中获取卷划分成的至少二个相同大小的块信息,以及每一个块对应的存储控制器的信息具体还可以为:
[0044] 服务器装载有多路径软件,在多路径软件初始化时,多路径软件可以从MDS中获取卷划分成的至少二个相同大小的块的信息,以及每一个块对应的存储控制器的信息。
[0045] 其中,MDS可以是一个独立的服务器,也可以是多个存储控制器中的一个存储控制器,MDS用于记录每一个卷划分成的相同大小的块的信息,以及每一个块所对应的存储控制器的信息,这是本领域技术人员公知常识,本发明实施例在此不作介绍。
[0046] 本发明实施例中提供的服务器访问卷的方法可以避免存储控制器向查询服务器需要访问的块所对应的存储控制器是其他存储控制器时,需要转发服务器的读数据请求或写数据请求到相应的存储控制器的情况,从而可以降低服务器的读数据请求或者写数据请求到达需要访问的块的时延,以及减少服务器读数据请求或者写数据请求对存储控制器的内存资源的占用。
[0047] 举例来说,上述101中的服务器根据对该卷的访问偏移量从第一列表中确定出需要访问的块可以采用但不限于如下方式来实现:
[0048] A、将该卷的访问偏移量除以第一列表存储的所述卷划分成的块的大小,获得商值;
[0049] B、取上述商值的整数部分并加1,获得需要访问的块。
[0050] 假设上述的表1所示的第一列表中,卷ID的总大小为320M,划分为10个相同大小的块(即N=10),即块1=32M,块2=32M,......,块10=32M。如果服务器访问卷ID的访问偏移量为40M,则40/32=1.25;取1.25的整数部分加1等于2,则确定出服务器需要访问的块为块2。具体地,服务器可以从块2的8M大小(40M-32M=8M)的地址开始访问块2。
[0051] 实施例二:
[0052] 请参阅图2,图2为本发明实施例中提供的另一种服务器访问卷的方法的流程图。如图2所示,该方法可以包括:
[0053] 201:服务器从MDS中获取卷划分成的至少二个相同大小的块的信息,以及每一个块对应的存储控制器的信息;
[0054] 举例来说,服务器从MDS中获取卷划分成的至少二个相同大小的块的信息,以及每一个块对应的存储控制器的信息具体可以为:
[0055] 服务器接收MDS发送的卷划分成的至少二个相同大小的块的信息,以及每一个块对应的存储控制器的信息。
[0056] 举例来说,服务器从MDS中获取卷划分成的至少二个相同大小的块的信息,以及每一个块对应的存储控制器的信息具体还可以为:
[0057] 服务器装载有多路径软件,在多路径软件初始化时,多路径软件可以从MDS中获取卷划分成的至少二个相同大小的块的信息,以及每一个块对应的存储控制器的信息。
[0058] 其中,MDS可以是一个独立的服务器,也可以是多个存储控制器中的一个存储控制器,MDS用于记录每一个卷划分成的相同大小的块的信息,以及每一个块所对应的存储控制器的信息,这是本领域技术人员公知常识,本发明实施例在此不作介绍。
[0059] 202:将卷划分成的至少二个相同大小的块的信息写入第一列表存储,以及将卷划分成的每一个块对应的存储控制器的信息写入第二列表存储;
[0060] 其中,第一列表的格式可以类似于如上述的表1,第二列表的格式可以类似于如上述的表2,本发明实施例在此不作复述。
[0061] 203:当需要访问卷时,服务器根据对该卷的访问偏移量从第一列表中确定出需要访问的块;
[0062] 举例来说,服务器在接收到外部输入指令或者运行某一程序时,对某一个卷进行访问。
[0063] 举例来说,服务器可以将该卷的访问偏移量除以第一列表存储的该卷划分成的块的大小,获得商值;取上述商值的整数部分并加1,从而获得需要访问的块。
[0064] 假设如表1所示的第一列表中,卷ID的总大小为320M,划分为10个相同大小的块(即N=10),即块1=32M,块2=32M,......,块10=32M。如果服务器访问卷ID的访问偏移量为20M,则20/32=0.625;取0.625的整数部分加1等于1,则确定出服务器需要访问的块为块1。具体地,服务器可以从块1的20M大小的地址开始访问块1。
[0065] 204:根据确定出的块,从第二列表中确定出该块对应的存储控制器;
[0066] 其中,第二列表,可以存储该卷划分成的每一个块对应的存储控制器的信息,第二列表的格式可以如上述的表2所示,本发明实施例在此不作复述。
[0067] 205:发送读数据请求或者写数据请求至该块对应的存储控制器进行处理。
[0068] 上述对本发明实施例中提供的另一种服务器访问卷的方法进行介绍,本发明实施例可以避免存储控制器查询服务器需要访问的块所对应的存储控制器是其他存储控制器时,需要转发服务器的读数据请求或写数据请求到相应的存储控制器的情况,从而可以降低服务器的读数据请求或者写数据请求到达需要访问的块的时延,以及减少服务器读数据请求或者写数据请求对存储控制器的内存资源的占用。
[0069] 本发明实施例提供的服务器访问卷的方法还可以减少存储控制器间的数据交互量,从而减少存储控制器间的数据总线带宽或者取消存储控制器间的数据总线。
[0070] 实施例三:
[0071] 请参阅图3,图3为本发明实施例中提供的一种服务器的结构示意图。如图3所示,该服务器可以包括:
[0072] 第一确定模块301,用于根据需要访问的卷的访问偏移量从第一列表中确定出需要访问的块;
[0073] 其中,第一列表可以用于存储该卷划分成的至少二个相同大小的块的信息。第一列表的格式可以类似于上述的表1,本发明实施例在此不作复述。
[0074] 第二确定模块302,用于根据第一确定模块301确定出的块,从第二列表中确定出该块对应的存储控制器;
[0075] 其中,第二列表可以用于存储该卷划分成的每一个块对应的存储控制器的信息。第二列表的格式可以类似于上述的表2,本发明实施例在此不作复述。
[0076] 一个实施例中,上述的第一列表可作为配置文件的形式,存储在第一确定模块301中;上述的第二列表也可以作为配置文件的形式,存储在第二确定模块302中。
[0077] 发送模块303,用于发送读数据请求或者写数据请求至第二确定模块302确定出的该块对应的存储控制器进行处理。
[0078] 如图3所示,该服务器还可以包括:
[0079] 获取模块304,用于从MDS中获取卷划分成的至少二个相同大小的块的信息,以及获取卷划分成的每一个块对应的存储控制器的信息;
[0080] 写入模块305,用于将获取模块304获取的卷划分成的至少二个相同大小的块的信息写入第一列表存储,以及将卷划分成的每一个块对应的存储控制器的信息写入第二列表存储。
[0081] 如图3所示,当上述的第一列表可作为配置文件的形式存储在第一确定模块301中,以及上述的第二列表作为配置文件的形式存储在第二确定模块302中时,写入模块305具体可以将获取模块304获取的卷划分成的至少二个相同大小的块的信息写入第一确定模块301存储的第一列表中,以及将获取模块304获取的卷划分成的每一个块对应的存储控制器的信息写入第二确定模块302存储的第二列表中。
[0082] 一个实施例中,第一确定模块301具体可以将该卷的访问偏移量除以第一列表存储的卷划分成的块的大小,获得商值,取该商值的整数部分并加1,获得需要访问的块。
[0083] 请参阅图4,图4为本发明实施例中提供的另一种服务器的结构示意图。如图4所示,该服务器的获取模块304可以包括:
[0084] 接收子模块3041,用于接收MDS发送的卷划分成的至少二个相同大小的块的信息,以及每一个块对应的存储控制器的信息。
[0085] 请参阅图5,图5为本发明实施例中提供的又一种服务器的结构示意图。如图5所示,该服务器的获取模块304可以包括:
[0086] 多路径软件子模块3042,用于在多路径软件初始化时,从MDS中获取卷划分成的至少二个相同大小的块的信息,以及每一个块对应的存储控制器的信息。
[0087] 上述对本发明实施例提供的服务器进行了介绍,本发明实施例提供的服务器可以存储卷划分成的至少二个相同大小的块,以及每一个块对应的存储控制器,当需要访问卷时,服务器可以根据卷的访问偏移量确定出需要访问的块,进而确定出该块对应的存储控制器,服务器可以将读数据请求或写数据请求直接发送给确定出的存储控制器进行处理。这样,避免了存储控制器查询服务器需要访问的块所对应的存储控制器是其他存储控制器时,需要转发服务器的读数据请求或写数据请求到相应的存储控制器的情况,从而可以降低服务器的读数据请求或者写数据请求到达需要访问的块的时延,以及减少服务器读数据请求或者写数据请求对存储控制器的内存资源的占用。
[0088] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0089] 以上对本发明实施例所提供的一种服务器及其访问卷的方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。