记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。
本文简单记录下Linux环境下lvs-dr模式(基于请求包mac地址欺骗)负载均衡简单配置,揭开这个神秘东西的面纱,让你10钟搞定配置lvs。
环境配置:    三台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配置文件:

  1. global_defs {
  2. router_id LVSTEST #负载均衡器标识,同一网段内,可以相同
  3. }
  4.  
  5. vrrp_instance LVSTEST {
  6. state MASTER #主调度器
  7. interface eth0 #实例绑定的网卡
  8. #lvs_sync_daemon_inteface eth0 #主备间的监控接口
  9. virtual_router_id 61 #vrrp唯一ID,主备id一致
  10. priority 100 #优先级
  11. advert_int 10 #主备间同步检查/秒
  12. authentication {
  13. auth_type PASS
  14. auth_pass 1111
  15. }
  16. virtual_ipaddress {
  17. 192.168.1.110 #vip,可以多个ip,每行一个
  18. }
  19. }
  20. virtual_server 192.168.1.110 80 { #定义一个虚拟服务器
  21. delay_loop 6 #健康检测间隔/秒
  22. lb_algo wlc #调度算法
  23. lb_kind DR #模式
  24. persistence_timeout 30 #回话保持时间
  25. protocol TCP #转发协议
  26. #多个real_server重复本节点即可
  27. real_server 192.168.1.9 80 { #定义一台真实服务器
  28. weight 3 #权重
  29. TCP_CHECK { #通过tcpcheck判断真实服务器状态
  30. connect_timeout 10 #连接超时
  31. nb_get_retry 3 #重试次数
  32. delay_before_retry 3 #重试间隔
  33. connect_port 80 #检测端口
  34. }
  35. }
  36. real_server 192.168.1.10 80 {
  37. weight 3
  38. TCP_CHECK {
  39. connect_timeout 10
  40. nb_get_retry 3
  41. delay_before_retry 3
  42. connect_port 80
  43. }
  44. }
  45. }

配置完以后启动keepalived:
service keepalived start

启动以后ipvsadm  -L 可以查看vip以及rip绑定情况。如果和keepalived配置一致,那么设置正常。如果不一致或无IP信息加载,则需检查。

2,RIP服务器配置VIP和arp禁止响应
vip就是上边的vip添加网卡的命令,写入rc.loca启动中。

  1. /sbin/ifconfig lo:0 192.168.1.110 broadcast 192.168.1.110 netmask 255.255.255.255 up
  2. /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响应脚本

  1. touch /usr/local/sbin/realserver.sh
  2. chmod 755 /usr/local/sbin/realserver.sh
  3. #!/bin/bash
  4. WEB_VIP=192.168.1.110
  5.  
  6. . /etc/rc.d/init.d/functions
  7.  
  8. case "$1" in
  9. start)
  10.       ifconfig lo:0 $WEB_VIP netmask 255.255.255.255 broadcast $WEB_VIP
  11.      #/sbin/route add -host $WEB_VIP dev lo:0这行有问题,需要注释
  12.       echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
  13.       echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
  14.       echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
  15.       echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
  16.       sysctl -p >/dev/null 2>&1
  17.       echo "RealServer Start OK"
  18.  
  19.       ;;
  20. stop)
  21.       ifconfig lo:0 down
  22.       #route del $WEB_VIP >/dev/null 2>&1 这行有问题需要注释
  23.       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
  24.       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
  25.       echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
  26.       echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
  27.       echo "RealServer Stoped"
  28.       ;;
  29. *)
  30.       echo "Usage: $0 {start|stop}"
  31.       exit 1
  32. esac
  33. exit 0

好了,域名host定向到vip,安装一个dz论坛测试看下效果。已经OK。

1
查看调度器上的链接情况:
1
中间可能有个别朋友遇到一些报错,这里简单记录下我之前遇到的报错解决思路:
配置完以后不能访问问题:定向到RIP不可以访问,说明RIP本身设置的有问题。如果rip可以访问,那么是vip或lvs调度器配置有问题。

拓展部分:
如果需要进行nfs系统配置,请参考《Linux下网络文件系统NFS的配置实现数据共享
如果要进行mysql主从配置,请参考《mysql数据库如何设置互为主从

 

补充LVS添加url检测防止假死:

  1. real_server 192.168.1.120 80 {
  2. weight 50
  3. HTTP_GET {
  4. url {
  5. path /ok.php
  6. status_code 200
  7. }
  8. connect_timeout 10
  9. nb_get_retry 3
  10. delay_before_retry 3
  11. }
  12. }


转载请标明出处【Linux(centos 6.X)环境下LVS-DR模式高可用负载均衡集群系统快速配置】。

《www.micoder.cc》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论