CentOS 6.5 LVS + KeepAlived 記錄搭建實驗記錄

感謝原創作者:https://blog.csdn.net/tengyuantuohai/article/details/19639671

一:實驗前準工作:

1.1安裝:VMware 14 (用作搭建虛擬服務器,本機系統是win7)

1.2這裏我安裝了1臺centos6.5 ,其他4臺克隆

分別對應ip:

對外主機1地址:192.168.52.138  LVS_VIP(VIP:Virtual IP)
虛擬主機1地址:192.168.52.134  LVS_Master    
虛擬主機2地址:192.168.52.135  LVS_Backup    
虛擬主機3地址:192.168.52.136  WEB1_RealServer    
虛擬主機4地址:192.168.52.137  WEB2_RealServer

1.3小技巧:快速克隆

可以安裝好一臺,其他4臺用虛擬機克隆

(1)關閉當前系統,點虛擬機--管理--克隆--下一步-虛擬機中的當前狀態--創建鏈接克隆--自行命名和選擇系統保存目錄即可

(2)VMware 如果從win7複製進虛擬服務器複製不了,安裝好VMware  Tools即可 (菜單:虛擬機-安裝VMware  Tools)

(3)Centos6.5安裝軟件出現下面問題,是用戶權限問題,切換回root用戶就行了,命令:#su  ,輸密碼

Loaded plugins: fastestmirror, refresh-packagekit, security
You need to be root to perform this command.

(4)直接在虛擬機操作命令窗口比較麻煩,我直接用SecureCRT來遠程鏈接

 

二:開始搭建

1.打開LVS_Master

(1)安裝IPVSADM

#yum -y install ipvsadm

(2)光閉防火牆(方便測試)

#service iptables stop

(3)KeepAlived 的安裝

#cd /usr/src
#yum -y install openssl-devel
#wget http://www.keepalived.org/software/keepalived-1.2.7.tar.gz
#wget http://mirror.centos.org/centos/6/os/x86_64/Packages/popt-static-1.13-7.el6.x86_64.rpm
#yum -y install popt-static-1.13-7.el6.x86_64.rpm
#yum -y install kernel-devel make gcc openssl-devel libnl* popt*
#ln -s /usr/src/kernels/2.6.32-220.13.1.el6.x86_64/ /usr/src/linux
#tar zxvf keepalived-1.2.7.tar.gz
#cd keepalived-1.2.7
#./configure --with-kernel-dir=/usr/src/kernels/2.6.32-358.2.1.el6.x86_64/

這步執行成功會顯示下圖

繼續

#make && make install  
#cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/  
#cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/  
#mkdir /etc/keepalived  
#cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/  
#cp /usr/local/sbin/keepalived /usr/sbin/

到這裏KeepAlivde應該安裝成功了

(4)sysctl.conf文件

#vim /etc/sysctl.conf     

修改裏面“net.ipv4.ip_forward = 1” 

保存退出,刷新生效

#sysctl -p

(5)KeepAlivde的配置

#vim /etc/keepalived/keepalived.conf   (前面命令已經copy到了這裏)

我的配置文件

onfiguration File for keepalived
global_defs {
        notification_email { 
                [email protected] 
        } 
        notification_email_from [email protected]
        smtp_server 127.0.0.1
        smtp_connect_timeout 30
        router_id LVS_MASTER
}
 
vrrp_instance VI_1 {
    state MASTER
    interface eth1
    virtual_router_id 60
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.52.138
    }
}
 
virtual_server 192.168.52.138 8080 {
    delay_loop 6
    lb_algo rr 
    lb_kind DR
    nat_mask 255.255.255.0
    persistence_timeout 50
    protocol TCP
 
    real_server 192.168.52.136 8080 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
 
    real_server 192.168.52.137 8080 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

(6)保存退出,啓動keepalived

#service keepalived start

提示:Starting keepalived: [  OK  ]  證明成功了

(7)查看進程

#ps aux | grep keepalived

注意有4個進程纔算成功,3個是有問題的

Keepalived正常運行時,共啓動3個進程,其中一個進程是父進程,負責監控其子進程;一個是vrrp子進程;另外一個是checkers子進程。

(8)查看下虛擬IP是否已經加上

#ip a

主機地址:192.168.52.138   LVS_VIP(VIP:Virtual IP)已經有了,說明虛擬IP已經自動配置上了。

 


2.打開虛擬主機3地址:192.168.52.136  WEB1_RealServer

(1)先裝個web服務器,這裏可以自行用nginx 或tomcat,網頁能正常訪問即可

我這裏安裝tomcat

#yum -y install tomcat6 tomcat6-webapps tomcat6-admin-webapps

#service tomcat6 start

啓動成功,直接訪問:http://192.168.52.136:8080/ 就可以訪問到tomcat頁面了,爲了方便區分,建個首頁文件,寫上自己ip

#cd /usr/share/tomcat6/webapps/ROOT/
#cat /dev/null > index.html
#vim index.html
輸入:web1 192.168.52.136

保存再訪問:

(2)配置虛擬IP啓動腳本

#vim /etc/init.d/realserver.sh

#!/bin/bash
SNS_VIP=192.168.52.138
. /etc/rc.d/init.d/functions
case "$1" in
start)
 ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
 /sbin/route add -host $SNS_VIP dev lo:0
 echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
 echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
 echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
 echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
 sysctl -p >/dev/null 2>&1
 echo "RealServer Start OK"
 ;;
stop)
 ifconfig lo:0 down
 route del $SNS_VIP >/dev/null 2>&1
 echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
 echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
 echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
 echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
 echo "RealServer Stoped"
 ;;
 *)
 echo "Usage: $0 {start|stop}"
 exit 1
esac
exit 0

(3)啓動腳本

#sh /etc/init.d/realserver.sh start

RealServer Start OK 纔算成功

(4)驗證是否和master鏈接上了

去LVS_MASTER服務器的終端查看下ipvsadm,查看已經連接上了WEB1服務器

#ipvsadm -ln

我這裏因爲136,和137都啓動過,所以截圖會有,這裏出現證明訪問:http://192.168.52.138:8080/ 它會自動轉發到

http://192.168.52.136:8080/ 或 http://192.168.52.137:8080/ ,可以在網頁訪問下

(5)異常:這裏碰到一些問題:怎麼訪問轉發就是失敗

解決方案:

我碰到的是防火牆問題,把master防火牆關閉 (可能還有keepAlived版本,配置文件路徑等,可能不同人碰到實際問題不同,多查資料可以參考:https://www.linuxidc.com/Linux/2015-03/114981.htm)

# service iptables stop 

頁面訪問轉發成功

 

三:可以在lvs_master配置好後再克隆lvs_backup  ,

#vim /etc/keepalived/keepalived.conf

其他配置相同,不同在

router_id LVS_MASTER  改成:router_id LVS_BACKUP

interface eth1:網卡,以服務器真實網卡來配置,有可能是eth0 ,eth1,eth2

priority 100 :主是100,從要改比它小,可以是99 ,我這裏用90

 

四:可以在配置好web1服務器後再克隆web2....webn

(1)驗證:同時開啓lvs_master和lvs_backup服務,訪問http://192.168.52.138:8080/ ,成功轉發到web2 192.168.52.137

把web2服務器關閉,看能否自動切換到web1

訪問http://192.168.52.138:8080/ ,自動轉發到web1 192.168.52.136

同理也可以來回關閉master 和backup做驗證測試

若有其他問題可以多查下日誌,網上找下資料

查看日誌:#tail -f /var/log/messages

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