一、环境介绍:
三台均为双网卡:
openstack-control.example.com openstack-control
eth0:172.16.171.100
eth1:10.1.1.100
openstack-nova.example.com openstack-nova
eth0:172.16.171.110
eth1:10.1.1.110
openstack-neutron.example.com openstack-neutron
eth0:172.16.171.120
eth1:10.1.1.120
二、corosync和pacemaker配置步骤如下:
1、 配置时区及同步时间
2、配置集群节点间通过主机名互相通信
3、配置集群主机能使root用户基于无密码ssh秘钥方式进行通信
4、 关闭selinux和iptables
5、安装corosync和pacemaker包
6、 修改corosync.conf配置文件
compatibility: whitetank
totem {
version: 2
secauth: on
threads: 2
rrp_mode: passive
interface {
ringnumber: 0
bindnetaddr: 10.1.1.0
mcastaddr: 239.255.1.1
mcastport: 5405
ttl: 1
}
interface {
ringnumber: 1
bindnetaddr: 172.16.171.0
mcastaddr: 238.255.1.1
mcastport: 5406
ttl: 1
}
}
logging {
fileline: off
to_stderr: no
to_logfile: yes
logfile: /var/log/cluster/corosync.log
to_syslog: no
debug: off
timestamp: on
logger_subsys {
subsys: AMF
debug: off
}
}
service {
ver: 0
name: pacemaker
}
7、生成认证文件:authkey 并传给其他集群服务器
8、启动corosync服务,并查看日志
9、安装crmsh
http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-6/
[network_ha-clustering_Stable]
name=Stable High Availability/Clustering packages (CentOS_CentOS-6) type=rpm-md
baseurl=http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-6/
gpgcheck=1
gpgkey=http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-6/repodata/repomd.xml.key
enabled=1
10、使用crmsh工具配置全局属性
crm(live)#configure
crm(live)configure#property stonith-enabled=false
crm(live)configure#property no-quorum-policy=ignore
crm(live)configure#property default-resource-stickiness=100
11、使用crmsh工具配置ip资源、nfs资源和mysql资源和配置这两个资源的协同约束(排列约束)、顺序约束
mysql:
crm(live)configure#primitive mysqlvip ocf:heartbeat:IPaddr params ip=‘10.1.1.200‘ nic=‘eth1‘ cidr_netmask=‘24‘ broadcast=‘10.1.1.0‘ op monitor interval=30s(启动延迟时间) timeout=20s(监控超时时间)
crm(live)configure#primitive mysqlnfs ocf:heartbeat:Filesystem params device=‘10.1.1.100:/mysqldata‘ directory=‘/mydata‘ fstype=‘nfs‘ op monitor interval=20s timeout=40s
crm(live)configure#verify
crm(live)configure#primitive mysqlserver lsb:mysqld op monitor interval=30s timeout=15s
crm(live)configure#colocation myserver inf: mysqlvip mysqlnfs mysqlserver
crm(live)configure#order mysqlnfs_before_mysqlserver mandatory: mysqlnfs mysqlserver
httpd:
crm(live)configure#primitive httpdvip
ocf:heartbeat:IPaddr params ip=‘172.16.171.200‘ nic=‘eth0‘
cidr_netmask=‘24‘ broadcast=‘172.16.171.0‘ op monitor interval=30s(启动延迟时间)
timeout=20s(监控超时时间)
crm(live)configure#primitive httpdnfs
ocf:heartbeat:Filesystem params device=‘172.16.171.100:/myhttpd‘
directory=‘/var/www/html‘ fstype=‘nfs‘ op monitor interval=20s timeout=40s
crm(live)configure#verify
crm(live)configure#primitive httpdserver lsb:httpd op monitor interval=30s timeout=15s
crm(live)configure#colocation myapacheserver inf: httpdvip httpdnfs httpdserver
crm(live)configure#order httpdnfs_before_httpdserver mandatory: httpdnfs httpdserver
具体查看如下图:
12、查看节点情况
crm(live)# status
Last updated: Wed Sep 23 00:08:39 2015
Last change: Wed Sep 23 00:08:33 2015
Stack: classic openais (with plugin)
Current DC: openstack-control.example.com - partition with quorum
Version: 1.1.11-97629de
3 Nodes configured, 3 expected votes
6 Resources configured
Online: [ openstack-control.example.com openstack-neutron.example.com openstack-nova.example.com ]
mysqlnfs (ocf::heartbeat:Filesystem): Started openstack-control.example.com
mysqlvip (ocf::heartbeat:IPaddr): Started openstack-control.example.com
mysqlserver (lsb:mysqld): Started openstack-control.example.com
httpdvip (ocf::heartbeat:IPaddr): Started openstack-control.example.com
httpdnfs (ocf::heartbeat:Filesystem): Started openstack-control.example.com
httpdserver (lsb:httpd): Started openstack-control.example.com
通过如下进行主备切换:
node online openstack-neutron.example.com
node standby openstack-neutron.example.com