代码编织梦想

系统:CentOS 7.6
数据库:MySQL 5.7
Keepalived版本:2.0.20

1.配置yum源镜像文件

   以下所需依赖当前系统镜像都有,直接yum安装即可,yum源配置这里不做演示。
   MySQL安装及配置自行安装这里不做演示。

2.安装依赖

[root@MySQL-HA1 opt]# yum install -y gcc gcc-c++ openssl-devel popt-devel kernel-devel

3.安装ipvsadm

[root@MySQL-HA1 opt]# yum -y install ipvsadm	  # 安装ipvsadm命令行工具
[root@MySQL-HA1 opt]# ipvsadm -version	          # 查看ipvsadm版本
ipvsadm v1.27 2008/5/15 (compiled with popt and IPVS v1.2.1)

4.安装Keepalived

[root@MySQL-HA1 opt]# tar -zxvf keepalived*.tar.gz
[root@MySQL-HA1 opt]# mv keepalived-2.0.20 keepalived
[root@MySQL-HA1 opt]# cd !$
[root@MySQL-HA1 keepalived]# ./configure --prefix=/opt/keepalived
[root@MySQL-HA1 keepalived]# make && make install

4.1将 keepalived 配置成系统服务

[root@MySQL-HA1 keepalived]# mkdir -p /etc/keepalived/  
[root@MySQL-HA1 keepalived]# cp -r /opt/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/ 
[root@MySQL-HA1 keepalived]# cp -r /opt/keepalived/sbin/keepalived /usr/sbin/ 
[root@MySQL-HA1 keepalived]# cp /opt/keepalived/keepalived/keepalived.service /etc/systemd/system/
[root@MySQL-HA1 keepalived]# systemctl daemon-reload 

4.2设置 Keepalived 开机自启

[root@MySQL-HA1 keepalived]# systemctl enable keepalived

5.Keepalived配置

5.1 修改 Keepalived 配置

[root@MySQL-HA1 keepalived]# vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
    router_id MySQL_HA1             # 命名主机名(同一个组里唯一)
    script_user root
}

vrrp_instance VI_1 {
    state MASTER                    # 设置服务类型主/从(MASTER/SLAVE/BACKUP)每个组里只有一个主
    interface ens33                 # 指定那块网卡用来监听
    virtual_router_id 66            # 设置组号,如果是一组就是相同的ID号
    
    priority 100                    # 服务器优先级,主服务器优先级高(其他节点向下调整)
    advert_int 1                    # 心跳时间,检测对方存活
    authentication {                # 存活验证密码
        auth_type PASS 
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.100               # 设置集群地址(VIP)
    }
}
# 设置集群地址及端号
# 多个集群可复制当前virtual_server块修改集群及各节点IP及端口,在 virtual_ipaddress 块中添加集群IP即可)。
virtual_server 192.168.1.100 3306 {
    delay_loop 6                    # 健康检查间隔 
    lb_algo wlc                     # 负载均衡使用的算法可自行修改 
    lb_kind NAT                     # NAT 模式的群集 
    protocol TCP                    # 使用的协议
    real_server 192.168.1.12 3306 {            # 管理的节点IP及使用的端口
        notify_down "/opt/keepalived/chekredis.sh" 
        # 在检测到Server down后执行的脚本(当前节点配置,其他节点无需配置);
        weight 1                               # 权重,优先级 在原文件基础上删除修改 
        TCP_CHECK {                            # 状态检查方式
            connect_port 3306	               # 检查的目标端 
            connect_timeout 3		           # 连接超时(秒) 
            retry 3                            # 重试次数 
            delay_before_retry 4	           # 重试间隔(秒)
        }
    }
    real_server 192.168.1.13 3306 {            # 管理的第二个节点IP及使用的端口
    # 多个节点可复制当前real_server块向下粘贴修改节点IP及端口即可(注意!!!不要粘贴到当前virtual_server块以外)。
        weight 1                               # 权重,优先级 在原文件基础上删除修改 
        TCP_CHECK {                            # 状态检查方式
            connect_port 3306	               # 检查的目标端 
            connect_timeout 3		           # 连接超时(秒) 
            retry 3                            # 重试次数 
            delay_before_retry 4               # 重试间隔(秒)
        }
    }
}
* 多余删除

