1. 程式人生 > >lvs+keepalive 比較詳細的安裝配置文件

lvs+keepalive 比較詳細的安裝配置文件

lvs說明:目前有三種IP負載均衡技術(VS/NAT、VS/TUN和VS/DR);
八種排程演算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh)。
在 排程器的實現技術中,IP負載均衡技術是效率最高的。在已有的IP負載均衡技術中有通過網路地址轉換(Network Address Translation)將一組伺服器構成一個高效能的、高可用的虛擬伺服器,我們稱之為VS/NAT技術(Virtual Server via Network Address Translation),大多數商品化的IP負載均衡排程器產品都是使用此方法,如Cisco的LocalDirector、F5的Big/IP和 Alteon的ACEDirector。在分析VS/NAT的缺點和網路服務的非對稱性的基礎上,我們提出通過IP隧道實現虛擬伺服器的方法VS/TUN (Virtual Server via IP Tunneling),和通過直接路由實現虛擬伺服器的方法VS/DR(Virtual Server via Direct Routing),它們可以極大地提高系統的伸縮性。所以,IPVS軟體實現了這三種IP負載均衡技術,它們的大致原理如下(我們將在其他章節對其工作原 理進行詳細描述), Virtual Server via Network Address Translation(VS/NAT)
通過網路地址轉換,排程器重寫請求報文的目標地址,根據預設的排程演算法,將請求分派給後端的真實伺服器;真實伺服器的響應報文通過排程器時,報文的源地址被重寫,再返回給客戶,完成整個負載排程過程。 Virtual Server via IP Tunneling(VS/TUN)
採用NAT技術時,由於請求和響應報文都必須經過調 度器地址重寫,當客戶請求越來越多時,排程器的處理能力將成為瓶頸。為了解決這個問題,排程器把請求報文通過IP隧道轉發至真實伺服器,而真實伺服器將響 應直接返回給客戶,所以排程器只處理請求報文。由於一般網路服務應答比請求報文大許多,採用 VS/TUN技術後,集群系統的最大吞吐量可以提高10倍。 Virtual Server via Direct Routing(VS/DR)
VS/DR通過改寫請求報文的MAC地址,將請求 傳送到真實伺服器,而真實伺服器將響應直接返回給客戶。同VS/TUN技術一樣,VS/DR技術可極大地提高集群系統的伸縮性。這種方法沒有IP隧道的開 銷,對叢集中的真實伺服器也沒有必須支援IP隧道協議的要求,但是要求排程器與真實伺服器都有一塊網絡卡連在同一物理網段上。 針對不同的網路服務需求和伺服器配置,IPVS排程器實現瞭如下八種負載排程演算法:使用比較多的是以下四種: 輪叫(Round Robin)
排程器通過"輪叫"排程演算法將外部請求按順序輪流分配到叢集中的真實伺服器上,它均等地對待每一臺伺服器,而不管伺服器上實際的連線數和系統負載。 加權輪叫(Weighted Round Robin)
排程器通過"加權輪叫"排程演算法根據真實伺服器的不同處理能力來排程訪問請求。這樣可以保證處理能力強的伺服器處理更多的訪問流量。排程器可以自動問詢真實伺服器的負載情況,並動態地調整其權值。 最少連結(Least Connections)
排程器通過"最少連線"排程演算法動態地將網路請求排程到已建立的連結數最少的伺服器上。如果集群系統的真實伺服器具有相近的系統性能,採用"最小連線"排程演算法可以較好地均衡負載。 加權最少連結(Weighted Least Connections)
在集群系統中的伺服器效能差異較大的情況下,排程器採用"加權最少連結"排程演算法優化負載均衡效能,具有較高權值的伺服器將承受較大比例的活動連線負載。排程器可以自動問詢真實伺服器的負載情況,並動態地調整其權值。
1、拓撲描述:(一定要理解這個拓撲關係)
       負載伺服器master真實IP        192.168.1.252
       負載伺服器backup真實IP  192.168.1.230
       負載伺服器虛擬IP        192.168.1.229
       後端WEB伺服器IP                192.168.1.220
       後端WEB伺服器IP                192.168.1.231 2、升級核心
