本章主要配置heartbeat v2基于crm+hb_gui接口,配置高可用+ipvs负载均衡集群。
如何安装heartbeat v2、httpd、nfs、配置心跳连接、ssh密钥通信、同步时间、添加名称解析、配置yum源等请参照:
>> Linux高可用集群方案之配置heartbeat v2基于haresources配置文件的httpd高可用集群
http://ccschan.blog.51cto.com/11854461/1922966
ll 本文导航
· 前期准备
· 基于crm+hb_gui接口配置ipvs高可用集群
· 基于crm+hb_gui+ldirectord接口配置ipvs高可用集群
前期准备
1、heartbeat服务主机规划
主机 | 接口 | ip | 服务 | 用途 | |
node1.chanedu.com | eth0 | 192.168.1.131 | heartbeat httpd ipvs ipvsadm |
LAN数据转发 心跳信息链路 Director Server eth0:0为配置ip为VIP,提供给客户端访问http |
|
eth1 | 192.168.2.131 | ||||
eth0:0 | 192.168.1.161 | ||||
node1.chanedu.com | eth0 | 192.168.1.132 | heartbeat httpd ipvs ipvsadm |
LAN数据转发 心跳信息链路 directore eth0:0为配置ip为VIP,提供给客户端访问 |
|
eth1 | 192.168.2.132 | ||||
eth0:0 | 192.168.1.161 | ||||
rs1.chanedu.com | eth0 | 192.168.1.150 | httpd | LAN数据转发 Real Server lo:0为配置ip为VIP |
|
lo:0 | 192.168.1.161 | ||||
rs2.chanedu.com | eth0 | 192.168.1.10 | httpd | LAN数据转发 Real Server lo:0为配置ip为VIP |
|
lo:0 | 192.168.1.161 |
2、集群架构
基于crm+hb_gui接口配置ipvs高可用集群
在rs1和rs2安装httpd并保存能正常访问,然后设置参数,配置VIP,添加路由
# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore # echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore # echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce # echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce # ifconfig lo:0 192.168.1.161 netmask 255.255.255.255 broadcast 192.168.1.161 up # route add -host 192.168.1.161 dev lo:0
在node1和node2上分别安装ipvsadm。
基于DR模型配置director
关闭防火墙,配置VIP,添加路由,配置集群
# yum -y install ipvsadm # iptables -t filter -F # ifconfig eth0:0 192.168.1.161 netmask 255.255.255.255 broadcast 192.168.1.161 up # route add -host 192.168.1.161 dev eth0:0
在node1和node2上分别配置集群服务并保存集群的配置信息至/etc/sysconfig/ipvsadm
而后清除集群
# ipvsadm -A -t 192.168.1.161:80 -s rr # ipvsadm -a -t 192.168.1.161:80 -r 192.168.1.150 -g -w 1 # ipvsadm -a -t 192.168.1.161:80 -r 192.168.1.10 -g -w 2 # ipvsadm-save > /etc/sysconfig/ipvsadm # ipvsadm -C
启动node1和node2上的heartbeat服务,并启动hb_gui图形配置界面
[root@node1 ~]# service heartbeat start logd is already running Starting High-Availability services: Done. [root@node1 ~]# ssh node2 'service heartbeat start' logd is already running Starting High-Availability services: Done. [root@node1 ~]# hb_gui &
基于crm+hb_gui+ldirectord接口配置ipvs高可用集群
1、将上面的高可用集群信息所配置的资源都删除,停止heartbeat,并将node1和node2上的ipvs配置文件/etc/sysconfig/ipvsadm删除。
[root@node1 ~]# service heartbeat stop Stopping High-Availability services: Done. [root@node1 ~]# ssh node2 'service heartbeat stop' Stopping High-Availability services: Done. [root@node1 ~]# rm /etc/sysconfig/ipvsadm rm: remove regular file `/etc/sysconfig/ipvsadm'? y [root@node1 ~]# ssh node2 'rm /etc/sysconfig/ipvsadm'
2、在node1和node2上分别安装ldirectord组件
在node1上安装,直接rpm安装不成功,需要解决依赖关系,改为yum安装,可解决依赖关系
[root@node1 heartbeat_v2]# rpm -ivh heartbeat-ldirectord-2.1.4-12.el6.x86_64.rpm
error: Failed dependencies:
perl(Mail::Send) is needed by heartbeat-ldirectord-2.1.4-12.el6.x86_64
[root@node1 heartbeat_v2]# yum -y install heartbeat-ldirectord-2.1.4-12.el6.x86_64.rpm
[root@node2 heartbeat_v2]# yum -y install heartbeat-ldirectord-2.1.4-12.el6.x86_64.rpm
3、复制配置文件
在node1上将/usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf复制到/etc/ha.d/目录下。
# cp /usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf /etc/ha.d/ # cat /etc/ha.d/ldirectord.cf | grep -E -v '^#|^$' checktimeout=3 checkinterval=1 autoreload=yes logfile="/var/log/ldirectord.log" quiescent=yes virtual=192.168.1.161:80 real=192.168.1.10:80 gate real=192.168.1.150:80 gate fallback=127.0.0.1:80 gate service=http request=".health.html" receive="OK" scheduler=rr #persistent=600 #netmask=255.255.255.255 # scp /etc/ha.d/ldirectord.cf node2:/etc/ha.d/ # scp /etc/ha.d/ldirectord.cf node2:/etc/ha.d/ ldirectord.cf 100% 7500 7.3KB/s 00:0
4、在node1和node2启动httpd,并创建内容为Maintenance Time的.health.html页面,当RS都不在线时,将在客户端显示此页面内容。
将httpd.conf配置文件中的Directored Index项的第一个位置修改为.health.html页面
# service httpd start # vim /var/www/html/.health.html # cat /var/www/html/.health.htmlMaintenance Time
5、在rs1和rs2启动httpd,并创建内容为OK的.health.html页面,这个页面是指RS的健康状态检测页
# service httpd start # vim /var/www/html/.health.html # cat /var/www/html/.health.html OK
6、配置高可用集群
新建名为ipvs_service的资源组
配置vip资源
配置ldirectord,指定configfile文件的位置为/etc/ha.d/ldirectord.cf
启动ipvs_service资源组
客户端访问
让RS1和RS2下线。