主備heartbeat設置主機名node
vim /etc/sysctl.conflinux
net.ipv4.ip_forward = 1 開啓路由轉發web
sysctl –p算法
【安裝】apache
配置好yum源(CentOS系統不準要配置)vim
yum install heartbeat-*api
【配置】bash
配置文件都在/etc/ha.d/裏面,主要包括下面四個配置文件服務器
authkeys [認證文件]網絡
haresources [資源文件]
ldirectord.cf [ldirectord配置文件]
ha.cf [主配置文件]
能夠從目錄/usr/share/doc/heartbeat-2.1.3/ 和/usr/share/doc/heartbeat-ldirectord-2.1.3/ 複製到/etc/ha.d/裏面,也能夠直接手動建立
文件內容
[authkeys文件]
auth 2 2 sha1 HI!
[ha.cf文件]
logfile /var/log/ha-log.log #日誌文件位置 logfacility local0 ucast eth0 192.168.1.100 #指定爲單播方式,若是爲多個節點則啓用mcast或bcast,此處爲對端IP keepalive 2 #發送心跳報文的間隔 warntime 8 #超過此間隔未收到報文,日誌裏報警,但不切換 deadtime 10 #超過此間隔未收到報文,則認爲對方已經宕掉,進行切換 initdead 120 #heartbeat重啓後,啓動其所控制的資源的時間 udpport 694 #心跳檢查的端口 auto_failback off #主節點重啓成功後,on爲再切回主節點工做,off爲不切換 watchdog /dev/watchdog #啓動內核看門狗功能,能讓系統出現故障後重啓該機器 node ha.server01 #主節點名稱 node ha.server02 #備節點名稱 ping 192.168.1.1 #僞集羣節點,測試本機是否還能連通網絡 respawn hacluster/usr/lib/heartbeat/ipfail #指定當heartbeat啓動時執行的程序,ipfail會判斷僞集羣節點是否正常 apiauth ipfail uid=hacluster gid=haclient #指定ipfail的用戶和組
[haresources文件]
ha.server01\ #主節點主機名,主備都同樣 IPaddr:: 192.168.1.100/24/eth0/192.168.1.255\ #資源1:在eth0上啓用IP別名 ldirectord::ldirectord.cf\ #資源2:啓動ldirectord服務 LVSSyncDaemonSwap::master #資源3:啓動ipvsadm服務
[ldirectord.cf文件]
checktimeout=3 #ldirectord等待健康檢查執行完畢的等待時間,單位秒。若是由於某些緣由檢查失敗或在設置的時間週期內沒有完成檢查,ldirectord將會從IPVS表中移除真實服務器 checkinterval=3 #檢查間隔 autoreload=yes #啓用這個選項,會自動應用ldirectord.cf文件的改動 logfile="/var/log/ldirectord.log" #指定日誌文件 quiescent=no #當檢查檢查失敗或者超時後執行的策略(no:會將realserver移除,yes會將realserver權重置爲0) virtual=192.168.1.100:80 #vip及其端口 real=192.168.1.101:80 gate 1 #realserver:gate表示路由模式,ipip表示隧道模式,masp爲nat模式後面是權重值。(此處必須縮進) real=192.168.1.102:80 gate 2 real=192.168.1.103:80 gate 2 service=http #這一行指出測試真實服務器的健康時ldirectord使用的服務 scheduler=wlc #lvs算法 persistent=240 #會話保持時間 protocol=tcp #這一行指出該服務使用的協議 checktype=negotiate #這個選項指出ldirectord守護進程使用什麼方法監視真實服務器 checkport=80 #指定健康檢查使用的端口是80。 virtual=192.168.1.100:443 real=192.168.1.100:443 gate real=192.168.1.100:443 gate real=192.168.1.100:443 gate service=https scheduler=wlc persistent=240 protocol=tcp checktype=negotiate checkport=443
PS:詳細參數看官方文檔
http://www.linux-ha.org/authkeys
http://linux-ha.org/GettingStarted#configuringharesources
將相關服務設爲開機自啓動
chkconfig heartbeat on chkconfig ldirectord on
【管理】
/etc/init.d/heartbeat start 啓動heartbeat服務 /usr/lib/heartbeat/hb_standby 將服務切換至對方上 /usr/lib/heartbeat/hb_takeover 將服務從備上切換到本地上 ipvsadm -ln 查看lvs狀態 ipvsadm -ln -rate 查看lvs鏈接速率信息 ipvsadm -ln -stats 查看lvs統計信息
--rate選項是顯示速率信息
1. CPS (current connection rate) 每秒鏈接數
2. InPPS (current in packet rate) 每秒的入包個數
3. OutPPS (current out packet rate) 每秒的出包個數
4. InBPS (current in byte rate) 每秒入流量(字節)
5. OutBPS (current out byte rate) 每秒入流量(字節)
--stats選項是統計自該條轉發規則生效以來的
1. Conns (connectionsscheduled) 已經轉發過的鏈接數
2. InPkts (incoming packets) 入包個數
3. OutPkts (outgoing packets) 出包個數
4. InBytes (incoming bytes) 入流量(字節)
5. OutBytes (outgoing bytes) 出流量(字節)
【客戶端】
路由模式須要在web上執行realserver_dr 腳本,並設爲開機自動執行
隧道模式須要在web上執行realserver_ipip 腳本,並設爲開機自動執行
【防火牆】
需開啓694端口,容許udp協議
備註:
設置apache不記錄hearbeat檢測的配置(httpd.conf)