1. 程式人生 > >linux LVS (keepalived+ipvsadm)負載均衡搭建

linux LVS (keepalived+ipvsadm)負載均衡搭建

ipsvadm 配置
一:安裝配置 LVS+DR+Keepalived
client 訪問的地址 VIP 192.168.133.100
       負載伺服器master真實IP        192.168.133.128
       負載伺服器backup真實IP    192.168.133.150
       負載伺服器虛擬IP              192.168.133.100
       後端WEB伺服器IP                 192.168.133.128
       後端WEB伺服器IP                 192.168.133.150
系統:Redhat 5.4 x86 核心:2.6.18-164.el5
1.下載所需要的軟體:ipvsadm keepalived
wget

http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz    我這裡是直接安裝的RHEL4.0自帶的ipvsadm-1.24-6.i386.rpm
wget http://www.keepalived.org/software/keepalived-1.1.18.tar.gz
2.安裝ipvsadm(負載均衡器都要配置master和backup)
  從Linux核心版本2.6起,ip_vs code已經被整合進了核心中,因此,只要在編譯核心的時候選擇了ipvs的功能,您的Linux即能支援LVS。Linux 2.4.23以後的核心版本也整合了ip_vs code,但如   果是更舊的核心版本,您得自己手動將ip_vs code整合進核心原碼中,並重新編譯核心方可使用lvs。
   我使用的RHEL4.0  這個版本支援ipvsadm,所以無需更改核心配置  rpm -ivh ipvsadm-1.24-6.i386.rpm
   然後使用ipvsadm -v
   ipvsadm v1.24 2005/12/10 (compiled with popt and IPVS v1.2.1)
   則Ipvsadm安裝成功                                                         
3.安裝keepalived負載均衡器都要配置master和backup)  以下建議完全參照,否則會有一些問題
tar    zxvf keepalived-1.1.18tar.gz
cd keepalived-1.1.18
./configure --prefix=/usr/local/keepalived
make
make install
 cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
 cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
 mkdir /etc/keepalived
 cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
 cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
啟動keepalived
service keepalived start|stop|restart

4.配置master和backup
A.開啟ip_forward 轉發功能:
echo 1 >/proc/sys/net/ipv4/ip_forward   預設是0,關閉ip轉發;這裡需要開啟,所以設定值為1
B.配置keepalived.conf 配置檔案 (backup 192.168.133.150)
! Configuration File for keepalived

vrrp_instance VI_1 {         #配置負載均衡器的 主和備 ,並做相關設定
    state BACKUP             #備份伺服器上將MASTER改為BACKUP
    interface eth0           #HA監測網路介面
    virtual_router_id 51     #主、備機的virtual_router_id必須相同
    priority 100             #主、備機取不同的優先順序,主機值較大,備份機值較小
    advert_int 1             #VRRP Multicast廣播週期秒數
    authentication {
        auth_type PASS       #VRRP認證方式
        auth_pass 1111       #VRRP口令字
    }
    virtual_ipaddress {
        192.168.133.100      #(如果有多個VIP,繼續換行填寫.)
       
    }
}

virtual_server 192.168.133.100 80 {      VIP設定
    delay_loop 2                         #每隔2秒查詢realserver狀態
    lb_algo rr                           #lvs 演算法
    lb_kind DR                           #Direct Route
    nat_mask 255.255.255.0              
    persistence_timeout 50               #同一IP的連線60秒內被分配到同一臺realserver
    protocol TCP                         #用TCP協議檢查realserver狀態

    real_server 192.168.133.128 80 {     真實主機1配置
        weight 100                       #設定後臺主機的權重
        TCP_CHECK {                      #TCP協議檢查
            connect_timeout 3            #
            nb_get_retry 3               #
            delay_before_retry 3         #
        }
    }
    real_server 192.168.133.150 80  {    真實主機2配置
        weight 1                         #設定後臺主機的權重
        TCP_CHECK {                      #TCP協議檢查
            connect_timeout 3            #
            nb_get_retry 3               #
            delay_before_retry 3         #
        }
    }
}
配置keepalived.conf 配置檔案 (master 192.168.133.128)
! Configuration File for keepalived
global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.133.128
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.133.100
    }
}

virtual_server 192.168.133.100 80 {
    delay_loop 2
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.255.0
    persistence_timeout 50
    protocol TCP

    real_server 192.168.133.128 80 {
        weight 100
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 192.168.133.150 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

5.配置 VIP:   master 配置一下就可以
vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.133.100
NETMASK=255.255.255.255
ONBOOT=yes
NAME=loopback
重啟網絡卡,啟動keepalived 顯示如下成功!
   service network restart
   service keepalived restart