您好,登錄后才能下訂單哦!
LVS 負載均衡
一、系統環境:
系統:Centos 6.5_64位
二、Director和Real Server的配置部署:
1臺director server:VIP/外網ip:192.168.121.141 內網ip:172.16.2.31
2臺real server:172.16.2.21 172.16.2.24 并且需要設置內網網關為director的內網ip:172.16.2.31
director server 2塊網卡配置:
一塊172.16.2.31 網卡為橋接模式
一塊192.168.121.141 網卡為nat模式.
最好先安裝好eple-release源
兩個 real server 上都安裝 nginx 服務 # yum install -y nginx Director 上安裝 ipvsadm # yum install -y ipvsadm
兩臺real server的網卡配置:
Real Servcer1--172.16.2.24主機網卡配置:
# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=00:0C:29:7F:32:0F TYPE=Ethernet UUID=2d67590f-694e-4491-9e8c-d7757ca7e5c0 ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR=172.16.2.24 PREFIX=24 GATEWAY=172.16.2.31
Real Server2--172.16.2.21主機網卡配置:
# cat ifcfg-eth0 DEVICE=eth0 HWADDR=00:0C:29:F9:9B:A8 TYPE=Ethernet UUID=12ad4433-399f-4df2-b3c7-62d78444fa0d ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR=172.16.2.21 PREFIX=24 GATEWAY=172.16.2.31
三、簡單了解Iptables規則:
iptables內置了4個表,即raw表、filter表、nat表和mangle表,分別用于實現包過濾,網絡地址轉換和包重構的功能。
主要用于網絡地址轉換NAT,該表可以實現一對一,一對多,多對多等NAT 工作,iptables就是使用該表實現共享上網的,NAT表包含了PREROUTING鏈(修改即將到來的數據包),POSTROUTING鏈(修改即將出去的數據包),OUTPUT鏈(修改路由之前本地生成的數據包)
iptables 參數:
-n:以數字的方式顯示ip,它會將ip直接顯示出來,如果不加-n,則會將ip反向解析成主機名。
-v:顯示詳細信息
-L:查看iptables規則列表
-s --source 源地址或子網> 指定數據包匹配的源地址
四、lvs/nat 配置:
LB集群是load balance 集群的簡寫,翻譯成中文就是負載均衡集群;
LVS是一個實現負載均衡集群的開源軟件項目;
LVS架構從邏輯上可分為調度層(Director)、server集群層(Real server)和共享存儲層;
LVS可分為三種工作模式:
NAT:(調度器將請求的目標ip即vip地址改為Real server的ip, 返回的數據包也經過調度器,調度器再把源地址修改為vip)
TUN:(調度器將請求來的數據包封裝加密通過ip隧道轉發到后端的real server上,而real server會直接把數據返回給客戶端,而不再經過調度器)
DR:(調度器將請求來的數據包的目標mac地址改為real server的mac地址,返回的時候也不經過調度器,直接返回給客戶端)
LVS的調度算法:
輪叫調度(Round Robin)(簡稱rr)
加權輪叫(Weighted Round Robin)(簡稱wrr)
最少鏈接(least connection)(lc)
加權最少鏈接(Weighted Least Connections)(wlc) 等等;
五、Director 調度器的配置:
#創建腳本并添加如下規則:
[root@localhost sbin]# cat /usr/local/sbin/lvs_nat.sh #! /bin/bash echo 1 > /proc/sys/net/ipv4/ip_forward echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects echo 0 > /proc/sys/net/ipv4/conf/eth2/send_redirects iptables -t nat -F iptables -t nat -X #MASQUERADE 改寫封包來源IP為防火墻的IP,可以指定port 對應的范圍,進行完此處理動作后,直接跳往下一個規則鏈(mangle:postrouting)。 iptables -t nat -A POSTROUTING -s 172.16.2.0/24 -j MASQUERADE IPVSADM='/sbin/ipvsadm' $IPVSADM -C $IPVSADM -A -t 192.168.121.141:80 -s wlc $IPVSADM -a -t 192.168.121.141:80 -r 172.16.2.21:80 -m -w 2 $IPVSADM -a -t 192.168.121.141:80 -r 172.16.2.24:80 -m -w 1
#添加完成后運行次腳本就完成了lvs/nat的配置了.
#sh lvs_nat.sh
六、查看ipvs規則是否生效:
[root@localhost ~]# iptables -t nat -nvL Chain PREROUTING (policy ACCEPT 171 packets, 10777 bytes) pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 1 136 MASQUERADE all -- * * 172.16.2.0/24 0.0.0.0/0 Chain OUTPUT (policy ACCEPT 1 packets, 136 bytes) pkts bytes target prot opt in out source destination ------------------------------------------------------------------------------------------ [root@localhost ~]# ipvsadm ipvsadm ipvsadm-restore ipvsadm-save ----------------------------------------------------------------------------------------- [root@localhost ~]# ipvsadm -ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.121.141:80 wlc -> 172.16.2.21:80 Masq 2 0 0 -> 172.16.2.24:80 Masq 1 0 0 [root@localhost network-scripts]# /etc/init.d/nginx stop Stopping nginx: [ OK ]
Nginx 下面可以直接放一個文件做測試,截圖丟失就不展示了.
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。