LVS KEEPAlived 配置 DIR模式

2021-09-06 18:23:48 字數 3883 閱讀 1538

lvs是linux virtual server的簡寫,意即linux虛擬伺服器,是乙個虛擬的伺服器集群系統。本專案在2023年5月由章文嵩博士成立,是中國國內最早出現的自由軟體專案之一。目前有三種ip負載均衡技術(vs/nat、vs/tun和vs/dr)

本文主要介紹dr模式運用

dr模式是什麼?撇開lvs排程演算法部分,dr模式的原理就是,將報文直接路由給目標伺服器(direct routing),其實這裡沒有routing啥事情,叫做direct select更準確一些,為什麼這麼說呢?因為他直接不修改資料報,他直接把資料報打包成乙太網的資料幀,只是這個資料幀裡的目標mac位址是最終的真實伺服器的mac位址,所以dr模式要求在同乙個物理網段,不能跨路由。

當目標伺服器收到這個資料幀的時候,把它解包,當伺服器發現資料報的目標位址(也就是vip)是在本地的網路裝置上(一般都是在真實伺服器的lo:0上繫結乙個vip位址),伺服器處理這個資料報,然後根據本地路由表將響應報文直接返回給客戶

2.1 keepalived

這裡是用keepalived來進行lvs的建立和伺服器和vip的健康檢查,其實keepalived就像乙個shell,他自動的給你做lvs+vrrp。

keepalived本身來做真實伺服器的健康檢查,vrrp來做vip的冗餘。

vip:192.168.2.240

lvs:192.168.2.210 192.168.2.211

realserver: 192.168.2.212 192.168.2.213

所需軟體:keepalived

ipvsadm(主要是管理檢視作用)

# ln -s /usr/src/kernels/2.6.18-92.el5-i686 /usr/src/linux

# tar -zxvf ipvsadm-1.24.tar.gz

先配置 realserver  指令碼:

/opt/lvs_server.sh  192.168.2.212

#!/bin/bash

# description: config realserver

vip=192.168.2.240

/etc/rc.d/init.d/functions

case"$1

"instart)

/sbin/ifconfig lo:0 $vip netmask 255.255.255.255

broadcast $vip

/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 > /dev/null

2>&1

echo

"realserver start ok";;

stop)

/sbin/ifconfig lo:0

down

/sbin/route del $vip > /dev/null

2>&1

echo"0

" > /proc/sys/net/ipv4/conf/lo/arp_ignore

echo"0

" > /proc/sys/net/ipv4/conf/lo/arp_announce

echo"0

" > /proc/sys/net/ipv4/conf/all/arp_ignore

echo"0

" > /proc/sys/net/ipv4/conf/all/arp_announce

echo

"realserver stoped";;

*)

echo

"usage: $0

"exit

1esac

exit

0

# scp /opt/lvs_server.sh [email protected]:/opt/  

加入到開

vim /etc/rc.d/rc.local

/bin/bash /opt/lvs_real start

配置keepalived :

vim /etc/keepalived/keepalived.conf 192.168.2.210

! configuration file for

keepalived

global_defs

notification_email_from jackchengwc@

163.com

smtp_server smtp.

163.com

smtp_connect_timeout

30router_id lvs_devel

}vrrp_instance vi_1

virtual_ipaddress

}virtual_server

192.168.2.24080}

real_server

192.168.2.213

80 }

}

# scp /etc/keepalived/keepalived.conf [email protected]:/etc/keepalived/

lvs_sync_daemon_inteface eth0  #負載均衡器之間的監控介面,類似於ha heartbeat的心跳線。但它的機制優於heartbeat,因為它沒有「裂腦」這個問題,它是以優先順序這個機制來規避這個麻煩的。在dr模式 中,lvs_sync_daemon_inteface 與服務介面inte***ce 使用同乙個網路介面

virtual_router_id 51 #虛擬路由標識,這個標識是乙個數字,並且同乙個vrrp例項使用唯一的標識。即同乙個vrrp_stance,master和backup的virtual_router_id是一致的,同時在整個vrrp內是唯一的

mcast_src_ip 192.168.2.240

#mcast_src_ip #多播的源ip,設定為這台lvs的ip 好像不用也行

priority 100 #路由的優先級別,主lvs要設定的比從lvs要高

advert_int 1

authentication {

auth_type pass #同一vrrp例項master與backup 使用相同的密碼才能正常通訊

auth_pass 1111

virtual_ipaddress {

192.168.11.240 #虛擬ip,也就是vip位址。可以設定很多組vip

delay_loop 3 #健康檢查的間隔

lb_algo wlc #lvs的排程演算法

lb_kind dr #lvs的排程模式

persistence_timeout 50 #連線保持的超時時間,保證乙個使用者的連線總是導向到同乙個伺服器,當使用者第一次訪問的時候,他的訪問請求被負載均衡器轉給某個真實伺服器,這樣他看到乙個登陸頁面,第一次訪問完畢;接著他在登陸框填寫使用者名稱和密碼,然後提交;這時候,問題就可能出現了—登陸不能成功。因為沒有會話保持,負載均衡器可能會把第2次的請求**到其他的伺服器

#用ipvsadm -lcn 觀察是否生效

protocol tcp

ha_suspend  #禁止,vip失效的時候對真實伺服器進行健康檢查(也就是說備用伺服器不會去做真實伺服器的健康檢查)

# ipvsadm -l -n 這個命令檢視 

LVS Keepalived負載均衡配置

lvs一般是和keepalived一起組合使用的,雖然也可以單獨使用lvs,但配置比較繁瑣,且可用性也沒有前者高。lvs和keepalived組合使用後,配置lvs的vip和負載均衡就都在keepalived中進行配置,只是在keepalived中呼叫lvs 配置 keepalived.conf g...

安裝lVS keepalived心得

接著昨天蛋疼地無網裝keepalived,今天又在裝lvs。首先按照網上的教程做 這裡就說自己遇到的問題,第乙個是找不到 usr src kernels下的核心檔案。要先rpm kernel devel才會有。其次,用ln s 軟鏈結一直鏈不上去,可以在安裝keepalived的 configure...

LVS keepalived負載均衡實戰

lvs keepalived負載均衡實戰 一 為什麼要使 用負載均衡技術?1 系統高可用性 2 系統可擴充套件性 3 負載均衡能力 lvs keepalived能很好的實現以上的要求,lvs提 供負載均衡,keepalived提供健康檢查,故障轉移,提高系統的可用性!採用這樣的架構以後 很容易對現有...