標籤:des http 使用 io strong 資料 ar div cti
一、LB--負載平衡
在負載平衡叢集中需要一個分發器,我們將其稱之為Director,它位於多台伺服器的上面的中介層,根據內部鎖定義的規則或調度方式從下面的伺服器群中選擇一個以此來進行響應請求,而其分發的方式則是根據某個演算法進行的。
二、HA--高可用
高可用顧名思義就是服務的可用性比較高,即當我們不會因為某台伺服器的宕機,從而造成我們的服務不可用,其工作模式則是將一個具有故障的服務轉交給一個正常工作的伺服器,從而達到服務不會中斷。
三、LVS:
LVS:Linux Virtual Server,可以實現LINUX平台下的簡單負載平衡。
一般來說,LVS採用三層結構:負載調度器、伺服器集區、共用儲存。工作在TCP/IP協議的四層,其轉寄是依賴於四層協議的特徵進行轉寄的,由於其轉寄要依賴於協議的特徵進行轉寄,因此需要在核心的TCP/IP協議棧進行過濾篩選,可想而知,這就需要在核心的模組來完成,而這樣的過濾轉寄規則又是由管理員進行定義的,所以,LVS就是兩段式的架構設計,在核心空間中工作的是"ipvs",而在使用者空間中工作的,用來定義叢集服務規則的是"ipvsadm"。這就很容易想到iptables。
LVS的三種轉寄模式:
LVS-NAT:網路位址轉譯 Network address translation
LVS-DR:直接路由 Direct routing
LVS-TUN:IP隧道 IP tunneling
VIP:Director用來向用戶端提供服務的IP地址
RIP:叢集節點(後台真正提供服務的伺服器)所使用的IP地址
DIP:Director用來和D/RIP 進行聯絡的地址
CIP:公網IP,用戶端使用的IP。
LVS-NAT:------擴充的DNAT
1.所有的real server和Director要在同一網段
2.通常情況下RIP是私人地址,僅用於叢集節點之間進行通訊
3.Director同時處理入站和出站請求
4.Real server的網關要指向DIP
5.可以實現連接埠映射(請求連接埠和提供服務的連接埠可以不一致)
6.Real server可以是任意的作業系統
7.Director很容易成為系統效能的瓶頸
資料包地址轉換過程:
S:CIP D:VIP------->Director------>S:CIP D:RIP------>Real Server------>S:RIP D:CIP----->Director----->S:VIP D:CIP
LVS-DR:使用者的請求經過Director,然後real server直接響應給用戶端任何real server網關不能執行Drector
1.叢集節點必須在同一個物理網路中,基於MAC轉寄
2.RIP可以使用公網地址
3.Director僅處理入站請求,響應的資料包不在經過Director
4.Real server的網關不能指向Director
5.不支援連接埠映射
6.大多數的作業系統都可以用於real server(隔離ARP廣播,同一塊網卡上支援多個IP)
7.Director的效能表現遠遠優於NAT
資料包地址轉換過程:
S:CIP D:VIP----->Director--->S:CIP D:RIP -----> Real Server---> S:VIP D:CIP
LVS-TUN:使用者的請求經過Director,然後real server直接響應給用戶端
1.Real server和Director不需要在一個物理網段中
2.RIP一定不能是私人地址
3.Director僅處理入站請求
4.Real server的網關不能指向Director
5.不支援連接埠映射
6.僅有支援IP隧道的作業系統才能用於real server
與DR的網路結構一樣,但Director和Real Server可以在不同的網路當中,DIP----->VIP 基於隧道來傳輸,在資料包外層額外封裝了S:DIP D :RIP 的地址。
四、LVS的調度演算法:
1.靜態調度演算法:
RR:Round-robin:輪循
WRR:Weighted round-robin:加權輪循-----按照效能分配,為其計算出權重
DH:Destination hashing:目標地址hashing-----將某個固定IP的請求轉寄給一個相同的real server,用於具有快取服務器的
SH:Source hashing:源地址hashing
2.動態調度演算法:根據分發演算法和real server的負載狀態設定出調度決策,Director對每一個串連進行追蹤監控是否處於活動狀態(ESTABLESHED)
LC:Least connection:最少串連-----監控每一個real server當前處於活動狀態串連和非使用中串連數,然後計算出其當前負載:active*256+inactive=overhead
WLC:Weighted least connection:加權最少串連------overhead/weight,考慮到real serverd的效能,預設叢集演算法
SED:Shortest Expected Delay:最短的期望的延遲----不考慮非使用中的串連,演算法:(active+1)*256/weight=overhead
NQ:Never Queue:永不排隊-----沒有串連時,直接轉寄
LBLC:Locality-Based Least-Connection:基於本地的最少串連,動態DH演算法
LBLCR:Locality-Based Least-Connection with replication Scheduling:帶複製的基於本地最少串連,緩衝是共用的
五、ipvsadm
ipvsadm:1.定義叢集服務,指定VIP,協議,連接埠、 2.向叢集服務添加RS
用法:
ipvsadm -A|E -t|u VIP:PORT [-s scheduler] [-p [timeout]] [-M netmask]]
-A:定義新的叢集服務
-E:修改已有的叢集服務
-D:刪除某叢集服務
-s:指定調度演算法,可選項:rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq ,預設的調度演算法是: wlc.
-C:清空
-R:等同ipvsadm-restore 恢複虛擬伺服器規則
-S:等同ipvsadm-save 儲存虛擬伺服器規則,輸出為-R 選項可讀的格式
-L|l:列出當前已定義的叢集服務和real server
--stats:顯示統計資訊 與-L同時使用
--rate:顯示入站響應速率 與-L同時使用
-c:顯示LVS 目前的串連 與-L同時使用
-n:不進行反向解析 與-L同時使用
-Z:清空計數器
-t --tcp-service service-address 說明虛擬伺服器提供的是tcp 的服務
-u --udp-service service-address 說明虛擬伺服器提供的是udp 的服務
-f --fwmark-service fwmark 說明是經過iptables 標記過的服務類型。
-p --persistent [timeout] 持久穩固的服務。這個選項的意思是來自同一個客戶的多次請求,將被同一台真實的伺服器處理。timeout 的預設值為300 秒。
ipvsadm -a|e -t|u VIP:PORY -r RIP [-g|i|m] [-w weight]
-a:添加real server
-e:修改real server
-g:指定LVS 的工作模式為直接路由模式(也是LVS 預設的模式)
-i:指定LVS 的工作模式為隧道模式
-m:指定LVS 的工作模式為NAT 模式
-w:真實伺服器的權值
ipvsadm -d -t|u service-address -r server-address 刪除一條虛擬伺服器記錄中的某條真實伺服器記錄
負載平衡LVS叢集詳解