大规模分布式存储(3)-- 数据分布与负载均衡

171 篇文章 147 订阅 ¥29.90 ¥99.00

分布式存储系统能够将数据分布到多个节点,并在多个节点之间进行负载均衡。本文就围绕数据分布和负载均衡,探讨数据分布算法需要考虑的因素、常见的数据分布算法、负载均衡算法等,以期我们在自己设计开发一个新的分布式存储系统时,能够对这些方面有全面的考虑。

一、 数据分布

在介绍常见的数据分布算法前,我们首先来思考一个问题:对数据进行分布时需要考虑什么?

不管是key-value存储、对象存储、块存储、还是列存储等其他类型的存储系统,对这个问题的回答几乎是一致的。下文将介绍在分布式存储系统中做数据分布目标及可选的方案,并总结他们之间的关系及权衡。

1.1 指标

我们假设数据是以key标识的数据块或对象,在一个包含多个存储节点的集群中,数据分布算法需要为每一个给定的key指定一个或多个对应的存储节点负责,数据分布算法有两个基本目标:

  • 均匀性:不同存储节点之间的负载应保持均衡(容量均衡、IO均衡)。
  • 稳定性:每次key通过数据分布算法得到的分布结果应保持基本稳定。

可以看出,这两个目标在一定程度上是相互矛盾的。当有存储节点增加或者删除时,为了保持稳定,应该尽量少的进行数据迁移和重新分布;但是为了保持均匀,就会导致较多的数据迁移和重新分布。所以我们希望在这两个极端情况下,找到一个点来获得合适的稳定性和均匀性。除了上面的两个基本目标外,工程中还需要从以下几个方面考虑数据分布算法的优劣:

  • 性能扩展性:数据分布算法不应该在集群规模扩大后显著的增加运行时间。

  • 节点异构性:不同存储节点(HDD、SSD、NVME)的性能和容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叹了口丶气

觉得有收获就支持一下吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值