1. 介绍
要实现 Master 服务的故障转移,高可用, 至少需要部署3个Master server节点。
2. 如何工作
Master server节点通过Raft协议选举出一个leader节点。leader节点负责分配file id 和管理所有的Volume。其他的Master server节点只负责把请求转发给leader节点。
如果leader节点挂了,其他的节点会别选举成为leader节点。所有的Volume节点都会把Volume的信息以心跳的方式发送给新的leader节点。
在这个过渡阶段,新的leader节点会有短暂的一瞬间只有一部分的Volume信息,另外一部分Volume server会处于不可写入的状态直到新的leader节点接收到心跳信号。
3. 启动多个Master server
## 启动三个master server
./weed master -ip=192.168.56.101 -port=9333 -mdir=./1 -peers=192.168.56.101:9333,192.168.56.101:9334,192.168.56.101:9335
./weed master -ip=192.168.56.101 -port=9334 -mdir=./2 -peers=192.168.56.101:9333,192.168.56.101:9334,192.168.56.101:9335
./weed master -ip=192.168.56.101 -port=9335 -mdir=./3 -peers=192.168.56.101:9333,192.168.56.101:9334,192.168.56.101:9335
## 启动三个Volume server
./weed volume -dir=./1 -port=8080 -mserver=192.168.56.101:9333,192.168.56.101:9334,192.168.56.101:9335
./weed volume -dir=./2 -port=8081 -mserver=192.168.56.101:9333,192.168.56.101:9334,192.168.56.101:9335
./weed volume -dir=./3 -port=8082 -mserver=192.168.56.101:9333,192.168.56.101:9334,192.168.56.101:9335
4. 是否可以在一个已经运行中的SeaweedFS集群中添加新的Master server节点
添加新的Master server节点前,需要把现存的所有Master server节点都先停止,然后再根据新的Master列表启动。