一种分布式存储系统及其下载文件的方法

文档序号:7776131阅读:247来源:国知局
一种分布式存储系统及其下载文件的方法
【专利摘要】本发明公开了一种分布式存储系统及其下载文件的方法。该方法包括:元数据服务器接收客户端请求下载文件的URL,通过文件ID查询该文件的文件块所在的数据服务器,选择负荷较低的一台文件块所在数据服务器作为主文件下载服务器生成新URL;将客户端请求的URL重定向到新URL;主文件下载服务器从其他数据服务器下载自身没有的其他文件块,并将该文件的文件块按顺序发送给客户端。采用本发明,通过对外提供统一的URL指向元数据服务器,由元数据服务器重定向至主文件下载服务器,只需要使用一次HTTP请求即可下载所需的文件。
【专利说明】一种分布式存储系统及其下载文件的方法
【技术领域】
[0001]本发明涉及云存储系统,尤其涉及一种分布式存储系统及其下载文件的方法。
【背景技术】
[0002]在分布式存储中,海量的文件分布于不同的计算机上,备份多份的文件,
[0003]通常会被切割成固定的大小存放在不同的服务器上,传统下载文件方式通常是实现一个客户端(基于分布式存储API或私有通信协议),先向元数据服务器查询文件存放位置,然后依次连接数据服务器进行下载文件。那么如果客户端系统平台不同,比如:win、linuX、mac、安卓等,则需要开发不同平台上的客户端。
[0004]使用HTTP(Hypertext transfer protocol,超文本传送协议)方式从分布式存储中下载文件可避免开发多个平台的客户端。中国专利CN201210559791.2公开了一种获取云存储文件的方法:用一台服务器记录所有文件的URL,客户端先通过该服务器查询某文件的URL,然后再通过查询到的URL下载文件。这种方法存在以下缺陷:
[0005](I)客户端需要请求两次URL,增加客户端操作的复杂度。
[0006](2)在分布式存储领域中,文件可能备份有多份,而URL只能指向固定的某台存放有该文件的服务器,当有多个客户端想获取同一个文件时,客户端都向一台服务器下载文件,只能利用I台服务器的性能,从而造成负荷不均衡,无法发挥分布式存储的优势。

【发明内容】

[0007]有鉴于此,本发明要解决的技术问题是提供一种分布式存储系统及其下载文件的方法,以使用一个通用的URL来获取分布式存储中的任意一个文件,且能合理分配客户端请求,充分发挥分布式存储优势。
[0008]本发明解决上述技术问题所采用的技术方案如下:
[0009]根据本发明的一个方面,提供的一种分布式存储系统,包括元数据服务器和至少一台数据服务器,其中:
[0010]元数据服务器,用于接收客户端请求下载文件的URL,根据URL中的文件ID查询该文件的文件块所在的数据服务器,选择负荷较低的一台文件块所在数据服务器作为主文件下载服务器生成新URL,并将客户端请求的URL重定向到新URL ;
[0011]数据服务器,用于当作为主文件下载服务器时,从其他数据服务器获取自身没有的其他文件块,并将该文件的文件块按顺序发送给客户端。
[0012]优选地,元数据服务器进一步包括:
[0013]接收模块,用于接收客户端请求下载文件的URL ;
[0014]查询模块,用于根据URL中的文件ID查询文件所在的数据服务器;
[0015]重定向模块,选择负荷较低的一台文件块所在数据服务器作为主文件下载服务器生成新URL,并将客户端请求的URL重定向到新URL。
[0016]优选地,元数据服务器还包括负荷监测模块,用于实时监测所有数据服务器的下载任务和系统资源;相应地,重定向模块具体用于:选择负荷最低的一台存储该文件第一个文件块的数据服务器为主文件下载服务器生成新URL,并将客户端请求的URL重定向到新 URL。
[0017]优选地,主文件下载服务器进一步包括:
[0018]文件位置获取模块,用于向元数据服务器获取该文件中自身没有的其他文件块的存放位置;
[0019]文块获取模块,连接其他文件块所在的数据服务器,通过分布式存储API下载其他文件块;
[0020]发送模块,用于将该文件的文件块按顺序通过HTTP协议将文件传输给客户端。
[0021]优选地,主文件下载服务器还包括文件块删除模块,用于发送完文件块后,当超过预定的删除时间未收到该文件的下载请求时,删除该文件中从其他数据服务器下载的文件块。
[0022]优选地,该系统还包括客户端,用于向元数据服务器发送请求下载文件的URL,以及接收所述主文件下载服务器发送的文件。
[0023]根据本发明的另一个方面,提供的一种分布式存储系统的文件下载方法包括:
[0024]元数据服务器接收客户端请求下载文件的URL,其中URL包括文件ID ;
[0025]通过文件ID查询该文件的文件块所在的数据服务器,选择负荷较低的一台文件块所在数据服务器作为主文件下载服务器生成新URL ;
[0026]将客户端请求的URL重定向到新URL ;
[0027]主文件下载服务器从其他数据服务器下载自身没有的其他文件块,并将该文件的文件块按顺序发送给客户端。
[0028]优选地,选择负荷较低的一台文件块所在数据服务器作为主文件下载服务器进一步包括:
[0029]获取存放该文件的文件块所在的所有数据服务器;
[0030]获取所有数据服务器的下载任务及系统资源;
[0031]选择负荷最低一台数据服务器为主文件下载服务器。
[0032]优选地,主文件下载服务器从其他数据服务器下载自身没有的其他文件块,并将该文件的文件块按顺序发送给客户端进一步包括:
[0033]主文件下载服务器向元数据服务器获取该文件其他文件块的存放位置;
[0034]连接其他文件块所在的数据服务器,通过分布式存储API下载其他文件块;
[0035]依次读取文件块,将文件块按顺序通过HTTP协议将文件传输给客户端。
[0036]优选地,该方法之后还包括:
[0037]主文件下载服务器发送完文件块后,如果超过预定的删除时间未收到该文件的下载请求,则删除该文件中从其他数据服务器下载的文件块。
[0038]本发明实施例提供的分布式存储系统及其下载文件的方法,通过对外提供统一的URL指向元数据服务器,由元数据服务器重定向至主文件下载服务器,只需要使用一次HTTP请求即可下载所需的文件。此外,当文件同时备份多份存放在不同的数据服务器上时,元数据服务器选择负荷最小的数据服务器作为主文件下载服务器,从而合理分配客户端请求,充分发挥分布式存储的优势。【专利附图】

