CN102629934B - 基于分布式存储系统的数据存储方法及装置 - Google Patents

基于分布式存储系统的数据存储方法及装置 Download PDF

Info

Publication number
CN102629934B
CN102629934B CN201210048903.8A CN201210048903A CN102629934B CN 102629934 B CN102629934 B CN 102629934B CN 201210048903 A CN201210048903 A CN 201210048903A CN 102629934 B CN102629934 B CN 102629934B
Authority
CN
China
Prior art keywords
storage
primitive
weight
group
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201210048903.8A
Other languages
English (en)
Other versions
CN102629934A (zh
Inventor
宋鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Sohu New Media Information Technology Co Ltd
Original Assignee
Beijing Sohu New Media Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Sohu New Media Information Technology Co Ltd filed Critical Beijing Sohu New Media Information Technology Co Ltd
Priority to CN201210048903.8A priority Critical patent/CN102629934B/zh
Publication of CN102629934A publication Critical patent/CN102629934A/zh
Application granted granted Critical
Publication of CN102629934B publication Critical patent/CN102629934B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例公开了一种基于分布式存储系统的数据存储方法。该方法包括:上报各存储基元所在存储服务器的负载信息,所述负载信息为存储服务器接收数据存储的能力信息;根据所述负载信息按照第一预设策略生成各存储基元的权重;接收存储请求后根据各存储基元权重按照第二预设策略分配存储基元;将接收到的数据存储到分配的存储基元。本申请实施例还公开了另一种基于分布式存储系统的数据存储方法,以及与这两种方法相应的装置。本申请实施例在数据存储过程中充分考虑了各存储服务器的数据接收能力,从而能够较好地实现分布式存储系统的存储均衡。

Description

基于分布式存储系统的数据存储方法及装置
技术领域
本申请涉及数据存储技术领域,特别是涉及基于分布式存储系统的数据存储方法及相应的装置。
背景技术
分布式存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,不但提高了系统的整体可靠性和数据的可用性,还极大提高了存取效率。基于分布式存储系统的数据存储过程通常包括:存储请求端向分布式存储系统发送存储请求,分布式存储系统接收到存储请求后,按照预设策略分配存储服务器,然后将分配的存储服务器的地址返回给存储请求端,由于存储请求端预先已经预定好存储数据与存储服务器的存储基元的对应关系,因此,存储请求端获得存储服务器地址后即可将待存储数据存储到分配的存储服务器的相应存储基元。从该存储过程可知,现有技术将数据存储到分布式存储系统的关键是分布式存储系统存储服务器的分配策略。通常的分配策略包括多种,比如根据存储请求轮流分配到存储服务器的轮询策略、根据存储请求随机选择存储服务器的随机策略等。但是,这些存储服务器分配策略的问题是根据存储请求端的需要进行存储服务器分配,且分配级别处于存储服务器级,未考虑存储服务器端的状况,不能较好地实现分布式存储系统的存储均衡。此外,在某些情况下,即便存储服务器出现问题,也有可能会被分配用于存储数据,这势必导致数据存储操作失败,使相同数据必须再次或多次进行存储,从而降低了数据存储的整体效率。
发明内容
为解决上述技术问题,本申请实施例提供了基于分布式存储系统的数据存储方法及装置,以提高分布式存储系统的存储均衡能力。
本申请实施例提供的基于分布式存储系统的数据存储方法包括:
上报各存储基元所在存储服务器的负载信息,所述负载信息为存储服务器接收数据存储的能力信息;
根据所述负载信息按照第一预设策略生成各存储基元的权重;
接收存储请求后根据各存储基元权重按照第二预设策略分配存储基元;
将接收到的数据存储到分配的存储基元。
优选地,在上报各存储基元所在存储服务器的负载信息时,还上报各存储基元的存储容量使用信息,则:根据所述负载信息和存储容量使用信息按照第一预设策略生成各存储基元的权重。
进一步优选地,所述负载信息包括存储服务器的线程开启率、内存使用率,所述线程开启率为存储服务器当前开启的线程数与该存储服务器允许开启的最大线程数的比值,所述存储容量使用信息包括存储容量使用率,则:所述第一预设策略为:
存储基元的权重=线程开启率+内存使用率+存储容量使用率。
进一步优选地,所述第一预设策略为:
存储基元的权重=W1*线程开启率+W2*内存使用率+W3*存储容量使用率;
其中:所述W1、W2、W3取值范围为0到1,分别为存储服务器线程开启率、内存使用率、存储基元的存储容量使用率对存储基元权重的贡献值,W1、W2、W3之和为1。
优选地,将多个存储基元组成存储基元组,选择该组内的一个存储基元为主存储基元,则:在生成各存储基元的权重后,按照第三预设策略生成存储基元组的权重,接收存储请求后根据各存储基元组权重按照第二预设策略分配存储基元组,将接收到的数据通过主存储基元存储到分配的存储基元组的各存储基元。
进一步优选地,所述第二预设策略为:
以存储基元组的权重之和为种子,通过随机函数生成新的权重值,根据权重值所处权重区间分配存储基元组。
本申请实施例还提供了另一种基于分布式存储系统的数据存储方法。该方法包括:
接收存储请求后,收集各存储基元所在存储服务器的负载信息,所述负载信息为存储服务器接收数据存储的能力信息;
根据所述负载信息按照第一预设策略生成各存储基元的权重;
根据各存储基元的权重按照第二预设策略分配存储基元;
将接收到的数据存储到分配的存储基元。
本申请还提供了一种基于分布式存储系统的数据存储装置。该装置包括:上报单元、生成单元、分配单元和存储单元,其中:
所述上报单元,用于上报各存储基元所在存储服务器的负载信息,所述负载信息为存储服务器接收数据存储的能力信息;
所述生成单元,用于根据所述负载信息按照第一预设策略生成各存储基元的权重;
所述分配单元,用于在接收存储请求后根据各存储基元权重按照第二预设策略分配存储基元;
所述存储单元,用于将接收到的数据存储到分配的存储基元。
优选地,所述上报单元在上报各存储基元所在存储服务器的负载信息时,还用于上报各存储基元的存储容量使用信息,则:生成单元用于根据所述负载信息和存储容量使用信息按照第一预设策略生成各存储基元的权重。
本申请实施例还提供了另一种基于分布式存储系统的数据存储装置。该装置包括:收集单元、生成单元、分配单元和存储单元,其中:
所述收集单元,用于在接收存储请求后收集各存储基元所在存储服务器的负载信息,所述负载信息为存储服务器接收数据存储的能力信息;
所述生成单元,用于根据所述负载信息按照第一预设策略生成各存储基元的权重;
所述分配单元,用于根据各存储基元的权重按照第二预设策略分配存储基元;
所述存储单元,用于将接收到的数据存储到分配的存储基元。
本申请实施例将各存储基元所在存储服务器的负载信息进行上报,然后根据该上报的负载信息生成各存储基元的权重,在接收存储请求后根据各存储基元的权重分配存储基元以便将接收到的数据存储到该存储基元上。与现有技术相比,本申请实施例先获取存储基元所在存储服务器的负载情况,根据该负载情况分配相应的存储基元用于数据存储,由于在数据存储过程中充分考虑了各存储服务器的数据接收能力,从而能够较好地实现分布式存储系统的存储均衡。而且,本申请实施例在存储基元级进行存储单元分配,打破了在存储服务器级别进行分配的传统模式,避免了存储请求端与存储服务器端进行存储基元的事先预定,更加细粒度地均衡了分布式存储系统的数据存储。此外,由于本申请实施例以存储服务器端的负载情况为基础,如果存储服务器端的某个存储服务器或存储基元出现坏损,将不会上报存储服务器负载情况,从而避免了将坏损的存储服务器纳入分配范围,减小了存储失误,提高了分布式存储系统中数据存储的整体效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例一的基于分布式存储系统的数据存储方法流程图;
图2为图1所述实施例的应用场景示意图;
图3为本申请实施例二的基于分布式存储系统的数据存储方法流程图;
图4为本申请实施例三的基于分布式存储系统的数据存储装置结构框图;
图5为本申请实施例四的基于分布式存储系统的数据存储装置结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参见图1,该图示出了本申请实施例一的基于分布式存储系统的数据存储方法的流程。该实施例包括:
步骤S101:上报各存储基元所在存储服务器的负载信息,所述负载信息为存储服务器接收数据存储的能力信息;
存储基元是分布式存储系统上用于存储数据的一个存储单位。根据实际情况的不同,存储基元的范围可大可小,比如存储基元可以指分布式存储系统上的存储服务器,也可以指存储服务器上的一个存储磁盘,还可以指存储服务器的存储磁盘上的存储块。分布式存储系统上的存储服务器可能在一个时间段内面临来自多个存储请求端的众多存储请求,以致同时进行着多个存储进程(线程)。当存储服务器同时开启多个进程时,该存储服务器的CPU、内存等设备将以较大的负荷运行,该存储服务器的负载加重,存储服务器的接收数据存储的能力将受到影响。通常而言,存储服务器上的负载越重,接收数据存储的能力越弱;存储服务器上的负载越轻,接收数据存储的能力越强。本实施例在接收存储请求进行数据存储之前,先上报各存储基元所在存储服务器的负载信息,通过该负载信息来了解和掌握存储服务器的负载情况,进而获得存储服务器接收数据存储的能力大小,为分配存储基元做准备。对于上报负载信息的频率或时间,本实施例并不做任何限定。实际应用过程中,可根据应用需要设定每隔一定时间上报一次负载信息,以便及时了解存储服务器的负载情况,也可仅在负载发生变化后上报,以减少数据上报过程中的通信次数。负载信息上报工作在具体应用过程中,可通过DataService(数据管理服务)程序执行。
步骤S102:根据所述负载信息按照第一预设策略生成各存储基元的权重;
获得上报的负载信息后,即可根据该负载信息按照第一预设策略生成各存储基元的权重,该权重大小反映了存储基元所在服务器接收数据存储的能力。存储基元的权重越大(越小),存储基元所在存储服务器接收数据存储的能力越强,该存储服务器器和存储服务器上的存储基元被分配用于存储数据的可能性越大。这里的第一预设策略具体表现形式可以为多种,比如,预设策略可以为:存储服务器的负载越大、存储基元的权重越高,则:存储基元所在的存储服务器负载越大,按照该策略生成的存储基元的权重值越高;还比如,预设策略可以为:存储服务器的负载超过第一预设阈值,存储基元的权重为A值,负载低于第二预设阈值,存储基元的权重为C值,负载处于第一预设阈值和第二预设阈值之间的,存储基元的权重为B值。实际上,只要第一预设策略体现出存储服务器的负载对存储服务器以及存储服务器上的存储基元的数据存储能力的影响,其具体的策略形式均不妨碍本发明的发明目的的实现。存储基元的权重生成工作在实际应用过程中,可通过NameService(名称服务)程序进行。
步骤S103:接收存储请求后根据各存储基元权重按照第二预设策略分配存储基元;
接收来自存储请求端的存储请求后,本实施例根据上述计算出来的各存储基元的权重,按照第二预设策略分配存储单元用于存储数据。存储基元的权重越大(越小),该存储基元被分配用于存储数据的可能性越大。这里的第二预设策略具体表现形式可以为多种,比如,预设策略可以为:将权重越大的存储基元分配用于存储数据(如果权重越大反映存储服务器以及存储基元的接收数据存储的能力越强),则:比较各存储基元的权重后,选定权重最大的存储基元作为响应数据存储请求的存储基元;还比如,预设策略可以为:将权重值超过第三预设阈值的存储基元分配用于存储数据,则:比较各存储基元权重与第三预设阈值后,选定满足要求的存储基元作为响应数据存储请求的存储基元。实际上,只要第二预设策略体现出存储基元的权重对存储服务器以及存储服务器上的存储基元的数据存储能力的影响,其具体的策略形式均不妨碍本发明的发明目的的实现。这里需要说明的两点是:一是在一个存储服务器包含多个存储基元时,则可能存在多个存储基元的权重值相等的情况,这种情形下,可根据实际情况将权重值相等的存储基元均分配用于存储数据,也可从中随机选择一个存储基元用于存储数据。二是第一预设策略与第二预设策略的对应关系,比如第一预设策略将策略设置为存储服务器的负载越大,生成的存储基元的权重越大,那么在分配存储基元时,第二预设策略则应当相应地将权重值大的存储基元分配用于存储数据,也就是说,要保持两个策略在方向上的一致性,本领域技术人员在实际应用本实施例过程中清楚该要求。
步骤S104:将接收到的数据存储到分配的存储基元;
分布式存储系统存储服务器端分配存储基元后,将向存储请求端返回存储基元的地址。存储请求端获得该地址后将待存储的数据发送到存储服务器端存储到相应的存储基元上。
为便于直观理解,本申请给出了上述流程的应用场景示意图,参见附图2。分布式存储系统(存储服务器端)根据上报的存储服务器的负载信息生成存储基元的权重。数据存储请求端向分布式存储系统发送存储请求后,分布式存储系统根据存储基元的权重分配用于存储数据的存储基元,然后将存储请求端发送的存储数据存储到该分配的存储基元。这里的存储控制管理中心可以单独作为一个服务器存在(如图所示),也可以将其功能嵌入到各个存储服务器中。
本实施例将各存储基元所在存储服务器的负载信息进行上报,然后根据该上报的负载信息生成各存储基元的权重,在接收存储请求后根据各存储基元的权重分配存储基元以便将接收到的数据存储到该存储基元上。与现有技术相比,本实施例先获取存储基元所在存储服务器的负载情况,根据该负载情况分配相应的存储基元用于数据存储,由于在数据存储过程中充分考虑了各存储服务器的数据接收能力,从而能够较好地实现分布式存储系统的存储均衡。而且,本申请实施例在存储基元级进行存储单元分配,打破了在存储服务器级别进行分配的传统模式,避免了存储请求端与存储服务器端进行存储基元的事先预定,更加细粒度地均衡了分布式存储系统的数据存储。此外,由于本申请实施例以存储服务器端的负载情况为基础,如果存储服务器端的某个存储服务器或存储基元出现坏损,将不会上报存储服务器负载情况,从而避免了将坏损的存储服务器纳入分配范围,减小了存储失误,提高了分布式存储系统中数据存储的整体效率。
上述实施例一在进行信息上报时,仅上报了存储基元所在的存储服务器的负载情况,尽管这样并不影响不发明的发明目的的实现。但是,在一个存储服务器包含多个存储基元的情况下,该存储服务器的所有存储基元上报的负载信息均是相同存储服务器的负载信息,那么得出的各个存储基元的权重必然相等。在进行存储基元的分配时虽然可以随机选择一个存储基元进行分配,然而这种方式没有考虑到存储基元本身的情况。实际上,经过多次数据存储操作后,在相同存储服务器上的多个存储基元的存储能力并不相同,有的存储基元可能已经存满,有些可能还有很大的空闲。为了充分均衡分布式存储系统、合理利用存储资源,本申请对上述实施例一的一种改进方式是:在上报各存储基元所在存储服务器的负载信息时,还上报各存储基元的存储容量使用信息,以便根据存储服务器的负载信息和存储基元的存储容量使用信息按照第一预设策略生成各存储基元的权重。经过上述处理后,各存储基元的权重不仅反映其所在存储服务器的接收数据存储的能力,还反映各存储基元接收数据存储的能力,从而进一步优化了分布式存储系统的数据存储过程。
前述改进实施例一的叙述中提到“根据各存储服务器的负载信息和存储基元的存储容量使用信息按照第一预设策略生成各存储单元的权重”,为便于理解该技术特征,下面以具体实例进行说明。假设上报的各存储基元所在存储服务器的负载信息包括存储服务器的线程开启率、内存使用率,这两个参数均能反映存储服务器接收数据存储的能力:线程开启率越多,说明存储服务器的负载越大;内存使用越多,也说明存储服务器的负载较大。这里的线程开启率指存储服务器当前开启的线程数与该存储服务器允许开启的最大线程数的比值。由于配置的原因,存储服务器的CPU通常具有自己的最大线程处理能力,存储服务器允许同时开启的最大线程数即可存储服务器CPU的处理极限。有些情况下,存储服务器可能包含多个CPU,则此时的线程开启率为当前运行于存储服务器上的所有线程数与各CPU允许开启的最大线程数总和的比值。存储基元的存储容量使用信息包括存储容量使用率,存储容量使用率越大,说明存储基元的空闲空间越小,接收数据存储的能力越弱,相反则空闲空间越大,接收数据存储能力越强。通过上报获得存储服务器的线程开启率、内存使用率以及存储基元的存储容量使用率等参数后,所述第一预设策略可表述为下述公式:
存储基元的权重=线程开启率+内存使用率+存储容量使用率。
按照这种策略生成的存储基元的权重,反映了不仅反映了存储服务器的负载情况,而且反映了存储基元自身的情况,依据该权重进行用于存储数据的存储基元的分配将使分布式存储服务器的数据存储更加均衡。
实际上,在具体的应用过程中,还可以将上述三个参数乘以一定的系数对这些参数进行区别对待:如果线程开启率是数据存储过程最关注的因素,则可提高线程开启率对存储基元权重的贡献率,降低内存使用率和存储容量使用率对存储基元的权重的贡献率。如果线程开启率和存储使用率(存储服务器的负载)均是比较关注的因素,则可提高这两个参数的贡献率而降低存储容量使用率的贡献率。用公式表示为:
存储基元的权重=W1*线程开启率+W2*内存使用率+W3*存储容量使用率;
其中:所述W1、W2、W3取值范围为0到1,分别为存储服务器线程开启率、内存使用率、存储基元的存储容量使用率对存储基元权重的贡献值,W1、W2、W3之和为1。
按照上述修正过程获得的存储基元权重已能较好地实现本发明的发明目的。但是,从上述公式可知,计算存储基元权重的几个参数均是百分比,由此计算出来的存储基元的权重值较小,为便于观察和体现存储基元的变化情况,可将上述存储基元的权重乘以一定的放大倍数,比如放大倍数设置为10,则存储基元的权重数据变化范围扩大,有利于监测到存储基元的权重变化。
在上述实施例一中,存储请求端发送来的数据仅存储在存储服务器的一个或各存储基元上,没有存储相应的复本。当存储该数据的存储基元出现坏损时,由于没有备份,将无法恢复上述数据。为了实现提高分布式存储系统的数据可靠性和稳定性,本申请对上述实施例一的另一种种改进是:将多个存储基元(比如3个)组成存储基元组,并选择该组内的一个存储基元作为主存储基元,通过将需要存储的数据同时存储到多个存储基元上,以实现数据备份,便于数据恢复。将多个存储基元构建成一个存储基元组后,其相应的流程变化为:
在生成各存储基元的权重后,按照第三预设策略生成存储基元组的权重,接收存储请求后根据各存储基元组权重按照第二预设策略分配存储基元组,将接收到的数据通过主存储基元存储到分配的存储基元组的各存储基元。
这里的第三预设策略主要用于生成存储基元组的权重,具体表现形式包括多种,比如:将每个存储基元的权重直接相加,相加的总和作为存储基元组的权重,也可以将每个存储基元的权重进行加权平权,加权平均的总和作为存储基元组的权重,还可以考虑存储基元组内存储基元对存储基元组的贡献率,假设在3个存储基元组成一个存储基元组的情况下,用公式表示存储基本元组的权重为:
存储基本组的权重=主存储基元*h1+从存储基元*h2+从存储基元*h3
这里的h1、h2、h3可根据实际情况设定,比如设定为60%、20%、20%。
按照第三预设策略生成存储基元组的权重后,仍可按照第二预设策略分配存储基元组,不同之处在于分配的基本单位由“存储基元”变化为“存储基元组”,但采取的策略可相同。此处的第二预设策略可以为:
以存储基元组的权重之和为种子,通过随机函数生成新的权重值,根据权重值所处权重区间分配存储基元组。
比如:获取到存储基元组的权重后(该存储基元的权重均乘以了放大倍数10),划分出如下的权重区间:
存储基元组1的权重区间为:[0,(存储基元组1权重-1)]
存储基元组2的权重区间为:[(存储基元组1权重),(存储基元组1权重+存储基元组2权重-1)]
存储基元组N的权重区间为:[(前N-1个存储基元组权重总和),(前N个组存储基元权重总和-1)]
以存储基元组的权重之和为种子,通过随机函数生成新的权重值,该新的权重值减1获得随机数,根据该随机数所在的权重区间选择存储基元组。
选定用于响应存储请求端的存储基元组后,即可将接收到的存储数据通过主存储基元存储到分配的存储基元组的各存储基元,这里通过主存储基元向存储基元存储数据的原因在于:保持数据的强一致性,也就是说,存储基元组内的各存储基元存储的数据高度以致,这样如果某个存储基元的数据遭受破坏,则可通过该存储基元所在的存储基元组的其他存储基元上保存的数据进行恢复,从而进一步提高了分布式存储系统的可靠性和稳定性。
前述实施例一以及对实施例一的改进均是在接收到存储请求之前已经根据上报的存储服务器的负载信息生成了存储基元的权重,当接收到存储请求后,仅执行存储基元的分配,进而将数据存储到分配的存储基元上。实际上,除这种在接收存储请求之前分布式存储系统即自我进行存储基元的权重生成工作外,还可以在接收到存储请求之后启动相应的操作,这样可以避免或减少分布式存储系统的工作量。这种实现基于分布式存储系统的数据存储方法的方式构成本申请的第二实施例,参见附图3,该图示出了本申请实施例二的基于分布式存储系统的数据存储方法流程。该实施例包括:
步骤S301:接收存储请求后,收集各存储基元所在存储服务器的负载信息,所述负载信息为存储服务器接收数据存储的能力信息;
本实施例在接收到存储请求后,启动存储服务器的负载信息收集工作,以便根据存储基元所在的存储服务器的负载情况决定存储基元的分配。
步骤S302:根据所述负载信息按照第一预设策略生成各存储基元的权重;
步骤S303:根据各存储基元的权重按照第二预设策略分配存储基元;
步骤S304:将接收到的数据存储到分配的存储基元。
本实施例取得的技术效果与实施例一相同,为避免重复,这里不再赘述。
上述叙述内容均是对本申请方法实施例的描述,相应地,本申请实施例还提供了基于分布式存储系统的数据存储装置。参见附图4,该图示出了本申请实施例三的基于分布式存储系统的数据存储装置结构。该装置实施例400包括:上报单元401、生成单元402、分配单元403和存储单元404,其中:
所述上报单元401,用于上报各存储基元所在存储服务器的负载信息,所述负载信息为存储服务器接收数据存储的能力信息;
所述生成单元402,用于根据所述负载信息按照第一预设策略生成各存储基元的权重;
所述分配单元403,用于在接收存储请求后根据各存储基元权重按照第二预设策略分配存储基元;
所述存储单元404,用于将接收到的数据存储到分配的存储基元。
本装置实施例的工作过程是:上报单元401上报各存储基元所在存储服务器的负载信息,所述负载信息为存储服务器接收数据存储的能力信息;生成单元402根据上报单元上报的负载信息按照第一预设策略生成各存储基元的权重;然后由分配单元403在接收存储请求后根据各存储基元权重按照第二预设策略分配存储基元;存储单元404将接收到的数据存储到分配的存储基元。
本装置实施例将各存储基元所在存储服务器的负载信息进行上报,然后根据该上报的负载信息生成各存储基元的权重,在接收存储请求后根据各存储基元的权重分配存储基元以便将接收到的数据存储到该存储基元上。与现有技术相比,本装置实施例先获取存储基元所在存储服务器的负载情况,根据该负载情况分配相应的存储基元用于数据存储,由于在数据存储过程中充分考虑了各存储服务器的数据接收能力,从而能够较好地实现分布式存储系统的存储均衡。而且,本装置实施例在存储基元级进行存储单元分配,打破了在存储服务器级别进行分配的传统模式,避免了存储请求端与存储服务器端进行存储基元的事先预定,更加细粒度地均衡了分布式存储系统的数据存储。此外,由于本申请实施例以存储服务器端的负载情况为基础,如果存储服务器端的某个存储服务器或存储基元出现坏损,将不会上报存储服务器负载情况,从而避免了将坏损的存储服务器纳入分配范围,减小了存储失误,提高了分布式存储系统中数据存储的整体效率。
上述装置实施例中的上报单元仅上报存储基元所在存储服务器的负载信息,虽然通过上报的负载信息能够反映存储服务器接收数据存储的能力,但是不能反映存储基元的情况,为此,本申请优选上报单元在上报各存储基元所在存储服务器的负载信息时,还用于上报各存储基元的存储容量使用信息,则:生成单元用于根据所述负载信息和存储容量使用信息按照第一预设策略生成各存储基元的权重。
除上述装置实施例外,与本申请的方法实施例二相对应,本申请还提供了另一种基于分布式存储系统的数据存储装置。参见附图5,该图示出了本申请实施例四的基于分布式存储系统的数据存储装置结构。该装置实施例500包括:收集单元501、生成单元502、分配单元503和存储单元504,其中:
所述收集单元501,用于在接收存储请求后收集各存储基元所在存储服务器的负载信息,所述负载信息为存储服务器接收数据存储的能力信息;
所述生成单元502,用于根据所述负载信息按照第一预设策略生成各存储基元的权重;
所述分配单元503,用于根据各存储基元的权重按照第二预设策略分配存储基元;
所述存储单元504,用于将接收到的数据存储到分配的存储基元。
本装置实施例500的工作过程是:收集单元501在接收存储请求后收集各存储基元所在存储服务器的负载信息,所述负载信息为存储服务器接收数据存储的能力信息;生成单元502根据收集单元收集的负载信息按照第一预设策略生成各存储基元的权重;分配单元503根据各存储基元的权重按照第二预设策略分配存储基元;然后由存储单元504将接收到的数据存储到分配的存储基元。
上述装置实施例500取得的效果与装置实施例400取得的效果相似,为节约篇幅,这里不再重复。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (6)

1.一种基于分布式存储系统的数据存储方法,其特征在于,该方法包括:
上报各存储基元所在存储服务器的负载信息以及各存储基元的存储容量使用信息,所述负载信息为存储服务器接收数据存储的能力信息,所述存储基元为分布式存储系统上用于存储数据的一个存储单位,多个存储基元组成存储基元组,该组内的一个存储基元为主存储基元;
根据所述负载信息和存储容量使用信息按照第一预设策略生成各存储基元的权重,所述存储基元的权重反映存储基元以及存储基元所在存储服务器的接收数据存储的能力;
在生成各存储基元的权重后,按照第三预设策略生成存储基元组的权重,接收存储请求后根据各存储基元组权重按照第二预设策略分配存储基元组,将接收到的数据通过主存储基元存储到分配的存储基元组的各存储基元;所述第二预设策略为:以存储基元组的权重之和为种子,通过随机函数生成新的权重值,根据权重值所处权重区间分配存储基元组。
2.根据权利要求1所述的方法,其特征在于,所述负载信息包括存储服务器的线程开启率、内存使用率,所述线程开启率为存储服务器当前开启的线程数与该存储服务器允许开启的最大线程数的比值,所述存储容量使用信息包括存储容量使用率,则:所述第一预设策略为:
存储基元的权重=线程开启率+内存使用率+存储容量使用率。
3.根据权利要求2所述的方法,其特征在于,所述第一预设策略为:
存储基元的权重=W1*线程开启率+W2*内存使用率+W3*存储容量使用率;
其中:所述W1、W2、W3取值范围为0到1,分别为存储服务器线程开启率、内存使用率、存储基元的存储容量使用率对存储基元权重的贡献值,W1、W2、W3之和为1。
4.一种基于分布式存储系统的数据存储方法,其特征在于,该方法包括:
接收存储请求后,收集各存储基元所在存储服务器的负载信息以及各存储基元的存储容量使用信息,所述负载信息为存储服务器接收数据存储的能力信息,所述存储基元为分布式存储系统上用于存储数据的一个存储单位,多个存储基元组成存储基元组,该组内的一个存储基元为主存储基元;
根据所述负载信息和存储容量使用信息按照第一预设策略生成各存储基元的权重,所述存储基元的权重反映存储基元以及存储基元所在存储服务器的接收数据存储的能力;
在生成各存储基元的权重后,按照第三预设策略生成存储基元组的权重,接收存储请求后根据各存储基元组权重按照第二预设策略分配存储基元组,将接收到的数据通过主存储基元存储到分配的存储基元组的各存储基元;
所述第二预设策略为:以存储基元组的权重之和为种子,通过随机函数生成新的权重值,根据权重值所处权重区间分配存储基元组。
5.一种基于分布式存储系统的数据存储装置,其特征在于,该装置包括:上报单元、生成单元、分配单元和存储单元,其中:
所述上报单元,用于上报各存储基元所在存储服务器的负载信息以及各存储基元的存储容量使用信息,所述负载信息为存储服务器接收数据存储的能力信息,所述存储基元为分布式存储系统上用于存储数据的一个存储单位,多个存储基元组成存储基元组,该组内的一个存储基元为主存储基元;
所述生成单元,用于根据所述负载信息和存储容量使用信息按照第一预设策略生成各存储基元的权重,所述存储基元的权重反映存储基元以及存储基元所在存储服务器的接收数据存储的能力,在生成各存储基元的权重后,按照第三预设策略生成存储基元组的权重;
所述分配单元,用于在接收存储请求后根据各存储基元组的权重按照第二预设策略分配存储基元组,所述第二预设策略为:以存储基元组的权重之和为种子,通过随机函数生成新的权重值,根据权重值所处权重区间分配存储基元组;
所述存储单元,用于将接收到的数据通过主存储基元存储到分配的存储基元组的各存储基元。
6.一种基于分布式存储系统的数据存储装置,其特征在于,该装置包括:收集单元、生成单元、分配单元和存储单元,其中:
所述收集单元,用于在接收存储请求后收集各存储基元所在存储服务器的负载信息以及各存储基元的存储容量使用信息,所述负载信息为存储服务器接收数据存储的能力信息,所述存储基元为分布式存储系统上用于存储数据的一个存储单位,多个存储基元组成存储基元组,该组内的一个存储基元为主存储基元;
所述生成单元,用于根据所述负载信息和存储容量使用信息按照第一预设策略生成各存储基元的权重,所述存储基元的权重反映存储基元以及存储基元所在存储服务器的接收数据存储的能力,在生成各存储基元的权重后,按照第三预设策略生成存储基元组的权重;
所述分配单元,用于根据各存储基元组的权重按照第二预设策略分配存储基元组,所述第二预设策略为:以存储基元组的权重之和为种子,通过随机函数生成新的权重值,根据权重值所处权重区间分配存储基元组;
所述存储单元,用于将接收到的数据通过主存储基元存储到分配的存储基元组的各存储基元。
CN201210048903.8A 2012-02-28 2012-02-28 基于分布式存储系统的数据存储方法及装置 Expired - Fee Related CN102629934B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210048903.8A CN102629934B (zh) 2012-02-28 2012-02-28 基于分布式存储系统的数据存储方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210048903.8A CN102629934B (zh) 2012-02-28 2012-02-28 基于分布式存储系统的数据存储方法及装置

Publications (2)

Publication Number Publication Date
CN102629934A CN102629934A (zh) 2012-08-08
CN102629934B true CN102629934B (zh) 2015-07-08

Family

ID=46588093

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210048903.8A Expired - Fee Related CN102629934B (zh) 2012-02-28 2012-02-28 基于分布式存储系统的数据存储方法及装置

Country Status (1)

Country Link
CN (1) CN102629934B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999401B (zh) * 2012-11-30 2015-04-29 华为技术有限公司 一种平均备份数据的方法和装置
CN103077197A (zh) * 2012-12-26 2013-05-01 北京思特奇信息技术股份有限公司 一种数据存储方法装置
CN103336721B (zh) * 2013-07-08 2017-03-22 北京奇虎科技有限公司 数据库操作请求分配方法、设备和系统
CN104424316B (zh) * 2013-09-06 2018-06-05 华为技术有限公司 一种数据存储方法、数据查询方法、相关装置和系统
CN103593240B (zh) * 2013-11-08 2016-11-23 华为技术有限公司 一种优化的调度方法及管理设备
CN104202428A (zh) * 2014-09-25 2014-12-10 北京网秦天下科技有限公司 分布式文件存储系统及文件存储方法
CN106649401A (zh) * 2015-11-03 2017-05-10 阿里巴巴集团控股有限公司 分布式文件系统中的数据写入方法和装置
CN108153615B (zh) * 2016-12-02 2019-07-23 中科星图股份有限公司 一种故障数据恢复方法
CN108156189B (zh) * 2016-12-02 2019-03-08 中科星图股份有限公司 一种多节点系统中冗余数据处理方法
CN106991170A (zh) * 2017-04-01 2017-07-28 广东浪潮大数据研究有限公司 一种分布式文件容量均衡的方法与装置
CN109558206B (zh) * 2017-09-26 2023-10-13 中兴通讯股份有限公司 Cpu资源的隔离方法及其系统
CN108710686A (zh) * 2018-05-21 2018-10-26 北京五八信息技术有限公司 一种数据存储方法、装置、存储介质及终端
CN111064808B (zh) * 2019-12-30 2022-10-21 深圳天融信创新科技有限公司 一种基于分布式存储系统的负载均衡方法及装置
CN112083892B (zh) * 2020-09-25 2021-05-18 上海依图网络科技有限公司 一种数据存储方法、装置、设备和介质
CN112307064A (zh) * 2020-10-29 2021-02-02 上海达梦数据库有限公司 一种数据管理系统、方法及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1972311A (zh) * 2006-12-08 2007-05-30 华中科技大学 一种基于集群均衡负载的流媒体服务器系统
EP2202945A1 (en) * 2008-12-26 2010-06-30 Huawei Technologies Co., Ltd. Distributed network construction and storage method, apparatus, and system
CN102035737A (zh) * 2010-12-08 2011-04-27 北京交通大学 一种基于认知网络的自适应负载均衡方法和装置
CN102055650A (zh) * 2009-10-29 2011-05-11 华为技术有限公司 负载均衡方法及系统和管理服务器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1972311A (zh) * 2006-12-08 2007-05-30 华中科技大学 一种基于集群均衡负载的流媒体服务器系统
EP2202945A1 (en) * 2008-12-26 2010-06-30 Huawei Technologies Co., Ltd. Distributed network construction and storage method, apparatus, and system
CN102055650A (zh) * 2009-10-29 2011-05-11 华为技术有限公司 负载均衡方法及系统和管理服务器
CN102035737A (zh) * 2010-12-08 2011-04-27 北京交通大学 一种基于认知网络的自适应负载均衡方法和装置

Also Published As

Publication number Publication date
CN102629934A (zh) 2012-08-08

Similar Documents

Publication Publication Date Title
CN102629934B (zh) 基于分布式存储系统的数据存储方法及装置
CN109218355B (zh) 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法
CN105075222B (zh) 采用动态压缩的数据复制
Lee et al. Load-balancing tactics in cloud
JP4374378B2 (ja) 運用実績評価装置、運用実績評価方法、およびプログラム
CN111694515B (zh) 一种基于ZNS固态硬盘的zone写分发方法及系统
CN104023088B (zh) 一种应用于分布式文件系统的存储服务器选择方法
Huang et al. Dynamic virtual machine migration algorithms using enhanced energy consumption model for green cloud data centers
CN107241384A (zh) 一种基于多云架构的内容分发服务资源优化调度方法
CN103067297A (zh) 一种基于资源消耗预测的动态负载均衡方法及装置
CN102404399A (zh) 一种云存储资源模糊动态分配方法
CN104426694B (zh) 一种调整虚拟机资源的方法和装置
CN102904923B (zh) 一种缓解磁盘读取瓶颈的数据读取的方法及系统
CN108924195A (zh) 一种单向心跳机制实现方法、装置、设备及系统
US11301141B2 (en) Optimized selection of subset of storage devices for data backup
Gill et al. Dynamic cost-aware re-replication and rebalancing strategy in cloud system
CN106055271B (zh) 一种基于云计算的重复数据去重选择方法及装置
CN109981702A (zh) 一种文件存储方法及系统
CN108874324A (zh) 一种访问请求处理方法、装置、设备及可读存储介质
CN113821340A (zh) 分布式系统的动态均衡方法、系统、终端及存储介质
CN115840649B (zh) 划分容量块式虚拟资源分配方法及装置、存储介质和终端
CN108664322A (zh) 数据处理方法及系统
Wei et al. Towards multi-resource physical machine provisioning for IaaS clouds
Liu et al. Mobile satellite network virtual mapping algorithm based on node risk
CN108279968A (zh) 一种虚拟机资源的调度方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP02 Change in the address of a patent holder

Address after: 100086 12, 1201, 3 building, 2 South Road, Haidian District Academy of Sciences, Beijing.

Patentee after: BEIJING SOHU NEW MEDIA INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 100084 Beijing Haidian District Zhongguancun East Road 1 hospital 9 building Sohu cyber Building 8 floor 802 room.

Patentee before: BEIJING SOHU NEW MEDIA INFORMATION TECHNOLOGY Co.,Ltd.

CP02 Change in the address of a patent holder
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150708

CF01 Termination of patent right due to non-payment of annual fee