1. 程式人生 > >LVS+keepalived 下部署RTSP負載均衡

LVS+keepalived 下部署RTSP負載均衡

lvs rtsp 高可用

一、lvs 虛擬負載均衡服務器總體描述

主要涉及軟件包:ipvsadm 和keepalived(或者heartbeat)

參考下載地址:http://www.keepalived.org/software/keepalived-1.1.15.tar.gz

http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz(linux安裝盤中有)

主機:linux red-had 6.4

主機相關說明:

vip 10.4.127.160 對外暴露ip端口

master 10.4.121.212 控制負載均衡

backup 10.4.120.166 負載均衡備份

rtsp1 10.4.120.165 realserver

rtsp2 10.4.120.163 realserver


註意要求:服務器時間要求同步

命令:

修改時間同步配置文件:vi /etc/ntp.conf 增加server 10.4.121.166 ##10.4.121.166為時間服務器

啟動時間同步服務:service ntpd start

ntpd -p 配置 查看主機對表

時間同步問題:錯誤1.Server dropped: Strata too high

原因:NTP server還沒有和其自身或者它的server同步上。

處理:NTP Server 修改/etc/ntp.conf

server 127.127.1.0
技術分享fudge
127.127.1.0 stratum 8

錯誤2.Server dropped: no data

原因:ntp server的防火墻

處理:service iptables stop

註意:ntpd 只能進行時間微調,如果服務器相差時間過多,需要使用ntpdate 10.4.121.166 調一下,之後啟動服務實時微調

二、maser 上環境準備

1,安裝keepalived

#tar -zxvf keepalived-1.1.15.tar.gz

# cd keepalived-1.1.15

./configure --sysconf=/etc --prefix=/usr/local/keepalived

# make && make install


2,下面設置keepalived以服務方式啟動

設置成為服務並開機啟動:

cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

/etc/rc.d/init.d/keepalived status

chkconfig --add keepalived

chkconfig keepalived on


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

#service keepalived start|stop

3,配置keepalived

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

notification_email {

}

notification_email_from

smtp_server smtp.163.com

smtp_connect_timeout 30

router_id LVS_DEVEL

lvs_id lvs01

}

vrrp_instance VI_1 {

state MASTER

interface eth0

lvs_sync_daemon_interface eth0

virtual_router_id 50 ##主從一致

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

10.4.127.160 ##vip

}

}

virtual_server 10.4.127.160 8042 {

delay_loop 2

lb_algo rr

lb_kind DR

persistence_timeout 50

protocol TCP ####換RTSP 在quicktime下測試失敗,keepalived不能失敗自動剔除切換子例

real_server 10.4.120.165 8042 {

weight 1

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

connect_port 8042

}

}

real_server 10.4.120.163 8042 {

weight 1

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

connect_port 8042

}

}

}


----啟動 keepalived 後


[[email protected] keepalived]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP 10.4.121.212:8042 rr persistent 600

-> 10.4.120.165:8042 Route 1 0 5

-> 10.4.120.163:8042 Route 1 0 0


在2臺rtsp服務器10.4.120.165/10.4.120.163上添加如下腳本

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

#!/bin/bash

SNS_VIP=10.4.127.160

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

賦權:

#chmod 755 /etc/init.d/realserver.sh

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



四、Backup註意

此處只做master, backup類似操作 只需稍作修改就行

問題:

Keepalived_vrrp: bogus VRRP packet received on eth0 !!!

Keepalived_vrrp: VRRP_Instance(VI_1) ignoring received

解決:

修改/etc/keepalived/keepalived.conf 中virtual_route_id的值

比如

virtual_router_id 60 主從方都要改,默認為51 ,重啟keepalived 即可

1.lvs_id改為lvs02

2.state改為BUCKUP

3.priority改為100,只要比MASTER小就可以。

4、主、從的 virtual_router_id 相同


本文出自 “呼吸雨後泥土的味” 博客,轉載請與作者聯系!

LVS+keepalived 下部署RTSP負載均衡