Lvs-DR模式負載均衡
過程
client ->VS->RS->client(VS只做排程,RS為伺服器)
DR模式:直接路由,VS改寫請求報文的MAC地址,由排程演算法分配真實的伺服器,MAC地址改為真實伺服器的MAC地址
伺服器將響應訊息直接傳送給客戶端.
原理詳情
1、通過在排程器VS上修改資料包的目的MAC地址實現轉發,CIP不變,目的地址仍然是VIP地址;(cip(cm,m代表mac地址)->vip(vm->RM,在2層鏈路層改變了mac地址來定位))
2、請求的報文經過排程器,而伺服器響應處理後的報文無需經過排程器,因此併發訪問量大時使用效率很高(和NAT模式比)
3、因為DR模式是通過MAC地址改寫機制實現轉發,因此所有RS節點和排程器只能在一個局域網裡面
4、伺服器主機需要繫結VIP地址在LO介面上,且需要配置ARP抑制。
5、伺服器節點的預設閘道器不需要配置成LB,而是直接配置為上級路由的閘道器,能讓伺服器直接出網就可以。
6、因為DR模式的排程器僅做MAC地址的改寫,所以排程器就不能改寫目標埠,那麼伺服器就得使用和VIP相同的埠提供服務。
實驗環境
iptables和selinux關閉
redhat6.5
VS:server1 172.25.254.1
RS:server2 172.25.254.2
RS:server3 172.25.254.3
vip:172.25.254.100
VS:
[[email protected] ~]# yum install -y ipvsadm
[[email protected] ~]# iptables -L //檢視iptables是否關閉
Chain INPUT (policy ACCEPT)
target prot opt source destinationChain FORWARD (policy ACCEPT)
target prot opt source destinationChain OUTPUT (policy ACCEPT)
target prot opt source destination
[[email protected] ~]# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
[[email protected] ~]# ipvsadm -A -t 172.25.254.100:80 -s rr
//-s排程演算法,預設為wlc加權排程演算法
[[email protected] ~]# ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.2:80 -g
//-a表示在新增虛擬服務中新增,-g表示使用直連模式
[[email protected] ~]# ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.3:80 -g
[[email protected] ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 172.25.254.100:80 rr
-> 172.25.254.2:80 Route 1 0 0
-> 172.25.254.380 Route 1 0 0
[[email protected] ~]# ip addr add 172.25.254.100/24 dev eth0 //新增虛擬ip
[[email protected] ~]# ip addr
link/ether 52:54:00:9f:e0:90
inet 172.25.254.1/24
inet 172.25.254.100/24
RS:
注意: RS上必須有vip才能建立連線
Server2:
[[email protected] ~]# /etc/init.d/httpd start
[[email protected] html]# cat index.html
www.westos.org-Server2
[[email protected] ~]# ip addr add 172.25.254.100/24 dev eth0
//新增虛擬ip,這裡是臨時新增
[[email protected] ~]# ip addr
link/ether 52:54:00:74:05:fc
inet 172.25.254.2/24 brd
inet 172.25.254.100/24Server3:
[[email protected] ~]# /etc/init.d/httpd start
[[email protected] html]# cat index.html
bbs.westos.org
[[email protected] ~]# ip addr add 172.25.254.100/24 dev eth0
[[email protected] ~]# ip addr
link/ether 52:54:00:10:6f:56
inet 172.25.254.3/24
inet 172.25.254.100/24
客戶端測試:
發現連線到的ip(VS和RS的ip都一樣)是隨機的,因為三臺server在同一VLAN下具有相同的vip,故不能保證每次都會訪問排程器server1
為了解決這個問題,需要設定禁止訪問連線RS
RS:
server2:
[[email protected] ~]# yum install arptables_jf -y
[[email protected] ~]# arptables -A IN -d 172.25.253.100 -j DROP
//-A控制arp協議,IN新增策略,mangle轉換
[[email protected] ~]# arptables -A OUT -s 172.25.254.100 -j mangle --mangle-ip-s 172.25.254.2
[[email protected] ~]# /etc/init.d/arptables_jf save
[[email protected] ~]# cat /etc/sysconfig/arptables
//此檔案存有arptables的記錄,關掉之後,重啟依舊存在server3:
[[email protected] ~]# yum install arptables_jf -y
[[email protected] ~]# arptables -A IN -d 172.25.254.100 -j DROP
[[email protected] ~]# arptables -A OUT -s 172.25.254.100 -j mangle --mangle-ip-s 172.25.254.3
[[email protected] ~]# /etc/init.d/arptables_jf save
Vs對後端沒有健康檢查
方式一:用ldirectord解決此問題
VS:
[[email protected] ~]# yum install ldirectord-3.9.5-3.1.x86_64.rpm -y
[[email protected] ~]# rpm -ql ldirectord //檢視配置檔案
/usr/share/doc/ldirectord-3.9.5/ldirectord.cf
[[email protected] ~]# cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d/
[[email protected] ~]# cd /etc/ha.d
[[email protected] ha.d]# ls
ldirectord.cf resource.d shellfuncs
[[email protected] ha.d]# vim ldirectord.cf
virtual=172.25.254.100:80
real=172.25.254.2:80 gate
real=172.25.254.3:80 gate
fallback=127.0.0.1:80 gate
service=http
protoccol=tcp
checkport=80
request="index.html"[[email protected] ha.d]# ipvsadm -C //清理規則
[[email protected] ha.d]# ipvsadm -l //檢視是否清除
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
[[email protected] ha.d]# /etc/init.d/ldirectord start //再次開啟服務又可以加載出規則
[[email protected] ha.d]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 172.25.254.100:80 rr
-> 172.25.254.2:80 Route 1 0 0
-> 172.25.254.3:80 Route 1 0 0
[[email protected] ha.d]# cd /var/www/html
[[email protected] html]# vim index.html
系統維護中......
//在客戶端curl 172.25.254.2測試時,RS輪詢,當關閉server2時,只訪問server3,RS都關閉時會訪問本地,而顯示“系統維護中......”
方式二:用keepalived軟體解決
再建立一個子盤server4:172.25.254.4
server1:
[[email protected] ~]# tar zxf keepalived-2.0.6.tar.gz
[[email protected] ~]# cd keepalived-2.0.6
[[email protected] keepalived-2.0.6]# ./configure --prefix=/usr/local/keepalived --with-init=SYSV
[[email protected] keepalived-2.0.6]# yum install openssl-devel
[[email protected] keepalived-2.0.6]# ./configure --prefix=/usr/local/keepalived --with-init=SYSV
[[email protected] keepalived-2.0.6]# make //編譯
[[email protected] keepalived-2.0.6]# make install
[[email protected] keepalived-2.0.6]# ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
[[email protected] keepalived-2.0.6]# ln -s /usr/local/keepalived/etc/keepalived/ /etc/
[[email protected] keepalived-2.0.6]# ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[[email protected] keepalived-2.0.6]# ln -s /usr/local/keepalived/sbin/keepalived /sbin/
[[email protected] keepalived-2.0.6]# cd /usr/local/
[[email protected] local]# scp -r keepalived/ server4:/usr/local/ 將keepalived傳給server4
[[email protected] local]# cd /etc/init.d/
[[email protected] init.d]# chmod +x keepalived
[[email protected] init.d]# /etc/init.d/keepalived start //開啟服務server4:
[[email protected] ~]# ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
[[email protected] ~]# ln -s /usr/local/keepalived/etc/keepalived/ /etc/
[[email protected] ~]# ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[[email protected] ~]# ln -s /usr/local/keepalived/sbin/keepalived /sbin/
[[email protected] ~]# chmod +x /usr/local/keepalived/etc/init.d/keepalived
[[email protected] local]# /etc/init.d/keepalived start
server1:
[[email protected] ~]# cd /etc/keepalived/
[[email protected] keepalived]# yum install mailx -y
[[email protected] keepalived]# vim keepalived.conf //內容如下
//Virtual_router_id虛擬路由id,Delay_loop後端的健康檢查,Persistence_timeout持續連線,一直保持協議磋商
global_defs {
notification_email {
[email protected]
}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
#vrrp_strict #註釋以放其修改防火牆規則
vrrp_garp_interval 0
vrrp_gna_interval 0vrrp_instance VI_1 {
state MASTER //server4上為BACKUP
interface eth0
virtual_router_id 35
priority 100 #數值越大,優先順序越高 server4上為50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.25.254.100
}
}virtual_server 172.25.254.100 80 { #VS的vip,服務啟動生效時自動新增
delay_loop 3 #對後端的健康檢查時間
lb_algo rr #排程演算法
lb_kind DR #模式為DR
#persistence_timeout 50 #註釋持續連線
protocol TCPreal_server 172.25.254.2 80{ #RS
weight 1
TCP_CHECK{
connect_timeout 3
retry 3
delay_before_retry 3
}
}
real_server 172.25.25.3 80{
weight 1
TCP_CHECK{
connect_timeout 3
retry 3
delay_before_retry 3
}
}
}
[[email protected] keepalived]# scp keepalived.conf server4:/etc/keepalived/
[[email protected] keepalived]# ip addr del 172.25.254.100/24 dev eth0
[[email protected] keepalived]# /etc/init.d/keepalived restart
高可用
[[email protected] keepalived]# /etc/init.d/keepalived stop
//關掉server1(也可使用echo c > /proc/sysrq-trigger破壞server1的核心使其不能使用),客戶端檢視內容不會變化,因為server4接替了server1
[[email protected] keepalived]# cat /var/log/messages //檢視server4的日誌
[[email protected] ~]# /etc/init.d/httpd stop
//將兩個RS都關掉,則不能正常訪問,與ldirectord不同的是本地不會接替讓VS訪問
相關推薦
LVS DR模式負載均衡搭建、keepalived高可用+LVS負載均衡配合
lvs lvs dr模式 lvs負載均衡 keepalived+LVS LVS DR模式搭建 準備:dir(調度器):192.168.188.2rs1:192.168.188.3rs2:192.168.188.6vip:192.168.188.200 安裝ipvsadm yum insta
Lvs-DR模式負載均衡
過程 client ->VS->RS->client(VS只做排程,RS為伺服器) DR模式:直接路由,VS改寫請求報文的MAC地址,由排程演算法分配真實的伺服器,MAC地址改為真實伺服器的MAC地址 伺服器將響應訊息直接傳送給客戶端.
LVS/DR + keepalived負載均衡高可用實現
ha lvs keepalive 一、keepalived簡介keepalived是分布式部署解決系統高可用的軟件,結合lvs(LinuxVirtual Server)使用,解決單機宕機的問題。keepalived是一個基於VRRP協議來實現IPVS的高可用的解決方案。對於LVS負載均衡來說,如果
Keepalived結合LVS-DR實現負載均衡高可用集群
table 開啟 strong 部署 toc ifconf cal 指向 protocol 簡介 Keepalived期初是專門針對LVS設計的一款強大的輔助工具,主要用來提供故障切換和健康檢查功能—判斷LVS負載調度器、節點服務器的可用性,及時隔離並替換新的服務器,當故障
使用虛擬機器實現lvs nat模式負載均衡
1.準備伺服器與配置網路 以真實PC機作為使用者,為節省資源在虛擬機器中只克隆配置了3臺centos伺服器,一臺作為LVS伺服器,兩臺作為真正處理資料的web伺服器,由於LVS伺服器充當了路由的功能,所以要兩個網絡卡,LVS伺服器連線主機的網絡卡用Host-only方式與
負載均衡(LVS DR模式搭建,DR只用一個公網ip,Keepalived+LVS DR)
manage 出現 backup wan ria 文件 重復 ipv4 簡單 一、LVS DR模式搭建準備工作三臺機器:分發器,dir:192.168.52.100rs1:192.168.52.101 (網關改回來,之前nat模式改成100)rs2: 192.168.52
負載均衡集群介紹(LB集群)、 LVS介紹、LVS NAT模式、LVS DR模式
負載均衡集群(LB)、lvs 負載均衡集群介紹(LB集群) LB集群是load balance集群的簡寫,翻譯成中文就是負載均衡集群 負載均衡的原理就是當用戶的請求過來時,會直接發到分發器上,然後它把用戶的請求根據預先設
Linux叢集儲存——day2——叢集LB負載均衡 LVS/NAT、LVS/DR 模式
叢集: 叢集 目的: 提高效能、降低成本、提高可擴充套件性、增強可靠性 HPC 高效能運算叢集 反覆進行一個計算,一般用於科研等需要精算的領域 LB 負載均衡叢集 多臺機器提
一臺虛擬機器搞定負載均衡lvs-NAT模式和lvs-DR模式搭建
首先來說一下負載均衡,為了解決一個伺服器不能支撐大併發量使用者的訪問,所以通過負載均衡的方法來解決這個問題,負載均衡有兩種實現方案,一種是通過硬體來實現可以購買 f5裝置,一種是通過軟體來實現如lvs、nginx等,由於lvs直接是linux系統核心級別的,實現起來方便所以仙子主要講解lvs實現
lvs負載均衡的四種模式原理,LVS之DR模型,LVS+keeaplived實現負載均衡,keepalived實現高可用
一,LVS的簡介: Linux virtual system,是由目前阿里著名工程師章文嵩開發的一寬開源的軟體。LVS工作在一臺server上提供Directory(負載均衡器)的功能,它本身並不提供任何服務,只是把特定的請求轉發給對應的realserver(
LB 負載均衡叢集LVS——DR模式----解析
實驗說明1.使用KVM虛擬2.DR模式要求Director DIP 和 所有RealServer RIP必須在同一個網段及廣播域3.所有節點均可以訪問外網4.前端路由器工作為路由模式準備工作環境1.實驗環境,全部關閉防火牆,防止啟阻擋程式執行 systemctl st
使用Lvs DR模式實現負載均衡
LVS是Linux VirtualServer的簡寫,意即Linux虛擬伺服器,適應LVS可以構建高效能的負載均衡系統,LVS有三種模式即:LVS/NAT(網路地址轉換)、LVS/TUN(IP隧道)、LVS/DR(直接路由),通常用的是DR模式,下面介紹一下DR模式的配置方式。 假設測試環境:使用虛擬
Linux負載均衡軟體LVS-DR模式的簡單示例
本文一個簡單的示例演示LVS的配置(DR模式)和測試。使用的配置環境如下:Director server: 192.168.8.4Real server1: 192.168.8.5Real server2: 192.168.8.6VIP: 192.168.8.200網路top
負載均衡LVS(DR模式)安裝實戰
1.編譯安裝ipvsadm 首先從LVS官網下載tarball,解壓後make && make install即可。 要注意的是LVS的依賴有:popt-static、libnl、kernel。如果yum源裡有就直接安裝,如果沒有就自行下載,
LVS-DR模式實現調度負載
per 完成 interval 工作 手動添加 local 比較 dr模式 stats 本篇文章主要梳理一下LVS前端調度過程及用戶請求過程 實驗架構 準備工作 添加各主機路由聯通主機通信 Client IP route add default gw 172.20.1
搭建LVS-DR負載均衡叢集、Keepalived-LVS高可用負載均衡叢集
LVS DR模式搭建準備工作三臺機器, 三臺機器均有公網IP。排程器(director)IP:192.168.8.133real server1(real1)IP:192.168.8.134real server2(real2)IP:192.168.8.135VIP:192.
lvs+keepalived實現負載均衡
keepalive 裝載 announce log loopback -s scheduler sad apr LVS簡介: lvs是負載均衡較常用的軟件之一,lvs官方提供了一個命名的約定: vip:虛擬ip地址,縮寫是vip,vip是負載均衡器對外提供服務的ip。 ri
LVS/DR模式原理剖析(FAQs)
load 是否 live forward onf client 默認 rec add 1. LVS/DR如何處理請求報文的,會修改IP包內容嗎? 1.1 vs/dr本身不會關心IP層以上的信息,即使是端口號也是tcp/ip協議棧去判斷是否正確,vs/dr本身主要做這麽幾個事
LVS DR模式下的集群實現步驟
lvs dr模式下的集群實現步驟1.安裝Linux服務器,做為虛擬服務器(DR)2.配置網絡環境,設置靜態IP,並能夠訪問互聯網3.檢查ipvsadm是否安裝,如果沒有安裝請先安裝ipvsadmrpm -ql ipvsadm4.安裝ipvsadmrpm -y install ipvsadm5.設置虛擬IPif
[Linux]-構建LVS-DR模式+Keepalived高可用群集
響應 完成 init.d .cn ive spa val 通告 配置文件 Keepalived Keepalived是一款高可用軟件,它的功能主要包括兩方面:1)通過IP漂移,實現服務的高可用:服務器集群共享一個虛擬IP,同一時間只有一個服務器占有虛擬IP並對外提供服務,若