记一次keepalived双主DR模式实验

实验环境 CENTOS 7.5
DIP1 192.168.119.110
DIP2 192.168.119.111
RIP1 192.168.119.120
RIP2 192.168.119.121
VIP1 192.168.119.130
VIP2 192.168.119.131
双主模式需要准备两个VIP

DS上安装 yum install -y keepalived ipvsadm
修改配置文件 vim /etc/keepalived/keepalived.conf
DS1上

! Configuration File for keepalived

global_defs {                                                               #全局定义部分
#notification_email { }                                                 设置报警邮件地址,可设置多个
#notification_email_from [email protected]                 设置 邮件的发送地址
#smtp_server smtp.163.com                                    设置 smtp server 地址
#smtp_connect_timeout 30                                       设置 连接 smtp server的超时时间
#router_id LVS_DEVEL                                             设置 keepalived 服务器的一个标识。发邮件时显示在邮件主题中的信息
#vrrp_skip_check_adv_addr
#vrrp_strict
#vrrp_garp_interval 0
#vrrp_gna_interval 0
        router_id LVS1                                                            #id_唯一标识
}

vrrp_instance VI_1 {                                                   #vrrp 实例部分定义,VI_1自定义名称
        state MASTER                                                   #指定 keepalived 的角色,必须大写 可选值:MASTER|BACKUP
        interface ens33                                                   #网卡设置,lvs需要绑定在网卡上,realserver绑定在回环口。区别:lvs对访问为外,realserver为内不易暴露本机信息
        virtual_router_id 51                                             #虚拟路由标识,是一个数字,同一个vrrp 实例使用唯一的标识,MASTER和BACKUP 的 同一个 vrrp_instance 下 这个标识必须保持一致
        priority 100                                                          #定义优先级,数字越大,优先级越高。
        advert_int 1                                                         #设定 MASTER 与 BACKUP 负载均衡之间同步检查的时间间隔,单位为秒,两个节点设置必须一样
        authentication {                                                   #设置验证类型和密码,两个节点必须一致
                auth_type PASS
                auth_pass 1111
        }
        virtual_ipaddress {                                              #设置虚拟IP地址,可以设置多个虚拟IP地址,每行一个
                192.168.119.130
        }
}

virtual_server 192.168.119.130 80                            #定义RealServer对应的VIP及服务端口,IP和端口之间用空格隔开
        delay_loop 6                                                      #每隔6秒查询realserver状态
        lb_algo rr                                                           #后端调试算法(load balancing algorithm)
        lb_kind DR                                                        #LVS调度类型NAT/DR/TUN
        #persistence_timeout 60                                  同一IP的连接60秒内被分配到同一台realserver
        protocol TCP                                                    #用TCP协议检查realserver状态
        real_server 192.168.119.120 80 {
                weight 1                                                           #权重,最大越高,lvs就越优先访问
                TCP_CHECK {                                               #keepalived的健康检查方式HTTP_GET | SSL_GET | TCP_CHECK | SMTP_CHECK | MISC
                         connect_timeout 10                               #10秒无响应超时
                         retry 3                                                    #重连次数3次
                        delay_before_retry 3                               #重连间隔时间
                        connect_port 80                                      #健康检查realserver的端口
                 }
        }

        real_server 192.168.119.121 80 {
                weight 1                                                           #权重,最大越高,lvs就越优先访问
                TCP_CHECK {                                               #keepalived的健康检查方式HTTP_GET | SSL_GET | TCP_CHECK | SMTP_CHECK | MISC
                        connect_timeout 10                                #10秒无响应超时
                        retry 3                                                     #重连次数3次
                        delay_before_retry 3                               #重连间隔时间
                        connect_port 80                                      #健康检查realserver的端口
                }
        }
}

