四台機器環境:
IP位址 lvs版本 keepalived版本 系統版本 用途
192.168.15.67 1.2.4 1.1.15 redhat4.8(64位) MASTER
192.168.15.91 1.2.4 1.1.15 redhat4.8(64位) BACKUP
192.168.15.93 無需安裝 無需安裝 redhat4.8(64位) Realserver
192.168.15.94 無需安裝 無需安裝 redhat4.8(64位) Realserver
192.168.15.120 VIP
拓撲圖:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiInBnauIzN0cTOwETZyQ2Y5kDO3MDN0AjY2gTY0QzY1EDOhFjYfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.jpg)
1、lvs軟體ipvsadm下載下傳安裝(主機和備機上面都必須安裝)
tar zxvf ipvsadm-1.24.tar.gz
ln -s /usr/src/kernels/2.6.9-89.EL-smp-x86_64 /usr/src/linux //注釋:這一步針對自己的系統做,否則一會安裝ipvsadm會報錯。
cd ipvsadm-1.24
make
make install
2、keepalived下載下傳安裝(主機和備機上面都必須安裝)
tar zxvf keepalived-1.1.15.tar.gz
cd keepalived-1.1.15
//注釋:如果系統rhel版本低于5.0以下安裝報錯,這裡要修改系統配置
//vi /usr/src/linux/include/linux/types.h 将下面2行紅色字型用/* */注釋掉,如下圖
/*
typedef __u16 __bitwise __sum16;
typedef __u32 __bitwise __wsum;
*/
./configure
3、将keepalived做成服務啟動(主機和備機上面都必須安裝)
cp /usr/local/etc/rc.d/init.d/keepalived /etc/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/ 注釋:拷貝可執行檔案
service keepalived start 注釋:測試服務啟動與關閉
service keepalived stop
4、主機上配置keeplived(配置前備份好keepalived.conf檔案然後再清空即可)
cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
echo “” > /etc/keepalived/keepalived.conf
增加如下内容:
! Configuration File for keepalived
global_defs {
notification_email {
}
notification_email_from [email protected]
smtp_server 127.0.0.1
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER 狀态是MASTER
interface eth0 監聽網卡切換
virtual_router_id 51
priority 100 優先級100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
virtual_ipaddress {
192.168.15.120 虛拟IP位址,即VIP
virtual_server 192.168.15.120 80{
delay_loop 6
lb_algo wlc
lb_kind DR DR模式
persistence_timeout 1
protocol TCP
real_server 192.168.15.94 80{
weight 1 權重,權重越高處理的請求越多
TCP_CHECK {
connect_timeout 1
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
real_server 192.168.15.93 80{
weight 1
virtual_server 192.168.15.120 1099{
lb_kind DR
real_server 192.168.15.94 1099{
connect_port 1099
real_server 192.168.15.93 1099{
5、備機上配置keeplived(配置前備份好keepalived.conf檔案然後再清空即可)
增加如下内容:(隻有兩處和主機上的不一樣,下面已用紅色字型标出)
state BACKUP 注意狀态是BACKUP
interface eth0
priority 99 優先級是99,比主機低
192.168.15.120
connect_timeout 1
6、兩台realserver上啟動腳本,腳本内容如下:
#!/bin/bash
VIP=192.168.15.120
. /etc/rc.d/init.d/functions
case "$1" in
start)
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
ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev lo:0
sysctl -p > /dev/null 2>&1
echo "realserver start OK"
;;
stop)
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
ifconfig lo:0 down
/sbin/route del $VIP > /dev/null 2>&1
echo "realserver stoped"
*)
echo "Usage:$0 {start|stop}"
exit 1
esac
exit 0
7、測試工作:
1)啟動主機和備機的keepalived服務,ip a确認是否有vip位址?
2)輸入ipvsadm -Ln檢視是否有如下内容輸出?
ipvsadm -Ln
IP Virtual Server version 1.2.0 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.15.120:80 wlc persistent 1
-> 192.168.15.94:80 Route 1 122 4
-> 192.168.15.93:80 Route 1 124 6
TCP 192.168.15.120:1099 wlc persistent 1
-> 192.168.15.94:1099 Route 1 0 0
-> 192.168.15.93:1099 Route 1 0 0
3)停止主機的keepalived服務,備機上确認是否接管vip位址?
4)備機上輸入ipvsadm -Ln檢視ActiveConn和InActConn對應的值不為0?主機上反而為0了。
5)啟動主機的keepalived服務,确認主機再次接管vip位址繼續服務?
我這裡就不做測試了!!!有問題請留言!