天天看點

LVS_DR + keepalived配置

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  -&gt; state BACKUP</code>

<code>priority 100 -&gt; priority 90</code>

配置完keepalived後,需要開啟端口轉發(主從都要做):

<code>echo</code> <code>1 &gt; </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,如需轉載請自行聯系原作者

繼續閱讀