集 羣
~提升服務器性能的方法
垂直擴展:提升服務器硬件
性價比低;
提升有限;
訪問中斷;
水平擴展:多臺機器協同工作,添加更多的服務器節點
DNS:單節點、需要高可用;
後端服務器健康狀態監測;
緩存DNS,減輕DNS 服務器的壓力;
Agent:後端服務器健康狀態監測;
調度;
集羣
集羣:一組協同工作的服務器,對外表現爲一個整體。
1.集羣分類
(1)負載均衡集羣LBC (load balance cluster)
(2)高可用性集羣HAC(high available cluster)
(3)高性能集羣 HPC(high performance cluster)
2.負載均衡集羣
(1)結構:負載調度器
共享資源池
服務器資源池
(2)實現方式:
軟件:nginx amoeba LVS
硬件:F5 : big-ip 思捷:安瑞科技
實現方式區別:
軟件:nginx (七層) LVS(四層)
硬件:F5:(二層、四層、七層)
(3)觸發條件
四層:ip+port(IP地址+端口,一次握手就轉發)
七層:URL (兩次握手)
(4)安全性
四層:無法攔截SYN攻擊
七層:可以攔截SYN攻擊
(5)握手
四層:一次完整的tcp連接,客戶端與真實服務器建立。
七層:兩次完整的tcp連接,客戶端與負載調度器
負載調度器與真實服務器
(6) IPVS:章文嵩
軟件核心代碼,工作在Kernel空間。鉤子函數,內核機制,在請求沒有到達目的地址之前,捕獲並取得優先控制權的函數。
IPVSADM:工作在用戶空間,負責爲ipvs內核框架編寫規則,定義誰是集羣服務,誰是後端真實的服務器
3.LVS工作方式(linux virtual server)
(1)NAT 地址轉換模式
實現原理
A.客戶端將請求交給負載調度器,客戶端發出數據包,此時這個數據包的源ip爲CIP,目標ip爲VIP(集羣ip)
B.數據包到達負載調度器後,修改數據包的目標ip地址爲真實服務器的ip,此時數據包的源ip爲CIP,目標ip爲RIP
C.將數據包發送給RS,之後RS響應將數據包發回給負載調度器,此時數據包的源ip爲RS1:IP,目標ip爲CIP
D.負載調度器再轉發時,會將源ip地址改爲自己的VIP地址,然後再發給客戶端,此時數據包的源ip爲VIP,目標ip爲CIP。
特點:
①負載調度器與真實服務器必須有共同網絡
②負載調度器必須是 Linux 操作系統,真實節點可以是任意操作系統
③真實服務器把網關指向負載調度器
④負載調度器負責數據報文出站請求以及入站請求,以及源地址轉換,壓力大
⑤支持端口映射
⑥負載調度器工作在 客戶端 以及 真實節點 之間
總結:nat 模式是 LVS 三種規則中的配置最簡單的,不常用的,壓力較大的一種,後端節點 100 臺以下
地址轉換類型: 在防火牆規則中配置
SNAT:源地址轉換
DNAT:目標地址轉換
(2) DR 路由模式
實現原理
A.客戶端發出數據包,源ip是CIP,目標ip是VIP
B.依靠路由把數據發送給負載調度器,負載調度器將數據包的源MAC地址修改爲DIP的MAC地址,將目標MAC地址修改爲RIP的MAC地址,此時源ip和目標ip均未修改。
C.由於DS和RS在同一網絡中,所以通過二層來傳輸,通過路由再將數據包發到RS
D.RS接收數據包,之後通過lo接口傳送給eth0向外發出,此時的源ip是VIP,目標ip爲CIP。
E.最後通過路由發給客戶端。
特點:
①真實服務器和負載調度器處於同一個二層結構中
②負載調度器以及真實服務器必須是 Linux 操作系統
③負載調度器以及真實服務器必須把網關指向路由
④負載調度器負責入站請求,真實服務器負責出站請求
⑤負載調度器以及真實服務器的數據包轉發通過修改 DMAC 完成
總結: DR 模式是 LVS 中最常用的一種模式。
因爲,負載調度器負責處理 入站請求 出站請求由 真實服務器完成,所以 壓力較小,能夠支撐 1000 臺以下
(3)TUN 隧道模式
實現原理
A.客戶端發送數據包到負載調度器,此時數據包的源ip爲CIP,目標ip爲VIP。
B.負載調度器會在數據包的外面再次封裝一層ip數據包,封裝源ip爲DIP,目標ip爲RIP。此時源ip爲DIP,目標ip爲RIP。
C.之後負載調度器將數據包發給RS(因爲在外層封裝多了一層ip首部,所以可以理解爲此時通過隧道傳輸),此時源ip爲DIP,目標ip爲RIP。
D.RS接收到報文後發現是自己的IP地址,就將報文接收下來,拆除掉最外層的IP後,會發現裏面還有一層IP首部,而且目標是自己的lo接口VIP,那麼此時RS開始處理此請求,處理完成之後,通過lo接口送給eth0網卡,然後向外傳遞。 此時的源IP地址爲VIP,目標IP爲CIP。
E.之後將數據包發給客戶端。
特點:
①真實服務器與負載調度器必須擁有外網IP或者能夠被路由到
②負載調度器與真實服務器必須是Linux操作系統
③負載調度器與真實服務器將網關指向網絡中的真實網關
④負載調度器負責入站請求,真實服務器負責出站。壓力較大 。
總結:TUN 最特殊,基本無使用場景。壓力較大,約 100 左右