5.1 配置shell脚本

[root@MySQL-HA1 keepalived]# vi /opt/keepalived/chekredis.sh
# 位置路径需与 keepalived.conf 中 notify_down 后配置一致,shell内容根据实际情况修改。

#! /bin/bash
sleep 5
num=$(netstat -ntpl | grep 3306 | grep -v grep | wc -l)
if [ $num -eq 0 ]
then
    systemctl start mysql
    sleep 5
    num=$(netstat -ntpl | grep 3306 | grep -v grep | wc -l)
    if [ $num -eq 0 ]
    then
        systemctl stop keepalived
    fi
fi

6.启动Keepalived,查看集群IP是否正常出现

[root@MySQL-HA1 keepalived]# systemctl start keepalived
[root@MySQL-HA1 keepalived]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:1d:d8:a4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.12/24 brd 192.168.32.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.1.100/24 scope global secondary ens33      # 集群IP
       valid_lft forever preferred_lft forever

7.ipvsadm -Ln查看集群节点

[root@MySQL-HA1 keepalived]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port       Forward Weight ActiveConn InActConn
TCP  192.168.1.100:3306 wlc   # 集群IP
  -> 192.168.1.12:3306        Masq    1      0          0         # 节点1 MySQL_HA1
  -> 192.168.1.13:3306        Masq    1      0          0         # 节点2 MySQL_HA2

============================================ 当前节点所有配置结束 ============================================
其他服务节点可根据实际情况安装 ipvsadm 和 keepalived 并配置即可。

8.测试

8.1 节点宕机测试

	关闭除当前节点外其他任意节点 MySQL,等几秒使用 ipvsadm -Ln 查看目标节点是否被踢出集群(提前注释掉“notify_down /opt/keepalived/chekredis.sh”)。

8.2 当前服务器宕机(keeplived停机)测试

[root@MySQL-HA1 keepalived]# systemctl stop keepalived
# 关闭主节点 keepalived 查看集群IP是否自动漂移到从节点。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_46278537/article/details/128039245

lvs+keepalived+mysql双主复制实现负载分担及高可用-爱代码爱编程

lvs+keepalived+mysql双主复制实现负载分担及高可用 mysql双主keepalived测试1.验证LVS负载均衡转发策略2.模拟lvs的master故障3. 模拟其中一方数据库挂了     Keepalived+lvs+mysql主主复制是比较常用的一种Mysql高可用方案,其中lvs 提供读负载均衡,Keepalived通

使用 LVS+Keepalived 实现 MySQL 双主复制负载均衡高可用-爱代码爱编程

使用 LVS+Keepalived 实现 MySQL双主复制高可用 一、 部署 MySQL 双主复制1.配置时间同步2.配置双主复制1)master1 上操作2)master2 上操作3)建立双主复制二、部署 LVS+Keepalived 实现 MySQL 双主复制高可用1.配置主调度器2.配置备调度器3.查看 LVS 集群状态4.编写 LVS 启

lvs mysql_MySQL 主主复制 + LVS + Keepalived 实现 MySQL 高可用性-爱代码爱编程

原标题:MySQL 主主复制 + LVS + Keepalived 实现 MySQL 高可用性 (点击上方公众号,可快速关注) 作者:bestvivi bestvivi.com/2015/09/09/MySQL主主复制+LVS+Keepalived实现MySQL高可用性/ 能够保证数据的冗余的同时可以做读写分离来分担系统压力,如果是主主复制还可

mysql从 lvs_mysql主从之LVS+keepalived+双主MySQL 负载均衡-爱代码爱编程

LVS(Linux Virtual Server)即Linux 虚拟服务器,是一个的开源负载均衡项目,目前LVS 已经被集成到Linux 内核模块中。LVS 是四层负载均衡,也就是说建立在OSI 模型的第四层——传输层之上,传输层上有我们熟悉的TCP/UDP,LVS 支持TCP/UDP 的负载均衡。 一 环境 192.168.132.120   

mysql双主负载均衡 lvs_利用LVS+Keepalived搭建Mysql双主复制高可用负载均衡环境-爱代码爱编程

