日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用ldirectord实现后端RS健康状态监测及LVS调度功能

發布時間:2024/9/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用ldirectord实现后端RS健康状态监测及LVS调度功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Ldirectord功能描述:

????如果在高可用服務中直接將ipvsadm定義為一種資源代理,使用ipvsadm來生成ipvs規則,這樣生效的lvs不能實現對后端的RealServer實現健康監測的功能,而heartbeat中的ldirectord可以實現對后端RealServer健康狀態監測的功能,同時能使用內核中的ipvs功能利用ipvsadm規則啟動lvs服務,實現對后端RealServer的調度功能,即有請求至前端的Director時,可以將請求轉發至各RealServer而定義的ipvsadm規則保存在配置文件中,服務無需啟動,由ldirectord這個資源代理來實現啟動ipvs服務。同時前端的Director上配置有VIP地址,這個地址作為高可用的資源實現在前端的各Director上實現流轉。


實驗用主機:

Director1:172.16.103.1

Director2:172.16.103.2

RealServer1:172.16.103.3

RealServer2:172.16.103.4


操作步驟:

一、前端的兩臺主機安裝heartbeat,同時要同步時間,兩個Director之間通信基于/etc/hosts文件實現主機名稱解析,而且要實現基于ssh公鑰通信。這些配置請參考前面的博客。

二、在兩臺Director上安裝ldirectord:

#?yum?install?heartbeat-ldirectord-2.1.4-12.el6.x86_64.rpm

安裝完成后的ldirectord生成的文件中有一個文件放在了heartbeat的ha.d/resource.d目錄下,是一個資源代理文件。同時還提供了一個樣例配置文件,這些文件是我們用來實現高可用ipvs規則和定義后端RealServer的配置接口文件。

#?rpm?-ql?heartbeat-ldirectord /etc/ha.d/resource.d/ldirectord /etc/init.d/ldirectord /etc/logrotate.d/ldirectord /usr/sbin/ldirectord /usr/share/doc/heartbeat-ldirectord-2.1.4 /usr/share/doc/heartbeat-ldirectord-2.1.4/COPYING /usr/share/doc/heartbeat-ldirectord-2.1.4/README /usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf /usr/share/man/man8/ldirectord.8.gz

復制ldirector的配置文件到/etc/目錄下

#?cp?/usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf?/etc/ha.d

編輯ldirectord的配置文件,定義其中需要用到的后端RealServer的IP地址以及使用的哪種模型下的lvs,其中gate為dr模型,另外后端的RealServer都出現故障的情況下在這里還定義了fallback server用于顯示提示信息,提示當前服務不可用,達到提醒用戶的目的,而后面的request等條目是用于檢測后端的RealServer的健康狀況使用的,同時需要在各個RealServer的站點根目錄下提供這個文件,內容設置有OK字樣,便于前端的ldirectord服務檢測到后端RealServer是否在線。

#?cd?/etc/ha.d #?vim?ldirectord.cf #?Sample?for?an?http?virtual?service virtual=172.16.103.50:80real=172.16.103.3:80?gatereal=172.16.103.4:80?gatefallback=127.0.0.1:80?gateservice=httprequest="index.html"receive="OK"virtualhost=some.domain.com.auscheduler=rr

另外需要先使用ipvsadm命令配置好ipvs規則,然后保存在ipvs默認的配置文件中,以便ldirectord調用。

#?ipvsadm?-A?-t?172.16.103.50:80?-s?rr???#設定VIP的地址為172.16.103.50 #?ipvsadm?-a?-t?172.16.103.50:80?-r?172.16.103.3?-g? #?ipvsadm?-a?-t?172.16.103.50:80?-r?172.16.103.4?-g #?service?ipvsadm?save #?service?ipvsadm?stop

在該高可用節點上測試啟動ldirectord,查看ipvs規則是否生效:

#?service?ldirectord?start [root@node1?ha.d]#?service?ldirectord?start Starting?ldirectord...?success [root@node1?ha.d]#?ipvsadm?-L?-n? IP?Virtual?Server?version?1.2.1?(size=4096) Prot?LocalAddress:Port?Scheduler?Flags->?RemoteAddress:Port???????????Forward?Weight?ActiveConn?InActConn TCP??172.16.103.50:80?rr->?172.16.103.3:80??????????????Route???1??????0??????????0????->?172.16.103.4:80??????????????Route???1??????0??????????0

規則生效以后可以嘗試關閉后端RealServer的httpd服務,查看前端ldirectord的fallback server是否能正常上線

