A-A+

RHEL7配置APACHE服务的HA的思路和方法

2015年12月31日 站长资讯 暂无评论

本文主要目的是可以帮助你按部就班的配置出一套RHEL7的双机服务出来,这里面暂时不会讲到双机概念和为什么这么做,参数为什么这么写,为什么敲这个命令,再详细的文章,等以后,我一定会出。

  1. 系统版本:RHEL7  
  2.    
  3. ha1::192.168.1.80    
  4.    
  5. ha2 :192.168.1.81  
  6. vip: 192.168.1.82  

1:先安装两个RHEL7操作系统,安装步骤略,网上镜像和文章一大把,我就不赘述,唯一要注意的是,安装包那里我们选择最基本的basic安装就行了,不需要图形化。

2:配置IP,注意的是,RHEL7最小化安装默认是没有ifconfig命令的,因为从RHEL7开始,已经是全新的网络管理,推荐使用ip命令进行操作,所以,我们最好也随俗,如果你非要用ifconfig命令,安装net-toos这个软件包,那么配置ip的方法我就不赘述了,直接修改配置文件即可。

  1. [root@ha1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0  
  2. HWADDR=00:1A:4A:CF:B4:5C  
  3. TYPE=Ethernet  
  4. BOOTPROTO=static  
  5. DEFROUTE=yes  
  6. PEERDNS=yes  
  7.   
  8. PEERROUTES=yes  
  9. IPV4_FAILURE_FATAL=no  
  10. NAME=eth0  
  11. UUID=7e983225-8a8e-4c5f-bb5b-ffa160b3bf93  
  12. ONBOOT=yes  
  13. IPADDR=192.168.1.80  
  14. NETMASK=255.255.255.0  
  15. GATEWAY=192.168.1.1  

3:修改主机名,并且写入hosts里面

  1. [root@ha1 ~]# cat /etc/hosts  
  2. 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4  
  3. ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6  
  4. 192.168.1.80    ha1  
  5. 192.168.1.81    ha2   
  6. 192.168.1.82    app  
  7. [root@ha1 ~]# cat /etc/hostname   
  8. ha1  

4:关闭selinux和关闭防火墙

我们需要将selinux配置文件里面修改成disable,比如

  1. [root@ha1 ~]# cat /etc/selinux/config   
  2.   
  3. # This file controls the state of SELinux on the system.  
  4. SELINUXcan take one of these three values:  
  5. #     enforcing - SELinux security policy is enforced.  
  6.   
  7. #     permissive - SELinux prints warnings instead of enforcing.  
  8. #     disabled - No SELinux policy is loaded.  
  9. SELINUX=disabled  

然后关闭防火墙

systemctl stop firewalld

systemctl disable firewalld

重启你的服务器,两台都需要做

5:安装双机软件,我们这里通过yum去做,把你的光盘放进系统,并且挂载到/iso目录下面,然后编写yum配置文件

  1. [root@ha1 ~]# cat /etc/yum.repos.d/wuhao.repo   
  2. [rhel7]  
  3. name=rhel7  
  4. baseurl=file:///iso  
  5. enable=1  
  6.   
  7. [1]  
  8. name=cluster  
  9. baseurl=file:///iso/addons/HighAvailability  
  10. enable=1  
  11.   
  12. [2]  
  13. name=cluster1  
  14. baseurl=file:///iso/addons/ResilientStorage  
  15. enable=1   

然后我们开始安装

  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

我们验证两台节点

  1. [root@ha1 ~]# pcs cluster auth ha1 ha2  
  2. ha1: Already authorized  
  3. ha2: Already authorized  

因为我已经验证过了,所以这里说已经验证.第一次验证要你输的用户和密码记得是上面的hacluster,不是root哦!

  1. pcs cluster setup --name wuhaocluster ha1 ha2  (wuhaocluster填你想取的名字)  

然后我们启动集群

  1. [root@ha1 ~]#  pcs cluster start  --all  

查看我们的集群状态

  1. [root@ha1 ~]# pcs status  
  2. Cluster name: wuhaocluster  
  3. Last updated: Mon Jan  5 14:59:34 2015  
  4. Last change: Mon Jan  5 14:25:46 2015 via cibadmin on ha1  
  5. Stack: corosync  
  6. Current DC: ha2 (2) - partition with quorum  
  7.   
  8. Version: 1.1.10-29.el7-368c726  
  9. 2 Nodes configured  
  10. 2 Resources configured  
  11.   
  12. 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和掩码就行了,其他的你不许要弄懂什么意思,至少目前

然后我们看一下双机状态!

  1. [root@ha1 ~]# pcs status  
  2. Cluster name: wuhaocluster  
  3. Last updated: Mon Jan  5 15:05:20 2015  
  4. Last change: Mon Jan  5 14:25:46 2015 via cibadmin on ha1  
  5. Stack: corosync  
  6. Current DC: ha2 (2) - partition with quorum   
  7. Version: 1.1.10-29.el7-368c726  
  8. 2 Nodes configured  
  9. 2 Resources configured  
  10.   
  11. Online: [ ha1 ha2 ]  
  12.   
  13. Full list of resources:  
  14.   
  15. ClusterIP    (ocf::heartbeat:IPaddr2):    Started ha2   

注意红色的部分,你成功将虚拟IP添加进入了你的集群!

下面,我们还要添加http服务进入到你的集群,你需要先安装他,并且写一个首页文件

  1. yum install httpd  
  2.   
  3. [root@ha1 ~]# cat /var/www/html/index.html   
  4. 这里是1号机  
  5. [root@ha2 ~]# cat /var/www/html/index.html  
  6. 这里是2号机  

写这个文件不是必须的,但是可以测试的时候更加直观一点
还有一点注意的是,我们需要配置apache的监控方法,这里我们按照官网的一个办法,就是配置apache-status,两台节点都要修改成下面这样哦!

  1. vi /etc/httpd/conf/httpd.conf  
  2. <Location /server-status>  
  3.    SetHandler server-status  
  4.    Order deny,allow  
  5.    Deny from all  
  6.    Allow from 127.0.0.1  
  7. </Location>  

然后我们添加进入到集群当中来

  1. [root@ha1~]#pcs resource create Web ocf:heartbeat:apache  configfile=/etc/httpd/conf/httpd.conf       statusurl="http://localhost/server-status" op monitor interval=30s  

查看集群状态

  1. [root@ha1 ~]# pcs status  
  2. Cluster name: wuhaocluster  
  3. Last updated: Mon Jan  5 15:13:21 2015  
  4. Last change: Mon Jan  5 14:25:46 2015 via cibadmin on ha1  
  5. Stack: corosync  
  6. Current DC: ha2 (2) - partition with quorum   
  7. Version: 1.1.10-29.el7-368c726  
  8. 2 Nodes configured  
  9. 2 Resources configured  
  10.   
  11.   
  12. Online: [ ha1 ha2 ]  
  13.   
  14. Full list of resources:  
  15.   
  16.  ClusterIP    (ocf::heartbeat:IPaddr2):    Started ha2   
  17.  Web    (ocf::heartbeat:apache):    Started ha1  

注意红色的部分,到这里,恭喜你的HA已经配置好了,剩下的只是一些调整了,有没有注意到你的两个服务分别跑在两台机器上面?其实这是RHEL7双机比较好的地方,他认为应该利用每个节点的硬件资源,所以会智能的把服务跑在各个节点,但是对于我们这个http架构来说,入股你的虚拟IP和你的APACHE都不在一台机器上面,客户如何访问你的页面?所以我们需要修改

  1. pcs constraint colocation add Web ClusterIP INFINITY  

上面的命令就是强制的把web和CLusterIP两个服务绑在一台机器上面,另外我们还需要确保ip服务一定是在http服务之前运行起来的,你想想看,没有IP,你httpd起来有什么意义?如果是一些特殊场景,比如数据库,你的数据在存储上面,如果存储不是在数据库启动脚本之前就被挂载起来,那ORACLE启动脚本怎么可能执行成功?

  1. [root@ha1 ~]#  pcs constraint order ClusterIP then Web  

好,我们再看下双机状态

  1. [root@ha1 ~]# pcs status  
  2. Cluster name: wuhaocluster  
  3. Last updated: Mon Jan  5 15:13:21 2015  
  4. Last change: Mon Jan  5 14:25:46 2015 via cibadmin on ha1  
  5. Stack: corosync  
  6. Current DC: ha2 (2) - partition with quorum  
  7.   
  8. Version: 1.1.10-29.el7-368c726  
  9. 2 Nodes configured  
  10. 2 Resources configured  
  11.   
  12.   
  13. Online: [ ha1 ha2 ]  
  14.   
  15. Full list of resources:  
  16.   
  17.  ClusterIP    (ocf::heartbeat:IPaddr2):    Started ha2   
  18.  Web    (ocf::heartbeat:apache):    Started ha2   
  19.   
  20. PCSD Status:  
  21.   ha1: Online   
  22.   ha2: Online  
  23.   
  24. Daemon Status:  
  25.   corosync: active/disabled  
  26.   pacemaker: active/disabled  
  27.   pcsd: active/disabled  

现在都运行在2机上面了,打开你的浏览器,我们访问你的虚拟IP,应该是下面的结果

这里是2号机

好了,到此你的RHEL7+APACHE服务就配置好了,你可以尝试重启,停止网络等服务,来测试切换是否顺利,这篇文章的目的,是帮助那些接触过REDHAT双机的人快速上手的,更基础的文章,我日后会放出,另外PCS非常强大,有一起研究的可以在我的博客下面留言,大家一起学习进步!

标签:

给我留言