LVS+Heartbeat+Ipvsadm+Ldirectord安装(四)
生活随笔
收集整理的這篇文章主要介紹了
LVS+Heartbeat+Ipvsadm+Ldirectord安装(四)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1????? 開始配置lvs 主調度服務器<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
本文檔采用的是lvs-DR模式,該模式的特點是客戶端的請求從調度器進入分配到真實服務器,然后真實服務器的響應是直接交付給客戶端的。1.1????? 修改2個調度器的hosts文件
[root@LVS-1 ~]# vi /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1?????????????? localhost.localdomain localhost ::1???????????? localhost6.localdomain6 localhost6 LVS-1? 192.168.48.83 LVS-2? 192.168.48.841.2????? lvs_dr的配置
1.2.1???? lvs_dr腳本代碼
#!/bin/sh # description: start LVS of Directorserver VIP=192.168.48.88? (虛擬ip的地址) RIP1=192.168.48.85 ?真實服務器1的ip地址 RIP2=192.168.48.86 ?真實服務器2的ip地址 #RIP3=221.236.28.106? 如果有多個服務器節點的話,可以再這添加。 SERVICE=80??? #http is used in this case . /etc/rc.d/init.d/functions case? $1? in ??? start) ??? echo "start LVS of DirectorServer" ??? # set ip_forward&send_redirects ??? echo "0" >/proc/sys/net/ipv4/ip_forward ??? echo "1" >/proc/sys/net/ipv4/conf/all/send_redirects ? ??echo "1" >/proc/sys/net/ipv4/conf/default/send_redirects ??? echo "1" >/proc/sys/net/ipv4/conf/eth0/send_redirects ??? # set the Virtual IP Address ??? /sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up ??? /sbin/route add -host $VIP dev eth0:0 ??? #Clear IPVS table ??? /sbin/ipvsadm -C ??? #set LVS ??? /sbin/ipvsadm -A -t $VIP:$SERVICE -s rr? (如果需要session保持添加-p 默認保持300秒) ??? /sbin/ipvsadm -a -t $VIP:$SERVICE -r $RIP1:$SERVICE -g -w 1 ??? /sbin/ipvsadm -a -t $VIP:$SERVICE -r $RIP2:$SERVICE -g -w 1 ??? #/sbin/ipvsadm -a -t $VIP:$SERVICE -r $RIP3:$SERVICE -g -w 1 ??? /sbin/ipvsadm --set 30 120 300 ??? #Run LVS ??? /sbin/ipvsadm ??? #end ??? ;; ??? stop) ??? echo "close LVS Directorserver" ??? /sbin/ipvsadm -C ??? ;; ??? *) ??? echo "Usage: $0 {start|stop}" ??? exit 1 esac (-s rr 是使用了輪叫算法,可以自行選擇相應的算法,更改rr就可以了,ipvsadm -h查看幫助。-g 是使用lvs工作DR直接路由模式,也可自行修改)如果有多個realserver直接添加就可以了,之后啟動此腳本就可以了。
?
1.3????? lvs_switch的配置
lvs_switch代碼 #!/bin/sh # description: close lo:0 and arp_ignore VIP=192.168.48.88 ?(虛擬ip的地址) . /etc/rc.d/init.d/functions case $1 in ??? start) ??? echo "start director server and close lo:0" ??? #ifconfig lo:0 down ??? echo "1" > /proc/sys/net/ipv4/ip_forward ??? echo "0" > /proc/sys/net/ipv4/conf/all/arp_announce ??? ;; ??? stop) ??? echo "start Real Server" ??? echo "0" >/proc/sys/net/ipv4/ip_forward ??? /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up ??? /sbin/route add -host $VIP dev lo:0 ??? echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore ??? echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce ??? echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore ??? echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce ??? sysctl -p ??? ;; ??? *) ??? echo "Usage: lvs {start|stop}" ??? exit 1 esac1.3.1???? 給腳本賦予執行權限
chmod +x /etc/ha.d/resource.d/lvs_dr chmod +x /etc/ha.d/resource.d/lvs_switch1.3.2???? 把ha.cf,haresources,authkeys,ldirectord.cf都復制到/etc/ha.d/
cp ?-rf? /usr/share/doc/heartbeat-2.1.3/ha.cf ?/etc/ha.dcp? -rf ?/usr/share/doc/heartbeat-2.1.3/authkeys ?/etc/ha.d
cp ?-rf? /usr/share/doc/heartbeat-2.1.3/haresources ?/etc/ha.d
cp ?-rf? /usr/share/doc/heartbeat-ldirectord-2.1.3/ldirectord.cf ?/etc/ha.d
?
1.3.3???? authkeys的配置
?
配置authkeys, auth 3 #1 crc #2 sha1 HI! 3 md5 Hello! 1,2,3表示認證算法選擇,這里選擇了md5算法 Authkeys的權限必須是0600。 chmod 0600 authkeys?
1.3.4???? haresources的配置
?
配置haresources 該文件主節點和備份節點上要完全一致: ?LVS-1? ?lvs_switch ??192.168.48.88 ??lvs_dr? ?ldirectord 語法格式: 主節點機器名 ??腳本名稱 ??虛擬ip? ?腳本名稱 ?ldirectord 注:節點名字就查看計算機名 ??? ?uname -n (注節點必須寫這個命令顯示的名字) (注:lvs_switch ,lvs_dr腳本必須位于/etc/init.d/或/etc/ha.d/resource.d下,且不能隨機一啟動)1.3.5???? ha.cf的配置
配置ha.cf debugfile /var/log/ha-debug??? debbug日志文件路徑 logfile /var/log/ha-log?????? heartbeat 日志文件路徑 logfacility???? local0?????????? keepalive ?2???????? 心跳檢測時間間隔 #initdead 120 ?????heartbeat第一次啟動時啟動其所控資源的時間 deadtime ?10????? 多久沒有檢測到心跳時宣布死亡 warntime ?10 ??????指明心跳延遲的時間為十秒。當10秒鐘內備份機不能聯系上主機(當前活動的服務器,即無心跳信號),就會往日志中寫入一個警告日志,但此時不會切換服務。 udpport 28855?????? heartbeat監聽端口 #bcast??? eth0??? ??? ??# Linux心跳路徑,最好不要與正常生產網絡中的設備混在一起 #mcast eth0 225.0.0.1 694 1 0 ?#說明:采用udp多播播來通知心跳,建議在副節點不只一臺時使用 ucast eth0 對端節點IP????? 采用網卡eth0的udp單播來通知心跳,ip應為對方IP ucast eht0 192.168.48.84??? (在備份dr上 這里的ip就寫主dr的ip) #注:廣播,單播,多播,以上三種任選其一即可 #ping??? 192.168.1.1?? ping我內部網關地址,主要是利用ipfail功能檢測主服務器網絡是否正常 auto_failback on? 主節點重啟成功后,資源是自動拿回到主節點還是等到副節點down調后拿回資源 watchdog /dev/watchdog????? 啟動內核看門狗功能,能讓系統在出現故障1分鐘后重啟該機器。這個功能可以幫助服務器在確實停止心跳后能夠重新恢復心跳。如果使用該特性,則在內核中裝入softdog內核模塊,用來生成實際的設備文件,輸入insmod softdog加載模塊。 # stonith用來保證共享存儲環境中的數據完整性 node??? 主節點機器名 ????(必須同uname -n返回的主機名相同) node?? ?備份節點機器名?
node? LVS-1 node? LVS-2?
1.3.6???? ldirectord.cf的配置
配置ldirectord.cf# Global Directives checktimeout=3?? 超時時間 checkinterval=1??? 檢測真實服務器的間隔 fallback=127.0.0.1:80 autoreload=yes?? 表示修改ldirectord.cf配置文件ldirectord自動加載 logfile="/var/log/ldirectord.log" quiescent=yes? 如果真實服務器失敗,ldirectord所采取的動作,注意如果主里設為yes,則必須在內核中修改下列文件: echo "1" >/proc/sys/net/ipv4/vs/expire_quiescent_template
echo "1" >/proc/sys/net/ipv4/vs/expire_nodest_conn ? # Sample for an http virtual service virtual=虛擬IP:80 ???? ???real=(真實服務器IP1):80 gate ??????? real=(真實服務器IP2):80 gate ??????? real= 192.168.48.85:80 gate real= 192.168.48.86:80 gate ??????? fallback=127.0.0.1:80 gate? ?如果兩臺真實服務器都無效,則定向本機的lo地址 ??????? service=http?????????? 指定服務類型 ??????? request="lvstest.html"? 檢查真實服務器時用到的頁面 ??????? receive="lvstest"?????? 所請求頁面內的內容 ??????? scheduler=rr?????????? 調度方法,rr表示循環調用 ??????? #persistent=600??????? tcp連接時間 ??????? #netmask=255.255.255.255 ??????? protocol=tcp?????????? 協議類型 ??????? checktype=negotiate??? ldirectord檢測真實服務器的方式 ??????? checkport=80 ??????? request="lvstest.html" ??receive="lvstest” 在http配置的根目錄增加lvetest.html,文件內容是lvestest 在ftp配置的根目錄增加lvetest.html,文件內容是lvestest
轉載于:https://blog.51cto.com/lidiantian/341582
總結
以上是生活随笔為你收集整理的LVS+Heartbeat+Ipvsadm+Ldirectord安装(四)的全部內容,希望文章能夠幫你解決所遇到的問題。