一、环境准备
redhat6.4
下载安装包:
实现LVS/DR最重要的两个东西是ipvs
内核
模块和ipvsadm工具包,现在的系统已经包含ip_vs模块
1.检查内核模块,看一下ip_vs 是否被加载
# lsmod |grep ip_vs
ip_vs 35009 0
如果没有显示,则说明没有加载,执行命令 modprobe ip_vs 就可以把ip_vs模块加载到内核
#modprobe ip_vs 然后再查看就有了。
1.检查内核模块,看一下ip_vs 是否被加载
# lsmod |grep ip_vs
ip_vs 35009 0
如果没有显示,则说明没有加载,执行命令 modprobe ip_vs 就可以把ip_vs模块加载到内核
#modprobe ip_vs 然后再查看就有了。
2.链接内核,否则会报错
#lsmod |grep ip_vs
#uname -r
#ln -s /usr/src/kernels/2.6.32-358.el6.x86_64/ /usr/src/linux
ln -s /usr/src/kernels/2.6.32-696.1.1.el6.x86_64/ /usr/src/linux
3.安装依赖
环境准备:
yum -y install kernel-devel gcc openssl popt popt-devel libnl libnl-devel openssl openssl-devel
二、 安装
1.安装ipvsadmin
tar xf
ipvsadm-1.26.tar.gz
cd ipvsadm-1.26
make
make install
安装的时候报错如下,
collect2: ld returned 1 exit status
make: *** [ipvsadm] Error 1
解决方式:
rpm -ivh
popt-static-1.13-7.el6.x86_64.rpm
2. 安装keepalived
cd ..
tar xf keepalived-1.2.13.tar.gz
[
root@LFTt-CA01
soft]# cd keepalived-1.2.13
./configure --prefix=/usr/local/keepalived
make && make install
3.配置keepalived
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
chkconfig --add keepalived
chkconfig keepalived on
mkdir /etc/keepalived
ln -s /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/
ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
4.然后修改配置文件/etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
}
notification_email_from
test01@homelink.com.cn
smtp_server mail.homelink.com.cn
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 {
172.31.1.60
}
}
virtual_server 172.31.1.60 80 {
delay_loop 3
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 172.31.1.61 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 172.31.1.71 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
|
需要注意的配置(主被需要修改)
router_id LVS1 #
设置
lvs
的
id
,在一个网络内应该是唯一的
state MASTER #
设置
lvs
的状态,报错
MASTER
和
BACKUP
两种,必须大写
priority 100 #
设置优先级,数值越大,优先级越高 BACKUP设置50
确认是否为DR,轮寻
lb_algo rr #负载均衡调度算法
lb_kind DR #负载均衡转发规则
5.启动keepalived
/etc/init.d/keepalived start
6.real server
cat /etc/rc.d/init.d/realserver.sh
#!/bin/bash
# description: Config realserver lo and apply noarp
SNS_VIP=192.168.1.115
/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
|
7.查看lvs服务是否正常
ipvsadm -l
#注意查看
#ip addr add
172.31.1.60/32 dev lo
#ip add list
# ip addr del 172.31.1.60/32 dev eth0
如果需要发送邮件需要开启/etc/init.d/postfix
cat /etc/rc.d/init.d/realserver.sh
#!/bin/bash
# description: Config realserver lo and apply noarp
SNS_VIP=192.168.1.115
/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
|
! Configuration File for keepalived
global_defs {
notification_email {
}
notification_email_from
test01@homelink.com.cn
smtp_server mail.homelink.com.cn
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 {
172.31.1.60
}
}
virtual_server 172.31.1.60 80 {
delay_loop 3
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 172.31.1.61 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 172.31.1.71 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
|
需