keepalived-lvs-dr-主主模型实现高可用负载均衡

实验环境:

虚拟机:VMware Workstation 12.1 pro

操作系统:CentOS 7

keepalived-1.2.13-7.el7.x86_64

ipvsadm-1.27-7.el7.x86_64

httpd-2.4.6-40.el7.centos.x86_64

IP规划:

DR-MASTER-DIP:172.18.1.110

VIP:172.18.1.88

DR-BACKUP-DIP:172.18.1.111

VIP:172.18.1.88

RS1:172.18.1.130

RS1-lo:0 :172.18.1.88

RS2:192.168.10.12

RS2-lo:0 :172.18.1.88

实验拓扑图

稍后补...

老规矩,开始前将所有主机的iptables和selinux关闭或者设置允许策略

systemctl stop iptables.service
systemctl disable iptables.service
setenforce 0

vim /etc/selinux/config
    SELINUX=disable

DR中安装keepalived和ipvsadm

yum -y install keepalived ipvsadm

配置DR1-MASTER

! Configuration File for keepalived

global_defs {
   notification_email {
        [email protected]
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DR1
}

! DR1为主,DR2为备
vrrp_instance VI_1 {
    state MASTER
    interface eno16777736
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.18.1.88 dev eno16777736 label eno16777736:0
    }
}

virtual_server 172.18.1.88 80 {
    delay_loop 6
    lb_algo wrr
    lb_kind DR
    nat_mask 255.255.0.0
    persistence_timeout 50
    protocol TCP

    real_server 172.18.1.130 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            }
        }

    real_server 172.18.1.131 80 {
        weight 2
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            }
        }
}
! DR1为备,DR2为主
vrrp_instance VI_2 {
    state BACKUP
    interface eno16777736
    virtual_router_id 51
    priority 98
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.18.1.88 dev eno16777736 label eno16777736:0
    }
}
virtual_server 172.18.1.88 80 {
    delay_loop 6
    lb_algo wrr
    lb_kind DR
    nat_mask 255.255.0.0
    persistence_timeout 50
    protocol TCP

    real_server 172.18.1.130 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            }
        }

    real_server 172.18.1.131 80 {
        weight 2
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            }
        }
}

配置DR2-BACKUP

! Configuration File for keepalived

global_defs {
   notification_email {
        [email protected]
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DR1
}

! DR1为主,DR2为备
vrrp_instance VI_1 {
    state BACKUP
    interface eno16777736
    virtual_router_id 51
    priority 98
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.18.1.88 dev eno16777736 label eno16777736:0
    }
}
virtual_server 172.18.1.88 80 {
    delay_loop 6
    lb_algo wrr
    lb_kind DR
    nat_mask 255.255.0.0
    persistence_timeout 5
    protocol TCP

    real_server 172.18.1.130 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            }
        }

    real_server 172.18.1.131 80 {
        weight 2
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            }
        }
}

! DR1为备,DR2为主
vrrp_instance VI_2 {
    state MASTER
    interface eno16777736
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.18.1.88 dev eno16777736 label eno16777736:0
    }
}
virtual_server 172.18.1.88 80 {
    delay_loop 6
    lb_algo wrr
    lb_kind DR
    nat_mask 255.255.0.0
    persistence_timeout 50
    protocol TCP

    real_server 172.18.1.130 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            }
        }

    real_server 172.18.1.131 80 {
        weight 2
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            }
        }
}

RS1和RS2分别安装nginx服务并提供一个测试页面

yum -y install nginx
...
省略安装过程

分别在/usr/share/nginx/html目录下创建测试页

RS1创建

vim /usr/share/nginx/html/index.html
<h1>RS-1</h1>

RS2创建

vim /usr/share/nginx/html/index.html
<h1>RS-2</h1>

为RS1和RS2的lo:0接口别名配置VIP,并限制报文转发。编写脚本实现了

#!/bin/bash
#
vip=172.18.1.88

case $1 in
start)
	#限制arp的响应和通告
	echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
	echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
	echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
	echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

	#设置接口IP
	ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up

	#添加路由
	route add -host $vip dev lo:0
	;;

stop)

	#不限制arp的响应和通告
	echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
	echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
	echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
	echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce

	#设置接口IP
	ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 down
	;;

*)
	echo "Nothing to do."
	exit 6
	;;

esac

分别在RS1和RS2执行

./rs-lo.sh start

启动DR1和DR2的keepalived服务,并启动RS1和RS2的nginx服务

在另一主机访问

curl 172.18.1.88

时间: 2024-10-22 03:50:53

keepalived-lvs-dr-主主模型实现高可用负载均衡的相关文章

keepalived + haproxy 实现web 双主模型的高可用负载均衡

