天天看点

corosync+pacemaker使用pcs构建高可用集群

一、corosync+pacemaker集群前提准备

二、准备pcs

<code>[root@node1 ~]</code><code># yum install pcs</code>

<code>禁用stonith设备</code>

<code>[root@node1 ~]</code><code># pcs property set stonith-enable=false</code>

<code>[root@node1 ~]</code><code># pcs property set no-quorum-policy=ignore</code>

<code>查看集群状态</code>

<code>[root@node1 ~]</code><code># pcs status</code>

<code>Cluster name: </code>

<code>Last updated: Tue Nov 22 12:20:59 2016        Last change: Tue Nov 22 11:57:08 2016 by root via cibadmin on node1</code>

<code>Stack: classic openais (with plugin)</code>

<code>Current DC: node1 (version 1.1.14-8.el6_8.2-70404b0) - partition with quorum</code>

<code>2 nodes and 0 resources configured, 2 expected votes</code>

<code>Online: [ node1 node2 ]</code>

<code>Full list of resources:</code>

<code>PCSD Status:</code>

<code>Error: Unable to </code><code>read</code> <code>/etc/cluster/cluster</code><code>.conf: No such </code><code>file</code> <code>or directory</code>

这里有一个报错,提示为没有集群配置文件。但此处的配置文件需要cman插件提供,所以,暂不理会。

三、配置corosync+pacemaker+pcs高可用web

1、查看pcs支持的资源代理类型

<code>[root@node1 ~]</code><code># pcs resource standards</code>

<code>ocf</code>

<code>lsb</code>

<code>service</code>

<code>stonith</code>

2、查看ocf资源代理类型的子类型

<code>[root@node1 ~]</code><code># pcs resource providers</code>

<code>heartbeat</code>

<code>pacemaker</code>

3、查看可以被代理的资源

<code>[root@node1 ~]</code><code># pcs resource agents</code>

<code>[root@node1 ~]</code><code># pcs resource agents lsb</code>

<code>[root@node1 ~]</code><code># pcs resource agents ocf:heartbeat</code>

4、查看资源代理的详细信息

<code>[root@node1 ~]</code><code># pcs resource describ ocf:heartbeat:IPaddr</code>

<code>[root@node1 ~]</code><code># pcs resource describ ocf:heartbeat:httpd</code>

5、定义ip httpd 资源(接上文,httpd提供页面,禁止开机启动)

<code>[root@node1 ~]</code><code># pcs resource create webip ocf:heartbeat:IPaddr params ip=192.168.0.17  op monitor interval=20s timeout=40s</code>

<code>[root@node1 ~]</code><code># pcs resource create webserver lsb:httpd op monitor interval=20s timeout=40s</code>

6、查看资源运行情况

<code>Last updated: Tue Nov 22 13:07:16 2016        Last change: Tue Nov 22 13:06:45 2016 by root via cibadmin on node1</code>

<code>2 nodes and 2 resources configured, 2 expected votes</code>

<code> </code><code>webip (ocf::heartbeat:IPaddr):    Started node1</code>

<code> </code><code>webserver (lsb:httpd):    Started node2</code>

7、定义排列约束

<code>[root@node1 ~]</code><code># pcs constraint colocation add webserver with webip</code>

<code>Last updated: Tue Nov 22 13:13:18 2016        Last change: Tue Nov 22 13:12:28 2016 by root via cibadmin on node1</code>

<code> </code><code>webip (ocf::heartbeat:IPaddr):    Started node2</code>

<code>Failed Actions:</code>

<code>* webserver_start_0 on node1 </code><code>'unknown error'</code> <code>(1): call=20, status=complete, exitreason=</code><code>'none'</code><code>,</code>

<code>    </code><code>last-rc-change=</code><code>'Tue Nov 22 13:12:29 2016'</code><code>, queued=0ms, </code><code>exec</code><code>=508ms</code>

测试

<code>[root@node1 ~]</code><code># curl 192.168.0.17</code>

<code>This is node2</code>

8、定义顺序约束

<code>[root@node1 ~]</code><code># pcs constraint order webip then webserver</code>

<code>Adding webip webserver (kind: Mandatory) (Options: first-action=start </code><code>then</code><code>-action=start)</code>

9、定义位置约束

<code>[root@node1 ~]</code><code># pcs constraint location webip prefers node2=100</code>

本文转自 元婴期 51CTO博客,原文链接:http://blog.51cto.com/jiayimeng/1875369