在上一节里已经创建了集群cluster1,在这节实验里开始在集群里添加资源。

先了解一下什么是资源(resource)。举例来说,我们通过某个IP访问httpd服务,如果IP不通或者httpd没有启动我们都不能正常访问web服务,所以这二者是一个整体,我们称之为“服务组”。在集群中,组成服务组的一个个元素比如IP,httpd叫做“资源”。

一. 首先设置集群属性

因为现在环境里还没有fence,所以必须要一些设置集群才可以正常工作。点击"CLUSTER PROPERTIES"

wpsA391_tmp.jpg 

设置"No Quorum Policy"为Ignore

取消Stonith Enabled:

wpsA392_tmp.jpg 

点击"Apply Changes"。

二. 添加第一个资源

1.添加第一个资源: VIP

vip称之为虚拟IP或者浮动IP,总是运行在活跃节点上

wpsA3A3_tmp.jpg 

Class/Provider选择ocf:heartbeat

Type选择IPaddr2

Resource ID 可以随意取名,用于标记不同的资源名,这里起名为vip

ip位置 填写一个未使用的IP地址,后期访问服务就通过这个IP

展开 "Optional Arguments"

cidr_netmask 处填写24

wpsA3A4_tmp.jpg 

点击"Create Resource"

这样vip资源就创建好了,稍等一会可看到如下界面:

wpsA3A5_tmp.jpg 

从上图可以看到vip当前正在运行,且运行在node1上。

在命令行中查看资源的运行状况,在node1~node3任一节点上查看:

wpsA3A6_tmp.jpg 

也可以看到看到vip是在node1上运行。此时node1上有两个IP,一个是本地IP一个是VIP:

wpsA3B7_tmp.jpg 

2.下面验证资源切换

在node1~node3任一节点上执行pcs cluster standby node1,模拟node1宕机:

wpsA3B8_tmp.jpg 

此时可以看到资源vip已经切换到了node2上,验证node2上是否有两个IP:

wpsA3B9_tmp.jpg 

由此可以看到资源切换正常。

把node1再次激活:

[root@node1 ~]# pcs cluster unstandby node1

三. 添加第二个资源

1.安装相关软件包

在3个节点上分别安装httpd,记住不要手动的启动httpd服务:

[root@nodeX ~]# yum install httpd -y

已加载插件:product-id, subscription-manager

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

base      | 4.1 kB  00:00:00     

base1     | 4.1 kB  00:00:00     

base2     | 4.1 kB  00:00:00     

正在解决依赖关系

已安装:

  httpd.x86_64 0:2.4.6-31.el7                                                                                                                  

作为依赖被安装:

  apr.x86_64 0:1.4.8-3.el7 apr-util.x86_64 0:1.5.2-6.el7      httpd-tools.x86_64 0:2.4.6-31.el7      mailcap.noarch 0:2.1.41-2.el7     

完毕!

[root@nodeX ~]#

 

为了明显看到资源的切换,在三台节点上index.html写上不同的内容:

[root@node1 ~]#

[root@node1 ~]# echo node11111 > /var/www/html/index.html

[root@node1 ~]#

[root@node2 ~]# echo node2222222222 > /var/www/html/index.html

[root@node3 ~]# echo node33333 > /var/www/html/index.html

2.添加http资源

点击"RESOURCE"-> add

wpsA3BA_tmp.jpg 

Class/Provider 选择systemd

Type 选择httpd (如果里面没有httpd的话,刷新一下页面重新添加)

资源名称我这里设置为"webserver"

wpsA3BB_tmp.jpg 

点击"Create Resource"

这样就可以看到资源webserver已经创建完毕

wpsA3CB_tmp.jpg 

3.解决一些问题

通过仔细查看,vip和webserver两个资源并没有运行在同一台机器上:

wpsA3CC_tmp.jpg 

下面这样做(为什么先不管,后面会讲)

选中vip,点击"Create Group"

wpsA3CD_tmp.jpg 

输入组名,名字用于区分不同的组,可以随便写,这里写group_1

wpsA3CE_tmp.jpg 

点击"Create Group"

反选vip,选中webserver,在后侧Resource Group选择group_1

wpsA3DF_tmp.jpg 

点击"Apply Changes"

此时就可以保证webserver会和vip在同一台机器,意思就是vip迁移,webserver会紧随迁移。

4.下面开始验证

从下图可以看到vip和webserver均运行在node2上:

wpsA3E0_tmp.jpg 

所以客户端访问的时候,也是访问到node2上的httpd:

wpsA3E1_tmp.jpg 

现在把node2 执行standby操作:

[root@node1 ~]# pcs cluster standby node2

可以看到,vip和webserver均跑到了node1上了:

wpsA3E2_tmp.jpg 

此时客户端访问到node1的httpd:

wpsA3F2_tmp.jpg 

关注“老段工作室公众号”,文章更新早知道,每天几分钟,轻轻松松的学习。