#yum install kernel 3、重啟伺服器,使用新的核心 4、刪除舊版、升級新版核心
#rpm -e kernel-2.6.18-53.el5
#rpm -e kernel-devel-2.6.18-53.el5
#rpm -e kernel-headers-2.6.18-53.el5 --nodeps
#yum install kernel-headers
#yum install kernel-devel 6、安裝ipvsadm-1.24  //master和backup
#        rpm -ivh ipvsadm-1.24-6.src.rpm
#        cd /usr/src/redhat/SOURCES
#        tar -zxvf ipvsadm-1.24.tar.gz
#        cd ipvsadm
#       uname -r  //查詢版本
       2.6.18-53.el5xen
#        ln -s  /usr/src/kernels/2.6.18-53.el5xen-i686/  /usr/src/linux  //假如這裡的核心版本不一樣的話,make的時候會出現錯誤。
#        make;make install 7,安裝keepalived. 在負載均衡伺服器上執行 master和backup
1、解壓
       #tar -zxvf keepalived-1.1.15.tar.gz
       #cd keepalived-1.1.15
       #./configure --prefix=/usr/local/keepalived
       #make;make install
       #cp /usr/local/keepalived/sbin/rc.d/init.d/keepalived /sbin/rc.d/init.d/
       #cp /usr/local/keepalived/sbin/sysconfig/keepalived /sbin/sysconfig/
       #mkdir /sbin/keepalived
       #cp /usr/local/keepalived/sbin/keepalived/keepalived.conf /sbin/keepalived/
       #cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
       #service keepalived start|stop  8、開啟負載伺服器路由機制  //master和backup
#        vi /sbin/sysctl.conf 保證有如下內容
       net.ipv4.ip_forward = 1
       執行
#        sysctl -p 9、建立負載伺服器啟動指令碼  //master和backup
#vi /sbin/lvsdr.sh
#!/bin/bash 
VIP=192.168.1.229 
RIP1=192.168.1.220
RIP2=192.168.1.231
/sbin/rc.d/init.d/functions
case "$1" in
start)
       echo "start LVS of DirectorServer"
       #Set the Virtual IP Address
       /sbin/ifconfig eth0:1 $VIP broadcast $VIP netmask 255.255.255.255 up
       /sbin/route add -host $VIP dev eth0:1
       #Clear IPVS Table
       /sbin/ipvsadm -C
       #Set Lvs
       /sbin/ipvsadm -A -t $VIP:80 -s wrr
       /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
       /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
       #Run Lvs
       /sbin/ipvsadm
;;
stop)
echo "Close LVS Directorserver"
/sbin/ifconfig eth0:1 down
/sbin/ipvsadm -C
;;
*)
echo "Usage0{start|stop}"
exit 1
esac 10、分配許可權
#chmod 755 /sbin/lvsdr.sh 11、執行測試
#        /sbin/lvsdr.sh start
       檢視ifconfig是否有ifcfg-eth0:1   (有就對了)
       檢視route -n 路由表是否多了eth0:1路由(有就對了)
#        /sbin/lvsdr.sh stop
       檢視ifconfig是否有ifcfg-eth0:1   (無就對了)
       檢視route -n 路由表是否多了eth0:1路由(無就對了)
#        /sbin/lvsdr.sh  adsa
       是否提示引數錯誤,只能使用{start|stop}。 12、配置後端WEB伺服器
       在192.168.1.231和192.168.1.220上分別建立如下指令碼。
#        vi /sbin/realdr.sh
       #!/bin/bash
       VIP=192.168.1.229
       /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
       /sbin/route add -host $VIP dev lo:0
       echo "1">/proc/sys/net/ipv4/conf/default/arp_ignore
       echo "2">/proc/sys/net/ipv4/conf/default/arp_announce
       echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
       echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
       sysctl -p
