发布于 2015-12-05 11:02:25 | 626 次阅读 | 评论: 0 | 来源: 网络整理
Mesos使用fail-fast方法来处理错误:如果发生了一个严重的错误,典型情况下Mesos会退出而不是尝试继续运行在一个可能错误的状态。比如,当Mesos被配置为高可用的情况下,当leading master节点发现它已经从Zookeeper集群中分离,它会终止自己的进程。这是一个安全的预防措施,它保证了之前的leader不会继续在一个不安全的状态下通信。
为了确保这样的错误被合理地处理,典型情况下的Mesos生产部署下是使用进程监视器(supervisor, 如systemd或者supervisord)来检测Mesos进程退出时的事件发生。supervisor可以配置为自动重启失败的进程或者通知集群运维人员来分析这种错误情形。
译者注:集群数目为master quorum
Master决策机制是基于 paxos 共识算法的多副本日志作为存储后端实现的(--registry=replicated_log
是唯一支持的存储后端)。
每个master以日志备份者的身份参与集群组中。--quorum
用于设置master的投票过半数。
下表是master集群的投票过半数和容灾节点数的对应表:
master集群节点数 | 投票过半数 | 容灾节点数 |
---|---|---|
1 | 1 | 0 |
3 | 2 | 1 |
5 | 3 | 2 |
... | ... | ... |
2N - 1 | N | N - 1 |
当需要高可用性时,建议使用3或者5个主控。
设置master集群数目时,确保运行中的master节点数目符合上面列表的数字。若多于此数,选举将冲突,日志将损坏!因此建议对运行中的master线程进行准入设置:比如使用添加master节点的主机名白名单。参见MESOS-1546
日志的其他设置,可参见:MESOS-683.
Mesos集群规模扩大后,相应地需要扩大master集群规模以减少故障率。下面是扩编操作过程示例:从3个变为5个,投票过半数从2个变为3个。
--quorum=2
启用3个master节点。--quorum=3
重启原先的3个master节点。--quorum=3
启用另外2个新加入的master节点若要扩大到N个节点,则需要执行N次上面的操作。
NOTE: 从单master节点变为多master集群的时候,需要清空其副本日志状态并开新的,这将清空所有的持久化存储数据,包括 slave节点,维护信息,限额信息等。示例:把一个变为3个主控。
--work_dir
目录下的replicated_log
)。--quorum=2
参数开启该master节点和其他两个新的maser节点。下面是缩编操作过程示例:从5个变为3个,相应的投票过半数从3变2。
--quorum=3
参数启用5个master节点集群。--quorum=3
的设定在运行。--quorum=2
参数重启这三个master节点。若要缩编到N个,则需要执行N次上面的操作。
注意查看上面 注意事项。当一个失效master节点保证不再重新加入master集群的时候,可用安全放心的来启用一个新的_空日志_master节点。
若默认IP(或通过命令行参数 --ip
设置的IP)指向一个内部IP,则外部的程序,比如应用框架调度器,将无法连接到master节点。若不想改ip又想让外部程序访问,可通过设置 --advertise_ip
和 --advertise_port
来让外部程序通过该 IP:port 访问。