应用背景: MySQL复制(主主,主从...)能在保证数据的备份的同时也能够做读写分离分摊系统压力,但是发生单点故障时,需要手动 切换到另外一台主机。LVS和Keppalived可以设定一个VIP来实现统一访问入口,实现单点故障时,VIP自动切换至另外一台 主机上达到高可用效果,同时LVS可以提供多种调度算法来实现负载均衡机制。 测试环境:

ubuntu lvs keepalived mysql_Ubuntu下LVS + Keepalived 实现MySQL高可用负载均衡实现-爱代码爱编程

LVS Server   : 192.85.1.5 Virtual IP   : 192.85.1.10 Real Server1 : 192.85.1.4 Real Server2 : 192.85.1.9 在 LVS Server 上安装 ipvsadm 和 keepalived。 $ sudo apt-get install ipvsa

lvs mycat mysql_LVS+Keepalived搭建MyCAT高可用负载均衡集群-爱代码爱编程

LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR),十种调度算法(rrr|wrr|lc|wlc|lb

LVS+Keepalived实现高可用和负载均衡-爱代码爱编程

    1.1 keepalived是什么? Keepalived 软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件。 Kee

LVS+Keepalived实现高可用负载均衡-爱代码爱编程

本文来说下如何使用LVS+Keepalived 实现高可用负载均衡 文章目录 概述LVS与Keepalived相关术语本文小结 概述 在业务量达到一定量的时候,往往单机的服务是会出现瓶颈的。此时最常见的方式就是通过负载均衡来进行横向扩展。其中我们最常用的软件就是 Nginx。通过其反向代理的能力能够轻松实现负载均衡,当有服务出现异

lvs+keepalived实现高可用负载均衡_老帽爬新坡的博客-爱代码爱编程

昨天在chinaunix的论坛上看到一哥们的提问:为什么他ipvsadm -L看不到后端的realsrver,我想应该是他的realserver上没有启动脚本吧!也或许是他realserver上的80端口没有开启,这里我也写下我的环境的lvs+keepalived架构的实现!目的就是用虚拟IP转发80端口和1099端口请求到后端的真实服务器。

apache shardingsphere(一) 基本概念介绍_长安不及十里的博客-爱代码爱编程_shardingsphere

文章目录 一 基本介绍1.1 概述1.2 ShardingSphere JDBC1.3 ShardingSphere Proxy1.4 ShardingSphere Sidecar1.5 数据库的扩展1.5.1 向上

mysql innodb 索引结构_凡夫贩夫的博客-爱代码爱编程

目录 前言 1. InnoDB常见的索引 2. B+树索引 2.1 二分查找法 2.2 二叉查找树 2.3 平衡二叉树 2.4 B树索引 2.5 B+树索引 2.5.1 聚集索引 2.5.2 非聚集索引 2.5.3 聚集索引与非聚集索引区别 前言         索引的本质是让mysql以最高效、扫描行数最少的方式找到需要的

abap基础知识 表关联使用不同内容的字段_syjf1976_abap的博客-爱代码爱编程

一 前言 如果你写过报表尝试关联LIPS 与 EKPO ,会发现二者关联的行项目字段长度不一致,内容也不一致 , LIPS-VGPOS = 比EKPO-EBELP 多了一个前面的0 (因为VGPOS定义位6位NUM), 所以会多一个前置0. 无法再JOIN 条件中直接写等式关联 本文主要介绍怎么使用不同内容的字段进行表关联 当然前提是这两个字

简历上写着“精通 mysql”,阿里面试官非要跟我死磕,最后还是给我发了 offer_简历中写mysql还是mysql-爱代码爱编程

事情是这样的 前段时间因为想要跳槽就去面试了下阿里,大家也都清楚,精通这个词在简历上属于很难把握住的一个词,如果你在你的简历上面写着你精通 XX 技术,那面试官就会默认你是真的很会,刨根问底问到你崩溃。 我之前就是在自己的简历上写了一项精通 MySQL,然后就开启了和阿里面试官的 battle 之路,当然最终结果不差,拿到了一份我很满意的高薪 offe