`
maosheng
  • 浏览: 560265 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

LVS+Keepalived 实现集群负载均衡

 
阅读更多


IP配置信息:
LVS-DR-Master          192.168.2.166
LVS-DR-BACKUP          192.168.2.167
LVS-DR-VIP             192.168.2.170       
WEB1-Realserver        192.168.2.171
WEB2-Realserver        192.168.2.172
GateWay                192.168.2.253

一.keepalived安装
Keepalived在这里主要用作RealServer的健康状态检查以及LoadBalance MASTER主机和BACKUP主机之间failover的实现。

参考CentOS 6.3 安装 Keepalived
http://maosheng.iteye.com/blog/2238747

参考Keepalived+Nginx 实现双机热备
http://maosheng.iteye.com/blog/2242594


二.配置LVS实现负载均衡

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统

1.LVS-DR,配置LVS脚本实现负载均衡

vi /usr/local/sbin/lvs-dr.sh

#!/bin/bash
# description: start LVS of DirectorServer
#

GW=192.168.2.253

# website director vip.
WEB_VIP=192.168.2.170
WEB_RIP1=192.168.2.171
WEB_RIP2=192.168.2.172

. /etc/rc.d/init.d/functions

logger $0 called with $1

case "$1" in

start)
       # Clear all iptables rules.
       /sbin/iptables -F
       # Reset iptables counters.
       /sbin/iptables -Z
       # Clear all ipvsadm rules/services.
       /sbin/ipvsadm -C

#set lvs vip for dr
       /sbin/ipvsadm --set 30 5 60
       /sbin/ifconfig eth0:0 $WEB_VIP broadcast $WEB_VIP netmask 255.255.255.255 up
       /sbin/route add -host $WEB_VIP dev eth0:0
       /sbin/ipvsadm -A -t $WEB_VIP:80 -s wrr -p 3
       /sbin/ipvsadm -a -t $WEB_VIP:80 -r $WEB_RIP1:80 -g -w 1
       /sbin/ipvsadm -a -t $WEB_VIP:80 -r $WEB_RIP2:80 -g -w 1
       touch /var/lock/subsys/ipvsadm >/dev/null 2>&1

       # set Arp
       /sbin/arping -I eth0 -c 5 -s $WEB_VIP $GW >/dev/null 2>&1
      ;;
stop)
       /sbin/ipvsadm -C
       /sbin/ipvsadm -Z
       ifconfig eth0:0 down
       route del $WEB_VIP  >/dev/null 2>&1
       rm -rf /var/lock/subsys/ipvsadm >/dev/null 2>&1
       /sbin/arping -I eth0 -c 5 -s $WEB_VIP $GW
       echo "ipvsadm stoped"
      ;;

status)

       if [ ! -e /var/lock/subsys/ipvsadm ];then
               echo "ipvsadm is stoped"
               exit 1
       else
               ipvsadm -ln
               echo "..........ipvsadm is OK."
       fi
     ;;

*)
       echo "Usage: $0 {start|stop|status}"
       exit 1
esac

exit 0


2.配置Realserver脚本.

#!/bin/bash

# description: Config realserver lo and apply noarp

WEB_VIP=192.168.2.170

. /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"
      ;;
status)
       # Status of LVS-DR real server.
       islothere=`/sbin/ifconfig lo:0 | grep $WEB_VIP`
       isrothere=`netstat -rn | grep "lo:0" | grep $web_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 Running."
       fi
;;
*)
       # Invalid entry.
       echo "$0: Usage: $0 {start|status|stop}"
       exit 1
;;
esac
exit 0

附上realserver机上的/etc/sysctl.conf:

# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.
# Controls IP packet forwarding
net.ipv4.ip_forward = 1
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0
# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0
# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
或者采用secondary ip address方式配置
# vi /etc/sysctl.conf

添加以下内容如上所示:

net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
#sysctl –p
#ip addr add 61.164.122.8/32 dev lo
#ip add list 查看是否绑定

3. 启动lvs-dr脚本和realserver启本,在DR上可以查看LVS当前状态:

#watch ipvsadm –ln

三.利用Keepalvied实现负载均衡和和高可用性

1.配置在主负载均衡服务器上配置keepalived.conf

