Linux---lvs (DR)
阿新 • • 發佈:2018-12-12
LVS模式
- LVS:Linux Virtual Server,Linux虛擬伺服器,是一個虛擬的伺服器集群系統。本專案在1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟體專案之一。
- 工作在TCP/IP協議的四層,其轉發是依賴於四層協議的特徵進行轉發,由於其轉發要依賴於協議的特徵進行轉發,因此需要在核心的TCP/IP協議棧進行過濾篩選,這就需要在核心的模組來完成,而這樣的過濾轉發規則又是由管理員進行定義。
- LVS是兩段式的架構設計,在核心空間中工作的是”ipvs”,而在使用者空間中工作的,用來定義叢集服務規則的是”ipvsadm”。這就很容易想到iptables,而LVS正好工作在iptables的input鏈上。
LVS的組成
- ipvsadm:用於管理叢集服務的命令列工具,工作於Linux系統中的使用者空間。
- ipvs:IP虛擬伺服器(IP Virtual Server),簡寫為IPVS,為lvs提供服務的核心模組,工作於核心空間 (相對於是框架,通過ipvsadm新增規則,來實現ipvs功能)。
LVS中每個主機IP地址的定義
- VIP:Director用來向客戶端提供服務的IP地址,也是DNS解析的IP
- RIP:叢集節點(後臺真正提供服務的伺服器)所使用的IP地址
- DIP:Director用來和RIP進行互動的IP地址
- CIP:公網IP,客戶端使用的IP
LVS的四種轉發模式
- DR: 直接路由 (Direct routing)
- TUN: IP隧道 (IP tunneling)
- NAT: 網路地址轉換 (Network address translation)
- FullNAT: 網路地址轉換
DR
- client -> vs -> Rs ->client
- 修改目標MAC
- 請求由LVS接受,由真實提供服務的伺服器(RealServer, RS)直接返回給使用者,返回的時候不經過LVS。
- 負載排程器中只負責排程請求,而伺服器直接將響應返回給客戶,可以極大地提高整個集群系統的吞吐量。
- DR模式是效能最好的一種模式。
- 排程器和伺服器組都必須在物理上有一個網絡卡通過不分斷的區域網相連。
- LVS和RS必須在同一個VLAN下,否則LVS無法作為RS的閘道器。
DR模式
- DR 利用大多數 Internet 服務的非對稱特點,負載排程器中只負責排程請求,而伺服器直接將響應返回給客戶,可以極大地提高整個集群系統的吞吐量。
- 排程器和伺服器組都必須在物理上有一個網絡卡通過不分斷的區域網相連,如通過交換機或者高速的HUB 相連。
- VIP 地址為排程器和伺服器組共享,排程器配置的 VIP 地址是對外可見的,用於接收虛擬服務的請求報文;
- 所有的伺服器把 VIP 地址配置在各自的 NonARP 網路裝置上,它對外面是不可見的,只是用於處理目標地址為 VIP 的網路請求。
LVS /DR+ipvsadm實現對後端伺服器無健康監測的負載均衡
1 首先在關閉虛擬機器server1上的varnish
編寫yum源的配置檔案如圖,再進行yum install ipvsadm -y 安裝
排程演算法 – rr輪詢
編寫策略並儲存如圖:
給三臺機子給vip
測試:
兩臺測試機都好著
當某臺測試機宕機(server2) 如圖:(也就是停掉httpd後)