我正在使用 Haproxy 对复制的 mysql 主服务器进行负载平衡。我还使用 Heartbeat 和 Pacemaker 进行 Active/Active ip 故障转移,并在两个负载均衡器上使用两个虚拟 ip,以实现 Web 服务器的高可用性。我使用起搏器中的位置在每个负载均衡器上保留一个 VIP,我使用指向 VIP 的循环 DNS 域来负载均衡负载均衡器。到目前为止一切看起来都很好!
| LB1 : | 循环-->| 1.2.3.4 | 心跳起搏器 | 代理 | 192.168.1.1
Run Code Online (Sandbox Code Playgroud)| | | | || LB2 : | 循环-->| 5.6.7.8 | 心跳起搏器 | 代理 | 192.168.1.2
crm配置显示
node $id="394647e0-0a08-451f-a5bf-6c568854f8d1" lb1
node $id="9e95dc4f-8a9a-4727-af5a-40919ac902ba" lb2
primitive vip1 ocf:heartbeat:IPaddr2 \
params ip="1.2.3.4" cidr_netmask="255.255.255.0" nic="eth0:0" \
op monitor interval="40s" timeout="20s"
primitive vip2 ocf:heartbeat:IPaddr2 \
params ip="5.6.7.8" cidr_netmask="255.255.255.0" nic="eth0:1" \
op monitor …Run Code Online (Sandbox Code Playgroud) 这似乎是一个简单的问题,但尽管多次查阅起搏器文档,我似乎还是找不到答案。
我已经使用起搏器设置了 corosync 以共享虚拟 IP。我想要做的就是在备份节点接管资源之前设置一个超时值。如果网络中断 <1-2 分钟,我希望起搏器继续正常运行,而不是触发故障转移,但如果中断超过一定数量,则将其切换。
资源超时 - 但这似乎是等待资源启动的超时,而不是整个集群的超时。
我正在使用具有 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) 我有 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) 我的集群中有两个带有 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) 我正在使用红帽的高可用性附加组件,一切似乎都工作正常,但我有一个问题:
每当我重新启动其中一个节点时7test2,资源组g1就会迁移到7test1(按照设计),然后当7test2回来时,在线资源组g1会迁移回来,就像它具有某种粘性或其他东西一样。
[root@7test1 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.1 (Maipo)
[root@7test1 ~]# rpm -q pcs
pcs-0.9.137-13.el7.x86_64
[root@7test1 ~]# pcs status
Cluster name: 7test
Last updated: Thu Apr 23 17:11:10 2015
Last change: Thu Apr 23 17:00:02 2015
Stack: corosync
Current DC: 7test1.uftwf.local (1) - partition with quorum
Version: 1.1.12-a14efad
2 Nodes configured
3 Resources configured
Online: [ 7test1.uftwf.local 7test2.uftwf.local ]
Full list of resources:
rhevm (stonith:fence_rhevm): …Run Code Online (Sandbox Code Playgroud) 鉴于下面描述的 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) 我有一个 DRBD 集群,其中一个节点关闭了几天。单节点运行良好,没有出现任何问题。当我打开它时,我遇到了一种情况,所有资源都停止了,一个 DRBD 卷是辅助卷,其他卷是主要卷,因为它似乎试图对刚刚打开的节点执行角色交换(ha1 处于活动状态,然后我打开 ha2)为了便于理解日志,在 08:06)
我的问题:
下面是我能想象到的所有可能有用的信息。
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) Pacemaker 生态系统(Corosync 等)在 EC2 环境中有意义吗?直到某个时候,Corosync 需要 IP 多播(在 EC2 上不可用),但我认为它现在已经广播了。仍然,是起搏器等。阿尔。集群在 EC2 上管理自身的正确工具,例如相互监控故障,从而触发创建新实例以替换故障实例?
我想这个问题的一部分是,我已经花了相当多的时间只是理顺所有的球员在这里(心跳,Corosync,OpenAIS的,等等),而且我仍然试图找出这些东西其实都是(超越模糊的术语,例如 Pacemaker 是一个“集群资源管理器”,而 Corosync 提供“可靠的消息传递和成员资格基础设施”)。
因此,如果我的问题本身有点笨拙或不完全合理,我深表歉意。任何见解将不胜感激。谢谢。
我正在使用起搏器/corosync 配置集群 2 节点,我对此有一些疑问(也许是最佳实践:我远非专家)
**OS:** redhat 7.6
I configurated the cluster with those properties
- **stonith-enabled:** true
- **symmetric-cluster:** true (even if is default value i think)
and added in corosync.conf
- **wait_for_all:** 0 (i want a Node be able to start/work even if his twin is KO)
- **two_nodes:** 1
Considering the fencing:
- Using ILO of blade HP (ILO1 for Node1, ILO2 for Node2)
I read that it was sometimes a good practice to prevent a node suicide, …Run Code Online (Sandbox Code Playgroud)