LVS_NAT

本文內容:

       LVS 集羣概述

 

LVS 集羣分類

 

實戓:配置 LVS-NAT

 

 

服務概述: 什麼是集羣?

 

集羣(cluster)就是一組計算機,它們作爲 一個整體向用戶提供一組網絡資源。這些 單個的計算機系 統就是集羣的節點 (node)。

 

 

 

集羣的種類

 

 集羣系統主要分爲

 

– 負載均衡(Load Balance)集羣,簡稱 LB

 

– 高可用(High Availability)集羣,簡稱 HA 集羣

 

– 高性能計算(High Perfermance Computing)集羣,簡稱 HPC 集羣


LB 實現手段

 

 硬件:  – F5 負載均衡器

 

 軟件  – LVS(4 層,傳輸層)  – Nginx(7 層,應用層)


LVS(4 層) 模式: /VS/NAT

 

LVS-VS/DR \VS/TUN


LVS(Linux Virtual Server)

 

LVS 是 Linux Virtual Server 的簡寫,意即 Linux 虛擬服務器,是一個虛擬的服務器集羣系統。本項目 在 1998 年 5 月由章文嵩博士成立,是中國國內最早出現的自由軟件項目乊一。 官網:http://www.linuxvirtualserver.org/

 

中文站點: http://zh.linuxvirtualserver.org/



LVS 集羣採用三層結構:

-A 負載調度器 /分發器(load balancer)

 

它是整個集羣對外面的前端機,負責將客戶的請求發送到一組服務器上執行,而客戶認爲服務是來自一個 IP 地址(我們可稱乊爲 VIP 虛擬 IP 地址)上的。

 

– B、服務器池(server pool)

 

是一組真正執行客戶請求的服務器,執行的服務有 WEB、MAIL、FTP 和 DNS 等。

 

– C、共享存儲(shared storage)

 

它爲服務器池提供一個共享的存儲區,這樣很容易使得服務器池擁有相同的內容,提供相同的服務。



LVS 負載均衡的三種包轉發方式

 

LVS 提供了三種包轉發方式:NAT(網絡地址映射)、IP Tunneling(IP 隧道)、Direct Routing(直接 路由)。不同的轉發模式決定了丌同的 cluster 的網絡結構,

 

 

NAT(網絡地址映射) 通過網絡地址轉換。

NAT 方式可支持任何的操作系統,以及私有網絡,並且只需一個 Internet IP 地址,但是整個系統的性能受到限制。因爲執行 NAT 每次需要重寫包,有一定的延遲;另外,大部分應用有 80%的數據是從服務器 流向客戶機,也就是用戶的請求非常短,而服務器的迴應非常大,對負載均衡器形成很大壓力,成爲了新 的瓶頸。

 

 

 

 IP Tunneling(IP 隧道)

 

director(分發器)分配請求到丌同的 real server。real server 處理請求後直接回應給用戶,這樣 director

 

負載均衡器僅處理客戶機不服務器的一半連接。IP Tunneling 技術極大地提高了 director 的調度處理能 力,同時也極大地提高了系統能容納的最大節點數,可以超過 100 個節點。real server 可以在任何 LAN 戒 WAN 上運行,這意味着允許地理上的分佈,這在災難恢復中有重要意義。服務器必須擁有正式的 IP 地址用於不客戶機直接通信,並且所有服務器必須支持 IP 隧道協議。

 

 

 

Direct Routing(直接路由)

 

不 IP Tunneling 類似,負載均衡器僅處理一半的連接,避免了新的性能瓶頸,同樣增加了系統的可伸縮 性。Direct Routing 不 IP Tunneling 相比,沒有 IP 封裝的開銷,但由於採用物理層(修改 MAC 地址)

 

技術,所有服務器都必須在一個物理網段。

 

 

 

LVS  NAT 模式工作原理:

 

 

客戶端訪問調度器時,調度器通過網絡地址轉換,調度器重寫請求報文的目標地址,根據預設的調度算法, 將請求分派給後端的真實服務器;真實服務器的響應報文通過調度器時,報文的源地址被重寫,再返回給 客戶,完成整個負載調度過程。

wKioL1WwjPvwwBnbAAEpeEQOy2g023.jpg

 

wKioL1WwjOHg_ElfAAGBxk2-Nkw727.jpg


 

開始配置 LVS:


xuegod63 配置成分發器:

1、打開路由轉發功能

[root@xuegod63 ~]# vim /etc/sysctl.conf

改:net.ipv4.ip_forward = 0

爲:net.ipv4.ip_forward = 1


讓配置生效:

[root@xuegod63 ~]# sysctl -p


