技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機(jī)純凈版,64位旗艦版,綠色軟件,免費(fèi)軟件下載基地!

當(dāng)前位置:主頁 > 教程 > 服務(wù)器類 >

linux下的lvs三種模式及配置

來源:技術(shù)員聯(lián)盟┆發(fā)布時間:2018-08-01 12:00┆點(diǎn)擊:

  lvs:linux virtual server,linux虛擬服務(wù)器。是linux平臺下的負(fù)載均衡軟件。

  優(yōu)點(diǎn):a、開源,免費(fèi)b、在網(wǎng)上能找到相關(guān)技術(shù)資源c、具有軟件負(fù)載均衡的優(yōu)點(diǎn)。

  技術(shù)簡介:

  lvs集群采用IP負(fù)載均衡技術(shù)和基于內(nèi)容請求分發(fā)技術(shù)。調(diào)度器具有很好的吞吐率,將請求均衡的轉(zhuǎn)移到不同的服務(wù)器上執(zhí)行,調(diào)度器自動屏蔽服務(wù)器的故障,從而將一組服務(wù)器構(gòu)成一個高性能的高可用的虛擬服務(wù)器。整個服務(wù)器集群的結(jié)構(gòu)對客戶是透明的,無需修改客戶端和服務(wù)器端的程序。

  集群的三層架構(gòu):

  A、負(fù)載調(diào)度器,是整個集群對外面的前端機(jī),負(fù)責(zé)將客戶的請求發(fā)送到一組服務(wù)器上執(zhí)行,而客戶認(rèn)為服務(wù)是來自一個IP地址

  B、服務(wù)器池,是一組真正執(zhí)行客戶請求的服務(wù)器,執(zhí)行的服務(wù)有web、mail、ftp和dhs等

  C、共享存儲,為服務(wù)器提供一個共享的存儲區(qū),很容易使得服務(wù)器池?fù)碛邢嗤膬?nèi)容,提供相同的服務(wù)。

  調(diào)度器:

  調(diào)度器是服務(wù)器集群系統(tǒng)的唯一入口點(diǎn),可以采用IP負(fù)載均衡技術(shù)、基于內(nèi)容請求分發(fā)技術(shù)或者兩者的結(jié)合。

  調(diào)度器采用ip負(fù)載均衡技術(shù),基于內(nèi)容請求分發(fā)技術(shù)或者兩者的結(jié)合。在IP負(fù)載均衡技術(shù)中,需要服務(wù)器池?fù)碛邢嗤膬?nèi)容提供相同的服務(wù)。當(dāng)客戶請求到達(dá)時,調(diào)度器根據(jù)服務(wù)器負(fù)載情況和設(shè)定的調(diào)度算法從服務(wù)器池中選擇一個服務(wù)器,將帶請求轉(zhuǎn)發(fā)到選出的服務(wù)器,并記錄這個調(diào)度;當(dāng)這個請求的其他報文到達(dá),也會被轉(zhuǎn)發(fā)到前面選出的服務(wù)器。

  在基于內(nèi)容請求分發(fā)技術(shù)中,服務(wù)器可以提供不同的服務(wù),當(dāng)客戶請求到達(dá)時,調(diào)度器可以根據(jù)請求的內(nèi)容選擇服務(wù)器執(zhí)行請求。

  調(diào)度算法:

  輪叫調(diào)度:以輪叫的方式依次將請求調(diào)度不同的服務(wù)器,算法簡潔,無需記錄當(dāng)前所有鏈接的狀態(tài),是無狀態(tài)的調(diào)度

  加權(quán)輪叫調(diào)度:用相應(yīng)的權(quán)值表示服務(wù)器的處理性能,默認(rèn)權(quán)值為1.按權(quán)值的高低和輪叫方式分配請求到各服務(wù)器

  最小連接調(diào)度:把新的鏈接請求分配到當(dāng)前連接數(shù)最小的服務(wù)器,是一種動態(tài)的調(diào)度算法,通過服務(wù)器當(dāng)前活躍的連接數(shù)來估算服務(wù)器的負(fù)載情況。

  加權(quán)最小連接調(diào)度:各個服務(wù)器相應(yīng)的權(quán)值表示其處理性能。盡可能使服務(wù)器已經(jīng)建立的連接數(shù)和其權(quán)值成比例

  基于局部性的最小鏈接:在服務(wù)器的負(fù)載平衡情況下,將相同目標(biāo)IP地址的請求調(diào)度到同一臺服務(wù)器,提高各服務(wù)器的訪問局部性和主存cache命中率。

  帶復(fù)制的基于局部性的最少鏈接:與基于局部性的最小鏈接不同的是,這個需要維護(hù)從一個目標(biāo)IP到一組服務(wù)器的映射。

  目標(biāo)地址散列調(diào)度:靜態(tài)映射算法,通過一個散列函數(shù)將一個目標(biāo)IP地址映射到一臺服務(wù)器

  源地址散列調(diào)度:與目標(biāo)地址散列調(diào)度相反,根據(jù)請求的源IP地址作為散列值,從靜態(tài)分配的散列表找出相應(yīng)的服務(wù)器。

  負(fù)載均衡技術(shù) vs/nat:通過網(wǎng)絡(luò)地址轉(zhuǎn)換技術(shù),將一組服務(wù)器構(gòu)成一個高可用的,高性能的虛擬服務(wù)器。 vs/tun:通過ip隧道實現(xiàn)虛擬服務(wù)器 vs/dr:通過直接路由實現(xiàn)虛擬服務(wù)器虛擬ip:director用于向客戶端計算機(jī)提供服務(wù)的ip地址真實ip:在集群節(jié)點(diǎn)上使用ip地址,提供真實服務(wù)的機(jī)器 director的ip:director用于連接到D/rip網(wǎng)絡(luò)的ip地址客戶端ip:分配給客戶端計算機(jī)的ip地址,用作發(fā)送給集群的請求的源地址

  1、lvs(nat模式配置)

  (1)準(zhǔn)備好網(wǎng)絡(luò)環(huán)境

  真實服務(wù)器(應(yīng)用服務(wù),ip地址,網(wǎng)關(guān))

  調(diào)度服務(wù)器(ip地址,數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)置)

  防火墻服務(wù)器(ip地址,數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)置,NAT配置)

  (2)調(diào)度服務(wù)器配置

  # vim /etc/sysctl.conf

  net.ipv4.ip_forward = 1

  # sysctl -p

  # yum install ipvsadm

  # ipvsadm -A -t 172.16.10.111:80 -s rr

  # ipvsadm -a -t 172.16.10.111:80 -r 10.0.0.11:80 -m

  # ipvsadm -a -t 172.16.10.111:80 -r 10.0.0.12:80 -m

  # ipvsadm -a -t 172.16.10.111:80 -r 10.0.0.13:80 -m

  # service ipvsadm save

  (3)防火墻的配置

  # vim /etc/sysctl.conf

  net.ipv4.ip_forward = 1

  # sysctl -p

  # iptables -t nat -A PREROUTING -i eth1 -s 10.10.10.0/24 -p tcp --dport 80 -j DNAT --to-destination=172.16.10.111:80

  2、lvs(dr模式配置)

  (1)客戶端(Client)配置

  eth0(cip):10.10.10.10

  gw:10.10.10.110

  (2)防火墻配置(Fireware)配置

  ip配置

  eth0:172.16.10.111 (防火墻和調(diào)度服務(wù)器通信地址)

  eth1:10.10.10.11 (客戶端網(wǎng)關(guān))

  eth2:10.0.0.163 (防火墻和真實機(jī)的通信地址)

  # vim /etc/sysctl.conf

  net.ipv4.ip_forward = 1

  # sysctl -p

  # iptables -t nat -A PREROUTING -i eth1 -s 10.10.10.0/24 -p tcp --dport 80 -j DNAT --to-destination=172.16.10.111:80

  (3)調(diào)度服務(wù)器(ldirector)配置

  ip配置

  eth0:10.0.0.164 (和真實服務(wù)器通信地址)

  eth1:172.16.10.100 (虛擬ip(vip))

  gw:172.16.10.111

  注意:解決Error, some other host already uses address 10.0.0.164.問題

  # vim /etc/sysconfig/network-scripts/ifup-eth 注釋掉一下四行

  # if ! /sbin/arping -q -c 2 -w 3 -D -I ${REALDEVICE} ${ipaddr[$idx]} ; then

  # net_log $"Error, some other host already uses address ${ipaddr[$idx]}."

  # exit 1

  # fi

  配置數(shù)據(jù)包轉(zhuǎn)發(fā)

  # vim /etc/sysctl.conf

  net.ipv4.ip_forward = 1

  # sysctl -p

  配置調(diào)度

  # ipvsadm -A -t 172.16.10.100:80 -s rr

  # ipvsadm -a -t 172.16.10.100:80 -r 10.0.0.11:80 -g

  # ipvsadm -a -t 172.16.10.100:80 -r 10.0.0.12:80 -g

  # ipvsadm -a -t 172.16.10.100:80 -r 10.0.0.13:80 -g

  # ipvsadm -L -n 查看ipvsadm配置

  # ipvsadm -L -n --stats 查看ipvsadm狀態(tài)

  添加網(wǎng)關(guān)

  # route add default gw 172.16.10.111

  (4)真實服務(wù)器(real server)配置

  ip配置

  1)ip:10.0.0.11/16

  gw:10.0.0.139

  vip:172.16.10.100

  # ifconfig lo:0 172.16.10.100/32 broadcast 172.16.10.100

  禁用接收廣播回應(yīng)配置

  #vim /etc/sysctl.conf

  net.ipv4.conf.lo.arp_ignore = 1

  net.ipv4.conf.lo.arp_announce = 2

  net.ipv4.conf.all.arp_ignore = 1

  net.ipv4.conf.all.arp_announce = 2

  # sysctl -p

  或者

  # yum install arptables_jf

  # arptables -A IN -d 172.16.10.100 -j DROP

  添加路由

  # route add -host 172.16.10.100 dev lo:0