本文主要目的是可以帮助你按部就班的配置出一套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:开始配置集群软件

       首先注意的是,我们安装操作系统时候没有选择图形化界面,也就是说我们所有的配置将是用命令行去完成,图形化的配置方法我自己研究了下,发现,不是点这个按钮没反映,就是点完以后报莫名其妙的错误,完全没有命令行来的快,这也许可能是我比较菜j_0016.gif也可能是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