13、配置許可權
#        chmod 755 /sbin/realdr.sh 14、在兩臺web伺服器上分別執行其指命。
/sbin/realdr.sh start 15.配置keepalived.conf配置檔案 //master和backup #vi /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs {
  notification_email {
    
[email protected]

  }
  notification_email_from [email protected]
  smtp_server 222.73.214.147
  smtp_connect_timeout 30
  router_id LVS_DEVEL
} vrrp_instance VI_1 {
   state MASTER  //備份伺服器設定為backup
   interface eth0
   virtual_router_id 51
   priority 100  ////備份伺服器設定小於100
   advert_int 1
   authentication {
       auth_type PASS
       auth_pass 1111
   }
   virtual_ipaddress {
       192.168.1.229
   }
} virtual_server 192.168.1.229 80 {
   delay_loop 6  //隔6秒查詢
   lb_algo wrr   //lvs演算法
   lb_kind DR    //(Direct Route)
   persistence_timeout 60  //同一IP的連線60秒內被分配到同一臺realserver
   inhibit_on_failure  //當web掛掉的時候,前面請求的使用者,可以繼續開啟網頁,但是後面的請求不會排程到掛掉的web上面。
   protocol TCP   //用TCP協議檢查realserver狀態    real_server 192.168.1.220 80 {
       weight 3    //權重
       TCP_CHECK {
           connect_timeout 10   //10秒無響應超時
           nb_get_retry 3
           delay_before_retry 3
       }
   }    real_server 192.168.1.231 80 {
       weight 1
       TCP_CHECK {
           connect_timeout 10
           nb_get_retry 3
           delay_before_retry 3
       }
   }
   
} 16,啟動keepalived
# /etc/rc.d/init.d/keepalived start 17:設定成自啟動
#vi /etc/rc.local //裡面新增 /etc/init.d/keepalived restart
/etc/lvsdr.sh start
測試演算法: 
  我的測試環境中,演算法使用的是wrr,和wlc這兩種。
