用于在分布式存储系统中分配存储空间的方法和装置制造方法及图纸

技术编号:8735085 阅读:199 留言:0更新日期:2013-05-26 11:43
本发明专利技术涉及一种用于在通信网络的分布式存储系统中分配存储空间的方法和装置,其中,该装置包括:接收模块,用于接收针对文件的数据写请求,所述数据写请求包含要写入一个或多个存储设备的数据,其中,所述一个或多个存储设备是由存储设备服务器来管理的;确定模块,用于确定是否需要为所述数据的至少一部分分配空闲存储空间;代理模块,用于如果确定需要为所述数据的所述至少一部分分配空闲存储空间,则向所述存储设备服务器申请空闲逻辑管理单元chunk,申请得到的空闲chunk包含的存储空间不小于存储所述数据的所述至少一部分所需的存储空间;写入模块,用于向所述存储设备服务器发起写请求,以将所述数据的所述至少一部分写入所述一个或多个存储设备。

【技术实现步骤摘要】
用于在分布式存储系统中分配存储空间的方法和装置
本专利技术涉及通信网络中的存储技术,尤其涉及一种用于在分布式存储系统中分配存储空间的方法和装置。
技术介绍
随着3G网络的大规模应用、智能手机的普及、移动多媒体和移动互联网业务的兴起,移动宽带(MBB)数据业务正面临着快速增长,这对网间流量、用户体验质量(QoE)等提出了新的挑战。为了提高用户的QoE,降低网间流量和对服务器的冲击,在通信网络的若干节点中利用分布式存储系统是一种不错的选择。这种分布式存储系统的一个示例是分布式Cache(高速缓冲存储器)系统,该系统通过在边缘节点和/或骨干节点处部署Cache,可以将内容缓存到靠近用户的位置。对于分布式Cache系统而言,Cache的读写效率和访问并发性对于性能提升的影响很大。如果能够根据数据的相关性,连续地分配数据的存储空间以保证数据在磁盘上连续存储,则对Cache的读写效率有比较可观的提升。现有的分布式存储系统一般采用以下两种方式来分配存储空间。一种方式是按需分配,其仅根据要写入的数据的大小来分配足够的存储空间,而不保证数据在磁盘上的连续存储。另一种方式是服务器集中分配,其需要一个服务器完全负责磁盘空间的分配和管理,从而容易导致单点瓶颈问题,限制了系统的规模和吞吐量。图1示出了一种现有的服务器集中分配的分布式存储系统100的示意图。图1所示的分布式存储系统中包括存储服务器端101和若干客户端105。该存储服务器端101包括预分配描述符管理模块102、写请求处理模块103以及ext3本地文件系统104。图1所示的分布式存储系统100按照以下步骤来实现用户数据写入:客户端105向存储服务器端101发送针对某个目标文件的写请求;写请求处理模块103根据该写请求中所包含的信息,获取目标文件相关信息(例如文件名)并打开目标文件;预分配描述符管理模块102根据目标文件相关信息,为目标文件初始化一个块预分配描述符,并将该块预分配描述符缓存在存储服务器端101的内存中;存储服务器端101中的ext3本地文件系统104根据该块预分配描述符,为目标文件预留相应的数据块;存储服务器端101在完成对目标文件的写入操作之后关闭该目标文件;在存储服务器端101关闭目标文件之后,该目标文件的上述预分配描述符继续缓存在内存中。然而,图1所示的分布式存储系统存在以下缺点。(1)由于存储服务器端集中地负责磁盘空间的分配和管理,并且客户端直接向该服务器发起写请求,因此当存在很多客户端时或者当客户端的读写请求频繁时,会增加存储服务器端的负担(例如单点瓶颈问题)。(2)存储服务器端在存储客户端的写请求时,不是立即将该数据写入磁盘,而是先将要写入同一数据对象的数据预先缓存在系统内存中,直到数据累积到一定长度或用户最后一次写请求时,才进行写入操作。由于系统内存的总量是有限的,系统的并发性不是很好,同时数据容易丢失。(3)以文件为粒度进行存储,并且通常为需要存储的数据直接向存储服务器申请物理存储单元(block),而未基于条带化存储做优化。
技术实现思路
考虑到现有技术的上述缺点,本专利技术提供了用于在分布式存储系统中分配存储空间的技术方案(包括方法和装置等)。利用本专利技术的技术方案,可以在克服现有技术的上述缺点的基础上,保证用户访问相关性大的数据连续存储并改善分布式系统中随机存储的读写性能问题。在一个方面,本专利技术提供了一种于在分布式存储系统中分配存储空间的方法。该方法包括步骤:接收针对文件的数据写请求,所述数据写请求包含要写入一个或多个存储设备的数据,其中,所述一个或多个存储设备是由存储设备服务器来管理的;确定是否需要为所述数据的至少一部分分配空闲存储空间;如果确定需要为所述数据的所述至少一部分分配空闲存储空间,则向所述存储设备服务器申请空闲逻辑管理单元chunk,申请得到的空闲chunk包含的存储空间不小于存储所述数据的所述至少一部分所需的存储空间;向所述存储设备服务器发起写请求,以将所述数据的所述至少一部分写入所述一个或多个存储设备。在一个实施例中,该方法的所述确定步骤可以包括:确定是否已在所述一个或多个存储设备中为所述数据的所述至少一部分分配了chunk;如果确定没有为所述数据的所述至少一部分分配chunk,则检查已为所述文件分配的chunk,以确定已为所述文件分配的chunk中是否有足够的空闲存储空间以用于存储所述数据的所述至少一部分。优选地,该方法还可以包括:如果确定有足够的空闲存储空间以用于存储所述数据的所述至少一部分,则选择已为所述文件分配的chunk中的一个或多个chunk的空闲存储空间以用于存储所述数据的所述至少一部分;记录所述数据的所述至少一部分与所述一个或多个chunk的对应关系;并且其中,所述写请求用于将所述数据的所述至少一部分写入所选择的空闲存储空间。并且,优选地,所选择的空闲存储空间是连续的空闲存储空间。在另一个方面,本专利技术提供了一种用于在分布式存储系统中分配存储空间的方法。该方法包括步骤:接收对一个或多个空闲逻辑管理单元chunk的申请;响应于接收到所述申请,采用预定策略从一个或多个存储设备中分配一个或多个空闲chunk,使得所述一个或多个空闲chunk包含的存储空间是连续存储空间。在一个实施例中,该方法还可以包括:接收针对文件的chunk释放请求;响应于接收到所述chunk释放请求,释放与所述文件相对应的chunk。优选地,该方法还可以包括:使所释放的chunk与其周围的空闲chunk合并,以组成更大的连续chunk。在另一个方面,本专利技术提供了一种用于在分布式存储系统中分配存储空间的装置。该装置包括:接收模块,用于接收针对文件的数据写请求,所述数据写请求包含要写入一个或多个存储设备的数据,其中,所述一个或多个存储设备是由存储设备服务器来管理的;确定模块,用于确定是否需要为所述数据的至少一部分分配空闲存储空间;代理模块,用于如果确定需要为所述数据的所述至少一部分分配空闲存储空间,则向所述存储设备服务器申请空闲逻辑管理单元chunk,申请得到的空闲chunk包含的存储空间不小于存储所述数据的所述至少一部分所需的存储空间;写入模块,用于向所述存储设备服务器发起写请求,以将所述数据的所述至少一部分写入所述一个或多个存储设备。在另一个方面,本专利技术提供了一种用于在分布式存储系统中分配存储空间的装置。该装置包括:接收模块,用于接收对一个或多个空闲逻辑管理单元chunk的申请;分配模块,用于响应于接收到所述申请,采用预定策略从一个或多个存储设备中分配一个或多个空闲chunk,使得所述一个或多个空闲chunk包含的存储空间是连续存储空间。在另一个方面,本专利技术提供了一种高速缓冲存储器Cache客户端。该Cache客户端包括:存储器,用于存储可执行指令;以及处理器,用于根据所述可执行指令执行根据前述第一个方面的方法所包括的步骤。在另一个方面,本专利技术提供了一种用于管理一个或多个存储设备的存储设备服务器。该存储设备服务器包括:存储器,用于存储可执行指令;以及处理器,用于根据所述可执行指令执行根据前述第二个方面的方法所包括的步骤。在另一个方面,本专利技术提供了一种机器可读介质,其上存储有可执行指令。当所述可执行指令被执行时,使得机器执行根据前述第一本文档来自技高网
...
用于在分布式存储系统中分配存储空间的方法和装置

