标签: corosync

Heartbeat、Pacemaker 和 CoroSync 的替代品?

除了典型的 Heartbeat/Pacemaker/CoroSync 组合之外,在 Linux 上是否还有其他主要的自动故障转移替代方案?特别是,我正在 EC2 实例上设置故障转移,它只支持单播 - 没有多播或广播。我专门尝试处理我们拥有的少数软件,这些软件还没有自动故障转移功能并且不支持多主环境。这包括 HAProxy 和 Solr 等工具。

我有 Heartbeat+Pacemaker 工作,但我对此并不感到兴奋。以下是我的一些问题:

  • 心跳 - 就其本身而言,仅限于两个节点。我想要 3+。
  • 起搏器 - 无法自动配置。集群必须以法定人数运行,然后它仍然需要手动配置。
  • CoroSync - 不支持单播。

起搏器工作得很好,尽管它的功率使其难以设置。Pacemaker 的真正问题在于没有简单的方法来自动化配置。我真的很想启动一个 EC2 实例,安装 Chef/Puppet 并在没有我干预的情况下启动整个集群。

linux high-availability heartbeat pacemaker corosync

27
推荐指数
3
解决办法
4万
查看次数

为什么要在 Pacemaker 集群中禁用 DRBD

DRBD 文档(在将 DRBD 与 Pacemaker 集群集成部分)建议在 Pacemaker 集群中禁用 DRBD:

如果您正在使用 DRBD OCF 资源代理,建议您将 DRBD 启动、关闭、升级和降级专门推迟到 OCF 资源代理。这意味着你应该禁用DRBD初始化脚本:chkconfig drbd off

在 systemd 下,这相当于systemctl disable drbd.service.

尽管有此建议,但启用 DRBD 是否有任何危害?这个想法是启用 DRBD,但禁用 Corosync 和 Pacemaker,以便在集群节点出现故障并重新启动后,它将继续接收 DRBD 同步的数据,但将保持“被动”状态。这应该允许在故障节点重新进入集群之前对其进行分析,但同时仍将实时数据保存在两个集群节点上。该建议背后的理由是什么?

drbd pacemaker corosync

8
推荐指数
1
解决办法
1506
查看次数

MySQL:Pacemaker 无法将失败的 master 作为新的 slave 启动?

  • 起搏器-1.0.12-1
  • corosync-1.2.7-1.1

我将按照本指南为 MySQL 复制(1 个主和 1 个从)设置故障转移:https : //github.com/jayjanssen/Percona-Pacemaker-Resource-Agents/blob/master/doc/PRM-setup-guide .rst

这是输出crm configure show

node serving-6192 \
    attributes p_mysql_mysql_master_IP="192.168.6.192"
node svr184R-638.localdomain \
    attributes p_mysql_mysql_master_IP="192.168.6.38"
primitive p_mysql ocf:percona:mysql \
    params config="/etc/my.cnf" pid="/var/run/mysqld/mysqld.pid"
socket="/var/lib/mysql/mysql.sock" replication_user="repl"
replication_passwd="x" test_user="test_user" test_passwd="x" \
    op monitor interval="5s" role="Master" OCF_CHECK_LEVEL="1" \
    op monitor interval="2s" role="Slave" timeout="30s"
OCF_CHECK_LEVEL="1" \
    op start interval="0" timeout="120s" \
    op stop interval="0" timeout="120s"
primitive writer_vip ocf:heartbeat:IPaddr2 \
    params ip="192.168.6.8" cidr_netmask="32" \
    op monitor interval="10s" \
    meta is-managed="true"
ms ms_MySQL p_mysql \ …
Run Code Online (Sandbox Code Playgroud)

failover mysql-replication high-availability pacemaker corosync

7
推荐指数
1
解决办法
1万
查看次数

资源传输前的 Pacemaker/corosync 超时

这似乎是一个简单的问题,但尽管多次查阅起搏器文档,我似乎还是找不到答案。

我已经使用起搏器设置了 corosync 以共享虚拟 IP。我想要做的就是在备份节点接管资源之前设置一个超时值。如果网络中断 <1-2 分钟,我希望起搏器继续正常运行,而不是触发故障转移,但如果中断超过一定数量,则将其切换。

资源超时 - 但这似乎是等待资源启动的超时,而不是整个集群的超时。

cluster timeout pacemaker corosync

6
推荐指数
1
解决办法
3242
查看次数

Corosync 的安全 IPTables 规则

