Linux搭建負載均衡集羣,使用LVS的NAT模式

Linux Cluster
LB(負載均衡集羣)

負載均衡集羣,通常有兩種實現方式,基於硬件或基於軟件。
基於硬件:BIP
基於軟件:
基於OSI第四層傳輸層:LVS(Linux Virtual Server)
基於OSI第期層傳輸層:nginx

1.LVS

1.1認識LVS

LVS,全稱Linux Virtual Server,由國人章文嵩博士提出並實現。
LVS有三種工作模式:DR直接路由模式、NAT地址轉換模式、TUN隧道模式

2.基於LVS搭建 LB Linux Cluster

2.1 LVS的NAT模式實現

2.1.1 實驗拓撲圖

2.1.2 實驗簡介

Director具備兩張網卡,一張連接外網,一張連接內網中的realserver。
realserver單網卡配置內網IP,運行http服務,掛上簡單的測試web。

2.1.3 實驗準備

物理機上安裝virtualbox軟件上創建一臺centos5.5,最小化安裝即可,作爲Director。
桌面可裝可不裝,使用6.X,7.X也是可以的,這裏使用centos5.5是因爲my computer才8G內存
virtualbox的虛擬介質管理,複製2臺剛纔安裝好的centos5.5硬盤,明明爲realserver1,realserver2
新建虛擬機作爲realserver時,選擇存儲介質選擇現有的磁盤,路徑指向剛纔複製的centos5.5

2.1.4 實驗步驟

0).ipvs在2.6.X版本後的內核中默認安裝有,我們需要安裝ipvsadm進行管理,
**注意:ipvsadm與iptables不能同時使用,實驗前需關閉iptables與selinux**
關閉iptables:
setup
或:
service iptables stop  #停止iptables服務
chkconfig iptables off #iptables開機不自啓
關閉selinux:
setup
或:
vim /etc/sysconfig/selinux  #修改selinux的配置文件
SELINUX=disabled   #將SELINUX等號右邊的值修改爲disabled
1).Director設置雙網卡,外網網卡選擇橋接模式,內網網卡選擇host-only模式
2).爲Director安裝ipvsadm
yum -y install ipvsadm
    檢查是否安裝成功只需輸入ipvsadm,無輸出則未安裝有,若已安裝則輸出如下字樣
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
    -> RemoteAddress:Port     Forward Weight ActiveConn InActConn
3).配置director的IP地址,啓動realserver,網卡模式選擇host-only並配置IP地址,realserver網關指向director的內網IP
4).配置測試網頁
   爲每臺realserver安裝http,並啓動httpd服務
 yum install http
service httpd start
echo "this is realserver1 test web" > /var/www/html/index.html
echo "this is realserver2 test web" > /var/www/html/index.html
echo "this is realserver3 test web" > /var/www/html/index.html
#分別創建測試頁
curl http://ipaddress    #訪問測試頁
5).配置ipvsadm規則
   在director上配置
ipvsadm -A -t 192.168.8.28:80 -s rr   #添加集羣服務 tcp服務類型 服務的ip與端口號 使用調度算法爲 rr
ipvsadm -a -t 192.168.8.28:80 -r 192.168.56.102 -m #添加服務器,工作模式爲NAT
ipvsadm -a -t 192.168.8.28:80 -r 192.168.56.103 -m
ipvsadm -a -t 192.168.8.28:80 -r 192.168.56.104 -m
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.8.28:80 rr
-> 192.168.56.103:80            Masq    1      0          0         
-> 192.168.56.102:80            Masq    1      0          0  
6).測試
在director打開網卡轉發
echo 1 > /proc/sys/net/ipv4/ip_forward  #默認爲0,不打開網卡轉發
使用物理機的瀏覽器輸入http://director的ip地址
不斷刷新即可看到效果   

3.注意事項

在集羣中服務器與director之間的時間誤差不能超過一秒
解決辦法:
辦法一:運行ntp服務,與網絡上的ntp服務器進行時間同步即可
service ntpd start
辦法二:把director當作時間服務器使realserver與director進行時間同步
director運行service ntpd start
realserver運行ntpd directorIP,如ntpd 192.168.56.101

4.ipvsadm命令的用法

-A --add-service      在內核的虛擬服務器表中添加一條新的虛擬服務器記錄。 
-E --edit-service     編輯內核虛擬服務器表中的一條虛擬服務器記錄。 
-D --delete-service   刪除內核虛擬服務器表中的一條虛擬服務器記錄。 
-C --clear           清除內核虛擬服務器表中的所有記錄。 
-R --restore         恢復虛擬服務器規則 
-S --save            保存虛擬服務器規則,輸出爲-R 選項可讀的格式 
-a --add-server      在內核虛擬服務器表的一條記錄裏添加一條新的真實服務器記錄。
-e --edit-server     編輯一條虛擬服務器記錄中的某條真實服務器記錄 
-d --delete-server   刪除一條虛擬服務器記錄中的某條真實服務器記錄 
-L|-l --list         顯示內核虛擬服務器表 
-t --tcp-service service-address     說明虛擬服務器提供的是tcp  
-u --udp-service service-address     說明虛擬服務器提供的是udp 
-s --scheduler scheduler             使用的調度算法,有這樣幾個選項rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,默認的調度算法是: wlc.
#本節ipvsadm的用法來自http://linux.51yip.com/

5.常見的調度算法

director收到用戶請求後,需要通過一定的調度算法來決定將請求分發給那臺realserver處理。
分爲動態調度與靜態調度,靜態調度爲 rr wrr,不考慮服務器性能與當前連接數,將請求輪流分發;
動態調度爲wlc|lblc|lblcr|dh|sh|sed|nq,若不指定調度算法默認爲wlc,一句當前服務器的
性能當前連接數與權重,進行運算,將用戶請求分給相對較爲空閒的realserver。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章