負載均衡,英文名稱為Load
成都創新互聯是一家專注于成都網站設計、做網站、成都外貿網站建設公司與策劃設計,嶺東網站建設哪家好?成都創新互聯做網站,專注于網站建設十年,網設計領域的專業建站公司;建站業務涵蓋:嶺東等地區。嶺東做網站價格咨詢:13518219792
Balance,其意思就是分攤到多個操作單元上進行執行,例如Web服務器、FTP服務器、企業關鍵應用服務器和其它關鍵任務服務器等,從而共同完成工作任務。
負載均衡作用是建立在現有網絡結構之上,它提供了一種廉價有效透明的方法擴展網絡設備和服務器的帶寬、增加吞吐量、加強網絡數據處理能力、提高網絡的靈活性和可用性。
負載均衡與操作系統沒關系。
第一步:創建一個ifcfg-bondX
# touch /etc/sysconfig/network-scripts/ifcfg-bond0? 新建一個bond0配置文件
#? cat /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 BOOTPROTO=static IPADDR=1.1.1.2
NETMASK=255.255.255.0
BROADCAST=1.1.1.255
NETWORK=1.1.1.0
GATEWAY=1.1.1.1
ONBOOT=yes
TYPE=Ethernet
編輯ifcfg-bond0如上
第二步:修改/etc/sysconfig/network-scripts/ifcfg-ethX
這個實驗中把網卡1和2綁定,修改/etc/sysconfig/network-scripts/ifcfg-ethX相應網卡配置如下:
#? cat? /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
DEVICE=eth1
HWADDR=00:d0:f8:40:f1:a0? 網卡1mac
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes
#? cat? /etc/sysconfig/network-scripts/ifcfg-eth2
TYPE=Ethernet DEVICE=eth2
HWADDR=00:d0:f8:00:0c:0c? 網卡2mac
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes
第三步:配置/etc/modprobe.conf,添加alias bond0 bonding
#? cat /etc/modprobe.conf alias eth0 e100
alias snd-card-0 snd-intel8x0
options snd-card-0 index=0?
options snd-intel8x0 index=0?
remove snd-intel8x0 { /usr/sbin/alsactl store 0 /dev/null 21 || : ; }; /sbin/modprobe -r --ignore-remove snd-intel8x0 alias eth1 8139too
options 3c501 irq=3?
alias eth2 tulip
上面是三網卡本身的配置如果要綁定和做lacp只要再加上下面兩條配置
alias bond0 bonding? ? ? ? ? ? ? ? 綁定
options bond0 miimon=100 mode=4? ? mode=4是lacp
第四步:配置/etc/rc.d/rc.local,添加需要綁定的網卡
# cat /etc/rc.d/rc.local?
touch /var/lock/subsys/local? 配置本身就有這條命令
ifenslave bond0 eth1 eth2? ? 這條命令是添加需要綁定的網卡1和2?
到這里就完成bonding的配置了可以查看一下
第五步:重啟網絡服務和重啟pc
#service network restart? ? 重啟網絡服務
# shutdown -r now? ? ? ? ? ? ? ? ? 重啟pc
重啟后可以查看bonding情況:網卡1和2 都綁定上了,模式為802.3ad
# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.0.3 (March 23, 2006)?
Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0) MII Status: up
MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0?
802.3ad info
LACP rate: slow
Active Aggregator Info:? ? ? ?
? ? Aggregator ID: 1? ? ? ?
? ? Number of ports: 2? ? ? ?
? ? Actor Key: 9? ? ? ?
? ? Partner Key: 1
? ? Partner Mac Address: 00:d0:f8:22:33:ba Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:d0:f8:40:f1:a0
Aggregator ID: 1
Slave Interface: eth2
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:d0:f8:00:0c:0c
Aggregator ID: 1
接口配置信息:新增了bond0的配置信息,接口bond0和eth1,eth2,綁定后三個接口使用的mac都是同一個:00:D0:F8:40:F1:A0 # ifconfig
bond0? ? Link encap:Ethernet? HWaddr 00:D0:F8:40:F1:A0? ? ? ? ? ?
? ? ? ? ? inet addr:1.1.1.2? Bcast:1.1.1.255? Mask:255.255.255.0
? ? ? ? ? inet6 addr: fe80::2d0:f8ff:fe40:f1a0/64 Scope:Link
? ? ? ? ? UP BROADCAST RUNNING MASTER MULTICAST? MTU:1500? Metric:1? ? ? ? ?
? ? ? ? ? RX packets:128 errors:0 dropped:0 overruns:0 frame:0? ? ? ? ?
? ? ? ? ? TX packets:259 errors:0 dropped:0 overruns:0 carrier:0? ? ? ? ?
? ? ? ? ? collisions:0 txqueuelen:0?
? ? ? ? ? RX bytes:15466 (15.1 KiB)? TX bytes:39679 (38.7 KiB)
eth0? ? ? ? Link encap:Ethernet? HWaddr 00:11:11:EB:71:E2?
? ? ? ? ? inet addr:192.168.180.8? Bcast:192.168.180.15? Mask:255.255.255.240? ? ? ? ?
? ? ? ? ? inet6 addr: fe80::211:11ff:feeb:71e2/64 Scope:Link
? ? ? ? ? UP BROADCAST RUNNING MULTICAST? MTU:1500? Metric:1? ? ? ? ?
? ? ? ? ? RX packets:311 errors:0 dropped:0 overruns:0 frame:0? ? ? ? ? ?
? ? ? ? ? TX packets:228 errors:0 dropped:0 overruns:0 carrier:0? ? ? ? ?
? ? ? ? ? collisions:0 txqueuelen:1000?
? ? ? ? ? RX bytes:30565 (29.8 KiB)? TX bytes:35958 (35.1 KiB) eth1? ? ?
? ? ? ? ? Link encap:Ethernet? HWaddr 00:D0:F8:40:F1:A0? ? ? ? ? ?
? ? ? ? ? inet6 addr: fe80::2d0:f8ff:fe40:f1a0/64 Scope:Link
? ? ? ? ? UP BROADCAST RUNNING SLAVE MULTICAST? MTU:1500? Metric:1? ? ? ? ?
? ? ? ? ? RX packets:54 errors:0 dropped:0 overruns:0 frame:0? ? ? ? ? ?
? ? ? ? ? TX packets:97 errors:0 dropped:0 overruns:0 carrier:0? ? ? ? ?
? ? ? ? ? collisions:0 txqueuelen:1000?
? ? ? ? ? RX bytes:6696 (6.5 KiB)? TX bytes:13821 (13.4 KiB)? ? ? ? ?
? ? ? ? ? Interrupt:209 Base address:0x2e00?
eth2? ? ? ? Link encap:Ethernet? HWaddr 00:D0:F8:40:F1:A0?
? ? ? ? ? inet6 addr: fe80::2d0:f8ff:fe40:f1a0/64 Scope:Link
? ? ? ? ? UP BROADCAST RUNNING SLAVE MULTICAST? MTU:1500? Metric:1? ? ? ? ?
? ? ? ? ? RX packets:74 errors:0 dropped:0 overruns:0 frame:0? ? ? ? ?
? ? ? ? ? TX packets:162 errors:0 dropped:0 overruns:0 carrier:0? ? ? ? ?
? ? ? ? ? collisions:0 txqueuelen:1000?
? ? ? ? ? RX bytes:8770 (8.5 KiB)? TX bytes:25858 (25.2 KiB)? ? ? ? ?
? ? ? ? ? Interrupt:201 Base address:0x2f00?
lo? ? ? ? ? ? Link encap:Local Loopback?
? ? ? ? ? inet addr:127.0.0.1? Mask:255.0.0.0? ? ? ? ?
? ? ? ? ? inet6 addr: ::1/128 Scope:Host
? ? ? ? ? UP LOOPBACK RUNNING? MTU:16436? Metric:1
? ? ? ? ? RX packets:6283 errors:0 dropped:0 overruns:0 frame:0? ? ? ? ?
? ? ? ? ? TX packets:6283 errors:0 dropped:0 overruns:0 carrier:0? ? ? ? ?
? ? ? ? ? collisions:0 txqueuelen:0?
? ? ? ? ? RX bytes:9783674 (9.3 MiB)? TX bytes:9783674 (9.3 MiB)
(二)銳捷交換機配置:
lacp system-priority 100? ? ? ? 全局配置lacp優先級
interface GigabitEthernet 0/23
no switchport
lacp port-priority 100? ? ? ? ? 接口的lacp優先級?
port-group 1 mode active? ? ? 接口下開啟lacp 主動模式
interface GigabitEthernet 0/24?
no switchport
lacp port-priority 100?
port-group 1 mode active
interface AggregatePort 1?
no switchport? no ip proxy-arp
ip address 1.1.1.1 255.255.255.0
和linux成功建立lacp后狀態信息如下:
Show? lacp summary?
System Id:100, 00d0.f822.33ba
Flags:? S - Device is requesting Slow LACPDUs? F - Device is requesting Fast LACPDUs. A - Device is in active mode.? ? ? ? P - Device is in passive mode. Aggregate port 1:
Local information:
LACP port? ? ? Oper? ? Port? ? Port
Port? ? ? Flags? ? State? ? ? Priority? ? ? ? Key? ? Number? State ----------------------------------------------------------------------
Gi0/23? ? SA? ? ? ? bndl? ? ? ? 100? ? ? ? ? ? 0x1? ? 0x17? ? 0x3d
Gi0/24? ? SA? ? ? ? bndl? ? ? ? 100? ? ? ? ? ? 0x1? ? 0x18? ? 0x3d
Partner information:
? ? ? ? ? ? ? ? LACP port? ? ? ? ? ? ? ? ? Oper? ? Port? ? Port
Port? ? ? Flags? ? Priority? ? ? Dev ID? ? ? Key? ? Number? State ---------------------------------------------------------------------
Gi0/23? ? SA? ? ? ? 255? ? ? 00d0.f840.f1a0? 0x9? ? 0x2? ? ? 0x3d
Gi0/24? ? SA? ? ? ? 255? ? ? 00d0.f840.f1a0? 0x9? ? 0x1? ? ? 0x3d
State表示狀態信息:bndl表示lacp建立成功,sup表示不成功。
建立成功后在交換機上去ping? linux 1.1.1.2
Ruijie#ping 1.1.1.2
Sending 5, 100-byte ICMP Echoes to 1.1.1.2, timeout is 2 seconds:? press Ctrl+C to break !!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms 在linux上ping交換機
[root@localhost ~]# ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
64 bytes from 1.1.1.1: icmp_seq=1 ttl=64 time=0.601 ms
64 bytes from 1.1.1.1: icmp_seq=2 ttl=64 time=0.606 ms
64 bytes from 1.1.1.1: icmp_seq=3 ttl=64 time=0.608 ms
64 bytes from 1.1.1.1: icmp_seq=4 ttl=64 time=0.607 ms
--- 1.1.1.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms rtt min/avg/max/mdev = 0.601/0.605/0.608/0.024 ms
[root@localhost ~]#
可以ping通,lacp建立正常。
把原傳輸數據的那個網卡shut down異常測試時,需要等到lacp狀態超時才能切換到另一條鏈路。
Ruijie#sh lacp summary?
System Id:100, 00d0.f822.33ba
Flags:? S - Device is requesting Slow LACPDUs? F - Device is requesting Fast LACPDUs. A - Device is in active mode.? ? ? ? P - Device is in passive mode. Aggregate port 1:
Local information:
? ? ? ? ? ? ? ? ? ? ? ? ? ? LACP port? ? ? Oper? ? Port? ? Port
Port? ? ? Flags? ? State? ? ? Priority? ? ? ? Key? ? Number? State ----------------------------------------------------------------------
Gi0/23? ? SA? ? ? ? sups? ? ? ? 100? ? ? ? ? ? 0x1? ? 0x17? ? 0x45
Gi0/24? ? SA? ? ? ? bndl? ? ? ? 100? ? ? ? ? ? 0x1? ? 0x18? ? 0x3d
Partner information:
? ? ? ? ? ? ? ? LACP port? ? ? ? ? ? ? ? ? Oper? ? Port? ? Port
Port? ? ? Flags? ? Priority? ? ? Dev ID? ? ? Key? ? Number? State ---------------------------------------------------------------------
Gi0/23? ? SP? ? ? ? 0? ? ? ? 0000.0000.0000? 0x0? ? 0x0? ? ? 0x0
Gi0/24? ? SA? ? ? ? 255? ? ? 00d0.f840.f1a0? 0x9? ? 0x1? ? ? 0x3d
Linux的負載均衡常用的有三種技術:中國人搞出來的大神級產品 LVS Linux Virtual Server,俄羅斯的Nginx,來發法國的HAProxy。都是基于Linux的開源免費的負載均衡軟件。
1. 抗負載能力強,性能高,能達到F5的60%,對內存和CPU資源消耗比較低
2. 工作在網絡4層,通過VRRP協議(僅作代理之用),具體的流量是由linux內核來處理,因此沒有流量的產生。
3. 穩定,可靠性高,自身有完美的熱備方案(Keepalived+lvs)
4. 不支持正則處理,不能做動靜分離。
5. 支持多種負載均衡算法:rr(輪詢),wrr(帶權輪詢)、lc(最小連接)、wlc(帶權最小連接)
6. 配置相對復雜,對網絡依賴比較大,穩定性很高。
7. LVS工作模式有4種:
(1) nat 地址轉換
(2) dr 直接路由
(3) tun 隧道
(4) full-nat
1. 工作在網絡7層,可以針對http應用做一些分流的策略,比如針對域名,目錄結構
2. Nginx對網絡的依賴較小,理論上能ping通就能進行負載功能
3. Nginx安裝配置比較簡單,測試起來很方便
4. 也可以承擔較高的負載壓力且穩定,nginx是為解決c10k問題而誕生的
5. 對后端服務器的健康檢查,只支持通過端口來檢測,不支持通過url來檢測
6. Nginx對請求的異步處理可以幫助節點服務器減輕負載壓力
7. Nginx僅能支持http、https和Email協議,這樣就在適用范圍較小。
8. 不支持Session的直接保持,但能通過ip_hash來解決。對Big request header的支持不是很好。
9. Nginx還能做Web服務器即Cache功能。
1.支持兩種代理模式:TCP(四層)和HTTP(七層),支持虛擬主機;
2.能夠補充Nginx的一些缺點比如Session的保持,Cookie的引導等工作
3.支持url檢測后端的服務器出問題的檢測會有很好的幫助。
4.更多的負載均衡策略比如:動態加權輪循(DynamicRoundRobin),加權源地址哈希(Weighted SourceHash),加權URL哈希和加權參數哈希(WeightedParameterHash)已經實現
5.單純從效率上來講HAProxy更會比Nginx有更出色的負載均衡速度。
6.HAProxy可以對Mysql進行負載均衡,對后端的DB節點進行檢測和負載均衡。
7.支持負載均衡算法:Round-robin(輪循)、Weight-round-robin(帶權輪循)、source(原地址保持)、RI(請求URL)、rdp-cookie(根據cookie)
8.不能做Web服務器即Cache。
1. 負載能力
lvs抗負載能力最強,因為僅作分發不處理請求,相當于只作轉發不做進一步處理直接在內核中完成,對系統資源消耗低(LVS DR模式);
nginx和haproxy相對來說會弱,但是日PV2000萬也沒什么問題,因為不僅接受客戶端請求,還與后端upstream節點進行請求并獲取響應,再把響應返回給客戶端,對系統資源和網絡資源消耗高;
注:建議如果公司網站流量日PV在2000萬以上,并發在7,8萬以上才考慮用lvs+keepalived架構
2. 功能性
lvs僅支持4層tcp負載均衡,haproxy可以支持4層tcp和7層http負載均衡,nginx可以支持7層http負載均衡(新版本也支持7層負載均衡);
nginx功能強大,配置靈活,可做web靜態站點,靜態緩存加速,動靜分離,并支持域名,正則表達式,Location匹配,rewrite跳轉,配置簡單直觀明了,還可以結合etc或consule做發布自動化上下線等等;
haproxy相對nginx的7層負載均衡會弱一些,靈活性不足,個人建議一般用haproxy做TCP負載均衡更合適一些;
3. 運維復雜度
lvs相對來說部署架構更復雜一些,lvs對網絡是有要求,lvs必須與real server在同一個網段,也更費資源,需要多2臺服務器成本;
nginx和haproxy部署架構更簡單,對網絡也沒要求,更便于后續維護;
像對于大型的,需要進行高并發的網站或者對網絡不太嚴格的時候,可以使用nginx;
對于大型的Web服務器的時候可以使用haproxy;
對性能有嚴格要求的時候可以使用lvs,就單純從負載均衡的角度來說,lvs也許會成為主流,更適合現在大型的互聯網公司。
注:lvs,nginx,haproxy要實現高可用,都需要借助keepalived軟件
1. iptables實現負載均衡的方式:
在Linux中使用iptables完成tcp的負載均衡有兩種模式:隨機、輪詢
The statistic module support two different modes:
random:(隨機)
the rule is skipped based on a probability
nth:(輪詢)
the rule is skipped based on a round robin algorithm
2. example
本文主要解決3個問題:
第一、鏈路聚合的定義和作用是什么?
第二、如何配置鏈路聚合?
第三、鏈路聚合的實際應用場景有那些?
第一、鏈路聚合的定義和作用是什么?
答:鏈路聚合的定義:鏈路聚合,官方稱聚合鏈接,民間又稱網卡組隊,具體指的是將多個網卡綁定在一起組建一個虛擬網卡,外界與虛擬網卡進行通信,虛擬網卡再將信息進行分發;
鏈路聚合的作用:可以實現輪詢式的流量負載均衡和熱備份的作用;
舉個栗子:
鏈路聚合就好比是一個包工頭,這個包工頭為了多賺錢,多接訂單,肯定需要找多個小弟;
這樣就可以保障,萬一有一個小弟感冒了,不能上班,這時有其他小弟可以頂上;
當客戶需要蓋房子的時候,直接找包工頭就好了,不需要一個一個的去找建筑工人;
第二、如何配置鏈路聚合?
答:
1、配置鏈路聚合的命令是:
nmcli connection add type team con-name team0 ifname team0 autoconnect ?yes ?config ?'{"runner": {"name": "activebackup"}}'
譯為:nmcli connection 添加 類型 team(組隊)
配置文件名? team0? 網卡名? team0? 每次開機自動啟用
配置運行模式? 熱備份模式
整體譯為:為系統網卡添加一個 team (團隊),團隊名稱叫 team0 ,配置文件也叫 team0 , 并且設置為開機自動啟動,配置運行模式為熱備份模式;
2、為鏈路聚合添加成員的命令是:
nmcli connection add type team-slave ?con-name team0-1 ?ifname eth1 master team0 ;
nmcli connection add type team-slave con-name team0-2 ifname eth2 master team0;
注釋:nmcli connection 添加 類型為 team的成員
? ? ? 配置文件名? team0-1? 網卡為 eth1? 主設備為? team0
整體譯為:為主設備team0添加兩張網卡,eth1和eth2;
3、為tem0配置ip地址的命令是:
nmcli connection modify team0 ipv4.method manual ipv4.addresses?
“IP 地址 / 子網掩碼”????connection.autoconnect yes
4、激活team0的命令是: ? ? ?
nmcli connection up team0
第三、鏈路聚合的實際應用場景有那些?
答:當服務器提供比較重要的服務時,只準備一張網卡是遠遠不夠的,因為一但網卡出現故障,客戶就無法訪問,這就會造成客戶流失,體驗感差;
這個時候就可以運用鏈路聚合的方法來解決,將多張網卡綁定在一起創建一張虛擬網卡,從而實現網卡熱備份,流量輪詢式負載均衡;
以此來保障服務器能夠正常提供服務,給用戶以良好的體驗;
注意事項:
在創建虛擬網卡和添加成員時,如果命令敲錯了,一定要刪除錯誤的信息,以免造成通信混亂;
刪除的命令是:nmcli ?connection delete team0 ?(team0或team x)
查看team0的信息命令是: ? ? teamdctl ? team0 ?state ?
以上.......
(本篇完)
祝:開心!
羅貴
2019-03-24
標題名稱:負載均衡命令linux,負載均衡的方式
文章地址:http://m.kartarina.com/article48/heidep.html
成都網站建設公司_創新互聯,為您提供商城網站、App設計、全網營銷推廣、、手機網站建設、小程序開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