【技术实现步骤摘要】
用于在分布式存储系统中分配存储空间的方法和装置
本专利技术涉及通信网络中的存储技术,尤其涉及一种用于在分布式存储系统中分配存储空间的方法和装置。
技术介绍
随着3G网络的大规模应用、智能手机的普及、移动多媒体和移动互联网业务的兴起,移动宽带(MBB)数据业务正面临着快速增长,这对网间流量、用户体验质量(QoE)等提出了新的挑战。为了提高用户的QoE,降低网间流量和对服务器的冲击,在通信网络的若干节点中利用分布式存储系统是一种不错的选择。这种分布式存储系统的一个示例是分布式Cache(高速缓冲存储器)系统,该系统通过在边缘节点和/或骨干节点处部署Cache,可以将内容缓存到靠近用户的位置。对于分布式Cache系统而言,Cache的读写效率和访问并发性对于性能提升的影响很大。如果能够根据数据的相关性,连续地分配数据的存储空间以保证数据在磁盘上连续存储,则对Cache的读写效率有比较可观的提升。现有的分布式存储系统一般采用以下两种方式来分配存储空间。一种方式是按需分配,其仅根据要写入的数据的大小来分配足够的存储空间,而不保证数据在磁盘上的连续存储。另一种方式是服务器集中分配,其需要一个服务器完全负责磁盘空间的分配和管理,从而容易导致单点瓶颈问题,限制了系统的规模和吞吐量。图1示出了一种现有的服务器集中分配的分布式存储系统100的示意图。图1所示的分布式存储系统中包括存储服务器端101和若干客户端105。该存储服务器端101包括预分配描述符管理模块102、写请求处理模块103以及ext3本地文件系统104。图1所示的分布式存储系统100按照以下步骤来实现用户数据写 ...
【技术保护点】
一种用于在分布式存储系统中分配存储空间的方法,包括步骤:接收针对文件的数据写请求,所述数据写请求包含要写入一个或多个存储设备的数据,其中,所述一个或多个存储设备是由存储设备服务器来管理的;确定是否需要为所述数据的至少一部分分配空闲存储空间;如果确定需要为所述数据的所述至少一部分分配空闲存储空间,则向所述存储设备服务器申请空闲逻辑管理单元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.一种用于在分布式存储系统中分配存储空间的装置,包括:接收模块,用于接收来自用户的针对文件的数据写请求,所述数据写请求包含要写入一个或多个存储设备的数据,其中,所述一个或多个存储设备是由所述分布式存储系统中的存储设备服务器来管理的;确定模块,用于确定是否需要为所述数据的至少一部分分配空闲存储空间;代理模块,用于如果确定需要为所述数据的所述至少一部分分配空闲存储空间...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。