设为首页 收藏本站
查看: 1274|回复: 0

[经验分享] corosync+pacemaker实验记录

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-1-3 08:47:12 | 显示全部楼层 |阅读模式
OS: RHEL 6.5 64bit
corosync: 1.4.7 --yum方式安装
pacemaker: 1.1.2 --作为corosync依赖包自动安装

pacemaker是heartbeat发展到3.0独立出来的产物,红帽6.0系列上,使用yum安装corosync,默认会安装pacemaker作为CRM。
pacemaker常用配置工具:crmsh pcs
crmsh需要独立安装rpm包

主要配置文件:

1
2
/etc/corosync/corosync.conf
/etc/crm/crm.conf



实验主机:A B

1
2
3
4
5
资源    RA提供方(crm->ra->classes;crm->ra->info XXX)
webip    ocf:heartbeat:Ipaddr2
webfs    ocf:heartbeat:Filesystem
webdb    lsb:mysqld
apache    ocf:heartbeat:apache(params比较多)



定义资源:
crm->configure->group/primitive

1
2
3
4
5
6
7
8
primitive apache ocf:heartbeat:apache \
params configfile="/usr/local/apache2/conf/httpd.conf" \
httpd="/usr/local/apache2/bin/httpd" \
port="80" statusurl="http://127.0.0.1/server-status" \
op monitor timeout=20s interval=10s \
op start timeout=40s \
op stop timeout=60s \
op status timeout=30s



定义约束:
crm->configure->colocation/order/其他

1
2
order start_order Mandatory: webfs:start webdb:start apache:start
关键字    ID    kind或者分数:[资源ID:选项]..



展示配置:
crm->configure->show/show xml

编辑配置文件:
crm->configure->edit

注:配置完成请先执行verify命令,再执行commit

standby/online:
crm->node->standby [node名,默认为本地节点] /online

监控:
crm->status
crm_mon

重要的地方:
1.请在一台主机上启动和停止本地和其他节点(ssh互信方式)的corosync服务!否则有可能出现脑裂的情况。(在实验中,在A节点进行先启后停corosync服务再启操作后,出现了与B节点资源争用的情况;而在B节点上通过SSH启动A节点服务,则没有出现资源争用,原因不明。)
2.双机情况下应配置票数不足时集群策略,如:
crm->configure->property no-quorum-policy=ignore
否则资源将无法切换

有趣的地方:
本次实验中,我使用了共享文件系统/share下的目录www作为web服务器虚拟地址的DocumentRoot:

1
2
3
4
5
6
7
8
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/share/www/"
    ServerName www.test.kc
    ServerAlias test.kc
    ErrorLog "logs/test.kc-error_log"
    CustomLog "logs/test.kc-access_log" common
</VirtualHost>



在实验过程对主机服务多次启停的操作过程中,多次出现了资源apache无法正常启动,并标注为unmanaged,而其他资源能够成功切换的情况:

1
2
3
4
5
6
7
8
Online: [ ha-test1 ha-test2 ]
webip   (ocf::heartbeat:IPaddr2):       Started ha-test2
webfs   (ocf::heartbeat:Filesystem):    Started ha-test2
webdb   (lsb:mysqld):   Started ha-test2
apache  (lsb:apache2):  FAILED ha-test1 (unmanaged)
Failed actions:
    apache_stop_0 on ha-test1 'unknown error' (1): call=611, status=complete, last-rc-change='Sun Jan  1 17:51:51 2017', queued=0ms, exec=51ms
    apache_stop_0 on ha-test1 'unknown error' (1): call=611, status=complete, last-rc-change='Sun Jan  1 17:51:51 2017', queued=0ms, exec=51ms



   
接下来怎么做呢?
首先执行service corosync stop,会一直提示unload,猜想原因是因为共享文件系统挂载在A节点,而apache服务运行在B节点,B节点上执行apache服务的stop操作,会因为找不到配置文件中配置的共享文件存储路径而报错,无法完成stop操作:

1
2
Syntax error on line 66 of /usr/local/apache2/conf/httpd.conf:
DocumentRoot must be a directory



于是我只能想到用杀进程的方式来强制停止corosync了:

1
ps -ef | grep corosync | grep -v grep |awk '{print $2}'  | xargs kill -9



后来我一想,既然找不到该路径,导致关不掉apache,那我给他mkdir一个本地的目录让他找好了,在A/B主机上执行:

1
mkdir /share/www



再次启动双机的corosync服务时,多次启停操作,apache资源都成功切过去了,再没有出现上面的情况。
不知道算不算解决了问题,欢迎指正。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-323013-1-1.html 上篇帖子: TiDB VS MariaDB10.1.19 Enterprise性能压测 下篇帖子: MySQL5.7备机(slave)启动参数 记录
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表