分布式存储,是怎么解决增/删节点,还能维持数据一致性的?原理还是没搞太清楚

2017-10-30 07:52:57 +08:00
 liudaqi
假设有三台图片存储服务器 A,B,C,按 IP 通过一致性 hash 算法,加虚拟节点,分别存储各种图片文件。

1. B 服务器突然当机了,B 服务器上的文件,怎么迁移,同时保持可访问?

2. A,B,C 三台服务器全满了,增加 D 服务器。怎么保证所有数据只存到 D 上来?

3. B 服务器 IP 更换了,新 IP 地址怎么无缝接回原 hash 系统里去呢?
1984 次点击
所在节点    问与答
9 条回复
tammy
2017-10-30 08:02:04 +08:00
你这是把三台 nas 认为改名分布式存储?
chih
2017-10-30 08:05:40 +08:00
请学习 Hadoop HDFS paxos,这三个是基础。
liudaqi
2017-10-30 08:19:02 +08:00
@tammy 三台只是举个例子,可以随时增减不是

@chih 原理没理解透,什么工具都行
LxExExl
2017-10-30 08:27:33 +08:00
1 当机了就不行了 但是有备份节点可以访问当机节点的数据
2 不了解
3 加入新节点的时候会重新分配已有节点里的数据 之后新节点入环 就衔接上了
0ZXYDDu796nVCFxq
2017-10-30 08:58:24 +08:00
通过 IP 一致性 hash 算法当然不能扩容和冗余了
你提到图片,那就是对象存储了
冗余是通过多副本来实现的,比如三节点双副本,或者三节点三副本
然后需要中央服务器来管理文件对象,实现冗余,高可用,扩容,迁移等功能

原理差不多都这样,但实现起来就复杂了
块存储难度更高
xomix
2017-10-30 09:15:12 +08:00
事实上文件都是快存储的冗余…………并没有什么一个文件在什么地方的问题。
qianlv7
2017-10-30 09:16:40 +08:00
catror
2017-10-30 09:30:22 +08:00
1. 多副本(不同副本放在不同主机),替换的服务器上来后,同步副本
2. 分布算法加入剩余空间的考虑。另外新服务器上来,也可以做数据迁移来平衡剩余空间
3. 有换 IP 需求的话,可以考虑用给每个节点命名,解析交给 hosts 文件
binux
2017-10-30 10:08:07 +08:00
需要中心节点协调文件分布的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/401781

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX