负载均衡高可用集群方案(lvs+keepalived)

搭建环境:

以下都是在在vm下的centOS-6.5系统:

负载均衡主机:192.168.48.130

负载均衡备机:192.168.48.133

真实服务器1:192.168.48.131

真实服务器2:192.168.48.132

 

实现功能:

1,转发(访问vip,能转发到真实服务器。vip:虚拟ip,访问时是通过vip进行访问)

2,故障移除(服务器故障后,能不转发到故障机器)

3,恢复添加(服务器故障排除后,能自动添加进)

4,备接主(主机故障,备机能接收管主机工作)

 

下面,撸起袖子干。。。(以下操作默认使用root登录,关闭系统防火墙

一,搭建负载均衡主机。

1,先安装keepalived,将keepalived-1.2.7-3.el6.x86_64.rpm 包放置根目录下,然后运行以下命令

rpm -ivh keepalived-1.2.7-3.el6.x86_64.rpm  

2,修改keepalived.conf文件。

先清除,执行以下命令。

> /etc/keepalived/keepalived.conf

接着,编辑,执行

vim /etc/keepalived/keepalived.conf

输入以下内容

#全局定义块
global_defs {
    # 邮件通知配置
   # notification_email {
    #    email1
    #    email2
  #  }
    #notification_email_from email
   # smtp_server host
    #smtp_connect_timeout num

   #lvs_id string
    router_id LVS_DEVEL ##DEVEL  BACKUP 标识本节点的字条串,通常为hostname
}

#VRRP 实例定义块
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.48.118
    }
}

#虚拟服务器定义块
virtual_server 192.168.48.118 80 { 
    delay_loop 6
    lb_algo wrr 
    lb_kind DR
    nat_mask 255.255.255.0
    persistence_timeout 0
    protocol TCP
    real_server 192.168.48.131 80 { 
        weight 3
        TCP_CHECK { 
	    nb_get_retry 3
	    delay_before_retry 3
            connect_port 80
            connect_timeout 10
        }
    }

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

保存退出,按esc,输入:wq 回车

最后开启,执行以下命令

service keepalived start

执行以下命令查看是否成功:(若是多一个虚拟网址《192.168.48.118》则成功)

ip a

二,搭建真实服务器1(192.168.48.132)

配置虚拟IP启动脚本

vim /etc/init.d/realserver.sh 

输入以下内容:

#vi /usr/local/sbin/realserver.sh
        #!/bin/bash
        # description: Config realserver lo and apply noarp 
                
        SNS_VIP=192.168.48.118
         
        . /etc/rc.d/init.d/functions
         
        case "$1" in
        start)
               ifconfig lo:0 $SNS_VIP broadcast $SNS_VIP  netmask 255.255.255.255 up               
               echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
               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
               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

保存退出。

然后启动服务器(可以安装tomcat),本人使用的是centOS自带的http服务器,因此直接启动就行,

执行以下命令启动

service httpd start

访问192.168.48.132,若成功,则如下

为了区分第二台服务器,修改主页内容。

vim  /var/www/html/index.html


内容为: it's 192.168.48.132.....

保存退出。

刷新页面,则如下图:

启动刚才修改的虚拟IP的脚本,执行以下命令,出现下图标记网卡接口

sh /etc/init.d/realserver.sh start  

这时查看网卡接口信息:会多出如下图标记的虚拟接口

这时通过访问 192.168.48.118,若能转发到192.168.48.132上,则成功,如下图

三,重复以上步骤,再搭建一台负载均衡机与一台真实服务器

①参照一(步骤一样),搭建负载均衡备机(192.168.48.133),不同的是keepalived.conf内容(以下图标记)

②参照二(步骤一样),搭建真实服务器2(192.168.48.131)。

到这,环境已经搭建完毕。

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

 实现功能:

①访问vip 192.168.48.118,能转发到真实服务器1(192.168.48.132)或真实服务器2(192.168.48.131)上,如下图:

②手动停止服务器2(192.168.48.131),再访问vip 192.168.48.118,只会转发到真实服务器1(192.168.48.132)上,如下图:

③再次启动服务器2(192.168.48.131),又能转发到此机器上。图略

④手动停止负载均衡主机(192.168.48.130),如下图:

查看负载均衡备机(192.168.48.130)网卡接口情况:

访问vip,依然能进行转发。

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

done.

 

转载于:https://my.oschina.net/WWWW23223/blog/841740

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值