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
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