本文主要目的是可以帮助你按部就班的配置出一套RHEL7的双机服务出来,这里面暂时不会讲到双机概念和为什么这么做,参数为什么这么写,为什么敲这个命令,再详细的文章,等以后,我一定会出
系统版本:RHEL7
ha1::192.168.1.80
ha2 :192.168.1.81
vip: 192.168.1.82
1:先安装两个RHEL7操作系统,安装步骤略,网上镜像和文章一大把,我就不赘述,唯一要注意的是,安装包那里我们选择最基本的basic安装就行了,不需要图形化.
2:配置IP,注意的是,RHEL7最小化安装默认是没有ifconfig命令的,因为从RHEL7开始,已经是全新的网络管理,推荐使用ip命令进行操作,所以,我们最好也随俗,如果你非要用ifconfig命令,安装net-toos这个软件包,那么配置ip的方法我就不赘述了,直接修改配置文件即可
[root@ha1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
HWADDR=00:1A:4A:CF:B4:5C
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
NAME=eth0
UUID=7e983225-8a8e-4c5f-bb5b-ffa160b3bf93
ONBOOT=yes
IPADDR=192.168.1.80
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
3:修改主机名,并且写入hosts里面
[root@ha1 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.80 ha1
192.168.1.81 ha2
192.168.1.82 app
[root@ha1 ~]# cat /etc/hostname
ha1
4:关闭selinux和关闭防火墙
我们需要将selinux配置文件里面修改成disable,比如
[root@ha1 ~]# cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
然后关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
重启你的服务器,两台都需要做
5:安装双机软件,我们这里通过yum去做,把你的光盘放进系统,并且挂载到/iso目录下面,然后编写yum配置文件
[root@ha1 ~]# cat /etc/yum.repos.d/wuhao.repo
[rhel7]
name=rhel7
baseurl=file:///iso
enable=1
[1]
name=cluster
baseurl=file:///iso/addons/HighAvailability
enable=1
[2]
name=cluster1
baseurl=file:///iso/addons/ResilientStorage
enable=1
然后我们开始安装
yum install lvm2-cluster corosync pacemaker pcs fenceagents-all -y --nogpgcheck
两边都要操作
6:开始配置集群软件
首先注意的是,我们安装操作系统时候没有选择图形化界面,也就是说我们所有的配置将是用命令行去完成,图形化的配置方法我自己研究了下,发现,不是点这个按钮没反映,就是点完以后报莫名其妙的错误,完全没有命令行来的快,这也许可能是我比较菜也可能是7.0,的确不是一个稳定的版本吧.那么我们下面开始配置属于我们自己的HA服务
先两台都启动pcs服务
systemctl start pcsd
然后给hacluster用户设置统一的密码,这用户说白了就是统一管理集群用的,同时负责认证集群中的节点.
passwd hacluster
xx
xx
我们验证两台节点
[root@ha1 ~]# pcs cluster auth ha1 ha2
ha1: Already authorized
ha2: Already authorized
因为我已经验证过了,所以这里说已经验证.第一次验证要你输的用户和密码记得是上面的hacluster,不是root哦!
pcs cluster setup --name wuhaocluster ha1 ha2 (wuhaocluster填你想取的名字)
然后我们启动集群
[root@ha1 ~]# pcs cluster start --all
查看我们的集群状态
[root@ha1 ~]# pcs status
Cluster name: wuhaocluster
Last updated: Mon Jan 5 14:59:34 2015
Last change: Mon Jan 5 14:25:46 2015 via cibadmin on ha1
Stack: corosync
Current DC: ha2 (2) - partition with quorum
Version: 1.1.10-29.el7-368c726
2 Nodes configured
2 Resources configured
Online: [ ha1 ha2 ]
注意我红色的地方,说明你的HA已经启动成功,其实到这里,你的双机就已经配好了,剩下的只不过是加一些资源进去而已
那么我们这次要用的只有两个资源,就是apache和一个浮动IP,let‘s do it!
pcs property set stonith-enabled=false 这条命令的意思是,双机不起用stonith设备,什么是stonith?自己g一下,或者你不需要管,你就按照敲一下就行了,以后我会放概念文章的
[root@ha1 ~]# pcs resource create ClusterIP
ocf:heartbeat:IPaddr2 ip=192.168.1.82
cidr_netmask=24 op monitor interval=30s
这里你唯一要修改的就是 ip和cidr_netmask两个值,改成你的虚拟IP和掩码就行了,其他的你不许要弄懂什么意思,至少目前
然后我们看一下双机状态!
[root@ha1 ~]# pcs status
Cluster name: wuhaocluster
Last updated: Mon Jan 5 15:05:20 2015
Last change: Mon Jan 5 14:25:46 2015 via cibadmin on ha1
Stack: corosync
Current DC: ha2 (2) - partition with quorum
Version: 1.1.10-29.el7-368c726
2 Nodes configured
2 Resources configured
Online: [ ha1 ha2 ]
Full list of resources:
ClusterIP (ocf::heartbeat:IPaddr2): Started ha2
注意红色的部分,你成功将虚拟IP添加进入了你的集群!
下面,我们还要添加http服务进入到你的集群,你需要先安装他,并且写一个首页文件
yum install httpd
[root@ha1 ~]# cat /var/www/html/index.html
这里是1号机
[root@ha2 ~]# cat /var/www/html/index.html
这里是2号机
写这个文件不是必须的,但是可以测试的时候更加直观一点
还有一点注意的是,我们需要配置apache的监控方法,这里我们按照官网的一个办法,就是配置apache-status,两台节点都要修改成下面这样哦!
vi /etc/httpd/conf/httpd.conf
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
然后我们添加进入到集群当中来
[root@ha1~]#pcs resource create Web ocf:heartbeat:apache configfile=/etc/httpd/conf/httpd.conf statusurl="http://localhost/server-status" op monitor interval=30s
查看集群状态
[root@ha1 ~]# pcs status
Cluster name: wuhaocluster
Last updated: Mon Jan 5 15:13:21 2015
Last change: Mon Jan 5 14:25:46 2015 via cibadmin on ha1
Stack: corosync
Current DC: ha2 (2) - partition with quorum
Version: 1.1.10-29.el7-368c726
2 Nodes configured
2 Resources configured
Online: [ ha1 ha2 ]
Full list of resources:
ClusterIP (ocf::heartbeat:IPaddr2): Started ha2
Web (ocf::heartbeat:apache): Started ha1
注意红色的部分,到这里,恭喜你的HA已经配置好了,剩下的只是一些调整了,有没有注意到你的两个服务分别跑在两台机器上面?其实这是RHEL7双机比较好的地方,他认为应该利用每个节点的硬件资源,所以会智能的把服务跑在各个节点,但是对于我们这个http架构来说,入股你的虚拟IP和你的APACHE都不在一台机器上面,客户如何访问你的页面?所以我们需要修改
pcs constraint colocation add Web ClusterIP INFINITY
上面的命令就是强制的把web和CLusterIP两个服务绑在一台机器上面,另外我们还需要确保ip服务一定是在http服务之前运行起来的,你想想看,没有IP,你httpd起来有什么意义?如果是一些特殊场景,比如数据库,你的数据在存储上面,如果存储不是在数据库启动脚本之前就被挂载起来,那ORACLE启动脚本怎么可能执行成功?
[root@ha1 ~]# pcs constraint order ClusterIP then Web
好,我们再看下双机状态
[root@ha1 ~]# pcs status
Cluster name: wuhaocluster
Last updated: Mon Jan 5 15:13:21 2015
Last change: Mon Jan 5 14:25:46 2015 via cibadmin on ha1
Stack: corosync
Current DC: ha2 (2) - partition with quorum
Version: 1.1.10-29.el7-368c726
2 Nodes configured
2 Resources configured
Online: [ ha1 ha2 ]
Full list of resources:
ClusterIP (ocf::heartbeat:IPaddr2): Started ha2
Web (ocf::heartbeat:apache): Started ha2
PCSD Status:
ha1: Online
ha2: Online
Daemon Status:
corosync: active/disabled
pacemaker: active/disabled
pcsd: active/disabled
现在都运行在2机上面了,打开你的浏览器,我们访问你的虚拟IP,应该是下面的结果
这里是2号机
好了,到此你的RHEL7+APACHE服务就配置好了,你可以尝试重启,停止网络等服务,来测试切换是否顺利,这篇文章的目的,是帮助那些接触过REDHAT双机的人快速上手的,更基础的文章,我日后会放出,另外PCS非常强大,有一起研究的可以在我的博客下面留言,大家一起学习进步!有问题加我的QQ
447040885
原文地址:http://fatboy.blog.51cto.com/6671737/1599321