CentOS release 6.8 x64 (Final)2.6.32-642.4.2.el6.x86_64 安装keepalived-1.3.5+lvs
============
一、环境安装:
============
1.依赖安装
1
2
3
4
|
yum
install
-y openssl-devel libnl3-devel ipset-devel iptables-devel libnfnetlink-devel popt*
增加软连接
ln
-s
/usr/src/kernels/
`
uname
-r`
/usr/src/linux
|
2.5台机器IP设置
LVS1: 172.16.0.100
LVS2: 172.16.0.101
VIP: 172.16.0.150
WEB: 172.16.0.102
WEB2:172.16.0.103
web3:172.16.0.104(windows客户端IIS)
3.关闭selinux
修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器。
4.关闭iptables,如果不关的话,需更具情况增加开放端口。
1
2
3
|
#iptables -I INPUT -p tcp --dport 80 -j ACCEPT
#iptables -I INPUT -p icmp -j ACCEPT
#service iptables save
|
二、安装步骤(在LVS1.LVS2上安装):
============
1)安装lvs管理工具
1
2
3
4
5
6
|
1.
tar
zxvf ipvsadm-1.26.
tar
.gz
2.
cd
ipvsadm-1.26
3.
'make'
4.
'make install'
5.
#ipvsadm
6.lsmod |
grep
ip_vs
|
2)安装keepalived软件
1
2
3
4
5
6
7
|
1.
tar
zxvf keepalived-1.3.5.
tar
.gz
2.
cd
ikeepalived-1.3.5
3. .
/configure
--prefix=
/usr/local/keepalived
--with-init=SYSV
#注:(upstart|systemd|SYSV|SUSE|openrc)
#根据系统选择对应的启动方式
4.
'make'
5.
'make install'
.
|
6.配置keepalived文件的路径
1
2
3
4
5
|
cp
/usr/local/keepalived/etc/rc
.d
/init
.d
/keepalived
/etc/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/
|
7.配置文件(vim /etc/keepalived/keepalived.conf)
#这里是全局定义部分
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
global_defs {
notification_email {
root@
local
#设置报警邮件单个或多个地址
}
notification_email_from server@
local
#邮件的发送地址
smtp_server 127.0.0.1
#smtp 地址
smtp_connect_timeout 30
#连接smtp服务器超时的实际
router_id LVS_ONE
#路由ID两台机器不能相同。LVS2更改为不同
vrrp_skip_check_adv_addr
# vrrp_strict #严格执行VRRP协议规范,此模式不支持节点单播.
#且重启keepalived服务,会自动启动iptables,原计划打算关闭iptables,
#但测试发现,多次(通过命令service iptables stop且chkconfig iptables off,)
#将iptables关闭后,但启动或重启keepalived服务后,自动又启动起来iptables,
#且自加了一条把VIP地址DROP掉的规则。导致VIP查不到,ping不通.默认安装时自带配置
#含有此选项。所以建议禁用此选项。
vrrp_garp_interval 0
vrrp_gna_interval 0
}
#vrrp 实例定义部分
vrrp_instance VI_1 {
state MASTER
#keepalived 的角色 MASTER 表示主服务器。LVS2更改为:BACKUP
interface eth0
#指定监测网卡
virtual_router_id 51
#虚拟路由标示,相同实例,需相同标示。
priority 150
#优先级 数字越大 优先级越高 MASTER的优先级高于BACKUP优先级(如master 150,backup 100)
advert_int 1
#设定主备之间检查时间 单位s
authentication {
#设定验证类型和密码
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
#设定虚拟IP地址 可以设置多个 每行一个
172.16.0.150
/24
brd 172.16.0.255 dev eth0 label eth0:0
}
}
#虚拟服务器部分
virtual_server 172.16.0.150 80 {
delay_loop 6
#设定运行情况检查时间 单位s
lb_algo rr
#负载调度算法 rr即轮叫算法
lb_kind DR
#设置LVS负载机制 NAT TUN DR 三种模式可选
persistence_timeout 0
#会话时间
#会话保持在某个服务节点
#用户在动态页面50s内没有任何动作,那么后面就会被分发到其他节点
#用户一直动作,不受50s限制
protocol TCP
#使用协议
#以下为real_server部分
real_server 172.16.0.102 80 {
weight 1
#服务节点权值,数字越大,权值越高
#权值的大小可以为不同性能的服务器分配不同的负载
#这样才能有效合理的利用服务器资源
TCP_CHECK {
#状态检查部分
connect_timeout 3
#3s无响应超时
nb_get_retry 3
#重试次数
delay_before_retry 3
#重试间隔
connect_port 80
#连接端口
}
}
real_server 172.16.0.103 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 172.16.0.104 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
|
三、客户端设置(web1,web2配置)
1.增加启动关闭脚本,并chmod执行权限
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
#!/bin/bash
#
# Script to start LVS DR real server.
# description: LVS DR real server
#
.
/etc/rc
.d
/init
.d
/functions
VIP=172.16.0.150
#修改相应的VIP
host=`
/bin/hostname
`
case
"$1"
in
start)
# 启动 LVS-DR 模式,real server on this machine. 关闭ARP冲突检测。
/sbin/ifconfig
lo down
/sbin/ifconfig
lo up
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
/sbin/ifconfig
lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route
add -host $VIP dev lo:0
;;
stop)
#停止LVS-DR real server loopback device(s).
/sbin/ifconfig
lo:0 down
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
;;
status)
# Status of LVS-DR real server.
islothere=`
/sbin/ifconfig
lo:0 |
grep
$VIP`
isrothere=`
netstat
-rn |
grep
"lo:0"
|
grep
$VIP`
if
[ !
"$islothere"
-o !
"isrothere"
];
then
# Either the route or the lo:0 device
# not found.
echo
"LVS-DR real server Stopped!"
else
echo
"LVS-DR real server Running..."
fi
;;
*)
# Invalid entry.
echo
"$0: Usage: $0 {start|status|stop}"
exit
1
;;
esac
|
2.增加web http服务,使用80端口可以打开网站。
3.测试服务器相互之间是否可以PING通。
4.windows客户端增加VIP事项(web3机器):
win2003地址设置方法:控制面板->添加硬件->添加新的硬件->手动安装硬件-》网络适配器
重命名为VIP,增加IP地址172.16.0.104,掩码255.255.255.0
打开regedit,编辑:subnetMask为255.255.255.255
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
Win2008地址设置方法:控制面板-硬件和打印机->新增硬件
找到新增的环回连接,重命名为VIP, 右键VIP连接属性,开始设置TCP/IP
172.16.0.104 255.255.255.255.255 保存
运行CMD执行:
1
2
3
4
|
netsh interface ipv4
set
interface
"VIP"
weakhostreceive=enabled
netsh interface ipv4
set
interface
"VIP"
weakhostsend=enabled
netsh interface ipv4
set
interface
"LAN"
weakhostreceive=enabled
netsh interface ipv4
set
interface
"LAN"
weakhostsend=enabled
|
四、测试检查keepalived+lvs问题
1、 查看系统日志 /var/log/messages
2、 检查负载均衡器的网络连通状况(ping命令或arping)。
3、 检查 keepalived 的运行情况。ps -aux | grep keepalived查看是否进程启动。lsmod | grep ip_vs,检查ipvs 模块是否被加载到系统的内核,vip 是否被绑定到网络接口,ipvsadm 是否有输出。
4、 检查 keepalived 的配置文件书写是否正确。
5、 检查负载均衡器是否启用防火墙规则。
6、 realserver的web是否正常