pacemaker corosync 用LSB管理自己的服务
corosync简介
corosync最初只是用来演示OpenAIS集群框架接口规范的一个应用,可以说corosync是OpenAIS的一部分,但后面的发展明显超越了官方最初的设想,越来越多的厂商尝试使用corosync作为集群解决方案。如Redhat的RHCS集群套件就是基于corosync实现。
corosync只提供了message layer,而没有直接提供CRM,一般使用Pacemaker进行资源管理。
http://clusterlabs.org/
CRM中的几个基本概念
资源粘性:
资源粘性表示资源是否倾向于留在当前节点,如果为正整数,表示倾向,负数则会离开,-inf表示正无穷,inf表示正无穷。
资源类型:
primitive(native):基本资源,原始资源
group:资源组
clone:克隆资源(可同时运行在多个节点上),要先定义为primitive后才能进行clone。主要包含STONITH和集群文件系统(cluster filesystem)
master/slave:主从资源,如drdb(下文详细讲解)
RA类型:
Lsb:linux表中库,一般位于/etc/rc.d/init.d/目录下的支持start|stop|status等参数的服务脚本都是lsb
ocf:Open cluster Framework,开放集群架构
heartbeat:heartbaet V1/V2版本
stonith:专为配置stonith设备而用
RA类型:
1.lsb(详细看crm中几个基本概念)。
lsb管理/etc/init.d 目录下
2.ocf(详细看crm中几个基本概念)
ocf管理的资源路径在:(/usr/lib/ocf/resource.d)
查看 ocf 下管理的命令:
3.pacemaker corosync 搭建可以看(pacmemaker corosync 做高可靠的WEB HA)
4.创建 VIP 看(pacmemaker corosync 做高可靠的WEB HA)
5.创建LSB 来管自己的服务(此教程管理的是jetty服务)
5.1、使用lsb来注册资源到pacemaker服务
5.1.1、查看lsb注册资源的命令:(lsb管理命令路径:/usr/lib/lsb)
5.1.2、lsb目录下有两个命令;
install_initd:安装一个服务(注意:服务必须是在/etc/init.d目录项)
EX:/usr/lib/lsb/install_initd /etc/init.d/CMgwMain
注意:安装过程中出现(service CMgwMain does not support chkconfig)
需要在shell 脚本中添加两行
#chkconfig: 2345 90 10
#description: CMgwMain
remove_initd:删除一个服务
EX:/usr/lib/lsb/remove_initd /etc/init.d/CMgwMain
5.1.3、查看添加的LSB服务已经有了
6.添加CMgwMain到pacemaker
#添加CMgwMain到pacemaker
crm configure primitive cmgw lsb:CMgwMain op monitor interval=1min timeout=20s on-fail=restart
7.添加pacemaker:资源黏性、不具备法定票数、排列约束(colocation)和顺序约束(order)(一般这两个是成对出现):
添加排列约束(colocation)参考(pacmemaker corosync 做高可靠的WEB HA)