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

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

linux下的lvs三種模式及配置

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

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

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

  技術(shù)簡(jiǎn)介:

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

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

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

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

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

  調(diào)度器:

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

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

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

  調(diào)度算法:

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

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

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

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

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

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

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

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

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

  1、lvs(nat模式配置)

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

  真實(shí)服務(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)客戶(hù)端(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 (客戶(hù)端網(wǎng)關(guān))

  eth2:10.0.0.163 (防火墻和真實(shí)機(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 (和真實(shí)服務(wù)器通信地址)

  eth1:172.16.10.100 (虛擬ip(vip))

  gw:172.16.10.111

  注意:解決Error, some other host already uses address 10.0.0.164.問(wèn)題

  # 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)真實(shí)服務(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