【技术保护点】
一种用于在分布式存储系统中分配存储空间的方法,包括步骤:接收针对文件的数据写请求,所述数据写请求包含要写入一个或多个存储设备的数据,其中,所述一个或多个存储设备是由存储设备服务器来管理的;确定是否需要为所述数据的至少一部分分配空闲存储空间;如果确定需要为所述数据的所述至少一部分分配空闲存储空间,则向所述存储设备服务器申请空闲逻辑管理单元chunk,申请得到的空闲chunk包含的存储空间不小于存储所述数据的所述至少一部分所需的存储空间;向所述存储设备服务器发起写请求,以将所述数据的所述至少一部分写入所述一个或多个存储设备。

【技术特征摘要】
1.一种用于在分布式存储系统中分配存储空间的方法,所述分布式存储系统包括存储设备服务器和Cache客户端,所述方法包括步骤:接收来自用户的针对文件的数据写请求,所述数据写请求包含要写入一个或多个存储设备的数据,其中,所述一个或多个存储设备是由所述存储设备服务器来管理的;确定是否需要为所述数据的至少一部分分配空闲存储空间;如果确定需要为所述数据的所述至少一部分分配空闲存储空间,则向所述存储设备服务器申请空闲逻辑管理单元chunk,申请得到的空闲chunk包含的存储空间不小于存储所述数据的所述至少一部分所需的存储空间;其中,所述chunk是所述存储设备服务器的逻辑管理单元,包含一个或多个物理存储单元;向所述存储设备服务器发起写请求,以将所述数据的所述至少一部分写入所述一个或多个存储设备;其中,申请得到的空闲chunk包含的存储空间是连续存储空间;其中,所述方法由所述Cache客户端、或系统中的其它硬件和/或软件组件、装置或实体来执行。2.如权利要求1所述的方法,其中,所述确定是否需要为所述数据的至少一部分分配空闲存储空间的步骤包括:确定是否已在所述一个或多个存储设备中为所述数据的所述至少一部分分配了chunk;如果确定没有为所述数据的所述至少一部分分配chunk,则检查已为所述文件分配的chunk,以确定已为所述文件分配的chunk中是否有足够的空闲存储空间以用于存储所述数据的所述至少一部分。3.如权利要求2所述的方法,其中,所述写入步骤包括:如果确定已为所述数据的所述至少一部分分配了chunk,则向所述存储设备服务器发起写请求,以将所述数据的所述至少一部分写入已分配的chunk。4.如权利要求2所述的方法,其中,还包括:如果确定有足够的空闲存储空间以用于存储所述数据的所述至少一部分,则选择已为所述文件分配的chunk中的一个或多个chunk的空闲存储空间以用于存储所述数据的所述至少一部分;记录所述数据的所述至少一部分与所述一个或多个chunk的对应关系;并且其中,所述写请求用于将所述数据的所述至少一部分写入所选择的空闲存储空间。5.如权利要求2所述的方法,其中,还包括:如果确定没有足够的空闲存储空间以用于存储所述数据的所述至少一部分,则确定需要为所述数据的所述至少一部分分配空闲存储空间。6.如权利要求1所述的方法,其中,还包括:选择申请得到的空闲chunk中的一个或多个空闲chunk的空闲存储空间以用于存储所述数据的所述至少一部分;记录所述数据的所述至少一部分与所述一个或多个空闲chunk的对应关系;并且其中,所述写请求用于将所述数据的所述至少一部分写入所选择的空闲存储空间。7.如权利要求4或6所述的方法,其中,所选择的空闲存储空间是连续的空闲存储空间。8.如权利要求3、4和6中的任一项所述的方法,其中,还包括:确定所述数据是否全部被写入所述一个或多个存储设备;如果确定所述数据没有被全部写入,则确定是否需要为所述数据的未写入部分的至少一部分分配空闲存储空间;如果确定需要为所述数据的所述未写入部分的所述至少一部分分配空闲存储空间,则向所述存储设备服务器申请另外的空闲chunk,申请得到的另外的空闲chunk包含的存储空间不小于存储所述数据的所述未写入部分的所述至少一部分所需的存储空间;向所述存储设备服务器发起另一写请求,以将所述数据的所述未写入部分的所述至少一部分写入所述一个或多个存储设备。9.如权利要求1-6中的任一项所述的方法,其中,所述数据的所述至少一部分是与所述数据相对应的分片中的一个或多个分片。10.如权利要求9所述的方法,其中,所述写请求是以并发方式向所述存储设备服务器发起的。11.一种用于在分布式存储系统中分配存储空间的方法,所述分布式存储系统包括:存储设备服务器,用于对所述分布式存储系统中的一个或多个存储设备进行管理;Cache客户端,用于根据本地用户的数据文件访问请求对所述分布式存储系统中的存储空间的分配进行二次管理;所述方法包括:由所述存储设备服务器从所述Cache客户端接收对一个或多个空闲逻辑管理单元chunk的申请,其中,所述申请是响应于对第一用户数据的一部分的写请求,所申请的一个或多个空闲chunk包含的存储空间大于所述第一用户数据的大小,所述第一用户数据的大小是由所述Cache客户端响应于所述写请求根据应用层导出的;响应于接收到所述申请,由所述存储设备服务器采用预定策略向所述Cache客户端分配所述一个或多个存储设备中的所申请的一个或多个空闲chunk,其中,所分配的一个或多个空闲chunk能够用于对整个所述第一用户数据和至少第二用户数据的一部分进行连续存储;其中,所述方法由所述存储设备服务器或用于管理存储设备的其它硬件和/或软件组件、装置或实体来执行。12.如权利要求11所述的方法,其中,所述预定策略包括首次匹配策略和最佳匹配策略中的至少一个策略。13.如权利要求11所述的方法,其中,还包括:接收针对文件的chunk释放请求;响应于接收到所述chunk释放请求,释放与所述文件相对应的chunk。14.如权利要求13所述的方法,其中,还包括:使所释放的chunk与其周围的空闲chunk合并,以组成更大的连续chunk。15.一种用于在分布式存储系统中分配存储空间的装置,包括:接收模块,用于接收来自用户的针对文件的数据写请求,所述数据写请求包含要写入一个或多个存储设备的数据,其中,所述一个或多个存储设备是由所述分布式存储系统中的存储设备服务器来管理的;确定模块,用于确定是否需要为所述数据的至少一部分分配空闲存储空间;代理模块,用于如果确定需要为所述数据的所述至少一部分分配空闲存储空间...

【专利技术属性】
技术研发人员:王兴勇杨军
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1