【附图说明】
[0039]图1是本发明实施例提供的一种分布式存储系统的结构示意图。
[0040]图2是本发明优选实施例提供的一种元数据服务器的模块结构图。
[0041]图3是本发明优选实施例提供的一种数据服务器的模块结构图。
[0042]图4是本发明实施例提供的一种分布式存储系统的文件下载方法流程图。
[0043]图5是本发明优选实施例提供的一种单客户端下载文件的方法流程图。
[0044]图6是本发明优选实施例提供的一种多客户端下载文件的方法流程图。
【具体实施方式】
[0045]为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0046]实施例一
[0047]如图1所示为本发明实施例提供的一种分布式存储系统的结构示意图,该系统包括元数据服务器10、至少一台数据服务器20和客户端30,其中:
[0048]元数据服务器10,用于接收客户端30请求下载文件的URL,根据URL中的文件ID查询文件的文件块所在的数据服务器20,选择负荷较低的一台文件块所在数据服务器20作为主文件下载服务器201生成新URL,并将客户端30请求的URL重定向到新URL。
[0049]请参阅图2,元数据服务器10进一步包括接收模块101、查询模块102和重定向模块103,其中:
[0050]接收模块101,用于接收客户端30请求下载文件的URL ;
[0051]查询模块102,用于根据URL中的文件ID查询文件所在的数据服务器;
[0052]重定向模块103,选择负荷较低的一台文件块所在数据服务器作为主文件下载服务器生成新URL,并将客户端请求的URL重定向到新URL。
[0053]作为本实施例的一种优选方案,为了合理分配客户端请求,重复发挥分布式存储的优势,元数据服务器10还包括负荷监测模块104,用于实时监测所有数据服务器的下载任务和系统资源;相应地,重定向模块103具体用于:选择负荷最低的一台存储该文件第一个文件块的数据服务器为主文件下载服务器生成新URL,并将客户端请求的URL重定向到新 URL。
[0054]数据服务器20,用于当作为主文件下载服务器时,从其他数据服务器20获取自身没有的其他文件块,并将该文件的文件块按顺序发送给客户端30。
[0055]请参阅图3,当数据服务器20作为主文件下载服务器时进一步包括:
[0056]文件位置获取模块201,用于向元数据服务器获取该文件中自身没有的其他文件块的存放位置;
[0057]文块获取模块202,连接其他文件块所在的数据服务器,通过分布式存储API下载其他文件块;
[0058]发送模块203,用于将该文件的文件块按顺序通过HTTP协议将文件传输给客户端。[0059]作为本实施例的另一种优选方案,为了节省主文件下载服务器的系统资源,当数据服务器作为主文件下载服务器时还包括文件块删除模块204,用于发送完文件块后,当超过预定的删除时间未收到该文件的下载请求时,删除该文件中从其他数据服务器下载的文件块。
[0060]客户端30,用于向元数据服务器10发送请求下载文件的URL,以及接收主文件下载服务器发送的文件。
[0061]具体来说,客户端30包括但不限于手机、平板电脑、电脑等智能终端。
[0062]本实施例的系统,通过对外提供统一的URL指向元数据服务器,由元数据服务器重定向至主文件下载服务器,只需要使用一次HTTP请求即可下载所需的文件。此外,当文件同时备份多份存放在不同的数据服务器上时,元数据服务器选择负荷最小的数据服务器作为主文件下载服务器,从而合理分配客户端请求,充分发挥分布式存储的优势。
[0063]实施例二
[0064]如图4所示是本发明实施例提供的一种分布式存储系统的文件下载方法流程图,该方法包括:
[0065]S402、元数据服务器接收客户端请求下载文件的URL,其中URL包括文件ID。
[0066]具体来说,所有的客户端使用一个指向该元数据服务器URL来下载分布式存储系统中的任意一个文件,该URL携带文件ID以区分要下载的文件。
[0067]S404、通过文件ID查询该文件的文件块所在的数据服务器,选择负荷较轻的一台文件块所在数据服务器作为主文件下载服务器生成新URL。
[0068]具体来说,元数据服务器中存储了数据的元信息,包括文件ID,文件的存储位置(数据服务器及路径)等信息。元数据服务器通过文件ID查询该文件存储在哪些数据服务器上,选择负荷较轻的一台文件块所在数据服务器作为主文件下载服务器,并使用该主文件下载服务器IP生成新URL (地址指向主文件下载服务器)。
[0069]作为本实施例的一种优选方案,为了合理分配客户端请求,重复发挥分布式存储的优势,可以选择一台存储该文件第一个文件块且负荷最低的数据服务器作为主文件下载服务器,具体包括:获取存放该文件第一个文件块的所有数据服务器;获取所有数据服务器的下载任务及系统资源;选择负荷最低一台数据服务器为主文件下载服务器。
[0070]S406、将客户端请求的URL重定向到新URL。
[0071]具体来说,本步骤使用重定向技术,将客户端请求的URL重定向到新URL,使得客户端自动跳转到新URL。
[0072]S408、主文件下载服务器从其他数据服务器下载自身没有的其他文件块,
[0073]并将该文件的文件块按顺序发送给客户端。
[0074]具体来说,主文件下载服务器边从其他数据服务器上下载文件,边将已有的文件块以http协议发送给客户端。该步骤可以进一步包括:主文件下载服务器向元数据服务器获取该文件其他文件块的存放位置;连接其他文件块所在的数据服务器,通过分布式存储API下载其他文件块;依次读取文件块,将文件块按顺序通过HTTP协议将文件传输给客户端。
[0075]作为本实施例的一种优选方案,为了节省主文件下载服务器的系统资源,该方法之后还包括:主文件下载服务器发送完文件块后,如果超过预定的删除时间未收到该文件的下载请求,则删除该文件中从其他数据服务器下载的文件块。
[0076]实施例三
[0077]如图5所示是本发明优选实施例提供的一种客户端下载文件的方法流程图,假设分布式存储服务器中,客户端为智能终端,元数据服务器IP地址为10.3.0.2,数据服务器IP为10.3.1.100~200。智能终端想下载文件ID为22的文件,该方法包括:
[0078]S1、在智能终端的浏览器上输入URL。
[0079]具体来说,URL为HTTP://10.3.0.2/get?id=22指向元数据服务器获取文件ID为22的文件。
[0080]S2、元数据服务器通过文件ID查询该文件的文件块所在的数据服务器,选择负荷较轻的文件块所在数据服务器I作为主文件下载服务器生成新URL。
[0081]具体来说,通过文件ID查询到该文件分别存放在10.3.1.100(文件块I)、10.3.1.101 (文件块2),10.3.1.102 (文件块3)上。选取10.3.1.100为主文件下载服务器。生成新 URL (HTTP://10.3.0.100/get?id=22)
[0082]作为本实施例的进一步优选方案,元数据服务器查询到的文件块所在的服务器中,还可以进一步查询之前是否存在该文件的下载请求,且下载请求时间在预定的删除时间内,如果有,则直接将上次的主文件下载服务器作为本次的主文件下载服务器生成新URL。
[0083]S3、元数据服 务器将原URL重定向至新URL。
[0084]具体来说,元数据服务器将原URL(HTTP://10.3.0.2/get?id=22)重定向至新URL(HTTP://10.3.0.100/get?id=22)。
[0085]S4、智能终端的浏览器自动跳转至新URL向数据服务器I请求下载文件。
[0086]S5、数据服务器I (10.3.1.100)收到请求后,同时执行以下步骤:
[0087]S5.1、向元数据服务器获取该文件的其他文件块的存储位置。
[0088]S5.2、连接数据服务器2和数据服务器3分别下载文件块2和文件块3。
[0089]S5.3、数据服务器I依次读取文件块1、以及步骤S5.2下载来的文件块2和文件块3,按顺序以HTTP协议方式发送给智能终端。
[0090]需要说明的是,步骤S5.1和步骤S5.3是并行执行的,可以边从其他数据服务器上下载文件,边将已有的文件块按顺序以http协议发送给智能终端。比如数据服务器I 一边向智能终端发送文件块2,一边数据服务器3上下载文件块3。
[0091]S6、数据服务器I发送完数据后,如果超过预定的删除时间未收到下载该文件的请求,则删除文件块2和文件块3。
[0092]实施例四
[0093]如图6所示是本发明优选实施例提供的一种客户端下载文件的方法流程图,假设客户端为2个智能终端,智能终端A、B请求获取同一个文件,且该文件备份2份,分布式存储服务器中,元数据服务器IP地址为10.3.0.2,数据服务器IP为10.3.1.100~200。智能终端想下载文件ID为20的文件。该方法包括:
[0094]S1、在智能终端A、B的浏览器上都输入URL。
[0095]具体来说,URL均为 ΗΤΤΡ://10.3.0.2/get?id=20。
[0096]S2、元数据服务器通过文件ID查询到该文件的存放位置。[0097]具体来说,文件块I存储在数据服务器I和数据服务器4上(10.3.1.100、10.3.1.101)、文件块2存储在数据服务器2和数据服务器5(10.3.1.110,10.3.1.111)、文件块3存储在数据服务器3和数据服务器6 (10.3.1.120、10.3.1.121)。
[0098]收到第一个请求后,分配文件块I所在的2台数据服务器中下载任务及系统资源最小的(假设为10.3.1.100)为主文件下载服务器,将10.3.1.100的下载任务数修改为1,生成新 URL (HTTP://10.3.1.100/get?id=20)返回智能终端 A。
[0099]收到第二个请求,由于10.3.1.100的任务数为1,则选取10.3.1.101为主文件服务器,将10.3.1.101的下载任务数改为I,生成新URL (HTTP://10.3.1.101/get?id=20)返回智能终端B。
[0100]S3、元数据服务器将智能终端A和智能终端B分别重定向至数据服务器I和数据服务器4。
[0101]S4、智能终端A和智能终端B的浏览器分别自动跳转至新URL。
[0102]S5、数据服务器I和数据服务器4收到请求后,同时执行以下3个步骤:
[0103]S5.1、向元数据服务器获取该文件的其他文件块的存储位置。
[0104]S5.2、连接数据服务器2和数据服务器3分别下载文件块2和文件块3。
[0105]S5.3、依次读取本机文件ID为20的文件块,并将数据以HTTP协议方式向智能终端发送。
[0106]S6、数据服务器I和数据服务器4发送完数据后,先将本机下载数改为0,如过超过预定的删除时间未有请求来下载该文件,则删除文件块2和文件块3,如果在预定的删除时间内又接收到该文件的下载请求(比 如智能终端C的下载请求),则直接执行步骤S5.3将文件块发送给智能终端。
[0107]本发明实施例提供的分布式存储系统及其下载文件的方法,通过对外提供统一的URL指向元数据服务器,由元数据服务器重定向至主文件下载服务器,只需要使用一次HTTP请求即可下载所需的文件。此外,当文件同时备份多份存放在不同的数据服务器上时,元数据服务器选择负荷最小的数据服务器作为主文件下载服务器,从而合理分配客户端请求,充分发挥分布式存储的优势。
[0108]以上参照【专利附图】
附图
【附图说明】了本发明的优选实施例,并非因此局限本发明的权利范围。本领域技术人员不脱离本发明的范围和实质内所作的任何修改、等同替换和改进,均应在本发明的权利范围之内。
【权利要求】
1.一种分布式存储系统,其特征在于,该系统包括元数据服务器和至少一台数据服务器,其中: 元数据服务器,用于接收客户端请求下载文件的URL,根据URL中的文件ID查询该文件的文件块所在的数据服务器,选择负荷较低的一台文件块所在数据服务器作为主文件下载服务器生成新URL,并将客户端请求的URL重定向到新URL ; 所述数据服务器,用于当作为主文件下载服务器时,从其他数据服务器获取自身没有的其他文件块,并将该文件的文件块按顺序发送给客户端。
2.根据权利要求1所述的系统,其特征在于,所述元数据服务器进一步包括: 接收模块,用于接收客户端请求下载文件的URL ; 查询模块,用于根据URL中的文件ID查询文件所在的数据服务器; 重定向模块,选择负荷较低的一台文件块所在数据服务器作为主文件下载服务器生成新URL,并将客户端请求的URL重定向到新URL。
3.根据权利要求2所述的系统,其特征在于,所述元数据服务器还包括负荷监测模块,用于实时监测所有数据服务器下载任务和系统资源;相应地, 所述重定向模块具体用于:选择负荷最低的存储该文件第一个文件块的数据服务器为主文件下载服务器生成新URL,并将客户端请求的URL重定向到新URL。
4.根据权利要求1所述的系统,其特征在于,所述主文件下载服务器进一步包括: 文件位置获取模块,用于向 元数据服务器获取该文件中自身没有的其他文件块的存放位置; 文块获取模块,连接其他文件块所在的数据服务器,通过分布式存储API下载其他文件块; 发送模块,用于将该文件的文件块按顺序通过HTTP协议将文件传输给客户端。
5.根据权利要求4所述的系统,其特征在于,所述主文件下载服务器还包括文件块删除模块,用于发送完文件块后,当超过预定的删除时间未收到该文件的下载请求时,删除该文件中从其他数据服务器下载的文件块。
6.根据权利要求1-5任意一项权利要去所述的系统,其特征在于,该系统还包括客户端,用于向所述元数据服务器发送请求下载文件的URL,以及接收所述主文件下载服务器发送的文件。
7.一种分布式存储系统的文件下载方法,其特征在于,该方法包括: 元数据服务器接收客户端请求下载文件的URL,其中URL包括文件ID ; 通过所述文件ID查询该文件的文件块所在的数据服务器,选择负荷较低的一台文件块所在数据服务器作为主文件下载服务器生成新URL ; 将所述客户端请求的URL重定向到所述新URL ; 主文件下载服务器从其他数据服务器下载自身没有的其他文件块,并将该文件的文件块按顺序发送给客户端。
8.根据权利要求7所述的方法,其特征在于,所述选择负荷较低的一台文件块所在数据服务器作为主文件下载服务器进一步包括: 获取存放该文件的文件块所在的所有数据服务器; 获取所述所有数据服务器的下载任务及系统资源;选择负荷最低一台数据服务器为主文件下载服务器。
9.根据权利要求7所述的方法,其特征在于,所述主文件下载服务器从其他数据服务器下载自身没有的其他文件块,并将该文件的文件块按顺序发送给客户端进一步包括: 主文件下载服务器向元数据服务器获取该文件其他文件块的存放位置; 连接其他文件块所在的数据服务器,通过分布式存储API下载其他文件块; 依次读取文件块,将文件块按顺序通过HTTP协议将文件传输给客户端。
10.根据权利要求7-9任意一项权利要求所述的方法,其特征在于,该方法之后还包括:主文件下载服务器发送完文件块后,如果超过预定的删除时间未收到该文件的下载请求,则删除该文件中从其他数据服`务器下载的文件块。
【文档编号】H04L29/08GK103595782SQ201310557040
【公开日】2014年2月19日 申请日期:2013年11月11日 优先权日:2013年11月11日
【发明者】郑珏 申请人:中安消技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1