LVS/DR + keepalived配置
注意:前面雖然我們已經配置過一些操作,但是下面我們使用keepaliave操作和之前的操作是有些沖突的,是以若是之前配置過DR,請首先做如下操作:
dr上執行:
$ipv -C
ifconfig eth0:0 down
前面的lvs雖然已經配置成功也實作了負載均衡,但是我們測試的時候發現,當某台real server把httpd程序停掉,那麼director照樣會把請求轉發過去,這樣就造成了某些請求不正常。是以需要有一種機制用來檢測real server的狀态,這就是keepalived。它的作用除了可以檢測rs狀态外,還可以檢測備用director的狀态,也就是說keepalived可以實作ha叢集的功能,當然了也需要一台備用director.
備用director也需要安裝一下keepalived軟體
<code>yum </code><code>install</code> <code>-y keepalived</code>
安裝好後,編輯配置檔案
<code>vim </code><code>/etc/keepalived/keepalived</code><code>.conf</code>
//加入如下:
<code>vrrp_instance VI_1 {</code>
<code> </code><code>state MASTER </code><code>#備用伺服器上為BACKUP</code>
<code> </code><code>interface eth0</code>
<code> </code><code>virtual_router_id 51</code>
<code> </code><code>priority 100 </code><code>#備用伺服器上為90</code>
<code> </code><code>advert_int 1</code>
<code> </code><code>authentication {</code>
<code> </code><code>auth_type PASS</code>
<code> </code><code>auth_pass 1111</code>
<code> </code><code>}</code>
<code> </code><code>virtual_ipaddress {</code>
<code> </code><code>192.168.31.110</code>
<code>}</code>
<code>virtual_server 192.168.31.110 80 {</code>
<code> </code><code>delay_loop 6 </code><code>#(每隔10秒查詢realserver狀态)</code>
<code> </code><code>lb_algo wlc </code><code>#(lvs算法)</code>
<code> </code><code>lb_kind DR </code><code>#(Direct Route)</code>
<code> </code><code>persistence_timeout 60 </code><code>#(同一IP的連接配接60秒内被配置設定到同一台realserver)</code>
<code> </code><code>protocol TCP </code><code>#(用TCP協定檢查realserver狀态)</code>
<code> </code>
<code> </code><code>real_server 192.168.31.100 80 {</code>
<code> </code><code>weight 100 </code><code>#(權重)</code>
<code> </code><code>TCP_CHECK {</code>
<code> </code><code>connect_timeout 10 </code><code>#(10秒無響應逾時)</code>
<code> </code><code>nb_get_retry 3</code>
<code> </code><code>delay_before_retry 3</code>
<code> </code><code>connect_port 80</code>
<code> </code><code>}</code>
<code>real_server 192.168.31.101 80 {</code>
<code> </code><code>weight 100</code>
<code> </code><code>connect_timeout 10</code>
slave上:
從director的配置檔案隻需要修改:
<code>state MASTER -> state BACKUP</code>
<code>priority 100 -> priority 90</code>
配置完keepalived後,需要開啟端口轉發(主從都要做):
<code>echo</code> <code>1 > </code><code>/proc/sys/net/ipv4/ip_forward</code>
然後,兩個rs上執行 /usr/local/sbin/lvs_dr_rs.sh 腳本
最後,兩個director上啟動keepalived服務(先主後從):
<code>/etc/init</code><code>.d</code><code>/keepalived</code> <code>start</code>
另外,需要注意的是,啟動keepalived服務會自動生成vip和ipvsadm規則,不需要再去執行上面提到的/usr/local/sbin/lvs_dr.sh 腳本。
/usr/local/sbin/lvs_dr.sh腳本:http://syklinux.blog.51cto.com/9631548/1741457
本文轉自 sykmiao 51CTO部落格,原文連結:http://blog.51cto.com/syklinux/1741459,如需轉載請自行聯系原作者