#vi /etc/keepalived/keepalived.conf (主调度器)
! Configuration File for keepalived
global_defs {
  notification_email {

acassen@firewall.loc

failover@firewall.loc

sysadmin@firewall.loc
  }
  notification_email_from
Alexandre.Cassen@firewall.loc
  smtp_server 127.0.0.1
  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 {
       192.168.2.170
   }
}
virtual_server 192.168.2.170 80 {
   delay_loop 6
   lb_algo wrr
   lb_kind DR
   persistence_timeout 60
   protocol TCP

   real_server 192.168.2.171 80 {
       weight 3            
       TCP_CHECK {
       connect_timeout 10  
       nb_get_retry 3
       delay_before_retry 3
       connect_port 80
}
   }
   real_server 192.168.2.172 80 {
       weight 3
       TCP_CHECK {
       connect_timeout 10
       nb_get_retry 3
       delay_before_retry 3
       connect_port 80
       }
    }
}

在备用调度器上:

#vi /etc/keepalived/keepalived.conf (备用调度器)
! Configuration File for keepalived
global_defs {
  notification_email {

acassen@firewall.loc

failover@firewall.loc

sysadmin@firewall.loc
  }
  notification_email_from
Alexandre.Cassen@firewall.loc
  smtp_server 127.0.0.1
  smtp_connect_timeout 30
  router_id LVS_DEVEL
}
vrrp_instance VI_1 {
   state BACKUP
   interface eth0
   virtual_router_id 51
   priority 99
   advert_int 1
   authentication {
       auth_type PASS
       auth_pass 1111
   }
   virtual_ipaddress {
       192.168.2.170
   }
}
virtual_server 192.168.2.170 80 {
   delay_loop 6
   lb_algo wrr
   lb_kind DR
   persistence_timeout 60
   protocol TCP

   real_server 192.168.2.171 80 {
       weight 3            
       TCP_CHECK {
       connect_timeout 10  
       nb_get_retry 3
       delay_before_retry 3
       connect_port 80
}
   }
   real_server 192.168.2.172 80 {
       weight 3
       TCP_CHECK {
       connect_timeout 10
       nb_get_retry 3
       delay_before_retry 3
       connect_port 80
       }
    }
}

2. BACKUP服务器同上配置,先安装lvs再按装keepalived,仍后配置/etc/keepalived/keepalived.conf,只需将红色标示的部分改一下即可.

3. vi /etc/rc.local
  #/usr/local/sbin/lvs-dr.sh      将lvs-dr.sh这个脚本注释掉。
  #/usr/local/sbin/lvs-dr.sh stop 停止lvs-dr脚本
  #/etc/init.d/keepalived start  启动keepalived 服务,keepalived就能利用keepalived.conf 配置文件,实现负载均衡和高可用.

4. 查看lvs服务是否正常

#watch ipvsadm –ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddressort Scheduler Flags
-> RemoteAddressort           Forward Weight ActiveConn InActConn
TCP  61.164.122.8:80 wrr persistent 60
-> 61.164.122.10:80            Route   3      0          0
-> 61.164.122.9:80             Route   3      0          0
复制代码
#tail –f /var/log/message  监听日志,查看状态,测试LVS负载均衡及高可用性是否有效。

5.停Master服务器的keepalived服务,查看BAKCUP服务器是否能正常接管服务。








  • 大小: 183.3 KB
分享到:
评论

相关推荐

    LVS+Keepalived高可用负载均衡集群

    随着你的网站业务量的增长你网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如F5又太贵,你们又是创业型互联公司...我们利用LVS+Keepalived基于完整开源软件的架构可以为你提供一个负载均衡及高可用的服务器。

    搭建LVS+KEEPALIVED负载均衡.pdf

    基于LVS(Linux Virtual Server)和KEEPALIVED的负载均衡技术,可以实现高可用性和高性能的服务器集群。下面是搭建LVS+KEEPALIVED负载均衡的详细步骤和知识点: 一、 环境准备 1. 环境要求:LVS+KEEPALIVED需要在...

    利用LVS+Keepalived 实现高性能高可用负载均衡服务器

    【LVS+Keepalived 实现高性能高可用负载均衡服务器】 在互联网行业中,随着网站业务量的不断增长,服务器承受的压力日益增大。为了确保服务的稳定性和可用性,需要采用负载均衡策略。LVS(Linux Virtual Server)和...

    lvs+keepalived+vsftp配置FTP服务器负载均衡

    LVS提供负载均衡,Keepalived确保服务高可用,而VSFTPd是常用的FTP服务器软件。下面我们将详细探讨这三个组件及其配置方法。 1. **LVS(Linux Virtual Server)** LVS是一种开源的负载均衡技术,它通过将网络流量...

    Linux负载均衡--LVS+Keepalived(终极文档).pdf

    在本文档中,我们将介绍如何使用 LVS+Keepalived 实现网站负载均衡。我们的拓扑图如下所示: * LVS(master):eth0:172.24.100.6, eth1:202.168.128.101 * LVS(backup):eth0:172.24.100.7, eth1:202.168.128....

    LVS+Keepalived+NFS集群

    2. 可扩展性:通过LVS实现负载均衡,可以轻松地扩展集群规模,以应对更高的流量需求。 3. 可靠性:NFS提供了分布式文件共享,减少了单点故障的风险,提高了系统的可靠性 LVS+Keepalived+NFS集群是一种高度可用的网络...

    LVS+KeepAlived+Nginx高可用实现方案.pdf

    LVS通过IP负载均衡技术实现虚拟服务器,具有VS/NAT、VS/TUN和VS/DR三种实现方式。 KeepAlived是一个类似于Layer3, 4 & 5交换机制的软件,用于检测服务器的状态,并自动完成服务器的切换和故障恢复。KeepAlived工作...

    第三十三章:Lvs+Keepalived+Nginx+Tomcat高可用集群1

    本文主要讲述了如何构建一个高可用集群项目,使用 LVS、Keepalived、Nginx 和 Tomcat 实现高可用性和负载均衡。该项目的架构中,Keepalived 负责对 LVS 架构中的调度器进行热备份,至少包含两台热备的负载调度器,两...

    Lvs+keepalived+failover搞定服务器负载均衡ppt

    总结PPT中的内容,我们可以期待了解到如何配置和管理LVS集群,包括设置工作模式、配置Keepalived健康检查、定义负载均衡策略(如轮询、权重、最少连接等)、以及实现故障检测与恢复机制。同时,PPT可能还会涵盖实际...

    (带目录版)MySQL LVS+Keepalived+MHA 高可用群集 应用部署操作手册

    - 通过Keepalived,可以实现对LVS集群的监控和维护,确保即使某个节点发生故障,也能快速恢复服务。 - **LVS+Keepalived 结合使用** - 将LVS与Keepalived结合使用,可以构建一个高度可靠、性能强大的高可用性负载...

    lvs+keepalived实现集群和负载均衡

    因公司需要,需要搭建集群+负载均衡的demo,故将本人将自己搭建lvs+keepalived的文档整理出来,需要的人可以下载,内附本人QQ,有什么不明白的或者写的不对的,还请大家联系我,及时指出,主要包括下载,安装,配置...

    4 lvs+keepalived+nginx+tomcat实现高性能负载均衡集群.docx

    【知识点详解】 在构建高性能负载均衡集群时,通常...通过这种架构,可以实现高可用性和负载均衡,有效提高Web服务的稳定性和性能。在实际操作中,还需要考虑监控、日志、安全等多方面因素,以确保整个集群的健壮性。

    lvs+keepalived+nginx+tomcat实现高性能负载均衡集群.rar

    这个文档"lvs+keepalived+nginx+tomcat实现高性能负载均衡集群.docx"将详细解释每个组件的配置细节、集群的架构图以及可能出现的问题及解决方案,帮助你更好地理解和实施这个高性能的负载均衡集群。

    lvs+keepalived+nginx+tomcat+memcached实现服务负载均衡及session共享

    首先,lvs是Linux内核中的一个模块,它提供了四层负载均衡功能,能够将进来的网络请求分发到后端多个服务器上,以实现服务的扩展和故障隔离。lvs的工作模式主要有三种:Direct Routing(DR)、Network Address ...

    LVS+Keepalived搭建高可用的负载均衡集群系统

    linux集群应用实战 通过LVS+Keepalived搭建高可用的负载均衡集群系统 第二讲

    LVS + Keepalived 实现HA

    LVS(Linux Virtual Server)是一种基于Linux内核的负载均衡技术,主要用于构建高性能、高可用性的服务器集群。通过LVS可以将客户端请求分发到后端多台服务器上处理,从而提高系统的并发能力和可靠性。Keepalived则...

Global site tag (gtag.js) - Google Analytics