我有两个运行 Corosync 和 Pacemaker 的HA 负载平衡器(hollywoodwolfman)。所述eth1接口被连接到广域网,以及eth0接口的LAN,使用虚拟IP作为网关用于后端服务器。的eth1IPhollywoodxxx.xxx.195.45, 的eth1IPwolfmanxxx.xxx.195.46。该bindnetaddr在Corosync是xxx.xxx.195.32,同为广域网的网络地址和端口Corosync是默认的5405

两台服务器上的相关IP表规则是:

*filter

--flush

:INPUT DROP

--append INPUT --protocol udp --destination-port 5404 --jump ACCEPT
--append INPUT --protocol udp --destination-port 5405 --jump ACCEPT
Run Code Online (Sandbox Code Playgroud)

这种设置似乎做工精细,但最初我加--in-interface eth1--source xxx.xxx.195.46wolfman,并--source xxx.xxx.195.45hollywood。大多数情况下这似乎有效,但重新启动被动平衡器有时会终止负载平衡器之间的通信,将这些错误写入系统日志:

[TOTEM] 由于操作系统或网络故障,图腾无法形成集群。此消息的最常见原因是本地防火墙配置不正确。

因此,我认为所有 Corosync 流量直接在两个负载均衡器之间的简单信念似乎eth1是错误的,或者是其他原因导致了问题。

我想将5404/5405IPTables 中的端口锁定到集群。我需要做什么才能实现这一目标?

编辑: …

iptables pacemaker corosync

6
推荐指数
1
解决办法
1万
查看次数

不同网络的 Corosync 单播问题

我正在使用具有 2 个根服务器和 1 个故障转移 ip 的设置(在我们的登台系统上)。作为软件,我们使用 corosync 和起搏器。Corosync 配置为通过端口 5405 进行多播通信。--> 一切正常。

现在我想在带有故障转移 ip 的 2 个根服务器上部署这个系统。好吧,多播通信将不起作用,因为根服务器没有直接连接;它们与路由器相连并位于不同的数据中心

现在我根据udpu支持更改了corosync.conf(如示例)。我正在使用 corosync v.1.4.1

corosync.conf:

compatibility: whitetank

totem {
        version: 2
        secauth: off
        interface {
                member {
                        memberaddr: A.A.A.A
                }
                member {
                        memberaddr: B.B.B.B
                }
                ringnumber: 0
                bindnetaddr:A.A.A.A
                mcastport: 5405
        }
transport: udpu
}

logging {
    fileline: off
        to_stderr: no
        to_logfile: yes
        to_syslog: yes
        logfile: /var/log/cluster/corosync.log
        debug: off
        timestamp: on
        logger_subsys {
                subsys: AMF
                debug: off
        }
}