1.本文的架构图: 阐述各服务器用途: 1.haproxy在本构架中实现的是:负载均衡 2.keepalived实现对haproxy的高可用 3.apache static 实现静态页面的访问 4.aoache dynamic实现动态页面的访问,图中有两个是实现负载均衡的 配置各功能模块: 一.配置haproxy和keepalived 验证: 1.当一台keepalived宕机后,VIP会不会转移到另外一台服务器 2.当一台haproxy服务出故障,VIP会不会转移到另外一台服务器 注意: 那如

keepalived实现WEB服务集群的高可用负载均衡

要求:利用keepalived实现WEB服务集群的高可用负载均衡,即在lvs_dr模型中扮演director的角色,对来自用户的请求按照一定的算法分配至后端服务器中:且keepalived服务器可实现高可用. keepalived是vrrp协议的一种实现,专门为lvs设计,以实现对lvs高可用就集群中的dirctor进行冗余以及对realserver进行健康检测.当一台主机(MASTER)出现问题后,keepalived能够将VIP自动的分配到备用的主机上(BACKUP),从而实现了自身(dir

haproxy + keepalived 实现web 双主模型的高可用负载均衡

参考文章 http://xz159065974.blog.51cto.com/8618592/1405812 http://blog.chinaunix.net/uid-25266990-id-3989321.html http://my.oschina.net/davehe/blog/162560 http://www.osyunwei.com/archives/7512.html http://fighter.blog.51cto.com/1318618/1254815/ Haproxy+K

LVS基础及LVS+Keepalived实现双主高可用负载均衡

LVS基础及LVS+Keepalived实现双主高可用负载均衡 LB集群: (Load  Balancing)即负载均衡集群,其目的是为了提高访问的并发量及提升服务器的性能,其    实现方式分为硬件方式和软件方式. 硬件实现方式: 常用的有 F5公司的BIG-IP系列.A10公司的AX系列.Citrix公司的 NetScaler系列等 软件实现方式: LVS工作于传输层.nginx工作于应用层.haproxy工作于传输层和应用层 本文主要讲解LVS. 一.什么是LVS ? 1. LVS:(Li

Keepalived+LVS(dr)高可用负载均衡集群的实现

一 环境介绍 1.操作系统CentOS Linux release 7.2.1511 (Core) 2.服务keepalived+lvs双主高可用负载均衡集群及LAMP应用keepalived-1.2.13-7.el7.x86_64ipvsadm-1.27-7.el7.x86_64httpd-2.4.6-45.el7.centos.x86_64mariadb-5.5.52-1.el7.x86_64php-5.4.16-42.el7.x86_64 二 原理及拓扑图 1.vrrp协议vrrp(Vir

RHEL 5.4下部署LVS(DR)+keepalived实现高性能高可用负载均衡

原文地址:http://www.cnblogs.com/mchina/archive/2012/05/23/2514728.html 一.简介 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一. 目前有三种IP负载均衡技术(VS/NAT.VS/TUN和VS/DR):十种调度算法(rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq). K

虚拟机 搭建LVS + DR + keepalived 高可用负载均衡

一:环境说明:   LVS-DR-Master:    10.3.0.82   LVS-DR-Backup:    10.3.0.70   VIP:                10.3.0.60   RealServer1:    10.3.0.69   RealServer1:    10.3.0.83   Centos:5.7    二:安装LVS和Keepalvied软件包   1. 下载相关软件包    mkdir /usr/local/src/lvs    cd /usr/loca

Keepalived+Haproxy双主高可用负载均衡web和mysql综合实验

日期及版本:2014.5.4v1.0 架构图 实验目的: 1.Haproxy+Keepalived双主双机高可用模型,keepalived为Haproxy主从提供高可用保证haproxy-master若挂掉haproxy-backup能无缝接管,haproxy为后端Web提供负载均衡,缓解并发压力,实现WEB站点负载均衡+高可用性: 2. Haproxy反代web做动静分离: 3. Haproxy反代mysql 算法leastconn和roundrobin的不同效果: 系统环境: OS:cent

Keepalived+Nginx实现双主高可用负载均衡

Keepalived+Nginx实现双主高可用负载均衡 一.部署Nginx+keepalived高可用有两种配置方案: 1.Nginx+keepalived 主从配置 前端使用两台机器,使用一个VIP,即其中一台为主负责全部请求,一台为备,只用在主出现故障时,才会替代主处理请求,平常处于闲置状态,此方案不够理想.  2.Nginx+keepalived 双主配置 前端使用2台机器,使用两个VIP,互为主备,不考虑其他情况时均衡处理请求,当其中一台机器出现故障时,另一台负责处理对两台机器的请求,此