LVS負載均衡初接觸

Linux Cluster :

Cluster : 計算機集合, 為解決某個特定問題組合起來形成的單個系統;

Linux Cluster 類型 :

LB : Load Balancing, 負載均衡;()
HA : High Avaiibality, 高可用;( 通過冗余的方式讓活動主機出現問題時取而代之, 并具有原主機一致的功能)
HP : High Performance, 高性能;(組合多臺計算機分散計算量)

 系統擴展方式:

Scale UP:向上擴展
Scale Out:向外擴展
Cluster

LB Cluster :

實現 :

硬件 :

F5 Big-IP
Citrix Netscaler
A10 A10

軟件 :

lvs : Linux Virtual Server (內核級別實現)
nginx :
haproxy :(實現功能與nginx相似)
ats :

基于工作協議層次劃分(承前啟后) :

傳輸層 : (通用解決方案)(DIP : DPORT)(四層路由器)
lvs :
nginx : (基于stream機制模擬調度)
haproxy : (基于TCP模型)
應用層 : (應用專用)(根據請求模型分類進行分發)
proxy sferver:

http:nginx, httpd, haproxy(mode http), …
fastcgi:nginx, httpd, …
mysql:mysql-proxy, …

VS : 根據請求報文的目標IP和目標協議將其調度轉發至某realserver, 根據調度算法來挑選

Director 和各RS 都得配置實用VIP

lvs : ipvsadm/ipvs
報文的流程 : PREROUTING —> INPUT上的ipvs —-> POSTROUTING
ipvsadm : 用戶空間的命令行工具, 規則管理器, 用于管理集群服務及RealServer
ipvs : 工作與內核空間
lvs 集群的類型 :

lvs-nat : 修改請求報文的目標IP
lvs-dr : 封裝新的MAC地址
lvs-tun : 在原請求IP報文之外新加一個IP首部
lvs-fullnat : 修改請求報文的源和目標IP

lvs-nat :

多目標IP的DNAT機制, 通過將請求報文中的目標地址和目標端口修改為某挑出的RS和RIP的PORT實現轉發

1. RIP 和DIP 必須在同一個IP 網絡, 且應該使用私網地址; RS的網關要指向DIP
2. 請求報文和響應報文都必須經由Director轉發, Director易于成為系統瓶頸
3. 支持端口映射, 可修改請求報文的目標PORT;
4. vs 必須是Linux 系統, rs 可是任意系統

LVS

lvs-dr :

通過為請求報文重新封裝一個MAC首部進行轉發, 源MAC 是DIP 所在接口的MAC, 目標MAC是某挑選出的RS的RIP所在接口的MAC地址, 源IP/PORT, 以及目標IP/PORT均保持不變

1. 確保前端路由器將目標IP為VIP的請求報文發完Director :
a. 在前端網關左靜態綁定
b. 在RS 上使用arptables
c. 在RS 上修改內核參數以限制ARP通過及應答基本

arp_announce

echo 1  > /proc/sys/net/ipv4/conf/all/arp_ignore

echo 1  > /proc/sys/net/ipv4/conf/lo/arp_ignore

arp_ignore

echo 2  > /proc/sys/net/ipv4/conf/all/arp_announce

echo 2  > /proc/sys/net/ipv4/conf/lo/arp_announce

2. RS 的RIP 可以使用私網地址, 也可以是公網地址, RIP 與DIP 在同一網絡, RIP 的網關不能指向DIP, 以確保響應報文不會經由Director
3. RS跟Director要在同一個物理網絡;
4. 請求報文要經由Director,但響應不能經由Director,而是由RS直接發往Client;
5. 不支持端口映射;

報文從那個接口出去源IP就為此接口的IPLVS-DR

1. DIP, VIP, RIP 都應該是公網地址
2. RS 的網關不能, 也不可能指向DIP
3. 請求報文要經由Director, 但響應不能經由Director
4. 不支持端口映射
5. RS 的OS 得支持隧道功能

為了支持dr模式, 有下列幾種方法解決 :

1. ARPtables 將IP和MAC地址進行綁定
2. 內核參數, 將VIP地址綁定在一個比較特殊的接口上, 使其不能直接在內網響應請求
3. 路由器設置 (有路由器的管理權限)

lvs-fullnat :

同時修改請求報文和源IP地址和目標IP地址進行轉發
CIP —> DIP
VIP —> RIP
1. VIP 是公網地址, RIP和DIP是私網地址, 通常不在

ipvs scheduler 根據其調度時是否考慮當前RS的負載情況, 可分為動態方法和靜態方法.(調度算法)

靜態方法 :

RR : roundrobin 輪詢
WRR : Weighted RR 加權輪詢(考慮服務器的權重(服務器的服務能力))
SH : Source Hashing 源IP地址HASH, 實現 session sticy(WRR 是其原生算法), 完成會話綁定, 將來自于同一個IP地址的請求始終發往第一次挑中的RS, 從而實現會話的綁定.
DH : Destination Hashing 目標地址HASH, 將發往同一個目標地址的請求始終發至第一次挑中的RS
動態方法 : 主要根據每RS 當前的負載狀態及調度算法進行調度;
LC : Last Connections
Overhead = activeconns*256+inactiveconns (最初的時候, 自上而下的進行接收請求)
WLC : Weighted LC 加權LC
Overhead = (activeconns*256+inactiveconns)/weight
SED : Shortest Expection Delay 最短期望延遲
Overhead = (activeconns*256+inactiveconns + 1)/weight
NQ : Never Queue 不排隊算法

LBLC : Locality-Based LC 動態的DH算法
LBLCR : LBLC with Replication 帶復制功能的LBLC

