教你如何配置安装Corosync/Opensia + Pacemaker的高可用集群

配置这个集群我们首先做一下使用的规划,使用的拓扑图如下:

本配置共有两个测试节点,分别node1.a.orgnode2.a.org,相的IP地址分别为192.168.0.110192.168.120
集群服务为apachehttpd服务;
提供web服务的地址为192.168.0.11
设置两个节点上的/etc/hosts文件均为下面的内容
192.168.0.110              node1.a.org node1
192.168.0.120              node2.a.org node2
为了使得重新启动系统后仍能保持如上的主机名称,还分别需要在各节点执行类似如下的命令:

我们用hostname更改他的主机名让他现在就生效
想查看一下node1
#hostname
#hostname node1.a.org
在查看一下node2
#hostname
#hostname node2.a.org
2)设定两个节点可以基于密钥进行ssh通信,这可以通过类似如下的命令实现:
在node1上
# ssh-keygen -t rsa
 

# ssh-copy-id -i ~/.ssh/id_rsa.pub root@node2

在node2上
# ssh-keygen -t rsa
 

# ssh-copy-id -i ~/.ssh/id_rsa.pub root@node1
上面的准备工作完成了,下面我们来安装软件包
libibverbs, librdmacm, lm_sensors, libtool-ltdl, openhpi-libs, openhpi, perl-TimeDate
3、安装corosyncpacemaker,首先下载所需要如下软件包至本地某专用目录(这里为/root/cluster):
 cluster-glue cluster-glue-libs heartbeat openaislib resource-agents corosync heartbeat-libs pacemaker corosynclib
 把上面的改为 bindnetaddr: 192.168.0.0
 5)生成节点间通信时用到的认证密钥文件:
libesmtp   pacemaker-libs
# mkdir cluter 让上面的软件包下载到这个目录里面
4、配置corosync
# cd /etc/corosync

# cd cluster   切换进入到这个目录路面

# yum -y --nogpgcheck localinstall *.rpm  本地安装软件包

# cp corosync.conf.example corosync.conf

接着编辑corosync.conf,添加如下内容:

service {

         ver:  0

         name: pacemaker

        }

aisexec {

         user:  root

         group:  root

        }

# corosync-keygen                     自动的给我们的corosync生成密钥

corosyncauthkey复制至node2:      

# scp -p corosync authkey  node2:/etc/corosync/   sorosync authkey 同步复制到node2上面 -p 是保持的原有的属性

分别为两个节点创建corosync生成的日志所在的目录:

# mkdir /var/log/cluster

# ssh node2  'mkdir /var/log/cluster' node2 上创建corosync的日志目录

 

6)尝试启动,(以下命令在node1上执行):

# /etc/init.d/corosync start

语法错误的检查

查看corosync引擎是否正常启动:

# grep -e "Corosync Cluster Engine" -e "configuration file" /var/log/messages

Jun 14 19:02:08 node1 corosync[5103]:   [MAIN  ] Corosync Cluster Engine (' 1.2.7 '): started and ready to provide service.

Jun 14 19:02:08 node1 corosync[5103]:   [ MAIN   ] Successfully read main configuration file '/etc/corosync/corosync.conf'.

Jun 14 19:02:08 node1 corosync[5103]:   [MAIN  ] Corosync Cluster Engine exiting with status 8 at main.c:1397.

Jun 14 19:03:49 node1 corosync[5120]:   [MAIN  ] Corosync Cluster Engine (' 1.2.7 '): started and ready to provide service.

Jun 14 19:03:49 node1 corosync[5120]:   [ MAIN   ] Successfully read main configuration file '/etc/corosync/corosync.conf'.
查看初始化成员节点通知是否正常发出:  totem 传递心跳的子系统

# grep  TOTEM  /var/log/messages

Jun 14 19:03:49 node1 corosync[5120]:   [TOTEM ] Initializing transport (UDP/IP).

Jun 14 19:03:49 node1 corosync[5120]:   [TOTEM ] Initializing transmit/receive security: libtomcrypt SOBER128/SHA1HMAC (mode 0).

Jun 14 19:03:50 node1 corosync[5120]:   [TOTEM ] The network interface [192.168.0.5] is now up.

Jun 14 19:03:50 node1 corosync[5120]:   [TOTEM ] A processor joined or left the membership and a new membership was formed.
检查启动过程中是否有错误产生:

# grep ERROR: /var/log/messages | grep -v unpack_resources

查看pacemaker是否正常启动:

# grep pcmk_startup /var/log/messages

Jun 14 19:03:50 node1 corosync[5120]:   [pcmk  ] info: pcmk_startup: CRM: Initialized

Jun 14 19:03:50 node1 corosync[5120]:   [pcmk  ] Logging: Initialized pcmk_startup

Jun 14 19:03:50 node1 corosync[5120]:   [pcmk  ] info: pcmk_startup: Maximum core file size is: 4294967295

