云存储系统和数据存储方法_3

文档序号:8433889阅读:来源:国知局
案系统不会因此受到过多的影响。
[0063] (2)权重(wei曲t)也是环中的重要概念。当本方案系统的存储服务器节点102的 存储容量大小不一时,通过权重参数保证分区的均匀分布。容量较大的存储设备负责更多 的分区,容量较小的存储设备只需要负责较少的分区,因此容量较大的分区具有较大的权 重,而容量较小的分区权重也较小。
[0064] (3)具体地,本发明在环中使用了一致性哈希算法。一致性哈希算法的目的主要是 为了解决分布式网络中的热点问题。一般来讲,衡量一个哈希算法的4个指标:
[0065] 1)平衡性炬alance)
[0066] 平衡性是指化sh的结果能够尽可能分布均匀,充分利用所有缓存空间。
[0067] 2)单调性(Monotonicity)
[0068] 单调性是指如果已经有一些内容通过哈希算法分派到了相应的缓冲中,又有新的 缓冲加入到系统中。哈希的结果应能够保证原有已分配的内容可W被映射到新的缓冲中 去,而不会被映射到旧的缓冲集合中的其他缓冲区。
[0069] 3)分散性(Spread)
[0070] 分散性定义了分布式环境中,不同终端通过化sh过程将内容映射至缓存上时,因 可见缓存不同,化sh结果不一致,相同的内容被映射至不同的缓冲区。
[0071] 4)负载(Load)
[0072]负载是对分散性要求的另一个缔度。既然不同的终端可W将相同的内容映射到不 同的缓冲区中,那么对于一个特定的缓冲区而言,也可能被不同的用户映射为不同的内容。
[0073] 本方案在换的设计中使用哈希算法的主要目的是在改变集群的node数量时(增 加/删除服务器),能够尽可能少地改变已存在的键(key)和节点(node)的映射关系,W满 足单调性。那么,对于一致性哈希算法的具体应用思路,下面结合图4至图7进行详细说明。 其中,图4示出了根据本发明的一个实施例的哈希环空间的结构示意图;图5示出了根据本 发明的一个实施例的一致性哈希算法的数据移动的示意图;图6示出了根据本发明的一个 实施例的一致性哈希算法构造虚拟节点的示意图;图7示出了根据本发明的一个实施例的 虚拟节点与存储服务器节点之间的对应关系的示意图。
[0074]如图4所示,根据本发明的一个实施例的哈希环空间结构中,存储服务器1、存储 服务器2等在存储对象时,采用的步骤包括:
[00巧]a、首先,求出每个存储服务器节点(机器名或者是IP地址)的哈希值,并将其分 配到一个如图4所示的圆环区间上(该里取0-232)。
[0076]b、然后,求出需要存储对象的哈希值,并根据该哈希值将其分配到上述圆环上。
[0077]C、最后,从对象映射到的位置开始顺时针查找,并将对象保存到找到的第一个存 储服务器节点上。
[0078] 基于上述存储方式,则对于存储服务器节点的增减,将极大地降低对数据的迁移 量。比如图5所示,假设在环形的哈希空间中,存储服务器5被映射在存储服务器3和存储 服务器4之间,那么受影响的将仅是;沿存储服务器5逆时针遍历,直到下一个存储服务器 (即存储服务器3)之间的对象(该些对象原本映射到存储服务器4上)。
[0079] 考虑到哈希算法并不是保证绝对的平衡,尤其node较少的话,对象并不能被均匀 的映射到node上。为了解决该种情况,一致性哈希引入了 "虚拟节点"的概念。如图6所 示,"虚拟节点"(图中较大的圆形节点)是实际节点在环形空间的复制品,一个实际节点对 应了若干个"虚拟节点","虚拟节点"在哈希空间中W哈希值排列。
[0080] 具体地,图7示出了一种具体实施例下的虚拟节点与实际节点之间的对应关系。 如图7所述,虚拟节点包括V1、V2……V8,而实际节点包括C1、C2……C4。对象1、对象2等 经过哈希算法的运算后,被分配至对应的虚拟节点,而利用虚拟节点与实际节点之间的对 应关系,比如V1、V2与C1之间的对应关系等,则最终能够将对象1、对象2等存储至对应的 实际节点中,且确保了在实际节点的数量较少时,仍然能够实现均匀的对象分布。
[0081] 图8示出了根据本发明的一个实施例的数据存储方法的示意流程图。
[0082] 如图8所示,根据本发明的一个实施例的数据存储方法,用于云存储系统,所述数 据存储方法包括:
[0083] 步骤802,获取待存储对象;
[0084] 步骤804,复制所述待存储对象,得到包含所述待存储对象在内的多个对象副本;
[0085] 步骤806,将所述多个对象副本均匀地存储至所述云存储系统中的不同数据域。
[0086] 在该技术方案中,通过复制待存储对象,并将得到的多个对象副本均匀分布在存 储区域不同的数据域中,实现对象的兀余备份,使得存储服务器节点中的单个数据域发生 故障时,仍可通过其他数据域来提供服务,从而避免了单点故障引起的数据丢失,有助于提 高数据的安全性和云存储系统的稳定性。
[0087] 其中,获取待存储对象的过程可W是用户请求上传,也可W是对虚拟机镜像、照 片、电子邮件等数据的定期备份。同时,数据域的选取非常的灵活,可W是某个设备、服务 器、机架、甚至是数据中也,可W根据实际需求进行设置。
[0088]作为一种较为优选地实施例,通过哈希算法对所述多个对象副本执行存储操作。
[0089] 在该技术方案中,利用哈希算法的特性,能够实现对多个对象副本的均匀分布,从 而使得云存储系统中的各个数据域之间更为平衡,避免单点故障。进一步地,上述技术方案 优选一致性哈希算法,W解决如节点较少时,无法实现多个对象副本的均匀分布问题。
[0090] 作为一种较为优选地实施例,根据所述云存储系统中的每个存储节点的容量大 小,配置每个存储节点的实际占用空间。
[0091] 在该技术方案中,实际上引入了 "权重"的概念,即W每个存储节点的容量大小占 总存储容量的比例来表示。由于云存储系统中的存储节点容量大小不尽相同,则通过为容 量大的存储服务器配置较大的权重,容量小的服务器配置较小的权重,从而系统在分配待 存储对象的存储区域时,应该分配更多的待存储对象至容量大的存储服务器,分配较少的 待存储对象至容量小的存储服务器,W实现性能上的均衡,有助于提升云存储系统的运行 性能和可靠性。
[0092] 在具体的实施例中,例如:现有A和B两台存储服务器的容量大小分别为80G和 20G,即总存储容量大小为100G,则A服务器的权重可W为80% (80/100),B服务器的权重 可W为20% (20/100)。若有40G的文件需要存储,则根据上述权重配置方案,A服务器中应 存储32G(40GX80%)的文件,而B服务器应存储8G(40GX20%)的文件。
[0093] 作为一种较为优选地实施例,获取所述待存储对象的标识,W及所述多个对象副 本分别对应的存储位置,W建立所述待存储对象的标识和所有存储位置之间的映射关系; 在接收到对所述待存储对象的操作请求时,根据所述待存储对象的标识和所述映射关系, 查找并获取所述待存储对象。
[0094] 在该技术方案中,通过"哈希"算法在所述存储对象及副本与其对应存储位置之间 建立映射关系,不仅可保证存储对象及副本均匀的放在不同的域中,而且在接收到对存储 对象的操作请求时,根据存储对象的标识及映射关系就可W查询并获取存储对象。
[0095] 其中,利用"哈希"算法建立映射的方法可W是;(1)检查存储对象的名称是否符 合规定。(2)通过"哈希"计算出存储对象名称对应的哈希值,在环形哈希空间中确定该存 储对象的存储位置。(3)所述存储对象及副本通过哈希值与其对应存储位置之间建立映射 关系。
[0096] 需要说明的是;不仅对多个对象副本的存储可采用上述方法存储,对于上述技术 方案中提到的账户、容器同样可W采取映射到哈希环上的方法进行存储管理。
[0097] 本领域技术人员应该理解的是,对于存储对象及副本与其存储位置之间建立映射 的方式还存在很多,上述技术方案并不用于具体的限定。比如在一些其他的技术手段中,用 户还可W通过存储对象的IP地址来分配存储位置。
[0098] 作为一种较为优选地实施例,对发出所述操作请求的用户身份信息进行认证;W 及根据认证结果确定是否响应于所述操作请求。
[0099] 在该技术方案中,有限的存储空间作为一种资源,对不同的用户会设定有不同的 权限。当用户发出操作请求时,首先根据用户的身份信息,确定其拥有的权限,根据权限有 无来确定是否响应操作请求。
[0100] 具体来说,用户可分为普通用户和付费用户,普通用户有1G的存储空间,可实现 上传、下载,存储对象定期保存的功能;付费用户有10G或更多的空间,可实现上传、下载、 实时查看、存储对象永久保存等功能。当用户点击存储对象请求实时查看文件内容时,则系 统需对用户的身份信息进行认证,如果为普通用户,则无实时查看权限,提示用户没有实时 查看权限;如果为付费用户,则有实时查看权限,可响应用户的实时查看请求
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1