2、配置網絡環境:

添加一個網卡, 配置成以下網絡環境:

eth0 192.168.1.63 模式:br0 模擬公網

eth1 192.168.2.63 模式:vmnet4 模擬公網

Director 分發器不需要開啓 80(服務的)端口  


3、安裝: LVS 管理工具: ipvsadmin

[root@xuegod63 Packages]# pwd

/mnt/Packages

[root@xuegod63 Packages]# rpm -ivh ipvsadm-1.25-9.el6.x86_64.rpm

或:

yum install ipvsadm

 


4、使用這個命令設置規則:

[root@xuegod63 ~]# ipvsadm -A -t 192.168.1.63:80 -s rr     


選項:

-rr 代表輪循

-A 添加

-t 表示 TCP 的服務 VIP:PORT

-s 指定調度算法 rr 表示 round-robin 輪循

[root@xuegod63 ~]# ipvsadm -a -t 192.168.1.63:80 -r 192.168.2.64 -m

[root@xuegod63 ~]# ipvsadm -a -t 192.168.1.63:80 -r 192.168.2.62 -m


選項:

-a 表示添加 real server 的地址

-r 指定 real server 的 IP 地址

-m 表示 masquerade 也就是 NAT 方式的 LVS


查看:

ipvsadm 配置及查看內核 IPVS 表和算法的工具類似於 iptables

[root@xuegod63 ~]# ipvsadm -L -n

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP 192.168.1.63:80 rr

-> 192.168.2.62:80 Masq 1 0 0

-> 192.168.2.64:80 Masq 1 0 0


保存以上的配置

[root@xuegod63 ~]# /etc/init.d/ipvsadm save 保存以上的配置

Saving IPVS table to /etc/sysconfig/ipvsadm: [確定]



RealServer:xuegod62 和 xuegod64 上面配置:

準備:

配置 IP:REAL SERVER 自己的網絡相關信息配置成如下:。

xuegod62: eth0: vmnet4 : 192.168.2.62 網關: 192.168.2.63

xuegod64: eth0: vmnet4 : 192.168.2.64 網關: 192.168.2.63


配置 xuegod64 爲 realserver, 並啓 web 服務

[root@xuegod64 ~]# yum install -y httpd

[root@xuegod64 ~]# service httpd restart

[root@xuegod64 ~]# echo "192.168.2.64" > /var/www/html/index.html #(實驗期間,各

個服務器的頁面不同)


配置 xuegod62 爲 realserver, 並啓 web 服務

[root@xuegod62 ~]# yum install -y httpd

[root@xuegod62 ~]# service httpd restart

[root@xuegod62 ~]# echo "192.168.2.62" > /var/www/html/index.html #(實驗期間,各

個服務器的頁面不同)


測試:

在 xuegod63 上測試:

[root@xuegod63 ~]# yum install elinks

測試 realserver :

[root@xuegod63 ~]# elinks 192.168.2.64 --dump

192.168.2.64

[root@xuegod63 ~]# elinks 192.168.2.62 --dump

192.168.2.62


測試 VIP:

[root@xuegod63 ~]# elinks 192.168.1.63 --dump

192.168.2.62

[root@xuegod63 ~]# elinks 192.168.1.63 --dump

192.168.2.64



訪問: 在物理上打開瀏覽器訪問: 每按 F5 刷新一次,就會變換一個頁面。



 wKiom1WwjuHzFYc9AADZZNWXus8671.jpg

分發器需要監聽 80


###ipvsadm 更多參數說明

-L -n ==> 查看規則,顯示內核虛擬服務器表

-L -n -c ==> 查看客戶端連接分發器和 real server 的情況


例 1:[root@xuegod63 ~]# ipvsadm -L -n -c

IPVS connection entries

pro expire state source virtual destination

TCP 01:33 TIME_WAIT 192.168.1.100:49698 192.168.1.70:80 192.168.2.62:80

TCP 01:26 TIME_WAIT 192.168.1.100:49690 192.168.1.70:80 192.168.2.64:80

TCP 01:57 TIME_WAIT 192.168.1.100:49739 192.168.1.70:80 192.168.2.62:80


-L -n --stats ==> 查看分發情況

-L -n --rate ==> 查看速率


例 2: -Z --zero 虛擬服務表計數器清零(清空當前的連接數量等)

[root@xuegod63 ~]# ipvsadm -Z

[root@xuegod63 ~]# ipvsadm -L -n --stats

IP Virtual Server version 1.2.1 (size=4096)


例 2: -C --clear 清除內核虛擬服務器表中的所有記錄。

 [root@xuegod63 ~]# ipvsadm -C


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章