企业级应用,持久层架构方案二(双主同步高可用二)

  这是企业级应用,持久层架构方案的第二篇。在上一篇:企业级应用,持久层架构方案一(双主同步高可用)中。已经准备好了两台mysql数据库节点:hadoop001、hadoop002。两个节点互为主备,实现舒双主同步高可用,如何叫做双主同步高可用呢?其实要分为两个问题:一个是双主同步,互为主备;另一个是高可用。那么在上一篇中已经实现了双主互为主备,本篇通过keepalived虚拟ip实现高可用:

1.安装keepalived

  1.1.hadoop001节点

#安装keepalived
yum install keepalived -y

#启动keepalived服务
/etc/init.d/keepalived start
-------------------------------------------
[[email protected] anginx]# /etc/init.d/keepalived start
正在启动 keepalived:                                      [确定]
[[email protected] anginx]# ps -ef |grep keepalived
root      15723      1  0 00:59 ?        00:00:00 /usr/sbin/keepalived -D
root      15724  15723  0 00:59 ?        00:00:00 /usr/sbin/keepalived -D
root      15725  15723  0 00:59 ?        00:00:00 /usr/sbin/keepalived -D
root      15731  15622  0 00:59 pts/1    00:00:00 grep keepalived
[[email protected] anginx]#

#设置开机自启动
echo "/etc/init.d/keepalived start" >>/etc/rc.local

#关闭keepalived服务
/etc/init.d/keepalived stop

  1.2.hadoop002节点

  说明:参考hadoop001节点安装

2.配置keepalived

 2.1.hadoop001节点

#编辑keepalived配置文件
vi /etc/keepalived/keepalived.conf

-----------------------------------------------------------
! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id mysql_ha
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth1
    virtual_router_id 55
    priority 100
    advert_int 1
    nopreempt             #不主动抢占资源,只在master这台优先级高的设置,backup不设置
    authentication {
        auth_type PASS
        auth_pass server123
    }
    virtual_ipaddress {
        192.168.80.40 dev eth1 label eth1:1
    }
}

virtual_server 192.168.80.40 3306 {
 delay_loop 2
 #lb_algo rr              #LVS算法,用不到,我们就关闭了
 #lb_kind DR              #LVS模式,如果不关闭,备用服务器不能通过VIP连接主MySQL
 persistence_timeout 60  #同一IP的连接60秒内被分配到同一台真实服务器
 protocol TCP
 real_server 192.168.80.30 3306 {   #检测本地mysql,backup也要写检测本地mysql
 weight 3
 notify_down /usr/local/develop/shell/mysql.sh    #当mysq服down时,执行此脚本,杀死keepalived实现切换
 TCP_CHECK {
 connect_timeout 3    #连接超时
 nb_get_retry 3       #重试次数
 delay_before_retry 3 #重试间隔时间
  }
}
...........................................................

 2.2.hadoop002节点

#编辑keepalived配置文件
vi /etc/keepalived/keepalived.conf

-----------------------------------------------------------
! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id mysql_ha
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth1
    virtual_router_id 55
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass server123
    }
    virtual_ipaddress {
        192.168.80.40 dev eth1 label eth1:1
    }
}