service {
    name: pacemaker
    ver: …
Run Code Online (Sandbox Code Playgroud)

centos pacemaker unicast corosync

5
推荐指数
0
解决办法
4756
查看次数

DRBD + corosync +pacemaker - 故障转移后服务器将无法连接

我有 2 台服务器配置了 drbd、corosync 和pacemaker。一切工作正常,如果主服务器发生故障,则主服务器将成为辅助服务器,辅助服务器将成为主服务器。

但是如果第一台服务器在故障转移后再次出现,drbd 将无法再次连接,我必须执行

drbdadm 连接所有

在现在的中学。

这是来自 server1 的日志,其中包含我所做的所有输入(https://www.refheap.com/95997):

root@server1:~# ifdown eth4


Jan 12 08:11:37 server1 kernel: [237958.935578] ixgbe 0000:04:00.0: removed PHC on eth4
Jan 12 08:11:43 server1 kernel: [237965.430849] cib[2877]: segfault at 0 ip 00007f7d342c8aca sp 00007fffaba39e58 error 4 in libc-2.19.so[7f7d34247000+19f000]
Jan 12 08:11:44 server1 kernel: [237966.427423] crmd[2878]: segfault at 0 ip 00007eff7d291aca sp 00007fffaae51538 error 4 in libc-2.19.so[7eff7d210000+19f000]
Jan 12 08:11:46 server1 kernel: [237967.955014] drbd r0: peer( Secondary -> Unknown ) conn( …
Run Code Online (Sandbox Code Playgroud)

failover high-availability drbd pacemaker corosync

5
推荐指数
1
解决办法
2544
查看次数

使用 drbd 故障回复时的 Pacemaker 错误

我的集群中有两个带有 drbd+pacemaker+corosync 的节点当第一个节点出现故障时,第二个节点会承担服务并且没问题,但是当我们必须进行故障回复(节点 1 重新联机)时,它会显示一些错误并且集群停止工作。

这是一个 CentOS 6 集群,内核为 2.6.32-504.12.2.el6.x86_64 和这些包:

kmod-drbd83-8.3.16-3、drbd83-utils-8.3.16-1、corosynclib-1.4.7-1、corosync-1.4.7-1、pacemaker-1.1.12-4、pacemaker-cluster-libs- 1.1.12-4、pacemaker-libs-1.1.12-4、pacemaker-cli-1.1.12-4。

Drbd 配置:

    resource r0
{
    startup {
        wfc-timeout 30;
        outdated-wfc-timeout 20;
        degr-wfc-timeout 30;
    }

net {
    cram-hmac-alg sha1;
    shared-secret sync_disk;
    max-buffers 512;
    sndbuf-size 0;
}

syncer {
    rate 100M;
    verify-alg sha1;
}

on XXX2 {
    device minor 1;
    disk /dev/sdb;
    address xx.xx.xx.xx:7789;
    meta-disk internal;
}

on XXX1 {
    device minor 1;
    disk /dev/sdb;
    address xx.xx.xx.xx:7789;
    meta-disk internal;
}
}
Run Code Online (Sandbox Code Playgroud)

同步:

compatibility: whitetank

totem {
    version: 2
    secauth: …
Run Code Online (Sandbox Code Playgroud)

ext4 drbd pacemaker nfs4 corosync

5
推荐指数
1
解决办法
1027
查看次数

可以在 Pacemaker 组中设置资源的特定顺序吗?

鉴于下面描述的 Pacemaker/Corosync 资源配置,是否可以在资源组内的特定位置添加资源?配置是使用 RHEL 提供的集群附加组件的 CentOS 7.2。

这是一个 NFS 服务器集群,Pacemaker 处理 NFS 守护进程、卷、导出、虚拟 IP 和 NFS 客户端通知。

当我想将 NFS 挂载(exportfs 资源)添加到集群设置时,它最终会列nfs-notify 资源之后。这以丑陋的方式破坏了集群。

我找到了基本pcs resource order命令,它们似乎允许指定资源 X 需要在资源 Y 之前运行,但这不可扩展。

这可能吗?

[root@zfs1-node1 ~]# pcs status
Cluster name: zfs1
Last updated: Tue Jan  5 04:09:11 2016      Last change: Tue Jan  5 04:08:15 2016 by root via cibadmin on zfs1-node1
Stack: corosync
Current DC: zfs1-node1 (version 1.1.13-10.el7-44eb2dd) - partition with quorum
2 nodes and 9 …
Run Code Online (Sandbox Code Playgroud)

nfs centos pacemaker corosync rhel7

5
推荐指数
1
解决办法
2075
查看次数

Corosync/Pacemaker/DRBD 弹性调整

我有一个 DRBD 集群,其中一个节点关闭了几天。单节点运行良好,没有出现任何问题。当我打开它时,我遇到了一种情况,所有资源都停止了,一个 DRBD 卷是辅助卷,其他卷是主要卷,因为它似乎试图对刚刚打开的节点执行角色交换(ha1 处于活动状态,然后我打开 ha2)为了便于理解日志,在 08:06)

我的问题:

  • 谁能帮我弄清楚这里发生了什么?(如果这个问题被认为太费力,我愿意考虑付费咨询来获得正确的配置)。
  • 作为一个附带问题,如果情况自行解决,是否有办法让电脑自行清理资源?如果故障转移后故障状况清除,LinuxHA 集群不需要干预,所以我要么被宠坏了,要么不知道如何实现这一点。

下面是我能想象到的所有可能有用的信息。

bash-5.1# cat /proc/drbd 
version: 8.4.11 (api:1/proto:86-101)
srcversion: 60F610B702CC05315B04B50 
 0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r-----
    ns:109798092 nr:90528 dw:373317496 dr:353811713 al:558387 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
 1: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
    ns:415010252 nr:188601628 dw:1396698240 dr:1032339078 al:1387347 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
 2: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
    ns:27957772 nr:21354732 dw:97210572 dr:100798651 al:5283 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
Run Code Online (Sandbox Code Playgroud)

集群状态最​​终为

bash-5.1# …
Run Code Online (Sandbox Code Playgroud)

cluster drbd pacemaker corosync

5
推荐指数
1
解决办法
460
查看次数