一种存取文件的方法、装置及分布式存储系统的制作方法
【技术领域】
[0001]本发明涉及数据传输技术,尤其涉及一种存取文件的方法、装置及分布式存储系统。
【背景技术】
[0002]分布式存储系统,是将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
[0003]然而现有的分布式存储系统中,为了确保存储安全,需要在一个数据中心内至少保存各个文件的一份副本。在互联网的业务场景下,随着业务数据量的不断增大,即使只保存一份副本,最终会超过单个数据中心的带宽及机器数量的承载能力。
【发明内容】
[0004]有鉴于此,有必要提供一种在分布式存储系统中存取文件的方法、装置及分布式存储系统,其可降低数据中心的运营成本。
[0005]一种在分布式存储系统中存取文件的方法,所述分布式存储系统包括:元数据服务器集群以及多个数据服务器集群;每个数据服务器集群内包括多台数据服务器,所述多个数据服务器集群体内的服务器至少分布在两个不同的数据中心内;所述方法包括:
[0006]接收客户端上传的文件;
[0007]向所述元数据服务器集群发送文件索引获取请求以获取所述元数据服务器集群返回的元数据索引;
[0008]将所述文件或者所述文件的分片发送给选择的数据服务器集群进行存储;以及
[0009]将所述文件或者所述文件的分片在所述选择的数据服务器集群内的存储索引、所述选择的数据服务器集群的标识以及所述元数据索弓I发送给所述元数据服务器集群进行关联存储。
[0010]一种在分布式存储系统中存取文件的装置,包括:
[0011]上传请求接收模块,用于接收客户端上传的文件;
[0012]文件索引请求模块,用于向所述元数据服务器集群发送文件索引获取请求以获取所述元数据服务器集群返回的元数据索引;
[0013]文件存储模块,用于将所述文件或者所述文件的分片发送给选择的数据服务器集群进行存储;以及
[0014]文件索引提交模块,用于将所述文件或者所述文件的分片在所述选择的数据服务器集群内的存储索引、所述选择的数据服务器集群的标识以及所述元数据索引发送给所述元数据服务器集群进行关联存储。
[0015]—种分布式存储系统,包括:
[0016]入口服务器、元数据服务器集群以及多个数据服务器集群;每个数据服务器集群内包括多台数据服务器,所述多个数据服务器集群体内的服务器至少分布在两个不同的数据中心内;
[0017]所述入口服务器用于:接收客户端上传的文件;向所述元数据服务器集群发送文件索引获取请求;
[0018]所述元数据服务器集群用于:根据所述文件索引获取请求返回元数据索引;
[0019]所述入口服务器还用于:将所述文件或者所述文件的分片发送给选择的数据服务器集群;
[0020]所述数据服务器用于:接收所述入口服务器上传的文件;存储所述文件;
[0021 ] 所述入口服务器还用于:将所述文件在数据服务器集群内的存储索引以及所存储的数据服务器集群的标识提交给所述元数据服务器集群;
[0022]所述元数据服务器集群还用于:存储所述入口服务器提交的所述文件在数据服务器集群内的存储索引以及对应的数据服务器集群的标识。
[0023]根据上述的方法、装置及系统,元数据与数据正文分别存储在元数据服务器集群与数据服务器集群中,而且数据服务器集群是分布在不同的数据中心内。因此,可以避免所有数据存储在一个数据中心容易导致数量超过单一数据中心的承载量的问题。降低数据中心的分布式存储系统的运营成本。
[0024]为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
【附图说明】
[0025]图1为第一实施例提供的分布式存储系统的架构示意图。
[0026]图2为图1的分布式存储系统中元数据服务器集群的一个实施例的架构示意图。
[0027]图3为图1的分布式存储系统中入口服务器的结构框图。
[0028]图4为图1的分布式存储系统上传文件时的交互示意图。
[0029]图5为图1的分布式存储系统下载文件时的交互示意图。
[0030]图6为图1的分布式存储系统删除文件时的交互示意图。
[0031]图7为图1的分布式存储系统更新文件时的交互示意图。
[0032]图8为第二实施例提供的在分布式存储系统存储文件的方法流程图。
[0033]图9为第三实施例提供的在分布式存储系统存储文件的方法流程图。
[0034]图10为第四实施例提供的在分布式存储系统存储文件的方法流程图。
[0035]图11为第五实施例提供的在分布式存储系统存储文件的方法流程图。
[0036]图12为第六实施例提供的在分布式存储系统存储文件的装置结构框图。
[0037]图13为第七实施例提供的在分布式存储系统存储文件的装置结构框图。
[0038]图14为第八实施例提供的在分布式存储系统存储文件的装置结构框图。
[0039]图15为第九实施例提供的在分布式存储系统存储文件的装置结构框图。
【具体实施方式】
[0040]为更进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明的【具体实施方式】、结构、特征及其功效,详细说明如后。
[0041]数据中心
[0042]数据中心(data center),指用于安置计算机系统及相关部件的设施,例如电信和储存系统。一般它包含冗余和备用电源,冗余数据通信连接,环境控制(例如空调、灭火器)和安全设备。
[0043]服务器
[0044]服务器是指安装有特定服务器应用程序的计算机,其用于通过计算机网络接收客户端的网络请求,并根据预定协议对接收的网络请求进行响应,从而提供或帮助提供某种网络服务。上述的预定协议包括但并不限于:传输控制协议(Transmiss1n ControlProtocol, TCP)、超文本传输协议(Hypertext Transfer Protocol, HTTP)、用户数据协议(User Datagram Protocol, UDP)、文件传输协议(File Transfer Protocol, FTP)等。
[0045]服务器集群
[0046]服务器集群是指两台或者更多服务器的集合。服务器集群内的全部或者大部分服务器构成一个分布式网络系统,从而共同向客户端提供一种或多个网络服务。服务器集群内可包括一台或者多台调度服务器,用于统一控制服务器集群内的各服务器,例如提供路由功能,根据客户端的请求给客户端指定由哪个服务器向该客户端提供网络服务。
[0047]客户端
[0048]客户端与服务器相对,其为采用预定协议与服务器进行网络通讯的终端设备,其具体实施包括但并不限于另一台服务器、台式电脑、笔记本电脑、平板电脑、智能手机、多媒体电视、智能眼镜、智能手表以及其他电子装置。
[0049]键-值(Key-Value)存储系统
[0050]Key-value存储系统是指一种非关系型数据库,其是指按照提供的键给存储内容(Value)分配存储空间、并获取对应的值。相比于传统的关系型数据库,其具有高并发、高性能的优势。
[0051]第一实施例
[0052]图1为第一实施例提供的分布式存储系统的架构示意图。如图1所示,分布式存储系统100部署在两个或更多(图1中仅示出两个)数据中心10、20内。数据中心10内包括元数据服务器集群101、第一数据服务器集群102、以及一台或多台服务器103。数据中心20内包括第二数据服务器集群104以及一台或多台服务器105。其中,服务器103与服务器105共同构成第三数据服务器集群106。分布式存储系统100用于根据入口服务器200的请求进行文件的存储(上传)、下载、更新、或者删除等操作。
[0053]元数据服务器集群101内的多台服务器自身构成一个分布式存储系统,用于存储文件的元数据。上述的分布式存储系统例如可为上述的Key-Value存储系统。而上述的元数据例如可包括文件的索引信息,例如文件是否被分片、文件或文件分片存储在哪一个数据服务器集群内等等。元数据服务器集群101还可根据客户端的请求返回对应的元数据。
[0054]在一个实例中,元数据服务器集群101构成一个基于一致性哈希的全对等分布式存储系统,客户端在要访问某个文件的元数据时,通过元数据索引采用固定的哈希算法,将元数据索引映射到一个哈希环的一段区间上,然后查找分布式路由信息,找到该哈希环区间对应的元数据服务器,并最终将对于该元数据的读写请求发送到存储该数据的元数据服务器上。
[0055]然而,元数据服务器集群101构成的分布式存储系统并不限于上述的对等分布式架构。参阅图2,其为元数据服务器集群101另一个实施例的架构示意图。如图2所示,元数据服务器集群101包括主控服务器201、以及元数据服务器202。其中主控服务器201用于根据客户端203 (例如图1所示入口服务器200)的请求分配并返回元数据服务器202的地址或标识。元数据服务器202用于根据客户端提交的元数据索引存储或返回对应的元数据。
[0056]第一数据服务器集群102、第二数据服务器集群104、以及第三数据服务器集群106分别构成一个分布式存储系统,用于存储文件或者文件分片。与元数据服务器集群101相似,第一数据服务器集群102、第二数据服务器集群104、以及第三数据服务器集群106即可以为基于一致性哈希的全对等分布式存储系统,也可以是类似于图2所示的具有主控服务器的分布式存储系统。
[0057]入口服务器200相对于分布式存储系统100而言是其客户端,但入口服务器200自身仍然可以为通过网络向其他终端提供某种网络服务的服务器。也就是说入口服务器200例如可为网络(Web)应用服务器,其可接收其他终端(如用户使用的电脑、手机、平板电脑等等)上传的信息/文件,并将这些信息/文件提交给分布式存储系统100进行存储。当然,入口服务器200也可以仅仅是用户终端,而不是服务器。
[0058]参阅图3,其为上述的入口服务器200的一个实施例的结构框图。如图3所示,入口服务器200包括:存储器202、处理器204以及网络模块206。可以理解,图3所示的结构仅为示意,其并不对入口服务器200的结构造成限定。例如,入口服务器200还可包括比图3中所示更多或者