vrrp_instance VI_2 {                                                        #vrrp 实例部分定义,VI_1自定义名称
        state   BACKUP                                                      #指定 keepalived 的角色,必须大写 可选值:MASTER|BACKUP 分别表示(主|备)
        interface ens33                                                       #网卡设置,绑定vip的子接口,lvs需要绑定在网卡上,realserver绑定在回环口。区别:lvs对访问为外,realserver为内不易暴露本机信息
        virtual_router_id 52                                                 #虚拟路由标识,是一个数字,同一个vrrp 实例使用唯一的标识,MASTER和BACKUP 的 同一个 vrrp_instance 下 这个标识必须保持一致
        priority 90                                                                #定义优先级,数字越大,优先级越高。
        advert_int 1                                                             #设定 MASTER 与 BACKUP 负载均衡之间同步检查的时间间隔,单位为秒,两个节点设置必须一样
        authentication {                                                       #设置验证类型和密码,两个节点必须一致
                auth_type PASS
                auth_pass 1111
        }
        virtual_ipaddress {                                                 #设置虚拟IP地址,可以设置多个虚拟IP地址,每行一个
                192.168.119.131

        }
}

virtual_server 192.168.119.131 80 {                             #定义RealServer对应的VIP及服务端口,IP和端口之间用空格隔开
        delay_loop 6                                                          #每隔6秒查询realserver状态
        lb_algo rr                                                                #后端调试算法(load balancing algorithm)
        lb_kind DR                                                             #LVS调度类型NAT/DR/TUN
        #persistence_timeout 60                                       #同一IP的连接60秒内被分配到同一台realserver
        protocol TCP                                                          #用TCP协议检查realserver状态
        real_server 192.168.119.120 80 {
                weight 1                                                          #权重,最大越高,lvs就越优先访问
                TCP_CHECK {                                              #keepalived的健康检查方式HTTP_GET | SSL_GET | TCP_CHECK | SMTP_CHECK | MISC
                        connect_timeout 10                               #10秒无响应超时
                        retry 3                                                    #重连次数3次
                        delay_before_retry 3                              #重连间隔时间
                        connect_port 80                                     #健康检查realserver的端口
                }
        }
        real_server 192.168.119.121 80 {
                weight 1                                                          #权重,最大越高,lvs就越优先访问
                TCP_CHECK {                                               #keepalived的健康检查方式HTTP_GET | SSL_GET | TCP_CHECK | SMTP_CHECK | MISC
                        connect_timeout 10                                #10秒无响应超时
                        retry 3                                                     #重连次数3次
                        delay_before_retry 3                               #重连间隔时间
                        connect_port 80                                      #健康检查realserver的端口
                }
        }
}

DS2上

! Configuration File for keepalived

global_defs {
        router_id LVS2
}

vrrp_instance VI_1 {
        state BACKUP
        interface ens33
        virtual_router_id 51
        priority 90
        advert_int 1
        authentication {
                auth_type PASS
                auth_pass 1111
        }
        virtual_ipaddress {
                192.168.119.130
        }
}

virtual_server 192.168.119.130 80 {
        delay_loop 6
        lb_algo rr
        lb_kind DR
        #persistence_timeout 60
        protocol TCP
        real_server 192.168.119.120 80 {
                weight 1
                TCP_CHECK {
                        connect_timeout 10
                        retry 3
                        delay_before_retry 3
                        connect_port 80
                }
        }
        real_server 192.168.119.121 80 {
                weight 1
                TCP_CHECK {
                        connect_timeout 10
                        retry 3
                        delay_before_retry 3
                        connect_port 80
                }
        }
}

vrrp_instance VI_2 {
        state MASTER
        interface ens33
        virtual_router_id 52
        priority 100
        advert_int 1
        authentication {
                auth_type PASS
                auth_pass 1111
        }
        virtual_ipaddress {
                192.168.119.131
        }
}

virtual_server 192.168.119.131 80 {
        delay_loop 6
        lb_algo rr
        lb_kind DR
        #persistence_timeout 60
        protocol TCP
        real_server 192.168.119.120 80 {
                weight 1
                TCP_CHECK {
                        connect_timeout 10
                        retry 3
                        delay_before_retry 3
                        connect_port 80
                }
        }
        real_server 192.168.119.121 80 {
                weight 1
                TCP_CHECK {
                        connect_timeout 10
                        retry 3
                        delay_before_retry 3
                        connect_port 80
                }
        }
}

