亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
[LVS+Keepalived]真實服務(wù)器之間不能漂移
[打印本頁]
作者:
codeman
時間:
2016-05-15 16:12
標(biāo)題:
[LVS+Keepalived]真實服務(wù)器之間不能漂移
使用LVS+Keepalived做負載均衡,C/S架構(gòu),搭建了兩個節(jié)點對外提供服務(wù),在測試真實服務(wù)器宕機時,服務(wù)可自動漂移至另一臺真實服務(wù)器,發(fā)現(xiàn)一個奇怪的問題,具體描述如下:
環(huán)境:
VIP:10.98.10.1
RIP1:10.98.10.2
RIP2:10.98.10.3
客戶端通過兩個端口訪問服務(wù)端,一個是18001,用于通信,一般是一個tcp連接;一個是18002,用于上傳大文件,一般會有5個線程同時工作,所以會有5個tcp連接。
因為同一客戶端會通過兩個端口去訪問服務(wù)端,并且希望兩個端口的連接去向是同一臺真實服務(wù)器,所以使用了防火墻標(biāo)記法把兩個端口打包成一個服務(wù)了。
測試時發(fā)現(xiàn)如果在LVS的規(guī)則中加了持久性連接選項(ipvsadm -A -t VIP -s rr -p 300),這樣的話來自同一客戶端的所有tcp連接去向都是同一臺服務(wù)器。假如有兩個客戶端A和B連接,則會發(fā)現(xiàn)每個客戶端連接了一臺真實服務(wù)器,比如A連接10.98.10.2,B連接10.98.10.3。但是如果把其中一臺真實服務(wù)器停掉(10.98.10.3),就會發(fā)現(xiàn)B客戶端還是會一直嘗試去連接10.98.10.3,而不會自動漂移至10.98.10.2,通過ipvsadm -Lnc命令可觀察到。
但如果在LVS的規(guī)則中不加持久性連接選項(ipvsadm -A -t VIP -s rr),這樣的話發(fā)現(xiàn)如果其中某臺服務(wù)器宕機,則服務(wù)會漂移至另一臺真實服務(wù)器,繼續(xù)提供服務(wù);但是又有另外一個問題,發(fā)現(xiàn)客戶端的18002端口的5個線程的tcp連接會平均分配到兩臺真實服務(wù)器上,這不是想要的結(jié)果。
琢磨LVS和Keepalived配置很久了,嘗試著改了不少方式,但都不能完美的實現(xiàn),所以想請問一下怎么配置,既能保證同一客戶端連接同一臺真實服務(wù)器,又能夠?qū)崿F(xiàn)真實服務(wù)器的自動失敗切換功能,謝謝!
作者:
Godbach
時間:
2016-05-16 11:18
回復(fù)
1#
codeman
可以試試七層負載均衡 HAProxy 嗎
作者:
撒加
時間:
2016-05-16 13:34
你兩個節(jié)點上只是部署了LVS+keepalived?沒有其他的服務(wù)進行復(fù)用?
另外,你啟用持久連接后,超市時間是300秒,所以你讓10.98.10.3 down了后,所以B還是會連接10.98.10.3,等300秒后才會斷開連接,然后連接10.98.10.2
作者:
撒加
時間:
2016-05-16 13:37
另外,你可能需要virtual_server group GROUPNAME,這種方式來配置你的LVS
作者:
codeman
時間:
2016-05-16 14:03
回復(fù)
2#
Godbach
客戶端是使用的TCP連接,不是http等七層協(xié)議。
作者:
codeman
時間:
2016-05-16 14:06
回復(fù)
3#
撒加
不好意思,我可能沒說清楚。
LVS也有主備兩臺服務(wù)器,一個是10.98.10.4,一個是10.98.10.5,LVS和Keepalived都是安裝在這兩臺機器上,VIP是配置在這。
服務(wù)端程序是部署在兩臺真實服務(wù)器上,客戶端都通過訪問對外的VIP來做負載均衡。
作者:
codeman
時間:
2016-05-16 14:08
回復(fù)
3#
撒加
即使300秒超時后也不會連接另外一臺服務(wù)器,另外也配置了參數(shù)expire_quiescent_template=1,也還是不工作,也是一直不太理解的地方。
作者:
codeman
時間:
2016-05-16 14:10
回復(fù)
4#
撒加
以前有加,后來查資料有提到這個配置參數(shù),好像是用于有多組LVS的時候。
作者:
撒加
時間:
2016-05-16 14:39
回復(fù)
7#
codeman
expire_nodest_conn的配置是什么,方便的話能把你的keepalived配置貼出來,以及ipvs-sysctl的都發(fā)出來
作者:
Godbach
時間:
2016-05-16 15:03
回復(fù)
3#
撒加
HAProxy 中對于這種情況,會及時感知,并且讓 persitence 失效的。
對于 down 的 RS,其上的 pesistence 邏輯也應(yīng)該及時失效,而不是維持到超時結(jié)束。
作者:
Godbach
時間:
2016-05-16 15:04
回復(fù)
5#
codeman
嗯,HAProxy 也可以配置為 TCP 模式。只是性能沒有 LVS 好。
作者:
撒加
時間:
2016-05-16 15:24
回復(fù)
10#
Godbach
Haproxy里的機制也是開啟healtch check才有效果的吧???
作者:
Godbach
時間:
2016-05-16 15:44
回復(fù)
12#
撒加
對。沒 health check,那它永遠傻傻的都以為所有 rs 可用。
有 heath check 了,一旦 server down 掉。server 的狀態(tài)就會變化。stick table 查到該表項的時候,會實際的再查看一下 server 的狀態(tài),如果已經(jīng) down 了,就放棄這個表項,按照正常選擇 server 的流程處理。
作者:
撒加
時間:
2016-05-16 16:27
回復(fù)
13#
Godbach
哈哈,我理解沒錯。
LVS自身的check比較弱,不過現(xiàn)在使用Keepalived 1.2.20的版本,對于cheker這塊做了加強,尤其是HTTPCHK和TCP CHK,盡管跟Haproxy的check比還是弱,畢竟有所增強,挺好的。
作者:
codeman
時間:
2016-05-16 16:43
回復(fù)
9#
撒加
也是配置的為1.
把lvs master那臺機器的keepalived.conf,lvs規(guī)則和sysctl.conf,以及真實服務(wù)器的規(guī)則傳上來了。
lvs.zip
(2.08 KB, 下載次數(shù): 85)
2016-05-16 16:42 上傳
點擊文件名下載附件
作者:
codeman
時間:
2016-05-16 16:45
回復(fù)
10#
Godbach
后續(xù)研究一下,因為項目的技術(shù)規(guī)范暫時約定的是使用LVS,如果還是不行,就建議領(lǐng)導(dǎo)讓試試。
作者:
codeman
時間:
2016-05-16 16:47
回復(fù)
14#
撒加
是不是因為我用的版本較低,目前keepalived的版本是1.1.20,LVS是1.2.1(ipvsadm)。
作者:
codeman
時間:
2016-05-16 16:51
回復(fù)
9#
撒加
也是配置為1.
附件是LVS master上的keepalived.conf、sysctl.conf和lvs的rule,以及真實服務(wù)器上的規(guī)則配置。
lvs.zip
(2.08 KB, 下載次數(shù): 19)
2016-05-16 16:50 上傳
點擊文件名下載附件
lvs
作者:
撒加
時間:
2016-05-16 17:07
回復(fù)
18#
codeman
版本低是一個方面,你把本應(yīng)該keepalived干的事情,用腳本去做了。比如lvsrule1.sh中要做的事情,使用keepalived 1.2.17以上的版本都可以啊。從你的版本上看,你系統(tǒng)是centos 5系列的吧
作者:
codeman
時間:
2016-05-16 17:26
回復(fù)
19#
撒加
系統(tǒng)是centos 6.4
另外keepalived和lvsrule1中哪些有沖突?麻煩給我指出來一下。
作者:
codeman
時間:
2016-05-17 10:03
回復(fù)
19#
撒加
您是指只需要在lvsrule1中設(shè)置防火墻標(biāo)記就行,不用增加lvs的規(guī)則是嗎?
作者:
撒加
時間:
2016-05-18 09:56
回復(fù)
21#
codeman
你的腳本里只需要保留VIP和IPTABLE規(guī)則,而且你的規(guī)則可以用一條就夠了
iptables -t mangle -A PREROUTING -d $VIP -i eth1 -p tcp -m multiport --dports 8080,18001,18002 -j MARK --set-mark 10
在keepalived.conf中,virtual_server ip port可以變?yōu)関irtual_server fwmark 也就是virtual_server fwmark 10來弄
其余的東西不需要,keepalived配置好后,啟動Keepalived就生效了。只需要用Ipvsadm來查看一些狀態(tài)。你要仔細研究的話,可以在keepalived中啟用snmp,通過snmp就可以看了,都不需要ipvsadm命令看了。
作者:
benjamindu_1234
時間:
2016-05-26 18:21
看的出來,版主是一位德高望重的負載均衡實施者也是改良者,值得我輩效仿。
作者:
開源將軍
時間:
2016-06-18 08:43
keepalived lvs 據(jù)我所知,是完全可以漂移的,不過本人水平有限,待隔日再補充回答你的問題
歡迎光臨 Chinaunix (http://72891.cn/)
Powered by Discuz! X3.2