本章主要配置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.html <h1>Maintenance Time</h1>
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下線。