關閉RealServer的服務:

#?service?httpd?stop

在director上測試一下查看ipvs規則:

[root@node1?ha.d]#?ipvsadm?-L?-n? IP?Virtual?Server?version?1.2.1?(size=4096) Prot?LocalAddress:Port?Scheduler?Flags->?RemoteAddress:Port???????????Forward?Weight?ActiveConn?InActConn TCP??172.16.103.50:80?rr->?127.0.0.1:80?????????????????Local???1??????0??????????0?????????->?172.16.103.3:80??????????????Route???0??????0??????????0????->?172.16.103.4:80??????????????Route???0??????0??????????0

規則文件及資源代理配置好以后,將這兩個文件復制到另外一個高可用服務的節點上。

#?scp?/etc/ha.d/ldirectord.cf?node2:/etc/ha.d #?scp?/etc/sysconfig/ipvsadm?node2:/etc/sysconfig

復制完成后在另一個節點上使用相同的方式測試一下ldirectord服務是否可以正常使用。

三、配置heartbeat的haresource文件,定義高可用集群的各資源及使用的代理,運行的節點等信息:

node2.cluster.com 172.16.103.20/16/eth0/172.16.103.255 ldirectord::/etc/ha.d/ldirectord.cf

在兩個節點上啟動Heartbeat服務:

#?service?heartbeat?start #?ssh?node2?'service?heartbeat?start'

DR模型下的各RealServer的具體配置未給出。請參考前面的DR模型的博客內容。

在瀏覽器內輸入定義的VIP地址,訪問172.16.103.50,顯示效果如下:

在啟動服務的高可用節點上可以查看到啟動的資源結果如下:

[root@node2?ha.d]#?ifconfig eth0??????Link?encap:Ethernet??HWaddr?00:0C:29:E1:37:51??inet?addr:172.16.103.2??Bcast:172.16.255.255??Mask:255.255.0.0inet6?addr:?fe80::20c:29ff:fee1:3751/64?Scope:LinkUP?BROADCAST?RUNNING?MULTICAST??MTU:1500??Metric:1RX?packets:184223?errors:0?dropped:0?overruns:0?frame:0TX?packets:125070?errors:0?dropped:0?overruns:0?carrier:0collisions:0?txqueuelen:1000?RX?bytes:110659582?(105.5?MiB)??TX?bytes:21467745?(20.4?MiB) eth0:0????Link?encap:Ethernet??HWaddr?00:0C:29:E1:37:51??inet?addr:172.16.103.50??Bcast:172.16.103.255??Mask:255.255.0.0UP?BROADCAST?RUNNING?MULTICAST??MTU:1500??Metric:1 lo????????Link?encap:Local?Loopback??inet?addr:127.0.0.1??Mask:255.0.0.0inet6?addr:?::1/128?Scope:HostUP?LOOPBACK?RUNNING??MTU:16436??Metric:1RX?packets:0?errors:0?dropped:0?overruns:0?frame:0TX?packets:0?errors:0?dropped:0?overruns:0?carrier:0collisions:0?txqueuelen:0?RX?bytes:0?(0.0?b)??TX?bytes:0?(0.0?b) [root@node2?ha.d]#?ipvsadm?-L?-n? IP?Virtual?Server?version?1.2.1?(size=4096) Prot?LocalAddress:Port?Scheduler?Flags->?RemoteAddress:Port???????????Forward?Weight?ActiveConn?InActConn TCP??172.16.103.50:80?rr->?172.16.103.3:80??????????????Route???1??????0??????????0???->?172.16.103.4:80??????????????Route???1??????0??????????0

如果同時間后端的RealServer都出現問題,那么在ipvs規則中可以看到fallback server處于工作狀態

[root@node2?ha.d]#?ipvsadm?-L?-n IP?Virtual?Server?version?1.2.1?(size=4096) Prot?LocalAddress:Port?Scheduler?Flags->?RemoteAddress:Port???????????Forward?Weight?ActiveConn?InActConn TCP??172.16.103.50:80?rr->?127.0.0.1:80?????????????????Local???1??????0??????????0?????????->?172.16.103.3:80??????????????Route???0??????0??????????1???????->?172.16.103.4:80??????????????Route???0??????0??????????1

這樣前端是lvs的高可用集群,后端是httpd的LB負載均衡集群的簡單模型配置完成。

轉載于:https://blog.51cto.com/9164364/1550373

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的使用ldirectord实现后端RS健康状态监测及LVS调度功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。