virtual_server 192.168.80.40 3306 {
 delay_loop 2
 #lb_algo rr              #LVS算法,用不到,我们就关闭了
 #lb_kind DR              #LVS模式,如果不关闭,备用服务器不能通过VIP连接主MySQL
 persistence_timeout 60  #同一IP的连接60秒内被分配到同一台真实服务器
 protocol TCP
 real_server 192.168.80.31 3306 {   #检测本地mysql,backup也要写检测本地mysql
 weight 3
 notify_down /usr/local/develop/shell/mysql.sh    #当mysq服down时,执行此脚本,杀死keepalived实现切换
 TCP_CHECK {
 connect_timeout 3    #连接超时
 nb_get_retry 3       #重试次数
 delay_before_retry 3 #重试间隔时间
  }
}
...........................................................

3.编写切换脚本

#mysql.sh脚本
cd /usr/local/develop/shell

vi mysql.sh
-----------------------------------------------------------
#!/bin/bash
pkill keepalived

#给脚本添加执行权限
chmod u+x mysql.sh

#重新启动keepalived
/etc/init.d/keepalived restart

4.测试方案

  

1.分别在hadoop001、hadoop002节点启动mysql服务
2.分别在hadoop001、hadoop002节点启动keepalived服务
3.通过虚拟ip:192.168.80.40连接mysql服务,并进行操作,检查是否正常
4.假设当前虚ip是落在hadoop001节点
5.停止hadoop001节点的mysql服务,再次进行相关mysql操作,检查是否正常

原文地址:https://www.cnblogs.com/itall/p/11018748.html

时间: 2024-10-12 00:39:41

企业级应用,持久层架构方案二(双主同步高可用二)的相关文章

企业级应用,持久层架构方案三(一主多从,读写分离上篇)

这是企业级应用,持久层架构方案的第三篇.在上一篇:企业级应用,持久层架构方案二(双主同步高可用二)中.已经实现了双主同步高可用,解决了高可用的问题.还没有解决高性能问题,目前读写都是在主服务器上,会导致主服务器压力大,性能低.那么在这一篇中,来看一看如何通过读写分离,实现持久层的高性能访问. 1.架构图 2.安装从库 2.1.hadoop003节点 2.1.1.安装mysql #第一步:通过yum在线安装 yum install mysql mysql-server mysql-devel #第

keepalived+mysql双主复制高可用方案

MySQL双主复制,即互为Master-Slave(只有一个Master提供写操作),可以实现数据库服务器的热备,但是一个Master宕机后不能实现动态切换.而Keepalived通过虚拟IP,实现了双主对外的统一接口以及自动检查.失败切换机制.联合使用,可以实现MySQL数据库的高可用方案. 实验环境:OS:centos 6.x x86_64系统MySQL版本: :mysql 5.6.22   64 位A: master :192.168.79.3 3306B: slave :192.168.

【 Linux 】Keepalived实现双主模型高可用集群

要求:    1. 两台web服务器安装wordpress,数据库通过nfs共享    2. 使用keepalived实现双主模型 环境:    主机:        系统:CentOS6.7 x64        1. node1: 192.168.2.11  node2: 192.168.2.12 vip: 192.168.2.200        service iptables stop        selinux: disabled 一.两台主机分别配置lamp架构,并使用nfs实现

基于keepalived实现双主模型高可用lvs

实验环境,使用的操作系统CentOS6.5: Director: node1:IP 172.16.103.2 安装keepalived VIP:172.16.103.20 node2:IP 172.16.103.3 安装keepalived VIP:172.16.103.30 RS: RS1:IP 172.16.103.1 提供httpd服务 RS2:IP 172.16.103.4 提供httpd服务 实验效果: 前端的两台Director运行keepalived,自动生成各自的一组lvs规则,

初识MariaDB之9——keepalive+GTID双主实现高可用

一.背景介绍 传统的主从复制架构下,尽管可以使用半同步的方式进行读写分离,但是主节点仍然存在单点隐患,在规模不大的情况下可以采用keepalive+双主的模式对主节点进行高可用保护,客户端通过VIP访问MySQL服务器 二.实现方式 keepalive是通过vrrp协议实现,之前有过介绍这里不多赘述,要注意的是在云主机是禁用vrrp协议的.本次实验采用CentOS7.4,数据库版本为MariaDB-10.2.14,2台MySQL服务器互为主从,172.16.10.30/24为keepalived

KeepAlived双主模式高可用集群

一.keepalived简介 keepalived是vrrp协议的实现,原生设计目的是为了高可用ipvs服务,keepalived能够配置文件中的定义生成ipvs规则,并能够对各RS的健康状态进行检测:通过共用的虚拟IP地址对外提供服务:每个热备组内同一时刻只有一台主服务器提供服务,其他服务器处于冗余状态,若当前在线的服务器宕机,其虚拟IP地址将会被其他服务器接替(优先级决定接替顺序),实现高可用为后端主机提供服务.   二.keepalived组件 Keepalived组件介绍 core:ke

双主模型高可用负载均衡集群的实现(keepalived+lvs-dr)

实现keepalived双主模型lvs高可用集群 一.拓扑图 二.环境准备 两台负载均衡调度器,两台web服务器. 调度器A环境: VS:一张网卡 DIP:192.168.0.7/24 VIP(主):192.168.0.200 VIP(备):192.168.0.201 软件包:yum install -y keepalived ipvsadm nginx(作用:sorry-server服务) 调度器B环境: VS:一张网卡 DIP:192.168.0.8/24 VIP(主):192.168.0.

mysql高可用探究(二)Lvs+Keepalived+Mysql单点写入主主同步高可用方案

global_defs {   notification_email {        [email protected] } notification_email_from [email protected] smtp_server smtp.mail.sina.com smtp_connect_timeout 30 router_id LVS1 }   vrrp_sync_group test { group { loadbalance } }   vrrp_instance loadbal

keepalived双主模型高可用+lvs-实例

拓扑图: 环境准备: Centos6.5x86_64 关闭防火墙和Selinux node5: eth0:192.168.1.190/24   VIP:192.168.1.121/24 node1:eth1:192.168.1.191/24   VIP:192.168.1.122/24 node2:RIP:eth0: 192.168.19.2/24 node3:RIP:eth0: 192.168.19.3/24   所有节点网关/DNS都为:192.168.1.1 每个服务器的hosts文件 #