所以我在使用STONITH和双节点DRBD / Pacemaker / Corosync集群来复制MySQL数据时看到了很多冲突的观点。 我可以在Pacemaker网站find的例子似乎closures了,但很多其他地方说,你应该保持它…..我的设置将是2个节点与2个接口,一个物理连接到另一台机器,另一个连接到一个开关。 在这种情况下,如果我有冗余的通信是STONITH必要的? 如果一台服务器失去了两个networking连接,它将不会收到任何MySQL数据,当它恢复时,我打算将粘性设置为无限,所以它(不应该)不会成为主人。 在这种情况下,STONITH是必要的还是可取的?
要做的最好的事情就是testing在不同的失败模式下实际发生的事情,以确保没有任何一次失败可能导致MySQL服务器成为主人。
testing禁用一台服务器上的互联网连接。 看看在两台服务器上会发生什么,并观察将其恢复时发生的情况。
对任何冗余连接执行相同操作。 然后同样禁用所有networking连接一次。
不在两个节点集群上执行STONITH的一个原因是,两个节点试图杀死另一个节点并且实际上取得成功相当容易。 您需要testing您的设置,以确保它们不会同时closures,或者两者都保持以主服务器的forms运行,并使数据库不同步。
另一件事我build议,而你正在testing它,在它投入生产之前:有意地打破它。 做一些会导致mysql和drbd不同步的东西,并学习如何解决它。 写下你需要做什么来解决它。 因为在你真的需要之前知道如何去做这件事要好得多。