一种存取文件的方法、装置及分布式存储系统的制作方法_2

文档序号:8412266阅读:来源:国知局
更少的组件,或者具有与图3所示不同的配置。
[0059]存储器202可用于存储软件程序以及模块,处理器204通过运行存储在存储器202内的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器202可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器202可进一步包括相对于处理器204远程设置的存储器,这些远程存储器可以通过网络连接至入口服务器200。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0060]传输模块206用于接收以及发送网络信号。上述网络信号可包括无线信号或者有线信号。在一个实例中,上述网络信号为有线网络信号。此时,传输模块206可包括处理器、随机存储器、转换器、晶体振荡器等元件。
[0061]上述的软件程序以及模块包括:操作系统122以及应用服务模块124。其中操作系统122例如可为LINUX, UNIX, WINDOWS,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通讯,从而提供其他软件组件的运行环境。应用服务模块124运行在操作系统122的基础上,并通过操作系统122的网络服务监听来自网络的请求,根据请求完成相应的数据处理,并返回处理结果给客户端。也就是说,应用服务模块124用于接向网络上的其他终端提供某种网络服务。上述的软件程序以及模块还可包括存储模块126,其用于将来自其他终端的信息/文件提交到分布式存储系统100进行存储。当然,存储模块126也可以作为应用服务模块124的一个子模块。
[0062]参阅图4,其为本实施例的分布式存储系统存储文件时的交互示意图。如图4所示,用户终端300可通过运行的应用程序(如浏览器)登陆入口服务器200提供的网络应用,并通过该网络应用向入口服务器200上传文件。在接收到用户终端300上传的文件后,入口服务器200需要将其提交至分布式存储系统100进行存储,其具体过程描述如下。
[0063]首先,入口服务器200向元数据服务器集群101发送文件索引获取请求以获取元数据服务器集群101返回的元数据索引。文件索引获取请求内可包括文件的一些元数据,例如文件长度、文件名、文件特征码等。
[0064]元数据服务器集群101在接收到文件索引获取请求后,向用于存储元数据的分布式文件存储系统申请建立一条新的记录,该新记录的内容可包括上述的文件索引获取请求内的元数据如文件长度、文件名、文件特征码等。元数据服务器集群101将上述的新记录的键作为文件的元数据索引返回给入口服务器200。
[0065]在接收到元数据服务器集群101返回的元数据索引后,入口服务器200可将文件提交给数据服务器集群服务器102/104/106等进行存储。具体地,先判断文件是否超过预定的大小,若是,则需要对文件进行分片处理,并对每个分片进行存储操作;若否,无须进行分片,可以直接进行存储操作。
[0066]存储操作可包括以下步骤:为要存储的文件或者分片选择一个数据服务器集群;然后将要存储的文件或者分片发送到选择的数据服务器集群中进行存储。
[0067]在一个实例中,为要存储的文件或者分片选择一个数据服务器集群包括以下步骤:根据预定的路由规则为当前的文件或者分片选择一个数据服务器集群。例如,根据哈希算法将文件的唯一标识符映射到哈希环的一段空间内,然后再根据哈希环内不同空间与数据服务集群的对应关系获取与当前文件或者分片对应的数据服务器集群。
[0068]在另一个实例中,为要存储的文件或者分片选择一个数据服务器集群包括以下步骤:向元数据服务器集群发送数据服务器集群分配请求;并接收元数据服务器集群返回的数据服务器集群的入口地址或者标识。采用这种方式,元数据服务器集群除了存储文件的元数据外,还可根据预定的规则进行数据服务器集群的分配。可以理解,数据服务器集群的分配规则可以根据具体的需要进行定制。例如,其可同样采用上述的哈希环映射的方法,可以根据上传文件的用户所在的位置为其选择地理距离最近的数据服务器集群,还可以结合不同数据服务器集群的处理能力进行负载均衡处理。此外,上述的数据服务器集群分配请求还可是发送给单独设置的用于进行数据服务器集群分配的服务器集群,而不是元数据服务器集群。
[0069]在为当前文件或者分片选择一个数据服务器集群后,将当前的文件或者分片发送至选择的数据服务器集群。
[0070]相应地,选择的数据服务器集群会接收到入口服务器200发送的文件或者分片。如前所述,数据服务器集群本身包括一个分布式存储系统,接收到的文件或才分片是由该分布式存储系统进行存储。该分布式存储系统将当前文件或者分片存储在一个具体的数据服务器中。可以理解,数据服务器集群内的分布式存储系统会记录文件或者分片的存储索引(键)与具体的数据服务器的对应关系。此外,用于存储当前文件或者分片的记录的存储索引可以由数据服务器集群生成,也可以是由入口服务器200提供。若是由数据服务器集群生成的,数据服务器集群在完成当前文件或者分片的存储后,还可将生成的存储索引发送给入口服务器200。
[0071]在完成当前文件或者分片的存储操作后,入口服务器200将文件或者分片的存储索引以及对应的数据服务器集群的标识提交给元数据服务器101进行存储。
[0072]相应地,元数据服务器集群101接收入口服务器200发送的文件或者分片的存储索引以及对应的数据服务器集群的标识,并与上述的元数据索引进行关联存储。即,更新与上述的元数据索引对应的记录,将当前文件或者分片的存储索引以及对应的数据服务器集群的标识以追加的方式存储在上述的记录中。
[0073]参阅图5,其为本实施例的分布式存储系统下载文件时的交互示意图。如图5所示,用户终端300可通过运行的应用程序(如浏览器)登陆入口服务器200提供的网络应用,并通过该网络应用向入口服务器200发送文件下载请求。该文件下载请求是与一个或多个目标文件关联的。在接收到用户终端300的文件下载请求后,入口服务器200需要从分布式存储系统100中获取目标文件并返回至用户终端300,其具体过程描述如下。
[0074]首先,入口服务器200向元数据服务器集群101发送元数据查询请求以获取元数据服务器集群101返回的元数据。元数据查询请求内应包括目标文件的元数据索引。
[0075]元数据服务器集群101在接收到元数据查询请求后,从中解析出目标文件的元数据索引,根据该元数据索引向其内的分布式存储系统发起存储索引读取请求以读取与该键对应的元数据,并将获取的元数据返回至入口服务器200。
[0076]在接收到元数据服务器集群101返回的元数据后,入口服务器200可从元数据中解析出文件或者分片所存储的数据服务器集群,以及对应的存储索引。然后,入口服务器200分别向对应的数据服务器集群发送下载请求,该下载请求内可包括上述的存储索引。
[0077]相应地,数据服务器集群102/104/106会接收到入口服务器200发送的下载请求,从下载请求中解析出存储索引,根据存储索引在数据服务器集群102/104/106内的分布式存储系统中获取对应的文件或进分片,并将获取的文件或者分片返回给入口服务器200。
[0078]入口服务器200接收数据集群服务器102/104/106返回的文件或者分片。若为分片,在获取所有的分片后将所有分片组装成完整的文件。然后入口服务器200将完整的文件发送给用户终端300。
[0079]参阅图6,其为本实施例的分布式存储系统删除文件时的交互示意图。如图6所示,用户终端300可通过运行的应用程序(如浏览器)登陆入口服务器200提供的网络应用,并通过该网络应用向入口服务器200发送文件删除请求。该文件删除请求是与一个或多个目标文件关联的。在接收到用户终端300的文件删除请求后,入口服务器200需要从分布式存储系统100中删除目标文件的元数据及文件内容,其具体过程描述如下。
[0080]首先,入口服务器200向元数据服务器集群101发送文件索引删除请求以获取元数据服务器集群101返回的元数据并使元数据服务器集群101删除目标文件的元数据。文件索引删除请求内应包括目标文件的元数据索引。
[0081]元数据服务器集群101在接收到文件索引删除请求后,从中解析出目标文件的元数据索引,根据该元数据索引向其内的分布式存储系统发起元数据读取请求以读取与该键对应的元数据,并将获取的元数据返回至入口服务器200。此外,在将元数据返回至入口服务器200中后,还将与该元数据索引对应的记录删除。
[0082]在接收到元数据服务器集群101返回的元数据后,入口服务器200可从元数据中解析出文件或者分片所存储的数据服务器集群,以及对应的存储索引。然后,入口服务器200分别向数据服务器集群发送删除请求,该删除请求内可包括上述的存储索引。
[0083]相应地,数据服务器集群102/104/106会接收到入口服务器200发送的删除请求,从删除请求中解析出存储索引,根据存储索引在数据服务器集群102/104/106内的分布式存储系统中删除对应的文件或进分片。
[0084]参阅图7,其为本实施例的分布式存储系统更新文件时的交互示意图。如图7所示,用户终端300可通过运行的应用程序(如浏览器)登陆入口服务器200提供的网络应用,并通过该网络应用向入口服务器200发送文件更新请求。该文件更新请求是与一个或多个目标文件关联的,且文件更新请求内应包括更新涉及的数据,例如删除的数据、替换的数据、追加的数据。在接收到用户终端300的文件更新请求后,入口服务器200需要在分布式存储系统100中进行数据更新操作,其具体过程描述如下。
[0085]首先,入口服务器200向元数据服务器集群101发送元数据查询请求以获取元数据服务器集群101返回的元数据。元数据查询请求内应包括目标文件的元数据索引。
[0086]元数据服务器集群101在接收到元数据查询请求后,从中解析出目标文件的元数据索引,根据该元数据索引向其内的分布式存储系统发起元数据读取请求以读取与该元数据索引对应的元数据,并将获取的元数据返回至入口服务器200。
[0087]在接收到元数据服务器集群101返回的元数据后,入口服务器200可从元数据中解析出文件或者分片所存储的数据服务器集群,以及对应的存储索引。入口服务器200分析更新所涉及的数据,从而找出更新所涉及的分片。然后,入口服务器200分别向所涉及的分片对应的数据服务器集群发送更新请求,该更新请求内可包括上述的存储索引以及更新后的数据。
[0088]相应地,数据服务器集群102/104/106会接收到入口服务器200发送的更新请求,从更新请求中解析出存储索引以及更新后的数据,根据存储索引以及更新后的数据在数据服务器集群102/104/106内的分布式存储系统中进行内容更新操作。
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1