后端RS上的配置
 
限制ARP响应请求
echo net.ipv4.conf.lo.arp_ignore = 1 >> /etc/sysctl.conf
echo net.ipv4.conf.all.arp_ignore = 1 >> /etc/sysctl.conf
限制arp发送请求
echo net.ipv4.conf.lo.arp_announce = 2 >> /etc/sysctl.conf
echo net.ipv4.conf.all.arp_announce = 2 >> /etc/sysctl.conf
sysctl -p
 
回环绑定vip
echo DEVICE=lo:0 >> /etc/sysconfig/network-scripts/ifcfg-lo:0
echo IPADDR=192.168.119.130 >> /etc/sysconfig/network-scripts/ifcfg-lo:0
echo NETMASK=255.255.255.255 >> /etc/sysconfig/network-scripts/ifcfg-lo:0
echo ONBOOT=yes >> /etc/sysconfig/network-scripts/ifcfg-lo:0
echo NAME=lo:0 >> /etc/sysconfig/network-scripts/ifcfg-lo:0
 
echo DEVICE=lo:1 >> /etc/sysconfig/network-scripts/ifcfg-lo:1
echo IPADDR=192.168.119.131 >> /etc/sysconfig/network-scripts/ifcfg-lo:1
echo NETMASK=255.255.255.255 >> /etc/sysconfig/network-scripts/ifcfg-lo:1
echo ONBOOT=yes >> /etc/sysconfig/network-scripts/ifcfg-lo:1
echo NAME=lo:1 >> /etc/sysconfig/network-scripts/ifcfg-lo:1
 
systemctl restart network
 
添加主机路由
chmod +x /etc/rc.d/rc.local(centos7默认没有x权限,重启os后不会执行内容)
echo route add -host 192.168.119.130 dev lo:0 >> /etc/rc.d/rc.local
echo route add -host 192.168.119.131 dev lo:1 >> /etc/rc.d/rc.local
 
安装nginx
yum -y install gcc gcc-c++
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel
 
wget http://tengine.taobao.org/download/tengine-2.1.2.tar.gz
 
tar -zxvf tengine-2.1.2.tar.gz

cd tengine-2.1.2
 
groupadd -r -g 1000 nginx
useradd -r -g nginx -u 1000 -s /bin/false -M nginx
 
./configure \
--prefix=/usr/local/nginx \
--sbin-path=/usr/local/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/data/weblogs/nginx/error/error.log \
--http-log-path=/data/weblogs/nginx/access/access.log \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--user=nginx \
--group=nginx
 
chown -R nginx: /etc/nginx/
chown -R nginx: /usr/local/nginx
chown -R nginx: /data/weblogs/nginx
chmod u+s /usr/local/sbin/nginx
 
RS1上 echo web1 > /usr/local/nginx/html/index.html
RS2上 echo web2 > /usr/local/nginx/html/index.html
 
 
防火墙设置
关闭selinux setenforce 0
vim /etc/selinux/config -->> SELINUX=disabled
开启80端口
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload
 
注意事项 DS上添加vrrp协议,否则会出现vip漂移
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.119.0/24" destination address="224.0.0.18" protocol value="vrrp" accept"

原文地址:http://blog.51cto.com/13707911/2132397

时间: 2024-10-13 18:19:46

记一次keepalived双主DR模式实验的相关文章

双网卡实现双主备模式

双网卡实现双主备模式 实验准备 2个网卡(改为桥接模式) 1.该网卡名称 ? 修改网可激活 ? grub2-mkconfig -o /etc/grub2.cfg ? 重启电脑之后查看,可以看到网络中的接口给成为eth接口 ip a ? 2.创建bond ? nmcli connection add type bond ifname bond0 con-name bond0 mode active-backup ip4 172.20.12.20/16 gw4 172.20.0.1 ? 查看是否成功

keepalived双主模式实现nginx高可用及LNAMMP架构