權重問題:當lvs配置檔案lvs-dr.sh改變權重以及keepalived配置檔案keepalived.conf修改權重後,哪個檔案重新啟動,哪個檔案的權重生效。同時權重在master和backup上面可以設定不同。
當 演算法是rr的時候,權重沒有作用,但是當演算法是wlc和wrr的時候,必須設定權重,可以根據伺服器的效能和配置,來確定權重的大小,當權重大的時 候,lvs排程的服務也就多,同時權重高的伺服器先收到連結。當小的時候,lvs排程的比較少。當權重為0的時候,表示伺服器不可用, 測試lvs
1 當我把master的lvs服務關掉的時候,會將使用者請求自動切換到backup上面進行工作。
2 當我把web服務關掉的時候,lvs上面會顯示web消失,當啟用後,web會自動顯示
web關閉後:
[
[email protected]
~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddressort Scheduler Flags
 -> RemoteAddressort           Forward Weight ActiveConn InActConn
TCP  192.168.1.229:80 wlc
 -> 192.168.1.231:80             Route   10     0          0         
[[email protected]
~]# ipvsadm -ln
web啟用後:
[email protected] ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddressort Scheduler Flags
 -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.1.229:80 wlc
 -> 192.168.1.231:80             Route   1      0          0         
 -> 192.168.1.220:80             Route   1      0          0     
3 當master伺服器down的時候,backup自動會接替服務,當master起來的時候,backup會自動斷掉。

相關推薦

ceph 物件儲存閘道器rados gateway和S3介面測試詳細安裝配置

Create a keyring for the gateway:sudo ceph-authtool --create-keyring /etc/ceph/ceph.client.radosgw.keyring sudo chmod +r /etc/ceph/ceph.client.radosgw.key

lvs+keepalive 比較詳細安裝配置

lvs說明:目前有三種IP負載均衡技術(VS/NAT、VS/TUN和VS/DR); 八種排程演算法(rr,wrr,lc,wlc,lblc,lblcr,dh,sh)。 在 排程器的實現技術中,IP負載均衡技術是效率最高的。在已有的IP負載均衡技術中有通過網路地址轉換(Net

大資料叢集架之——nginx 反向代理的安裝配置

二、Nginx安裝配置     1.安裝gcc     方式1 - yum線上安裝:         //yum install gcc     

Datastage9.1 Linux環境安裝配置

Datastage9.1安裝配置文件 1.系統需求 The following packages are required to install and operate Version 9.1 on 64-bit SUSE Linux Enterpris

Lustre安裝配置

部署環境: centos5.5 _x64 MDS:172.16.19.140 OSS:172.16.19.141 Client:172.16.19.142 一、概述 Lustre是一個以GNUGeneral Public為許可證的,開源的分散式並行檔案系統。其最大可支援1

Kafka_2.10-0.10.0.0安裝配置

Kafka叢集安裝指南 該文件是建立在已經安裝好JAVA JDK的基礎上,並且設定好$JAVA_HOME環境變數。 一、  Kafka安裝 1.     解壓kafka安裝包 執行 tar  -zxvf  kafka_2.9.2-0.8.1.1.tgz 2.       

nagios 服務端與客戶端監控安裝詳細配置,各配置詳解

this sql 引入 apache2 cpu load fine 宕機 pri require nagios 安裝與部署—————— 1、安裝前準備(1)創建nagios用戶和用戶組 [root@localhost ~]#groupadd nagios

詳細的keepalived+lvs-dr配置

四臺臺機器: 分發器主:192.168.0.154 分發器備:192.168.0.171 rs_1:192.168.0.131 rs_2:192.168.0.132 keepalived安裝: yum install keepalived ipvsadm安裝:(可選keepaliv

Linux下MySQL5.7.18二進制包安裝(無默認配置my_default.cnf)

一點 utf8 user 二進制 width which 密碼 用戶 location 本文出處:http://www.cnblogs.com/wy123/p/6815049.html 最新在學習MySQL,純新手,對Linux了解的也不多,因為是下載

hadoop分布式安裝部署具體視頻教程(網盤附配好環境的CentOS虛擬機/hadoop配置)

down hdf lan nag home 開機啟動 prop baidu ifcfg-eth 參考資源下載:http://pan.baidu.com/s/1ntwUij3視頻安裝教程:hadoop安裝.flvVirtualBox虛擬機:hadoop.part1-part

vm 安裝centos 7無網卡配置解決方法

解決方案 network 配置文件 操作系統 failed 問題描述:朋友新安裝了centos7,發現無網卡配置文件,另外network服務是failed狀態。找到我求助嘗試解決方案1、關閉NetworkManager,自己創建ifcfg-eth0配置文件,錯誤依舊嘗試解決方案2、配置文件

SSM:spring+springmvc+mybatis框架中的XML配置功能詳細解釋

con initial -m and 整理 .get 尺寸 internal 頁面 SSM:spring+springmvc+mybatis框架中的XML配置文件功能詳細解釋 2016-04-14 23:40 13030人閱讀 評論(2) 收藏 舉報

剛剛安裝好的Centos7虛擬機無法配置網卡eth0的配置

eth0 centos 昨天一個朋友問我,安裝了一臺Centos7的虛擬機,網卡配置文件中找不到eth0,如圖所示即使改了ifcfg-eno16777736為ifcfg-eth0,重啟網卡提示錯誤,並且恢復到修改之前於是到網上看了下,還真是不少出現這個問題的,也找到了解決之法,修改兩個配置文件1.編輯

因實現本地瀏覽器訪問nginx修改配置後,安裝vsftpd失敗

ping 配置 href vsftpd blank dns echo aid vsftp 解決方法如下(修改dns配置) vi /etc/resolv.conf 在此文件最後加入:nameserver 8.8.8.8 如果沒有vi編輯器可用: echo "nameserve

Nginx 之 Nginx安裝配置簡要介紹

安裝 配置文件 1 概述本文主要介紹了nginx的兩種安裝方法,通過yum和編譯安裝,同時對安裝後的配置文件的語法和格式進行了簡要的介紹2 nginx的安裝2.1 yum安裝nginx在光盤自帶的base源裏沒有,需要通過官方路徑或者是epel源中安裝.官方:http://nginx.org/pack

Nginx配置詳細介紹

nginx配置 Nginx的主配置文件為“/etc/nginx/nginx.conf”,在主配置文件中使用指令又包含了其他的片段配置文件“/etc/nginx/conf.d/”(源代碼安裝時可以自己指定配置文件位置)。在配置文件中首先需要知道兩個名詞,一個是“context”,上下文,代表的是指令的容器

docker 安裝nginx並掛載配置和www目錄以及日誌目錄

gin bsp 恢復 容器 名稱 內容 文件 etc dock ---恢復內容開始--- 一 首先 docker pull nginx 二 docker run --name myNginx -d -p 80:80 -v e:/docker/nginx/www

PyCharm 恢復默認設置 | JetBrains IDE 配置安裝目錄

pro store mar gpo shel 並且 log arm 配置 網上的答案為什麽都亂七八糟並且全都全篇一律?某度知道是發源地? 先說 Mac 按需運行下面的 rm 刪除命令 # Configuration rm -rf ~/Library/Preferences/

vue-cli中的build.js配置詳細解析

刪除 .json directory 內置 tostring file 環境配置 輸出 pin 轉載自:https://www.cnblogs.com/ye-hcj/p/7096341.html這是vue-cli腳手架工具的生產環境配置入口 package.json中的"b

Mysql數據庫介紹、安裝配置

username 存取 空閑 交互式 遠程登錄 現在 centos7 delet 取數 Mysql數據庫介紹、安裝和配置文件 MySQL數據庫介紹 mysql是開源關系型數據庫,遵循GPL協議。 mysql的特點是性能卓越且服務穩定,開源,無版本限制,成本低