实验环境:
admin1.tuchao.com 192.168.18.100 ansible管理节点
admin2.tuchao.com 192.168.18.101 集群节点一
admin3.tuchao.com 192.168.18.199 集群节点二
安装: yum install corosync pacemaker -y
复制配置文件
cp corosync.conf.example corosync.conf
vim corosync.conf
编辑配置文件:
compatibility: whitetank
是否兼容0.8版本的corosync
totem {
定义集群之间心跳信息传递层
version: 2 ----版本号
secauth: on ---是否启用安全认证
threads: 0 ---启用多少个线程处理心跳信息传递,0为自动。
interface {
ringnumber: 0 --报文循环次数
bindnetaddr: 192.168.18.0 --绑定的网络地址
mcastaddr: 226.94.1.2 --多播地址
mcastport: 5405 ---多播端口
ttl: 1
}
}
logging {
fileline: off
to_stderr: no --心跳信息是否输出到屏幕
to_logfile: yes
to_syslog: no ---是否发送给/var/log/messages
logfile: /var/log/cluster/corosync.log
debug: off --是否开启调试
timestamp: on --是否开启当前系统时间的时间戳。
logger_subsys {
subsys: AMF --定义openais规范
debug: off
}
}
amf {
mode: disabled
}
service { 定义pacemaker为corosync的插件。
ver: 0
name: pacemaker
}
aisexec {
user:root
group:root
}
生成安全认证文件,这个命令需要取1024位随机数,我们可以另起一个终端重装一个软件来产生随机数。
corosync-keygen
安装资源管理器的配置接口程序:
crmsh-1.2.6-4.el6.i686.rpm
pssh-2.3.1-2.el6.i686.rpm
关闭NetworkManager,并开机禁用此服务。
/etc/init.d/NetworkManager stop
chkconfig NetworkManager off
启动服务:
service corosync start
CRM命令的使用:
crm status //显示集群状态信息
crm_mon
crm_verify -L //显示配置文件是否有语法错误
crm help
This is crm shell, a Pacemaker command line interface.
Available commands:
cib manage shadow CIBs --管理集群信息库
resource resources management --资源管理
configure CRM cluster configuration --集群配置接口
node nodes management --节点管理
options user preferences --
history CRM cluster history --集群历史
site Geo-cluster support --支持跨地域的集群
ra resource agents information center --资源代理
status show cluster status
help,? show help (help topics for list of topics)
end,cd,up go back one level --返回
quit,bye,exit exit the program --退出程序
crm resource help
At this level resources may be managed.
All (or almost all) commands are implemented with the CRM tools
such as `crm_resource(8)`.
Available commands:
status,show,list show status of resources --显示资源状态信息
start start a resource --启动一个资源
stop stop a resource --停止一个资源
restart restart a resource
promote promote a master-slave resource --唤醒一个主从资源
demote demote a master-slave resource --降级一个主从资源
manage put a resource into managed mode --将资源加入可管理模式
unmanage put a resource into unmanaged mode --非管理模式
migrate,move migrate a resource to another node --资源迁移
unmigrate,unmove unmigrate a resource to another node
param manage a parameter of a resource --管理资源参数
secret manage sensitive parameters --管理敏感参数
meta manage a meta attribute --管理资源的源数据属性
utilization manage a utilization attribute
failcount manage failcounts --管理资源的错误次数
cleanup cleanup resource status --清除资源状态
refresh refresh CIB from the LRM status --刷新Cib
reprobe probe for resources not started by the CRM 探测没有启动的资源
trace start RA tracing
untrace stop RA tracing
help,? show help (help topics for list of topics)
end,cd,up go back one level
quit,bye,exit exit the program
crm node help
Node management and status commands.
Available commands:
status show nodes' status as XML --显示节点状态
show,list show node
standby put node into standby --设置当前节点为备用节点
online set node online --设置当前节点为线上节点
maintenance put node into maintenance mode
ready put node into ready mode
fence fence node
clearstate Clear node state
delete delete node
attribute manage attributes
utilization manage utilization attributes
status-attr manage status attributes
help,? show help (help topics for list of topics)
end,cd,up go back one level
quit,bye,exit exit the program
crm configure property stonith-enabled=false --关闭stonith设备
crm ra help
classes list classes and providers --列出提供的RA类型
list list RA for a class (and provider) --显示某个RA类型所提供的资源代理
meta show meta data for a RA --显示一个RA的基本信息
定义一个IP资源:
crm configure
primitive webip ocf:IPaddr params ip=192.168.18.200
定义完后可以用show查看
没错误的话,之后可以使用commit提交。
查看状态:
crm status
crm resource status
停止资源:
crm resource stop webip
启动资源:
crm resource start webip
将当前节点设为备用,这时候资源就会转移到节点二。
crm node standby
我们把httpd加入到可管理资源:
crm configure primitive webserver lsb:httpd
定义资源组:
crm configure group webservice webip webserver
定义位置约束:
crm configure location webservice_prefer_node2 webservice 500: admin3.tuchao.com
crm configure
verify
commit
定义顺序约束:
crm
configure
order webserver_after_webip mandatory: webip webserver
verify
commit
order 名称 mandatory: webip webserver 注:这里的mandatory表示无限大的值(强制)
把优先启动的资源写在前面。
show xml
<constraints>
<rsc_location id="webservice_prefer_node2" rsc="webservice" score="500" node="admin3.tuchao.com"/>
<rsc_order id="webip_before_webserver" score="INFINITY" first="webip" then="webserver"/>
</constraints>
定义组合约束:
colocation webip_with_webserver inf: webip webserver
show xml
<rsc_colocation id="webip_with_webserver" score="INFINITY" rsc="webip" with-rsc="webserver"/>
这里的with-rsc="webserver"是指已webserver为准,如果webip启动成功,webserver启动失败,那webip也会失效的。
定义一个文件系统资源:
crm configure
primitive webstore ocf:Filesystem params device='192.168.18.160:/webdata' directory='/var/www/html' fstype='nfs' op start timeout=60 op stop timeout=60
verify
commit
将资源加入到webservice组。
edit
verify
commit
show
配置组合约束
crm configure
colocation webip_before_webstore inf: webip webstore
colocation webstore_webserver inf: webstore webserver
show
这样配置就基本完成了,你会发现当你使用crm node standby把当前节点设置为备用后,另一个节点就会继承资源继续提供服务。
资源监控:
默认情况下,集群并不会检查资源的健康状态,如果要实现此功能,需要专门为资源定义monitor功能,资源操作可定义的属性有:
id:资源操作ID,必须唯一。
name:资源操作的动作,可用动作有minitor、start、和stop。
执行资源的监控操作使用mintor:
interval:资源操作的时间间隔,默认为0,即不执行操作。
timeout:确定某动作作为失败的超时时长。
on-fail:正在执行的动作失败时要采取的动作。
可用值如下:
ignore:忽略
block:忽略
stop:停止资源
restart:重启资源,也有可能会在其他节点上启动。
frence:将此节点关闭
standby:将其所在的节点转换为standby模式
enabled:是否启用,true,false。
有问题欢迎与我交流QQ1183710107