AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 819695
Accepted
Bill Karwin
Bill Karwin
Asked: 2016-12-09 17:11:13 +0800 CST2016-12-09 17:11:13 +0800 CST 2016-12-09 17:11:13 +0800 CST

如何禁止在故障转移数据中心启动 Heartbeat 资源?

  • 772

我在每个数据中心都有一对 CentOS Linux 服务器。它们在每个数据中心内都有故障转移,由心跳和DRBD管理(我知道这些是过时的工具,但它们很稳定,所以没有改变它们的愿望)。

它们还具有数据中心间切换的能力,使东部数据中心处于活动状态,而西部数据中心变为被动。但这是一个手动工程过程,没关系。

西部数据中心目前是主动的,东部数据中心是被动的。

serverA.west <-> serverB.west  <-----------> serverA.east <-> serverB.east
     ACTIVE DATA CENTER                           PASSIVE DATA CENTER

服务器可以运行 mysqld 和 Java 应用程序。

此服务器上的 Java 应用程序应仅在活动数据中心(即 serverA.west)中的 Primary 主机上运行。如果 Java 应用程序的另一个实例在辅助主机 (serverB.west) 或被动数据中心的任一主机上启动,则存在脑裂问题的风险。

今天serverA.east重新启动,导致心跳切换到serverB.east。Heartbeat 然后尽职尽责地在 serverB.east 上启动了 Java 应用程序,这是我们不希望发生的。

Heartbeat 也在 serverB.east 上启动了 mysqld,这是正确的,因为 MySQL 复制应该继续进行,不断复制来自西部数据中心的更改,以便东部 DC 准备好在需要时接管。

/etc/ha.d/haresources 将 mysqld 和 Java 应用程序的 /etc/init.d 脚本命名为要启动的资源。

我们希望允许 heartbeat 管理被动数据中心中的 A/B 对。它应该在故障转移时启动 mysqld,而不是 Java 应用程序。但是,如果东部数据中心是活动的,那么心跳应该在心跳自动故障转移期间启动 Java 应用程序。

什么是实现这个的好方法?

我希望的是在我们将活动数据中心从西向东切换时需要一步配置的东西。理想情况下,它应该是防错的,即应该保证恰好有一个数据中心被配置为活动的。

linux centos high-availability failover heartbeat
  • 2 2 个回答
  • 289 Views

2 个回答

  • Voted
  1. Bob Grandys
    2016-12-10T06:47:10+08:002016-12-10T06:47:10+08:00

    我认为,您不能仅使用(本机)心跳来做到这一点。你可以使用起搏器,他可以使用法定人数,但是... 你没有法定人数。想象一下,数据中心之间的链接失败了——东西方的每个人都会认为,他只是一个幸存者,他们每个人都启动应用程序,将 mysql 切换到主模式等。你会得到真正的脑裂位置。
    恕我直言,如果你真的需要 HA,你需要第三个数据中心,然后将 MySQL 迁移到带有 Galera 集群的 MariaDB,并在它们上启动你的 Java 应用程序,甚至可能处于主动-主动-主动模式。

    • 2
  2. Best Answer
    Bill Karwin
    2016-12-23T11:31:03+08:002016-12-23T11:31:03+08:00

    我想出的解决方案是保留两个版本的 /etc/ha.d/haresources。

    root:/etc/ha.d$ ls -l
    lrwxrwxrwx 1 root root   16 Dec 22 10:31 haresources -> haresources-dark
    -rw-r--r-- 1 root root  151 Dec 22 10:22 haresources-dark
    -rw-r--r-- 1 root root  161 Dec 22 10:30 haresources-live
    

    “haresources-dark”用于 DR 数据中心(东部)的所有服务器。我使用符号链接,因此 haresources 指向 haresources-dark。

    两个版本的 haresources 之间的唯一区别是提到了 Java 应用程序。在暗版中,Java 应用程序不会启动。

    如果/当我们切换到 DR 数据中心时,我们将不得不手动更新这些符号链接。但这是可以接受的。

    这不是防错的。我必须在 DR 数据中心的所有心跳管理服务器上手动设置符号链接。没有什么可以强制要求一个数据中心是“暗的”而另一个是“活的”。目前这将是一个手动解决方案。

    • 0

相关问题

  • 多操作系统环境的首选电子邮件客户端

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve