注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

胡益兵的博客

新的岗位,新的方向,新的使命,stem教育进行中。

 
 
 

日志

 
 

【实验通过】LVS+Keepalived搭建高可用的负载均衡集群系统  

2015-09-12 22:06:22|  分类: linux应用 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

拓扑图
【实验通过】LVS+Keepalived搭建高可用的负载均衡集群系统 - hyibing - 胡益兵的博客


一、安装lvs

在主DS192.168.12.25上通过如下命令检查kernel是否已经支持LVSipvs模块:

[root@localhost ~]#modprobe -l |grep ipvs

/lib/modules/2.6.18-194.11.1.el5/kernel/net/ipv4/ipvs/ip_vs.ko

/lib/modules/2.6.18-194.11.1.el5/kernel/net/ipv4/ipvs/ip_vs_dh.ko

如果有类似上面的输出,表明系统内核已经默认支持了IPVS模块。接着就可以安装IPVS管理软件了。
安装 yum install ipvsadm
可以通过ipvsadm --help查看用法
【实验通过】LVS+Keepalived搭建高可用的负载均衡集群系统 - hyibing - 胡益兵的博客
 
【实验通过】LVS+Keepalived搭建高可用的负载均衡集群系统 - hyibing - 胡益兵的博客
 
可以用行命令或者脚本来做ipvsadm配置,但是如果使用Keepalived,可以由Keepalived来进行配置则不需要。
================================================================================
vi /etc/init.d/lvsds

#!/bin/sh

# description: Start LVS of Director server

VIP=192.168.12.135

RIP1=192.168.12.246

RIP2=192.168.12.237

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

case "$1" in

    start)

        echo " start LVS of Director Server"

# set the Virtual  IP Address and sysctl parameter

 /sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up

       echo "1" >/proc/sys/net/ipv4/ip_forward

#Clear IPVS table

       /sbin/ipvsadm -C

#set LVS

/sbin/ipvsadm -A -t $VIP:80 -s rr -p 600

/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g

/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g

#Run LVS

      /sbin/ipvsadm

       ;;

    stop)

        echo "close LVS Directorserver"

        echo "0" >/proc/sys/net/ipv4/ip_forward

        /sbin/ipvsadm -C

        /sbin/ifconfig eth0:0 down

        ;;

    *)

        echo "Usage: $0 {start|stop}"

        exit 1

esac

chkmod a+x /etc/init.d/lvsds

service lvsds start

========================================================================================


二、安装配置keepalived

yum install keepalived


Keepalived的配置非常简单,仅仅需要一个配置文件即可完成HA cluster和lvs服务节点监控功能,Keepalived的安装已经在上面章节进行了介绍,在通过Keepalived搭建高可用的LVS集群实例中,主、备Director Server都需要安装Keepalived软件,安装成功后,默认的配置文件路径为/etc/keepalived/keepalived.conf。一个完整的keepalived配置文件,有三个部分组成,分别是全局定义部分、vrrp实例定义部分以及虚拟服务器定义部分,下面详细介绍下这个配置文件中每个选项的详细含义和用法:

#全局定义部分

global_defs {

   notification_email {

     dba.gao@gmail.com      #设置报警邮件地址,可以设置多个,每行一个。注意,如果要开启邮件报警,需要开启本机的sendmail服务。

     ixdba@163.com

   }

   notification_email_from Keepalived@localhost      #设置邮件的发送地址。

   smtp_server 192.168.200.1  #设置smtp server地址。

   smtp_connect_timeout 30  #设置连接smtp服务器超时时间。

   router_id  LVS_MASTER    #运行Keepalived服务器的一个标识。发邮件时显示在邮件标题中的信息

}

#vrrp实例定义部分

vrrp_instance VI_1 {

state MASTER  #指定Keepalived的角色,MASTER表示此主机是主用服务器,BACKUP表示是备用服务器。

    interface eth0  #指定HA监测网络的接口。

    virtual_router_id 51  #虚拟路由标识,这个标识是一个数字,并且同一个vrrp实例使用唯一的标识,即同一个vrrp_instance下,MASTERBACKUP必须是一致的。

priority 100  #定义优先级,数字越大,优先级越高,在一个vrrp_instance下,MASTER的优先级必须大于BACKUP的优先级。

    advert_int 1    #设定MASTERBACKUP负载均衡器之间同步检查的时间间隔,单位是秒。

    authentication {  #设定验证类型和密码。

        auth_type PASS  #设置验证类型,主要有PASSAH两种。

        auth_pass 1111  #设置验证密码,在一个vrrp_instance下,MASTERBACKUP必须使用相同的密码才能正常通信。

    }

    virtual_ipaddress {  #设置虚拟IP地址,可以设置多个虚拟IP地址,每行一个。

        192.168.12.135

    }

}

#虚拟服务器定义部分

virtual_server 192.168.12.135 80 {       #设置虚拟服务器,需要指定虚拟ip地址和服务端口,ip与端口之间用空格隔开。

    delay_loop 6  #设置健康检查时间,单位是秒。

    lb_algo rr  #设置负载调度算法,这里设置为rr,即轮询算法。

    lb_kind DR                       #设置LVS实现负载均衡的机制,可以有NATTUNDR三个模式可选。

persistence_timeout 50                  #会话保持时间,单位是秒,这个选项对于动态网页是非常有用的,为集群系统中session共享提供了一个很好的解决方案。有了这个会话保持功能,用户的请求会被一直分发到某个服务节点,直到超过这个会话保持时间。需要注意的是,这个会话保持时间,是最大无响应超时时间,也就是说用户在操作动态页面时,如果在50秒内没有执行任何操作,那么接下来的操作会被分发到另外节点,但是如果一直在操作动态页面,则不受50秒的时间限制。

    protocol TCP  #指定转发协议类型,有tcpudp两种。

   real_server 192.168.12.246 80 {  #配置服务节点1,需要指定real server的真实IP地址和端口,ip与端口之间用空格隔开。

weight 3  #配置服务节点的权值,权值大小用数字表示,数字越大,权值越高,设置权值的大小可以为不同性能的服务器分配不同的负载,可以对性能高的服务器设置较高的权值,而对性能较低的服务器设置相对较低的权值,这样就合理的利用和分配了系统资源。

        TCP_CHECK {  #realserve的状态检测设置部分,单位是秒

            connect_timeout 10     #10秒无响应超时

            nb_get_retry 3  #重试次数

            delay_before_retry 3    #重试间隔

        }

    }

    real_server 192.168.12.237 80 {  #配置服务节点2

        weight 1 

        TCP_CHECK {

            connect_timeout 3   

            nb_get_retry 3           

            delay_before_retry 3

        }

    }

}

 

三、备用DS192.168.12.232配置

与上面的主DS一样,只是Keepalived.conf配置完毕后,将此文件拷贝到备用Director Server对应的路径下,然后做两个简单的修改即可:

?  将“state MASTER”更改为“state BACKUP”

?  priority 100更改为一个较小的值,这里改为“priority 80”


四、RS1和RS2配置

两台服务器配置一样

vi /etc/init.d/lvsrs

#!/bin/bash

VIP=192.168.12.135

/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up

/sbin/route add -host $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

#end

chmod a+x /etc/init.d/lvsrs

此操作是在回环设备上绑定了一个虚拟IP地址,并设定其子网掩码为255.255.255.255,与Director Server上的虚拟IP保持互通,然后禁止了本机的ARP请求。

  由于虚拟ip,也就是上面的VIP地址,是Director Server和所有的Real server共享的,如果有ARP请求VIP地址时,Director Server与所有Real server都做应答的话,就出现问题了,因此,需要禁止Real server响应ARP请求。而lvsrs脚本的作用就是使Real Server不响应arp请求

五、启动lvs+Keepalived

在主、备Director Server上分别启动Keepalived服务,可以执行如操下作:

  [root@DR1 ~]#/etc/init.d/Keepalived  start

  接着在两个Real server上执行如下脚本:

  [root@rs1~]#/etc/init.d/lvsrs start

  至此,Keepalived+lvs高可用的LVS集群系统已经运行起来了。


摘自高俊峰通过LVS+Keepalived搭建高可用的负载均衡集群系统,测试通过。

  评论这张
 
阅读(70)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018