Jun 14 19:03:50 node1 corosync[5120]:   [pcmk  ] info: pcmk_startup: Service: 9

Jun 14 19:03:50 node1 corosync[5120]:   [pcmk  ] info: pcmk_startup: Local hostname: node1.a.org

如果上面命令执行均没有问题,接着可以执行如下命令启动node2上的corosync

# ssh node2 -- /etc/init.d/corosync start

注意:启动node2需要在node1上使用如上命令进行,不要在node2节点上直接启动;

然后在node2上检测配置的信息是否有错误

使用如下命令查看集群节点的启动状态:

# crm status

============

Last updated: Tue Jun 14 19:07:06 2011

Stack: openais

Current DC: node1.a.org - partition with quorum

Version: 1.0.11 -1554a83db0d3c3e546cfd3aaff6af1184f79ee87

2 Nodes configured, 2 expected votes

0 Resources configured.

============

Online: [ node1.a.org node2.a.org ] 在线的节点

从上面的信息可以看出两个节点都已经正常启动,并且集群已经牌正常工作状态。

同步一下他们的时间# hwclock -s

6、配置集群的工作属性,禁用stonith

corosync默认启用了stonith,而当前集群并没有相应的stonith设备,因此此默认配置目前尚不可用,这可以通过如下命令验正:

# crm_verify -L   查看当前的集群是否有故障

crm_verify[5202]: 2011/06/14 _19:10:38 ERROR: unpack_resources: Resource start-up disabled since no STONITH resources have been defined

crm_verify[5202]: 2011/06/14 _19:10:38 ERROR: unpack_resources: Either configure some or disable STONITH with the stonith-enabled option

crm_verify[5202]: 2011/06/14 _19:10:38 ERROR: unpack_resources: NOTE: Clusters with shared data need STONITH to ensure data integrity

Errors found during check: config not valid

  -V may provide more details
上面有检查有故障  我们里可以通过如下命令先禁用stonith  

# crm configure property stonith-enabled=false

使用如下命令查看当前的配置信息:

# crm configure show

node node1.a.org

node node2.a.org

property $id="cib-bootstrap-options" \

         dc-version=" 1.0.11 -1554a83db0d3c3e546cfd3aaff6af1184f79ee87" \

         cluster-infrastructure="openais" \

         expected-quorum-votes="2" \

         stonith-enabled="false

从中可以看出stonith已经被禁用。

上面的crmcrm_verify命令是1.0后的版本的pacemaker提供的基于命令行的集群管理工具;可以在集群中的任何一个节点上执行。

  7、为集群添加集群资源

corosync支持heartbeatLSBocf等类型的资源代理,目前较为常用的类型为LSBOCF两类,stonith类专为配置stonith设备而用;

可以通过如下命令查看当前集群系统所支持的类型:

而后我们到node2上通过如下命令停止node1上的corosync服务:

# ssh node1 -- /etc/init.d/corosync stop

  查看集群工作状态:

# crm status

============

Last updated: Tue Jun 14 19:37:23 2011

Stack: openais

Current DC: node2.a.org - partition WITHOUT quorum

Version: 1.0.11 -1554a83db0d3c3e546cfd3aaff6af1184f79ee87

2 Nodes configured, 2 expected votes

1 Resources configured.

============

  Online: [ node2.a.org ]

OFFLINE: [ node1.a.org ]
,我们可以通过如下的命令来修改忽略quorum不能满足的集群状态检查
# crm configure property no-quorum-policy=ignore
 
 

配置资源我们就可以使用这种方式来配置了

crmlive#configure     configure默认下配置

先指定资源的类型 在指定资源的名字 指定资源代理 并指定资源代理的相关参数操作

crmliveconfigure# primitive webIP ocfheartbeatIPaddr params ip=192.16.0.110   定义ip地址

op 指定操作   monitor

crmliveconfigure#show 查看一下你的配置

crmliveconfgure#ifconfig 查看我们定义的地址

定义第二个资源

先安装httpd

#yum install httpd

#crm ra list lsb

mete lsbhttpd

crm(live)ra#list ocf heartbeat 可以查看apache

crm(live)ra#list ocf heartbeatapache 查看参数

configure模式下

crmliveconfgure#primitive Webserver lsbhttpd

 

正常启动node1.a.org:

# ssh node1 -- /etc/init.d/corosync start
 

通过以下方式为资源指定默认黏性值:

# crm configure rsc_defaults resource-stickiness=100

接着使用下面的命令停止httpd服务,并确保其不会自动启动(在两个节点各执行一遍):

# /etc/init.d/httpd stop

# chkconfig httpd off
.............................................................


 

 

 

本文出自 “天涯飞鸟” 博客,请务必保留此出处http://1509738.blog.51cto.com/1499738/665788

你可能感兴趣的:(集群,职场,休闲,pacemaker)