ipvs 集群 :
(先定義服務, 在定義集群)
集群服務 :
服務上的RS :
ipvsadm (管理集群, 管理集群服務, 查看)
ipvsadm命令:

ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-M netmask] [–pe persistence_engine] [-b sched-flags]
ipvsadm -D -t|u|f service-address
ipvsadm -C
ipvsadm -R
ipvsadm -S [-n]
ipvsadm -a|e -t|u|f service-address -r server-address [options]
ipvsadm -d -t|u|f service-address -r server-address
ipvsadm -L|l [options]
ipvsadm -Z [-t|u|f service-address]

管理集群服務:增、改、刪;
增、改:

ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]]

刪:

ipvsadm -D -t|u|f service-address

service-address:

-t|u|f:

-t: TCP協議的端口,VIP:TCP_PORT
-u: TCP協議的端口,VIP:UDP_PORT
-f:firewall MARK,是一個數字;

[-s scheduler]:指定集群的調度算法,默認為wlc;

管理集群上的RS:增、改、刪;

增、改:

ipvsadm -a|e -t|u|f service-address -r server-address [-g|i|m] [-w weight]

刪:

ipvsadm -d -t|u|f service-address -r server-address
server-address:

rip[:port]

選項:

lvs類型:

-g: gateway, dr類型
-i: ipip, tun類型
-m: masquerade, nat類型
-w weight:權重;權重越高優先級越高

清空定義的所有內容:

ipvsadm -C

查看:
ipvsadm -L|l [options]

–numeric, -n:numeric output of addresses and ports 數字格式顯示IP和PORT
–exact:expand numbers (display exact values) 精確值
–connection, -c:output of current IPVS connections 顯示IPVS連接
–stats:output of statistics information 統計數據
–rate :output of rate information 速率

保存和重載:

ipvsadm -S = ipvsadm-save
ipvsadm-save > /path/file
ipvsadm -R = ipvsadm-restore
ipvsadm-restore < /path/file

重置清零 :
ipvsadm -Z

IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port         CPS(每秒連接數量)    InPPS(每秒入站報文數)   OutPPS(每秒出站報文數)    InBPS   OutBPS
-> RemoteAddress:Port
TCP  192.168.48.142:80                   1        6        4      474      454
-> 10.1.99.99:80                       0        3        2      232      217
-> 10.1.99.100:80                      0        3        2      242      237

同一個Director 可負載多個集群

負載均衡的設計要點 :

1. 是否需要回話保持
2. 是否需要共享存儲

共享存儲 : DS(分布式存儲)
數據同步 : rsync + inotify 實現數據同步

設計要點 :
1. RIP與DIP在同一IP網絡, RIP的網關要指向DIP
2. 支持端口映射
lvs-dr :
為了提升網絡的承載能力的設計方案

dr 模型中, 各主機上均需要配置VIP, 解決地址沖突的方式有三種 :

1. 在前端網卡做靜態綁定;
2. 在各RS使用arptables;
3. 在個RS修改內核參數, 來限制arp響應和通告的級別;

限制響應級別 : arp_ignore

0 : 默認值, 表示可使用本地任意接口上配置的任意地址進行響應
1 : 僅在請求目標IP 配置在本地主機的接收到請求報文接口上時, 才給予響應;
限制通告級別 : apr_announce

原創文章,作者:M20-石俊,如若轉載,請注明出處:http://www.www58058.com/55129

(0)
M20-石俊M20-石俊
上一篇 2016-10-28 08:46
下一篇 2016-10-28 10:09

相關推薦

  • DNS 主從協作及配置父子域實驗

    實驗:DNS主從協作及配置父子域實驗 實驗拓撲圖 實驗準備     1、所有主機關閉防火墻和selinux         service iptables stop       …

    Linux干貨 2016-08-15
  • Linux開班典禮

    心得體會和近一周學習計劃

    2018-03-26
  • 腳本編寫規范

    腳本編寫規范 腳本名稱以.sh結尾,名稱見名知意 盡量使用UTF-8編碼,注釋及輸出盡量使用英文 一般給到執行權限,但一些關于變量的配置文件不用加執行權限 執行的時候可以使用bash執行,或者使用bash -x 調試執行 腳本首行以#!/bin/bash,無空格,不帶選項 第二行為空格或者添加一行空注釋 開始注釋內容:  #!/bin/bash&n…

    Linux干貨 2017-04-16
  • kickstart 的使用!

    簡介 1.什么是kickstart KickStart是一種無人職守安裝方式。KickStart的工作原理是通過記錄典型的安裝過程中所需人工干預填寫的各種參數,并生成一個名為ks.cfg的文件;在其后的安裝過程中(不只局限于生成KickStart安裝文件的機器)當出現要求填寫參數的情況時,安裝程序會首先去查找KickStart生成的文件,當找到合適的參數時,…

    Linux干貨 2016-11-03
  • Tomcat相關知識整理

    初識Servlet SUN公司制定了一系列Web應用與Web服務器進行協作的標準Java接口,統稱為Java Servlet API,還對Web服務器發布及運行Web應用的一些細節做了規約。SUN公司把這一系列標準Java接口和規約統稱為Servlet規范。Servlet就是Web服務器與Web應用進行協作的標準接口。 Servlet規范把能夠發布和運行Ja…

    Linux干貨 2016-12-05
  • 自動化系統安裝之DHCP服務實現

    DHCP服務實現 dhcp的工作過程是基于UDP協議的,其中用到了UDP的67(服務器),68(客戶端)端口 使用場景 自動化安裝系統 解決IPV4資源不足的問題 同網段多dhcp服務 dhcp服務必須基于本地 先到先得 跨網段 RFC 1542 dhcpclient客戶端向dhcpsercer服務器請求續約時,中間相隔多網段時,如果路由器是 RFC1542…

    2018-01-29
欧美性久久久久