keepalived双主模式实现nginx高可用及LNAMMP架构 一.利用keepalived实现nginx调度器高可用: 二.构建LNAMMP架构: 1) Nginx既是前端调度器,又是缓存服务器: 2) 将php的session缓存于memcached中: 3) 在Apache和php上部署Discuz论坛程序: 4) 使用https连接,即使用户使用的是http协议也可以以https协议进行访问: ---------------------------------------------

keepalived双主互备和自定义日志

自定义日志: keepalived的日志默认存储在/var/log/messages 有时我们会有需要将keepalived日志拿出来单独分析,那么这就需要我做自己去定义 /etc/sysconfig/keepalived #编辑keepalived的环境配置文件 KEEPALIVED_OPTIONS="-D -d -S 0" #修改内容 # --dump-conf -d  导出配置数据 # --log-detail -D  详细日志信息 # --log-facility -S  设置

MySQL keepalived 双主.md

MySQL keepalived 双主搭建 环境说明 系统 IP 主机名 mysql keepalived VIP CentOS 6.8 192.168.197.61 C6-node1 5.6.36 1.2.13 192.168.197.88 CentOS 6.8 192.168.197.62 C6-node2 5.6.36 1.2.13 192.168.197.88 安装MySQL双主 C6-node1 MySQL的安装及初始化这里不做详细介绍,下面贴出node1的my.cnf的配置文件: [

[转] Haproxy、Keepalived双主高可用负载均衡

http://blog.chinaunix.net/uid-25266990-id-3989321.html 在测试了Nginx+Keepalived的负载均衡后,也对Haproxy+Keepalived双主模式做了测试,双主的模式充分利用了服务器资源,这样不会导致服务器浪费. 这里举例说明: 默认情况下,第一台负载均衡器主要分发www.zhirs.com的请求,第二台负载均衡器主要分发img.zhirs.com的请求. 任意一台宕机都不会影响网站分发. 实验环境 VIP1=192.168.13

Mysql5.7.22+Keepalived双主互备高可用集群

DB1:192.168.254.128DB2:192.168.254.129配置前进行校时操作#安装ntpdate工具yum install ntpdate -y#使用ntpdate校时(后面的是ntp服务器)ntpdate pool.ntp.org 配置mysql双主备 安装数据库链接(在主页数据库里面可以看到)http://blog.51cto.com/10158955/1926574 DB1修改配置文件(需重启)vi /etc/my.cnf#在[mysqld]添加server-id=166

Mysql+Keepalived双主热备高可用操作步骤详细解析

mysql+keepalived双主热备高可用的介绍: 我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短.MySQL双主复制,即互为Master-Slave(只有一个Master提供写操作),可以实现数据库服务器的热备,但是一个Master宕机后不能实现动态切换.使用Keepalived,可以通过虚拟IP,实现双主对外的统一接口以及自动检查.失败切换机制,从而实现MySQL数据库的

haproxy+keepalived双主模型及动静分离的实现

实验目标: 1.haproxy统计页面的输出机制: 2.haproxy动静分离机制: 3.基于keepalived的高可用实现: 环境: vm8虚拟机 操作系统: centos 6.4 内核版本: 2.6.32-358.el6.x86_64 注: (1) 每个haproxy各有两块网卡,外网网卡选择Bridge,内网网卡选择Vmnet2; (2) 内部两台web服务器的网卡都是选择Vmnet2; 一.准备工作: 1.各节点IP地址相关设置 node1:  ifconfig eth1 192.16

Nginx + Keepalived(主备模式)实现负载均衡高可用浅析

概述 目前关于负载均衡和高可用的架构方案能找到相当多且详尽的资料,此篇是自己学习相关内容的一个总结,防止将来遗忘再次重新查找资料,也避免踩相同的坑. 此次配置的负载均衡与高可用架构:Nginx + Keepalived(主备模式),Nginx 使用反向代理实现七层负载均衡. 众所周知,Nginx 是一款自由的.开源的.高性能HTTP服务器和反向代理服务器,也是一个IMAP.POP3.SMTP代理服务器. 也就是说Nginx本身就可以托管网站(类似于Tomcat一样),进行HTTP服务处理,也可以