关于storage扩缩容的问题

好的,谢谢。

1.我想确认一下,多副本情况下,ABC 3副本,C换成D,此时C offline,D online。然后balance data remove C,此时D加入集群后是追加日志的方式同步数据,还是类似传送快照的方式同步数据?换句话说,D加入AB这个集群后,AB中的leader在给D同步数据时,是否会类似离线节点重新加入集群,通过比较D的log和leader发过来的log来判断是否追加日志。 而不是直接全量数据复制。

2.有考虑对ip和parts的映射关系做优化吗?比如加一层,维护一张storageID和parts的映射,以及hosts和storageID的映射,storage启动时需要在配置指定自己的storageID。这样一来,storage host就能随便换了。对于迁移或者换机器等需求都挺方便的。 :rofl:

1 个赞
  1. 是追加日志的。
  2. 一个是 part 信息对集群特别重要,动态的去改,有可能影响 raft 选举,另外就是这种场景多副本 balance 也更好一点,因为有可能在你下线过程中,有新的数据写进来,再加进来的节点还是要追数据的。

对于换机器的话,后面我们有 br 工具,你只要复制快照就好了。

1 个赞

好的,谢谢

下午好,我输入这条命令curl -Gs “http://xxx:xxx/replace?from=xxx&to=xxx”, 返回的错误信息是write to kvstore failed, operator() , 162 。我想问下这是什么错误呢 :sweat_smile: 看起来是MetaHttpReplaceHostHandler.cpp 第162的报错,但是不知道是拿part就错了还是raft同步错了。

是不是只能给leader角色的meta发这个http请求,我发现给leader机器上的meta发这个可以成功,follower角色会报这个错误

是的,只能发给 meta 的 leader

好的,那个链接说的是给所有meta发这条命令,有一点点误导 :rofl:

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。