Linux(centos 6.X)环境下LVS-DR模式高可用负载均衡集群系统快速配置
环境配置: 三台centos 6.5
调度器: DIP:192.168.1.11 VIP:192.168.1.110
web服务器: RIP:192.168.1.9 RIP:192.168.1.10
一,前期服务器环境搭建
(1) 配置lamp环境,这里不做演示。
(2)关闭selinux和所有web服务器上的iptables
(3)设置时间同步,保证服务器时间一致(后期nfs或数据同步用到,包括session同步需要)
二,配置LVS
1,调度器安装ipvsadm和keepalived
首先安装依赖包:
yum -y install gcc make openssl-devel openssl net-snmp net-snmp-devel popt popt-devel
安装ipvs和keepalived:
yum install ipvsadm keepalived -y 并设置下:
chkconfig ipvsadm on
chkconfig keepalived on
修改keepalived.conf配置文件:
- global_defs {
- router_id LVSTEST #负载均衡器标识,同一网段内,可以相同
- }
- vrrp_instance LVSTEST {
- state MASTER #主调度器
- interface eth0 #实例绑定的网卡
- #lvs_sync_daemon_inteface eth0 #主备间的监控接口
- virtual_router_id 61 #vrrp唯一ID,主备id一致
- priority 100 #优先级
- advert_int 10 #主备间同步检查/秒
- authentication {
- auth_type PASS
- auth_pass 1111
- }
- virtual_ipaddress {
- 192.168.1.110 #vip,可以多个ip,每行一个
- }
- }
- virtual_server 192.168.1.110 80 { #定义一个虚拟服务器
- delay_loop 6 #健康检测间隔/秒
- lb_algo wlc #调度算法
- lb_kind DR #模式
- persistence_timeout 30 #回话保持时间
- protocol TCP #转发协议
- #多个real_server重复本节点即可
- real_server 192.168.1.9 80 { #定义一台真实服务器
- weight 3 #权重
- TCP_CHECK { #通过tcpcheck判断真实服务器状态
- connect_timeout 10 #连接超时
- nb_get_retry 3 #重试次数
- delay_before_retry 3 #重试间隔
- connect_port 80 #检测端口
- }
- }
- real_server 192.168.1.10 80 {
- weight 3
- TCP_CHECK {
- connect_timeout 10
- nb_get_retry 3
- delay_before_retry 3
- connect_port 80
- }
- }
- }
配置完以后启动keepalived:
service keepalived start
启动以后ipvsadm -L 可以查看vip以及rip绑定情况。如果和keepalived配置一致,那么设置正常。如果不一致或无IP信息加载,则需检查。
2,RIP服务器配置VIP和arp禁止响应
vip就是上边的vip添加网卡的命令,写入rc.loca启动中。
- /sbin/ifconfig lo:0 192.168.1.110 broadcast 192.168.1.110 netmask 255.255.255.255 up
- /sbin/route add -host 192.168.1.110 dev lo:0
arp禁止响应:
vi /etc/rc.local
/usr/local/sbin/realserver.sh stop
/usr/local/sbin/realserver.sh start
保存。
创建禁止arp响应脚本
- touch /usr/local/sbin/realserver.sh
- chmod 755 /usr/local/sbin/realserver.sh
- #!/bin/bash
- WEB_VIP=192.168.1.110
- . /etc/rc.d/init.d/functions
- case "$1" in
- start)
- ifconfig lo:0 $WEB_VIP netmask 255.255.255.255 broadcast $WEB_VIP
- #/sbin/route add -host $WEB_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 $WEB_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
好了,域名host定向到vip,安装一个dz论坛测试看下效果。已经OK。
查看调度器上的链接情况:
中间可能有个别朋友遇到一些报错,这里简单记录下我之前遇到的报错解决思路:
配置完以后不能访问问题:定向到RIP不可以访问,说明RIP本身设置的有问题。如果rip可以访问,那么是vip或lvs调度器配置有问题。
拓展部分:
如果需要进行nfs系统配置,请参考《Linux下网络文件系统NFS的配置实现数据共享》
如果要进行mysql主从配置,请参考《mysql数据库如何设置互为主从》
补充LVS添加url检测防止假死:
- real_server 192.168.1.120 80 {
- weight 50
- HTTP_GET {
- url {
- path /ok.php
- status_code 200
- }
- connect_timeout 10
- nb_get_retry 3
- delay_before_retry 3
- }
- }
目录 返回
首页