我有一个似乎很容易解决的问题,但我不知道解决它的正确方法。
我已经在谷歌上搜索了将近一周的解决方案,但没有运气。(我发现的只是这个,但没有清晰干净的解决方案)
我创建了一个两节点集群 NOT FOR PRODUCTION,在两个节点上都具有以下配置:
- Debian Wheezy 7.7
- Corosync v2.3.4
- 起搏器 v1.1.12
- Libqb v0.17.1
- 簇胶 v1.0.12
- 资源代理 v3.9.6
- crmsh v2.1.0
我已经按照本指南从源代码安装了集群软件,以在 Debian 上编译集群软件
在安装之前,我确保没有旧的 corosync 或起搏器依赖项。
安装后,我配置了我的集群,编辑文件(在两个节点上)corosync.conf 并创建和复制 authkey
# Please read the corosync.conf.5 manual page
totem {
version: 2
# crypto_cipher: none
# crypto_hash: none
secauth: off
cluster_name: my-cluster
# interface {
# ringnumber: 0
# bindnetaddr: 10.16.2.0
# mcastport: 5405
# ttl: 1
# }
transport: udpu
}
logging {
fileline: off
to_logfile: yes
to_syslog: yes
logfile: /var/log/cluster/corosync.log
debug: off
timestamp: on
logger_subsys {
subsys: QUORUM
debug: off
}
}
nodelist {
node {
ring0_addr: 10.16.2.50
name: pc1
nodeid: 1
}
node {
ring0_addr: 10.16.2.51
name: pc2
nodeid: 2
}
}
quorum {
# Enable and configure quorum subsystem (default: off)
# see also corosync.conf.5 and votequorum.5
provider: corosync_votequorum
two_node: 1
}
我已经在起搏器上配置了资源
node 1: pc-1
node 2: pc-2
primitive cluster-apache2 apache \
params configfile="/etc/apache2/apache2.conf" httpd="/usr/sbin/apache2" port=80 \
op monitor interval=10s timeout=60s \
op start timeout=40s interval=0 \
op stop timeout=60s interval=0
primitive cluster-ip IPaddr2 \
params ip=10.16.2.240 cidr_netmask=24 \
op monitor interval=10s timeout=20s \
op start timeout=20s interval=0 \
op stop timeout=20s interval=0
primitive cluster-tftp lsb:tftpd-hpa \
op monitor interval=30 \
op start interval=0 timeout=120s \
op stop interval=0 timeout=120s
colocation my-cluster-dependency inf: cluster-ip cluster-apache2 cluster-tftp
property cib-bootstrap-options: \
dc-version=1.1.12-561c4cf \
cluster-infrastructure=corosync \
stonith-enabled=false \
cluster-name=my-cluster
在完成所有配置之后,我已经开始使用 corosync 和起搏器
/etc/init.d/corosync start
/etc/init.d/pacemaker/start
集群已启动并正在运行,但我找不到在引导时启动集群的方法
root@PC:~# crm_mon -1
Last updated: Fri Jun 5 18:05:06 2015
Last change: Mon Jun 1 18:51:57 2015 via cibadmin on pc-1
Stack: corosync
Current DC: pc-1 (1) - partition with quorum
Version: 1.1.12-561c4cf
2 Nodes configured
3 Resources configured
Online: [ pc-1 pc-2 ]
cluster-ip (ocf::heartbeat:IPaddr2): Started pc-1
cluster-apache2 (ocf::heartbeat:apache): Started pc-1
cluster-tftp (lsb:tftpd-hpa): Started pc-1
我尝试将 init.d 脚本添加到运行级别,但我没有得到任何响应并且对 corosync 没有影响
root@PC:~# update-rc.d corosync defaults
update-rc.d: using dependency based boot sequencing
起搏器上的这个错误
root@PC:~# update-rc.d pacemaker defaults
update-rc.d: using dependency based boot sequencing
insserv: Service corosync has to be enabled to start service pacemaker
insserv: exiting now!
update-rc.d: error: insserv rejected the script header
我遵循了关于 clusterlabs 的指南,但我找不到 Debian 和 crmsh 的解决方案(在官方指南中,他们使用 pcs 而不是 crmsh,但即使这样我也找不到使集群在启动时运行的正确程序时间)
我可以添加的另一个信息是,我还尝试使用 crmsh 启动和运行集群,试图找到一种让它在启动时运行的方法。如果我运行 crm 集群启动(而不是 init.d 脚本)corosync 和起搏器启动并且集群开始运行,但是如果我运行命令停止我得到这个错误
crm(live)# cluster stop
ERROR: cluster.stop: Failed to stop pacemaker service:
使集群在启动时运行的正确方法是什么?必须启动和启用什么守护程序?
起搏器应该由corosync启动吗?我找到了本指南,但提到的参数 service-name 和 service-ver 在我的 corosync 配置中不起作用。
service {
name: pacemaker
ver: 0
}
希望有人可以帮助我解决这个问题
提前致谢