• mysql运维入门5:MySQL+kepalived高可用架构


    keepalive

    • 类似3/4/7层交换机制的软件,也就是平时说的第三层、第四层、第七层交换
    • 作用是检测web服务器的状态,如果有一台web服务器、mysql服务器宕机、或工作出现故障,keepalived检测到问题后,会将有故障的web服务器或者mysql服务器从系统中剔除
    • 当服务工作正常后,keepalived自动将web、mysql服务加入到当前的服务群中
    • 切换过程全部自动完成,不需要人工干涉
    • 人工任务只是修复有故障的web和mysql服务

    keepalived安装配置

    tar zxf keepalived-1.2.1.tar.gz  
    cd keepalived-1.2.1 &&./configure --with-kernel-dir=/usr/src/kernels/2.6.18-164.el5-i686 &&make && make install  
    DIR=/usr/local/ 
    cp $DIR/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/ cp $DIR/etc/sysconfig/keepalived /etc/sysconfig/ && mkdir -p /etc/keepalived cp $DIR/sbin/keepalived /usr/sbin/

    修改master配置 vi /etc/keepalived/keepalived.conf

    ! Configuration File for keepalived  
    global_defs {  
       notification_email {  
          mailname@139.com  
       }  
       notification_email_from mailname@139.com  
       smtp_server 127.0.0.1  
       smtp_connect_timeout 30  
       router_id LVS_DEVEL  
    }  
    # VIP1  
    vrrp_instance VI_1 {  
        state MASTER
        interface eth0  
        lvs_sync_daemon_inteface eth0  
        virtual_router_id 151  
        priority 100  
        advert_int 5  
        nopreempt  
        authentication {  
            auth_type PASS  
            auth_pass 2222  
        }  
        virtual_ipaddress {  
            192.168.33.100  
        }  
    }  
    virtual_server 192.168.33.100 3306 {  
        delay_loop 6     
        lb_algo wrr     
        lb_kind DR    
        persistence_timeout 60     
        protocol TCP          
        real_server 192.168.33.10 3306 {  
            weight 100         
            notify_down /data/sh/mysql.sh  
            TCP_CHECK {  
            connect_timeout 10  
            nb_get_retry 3  
            delay_before_retry 3  
            connect_port 3306  
            }  
        }  
    }

    修改slave配置

    • 只需要将realserver的IP改成real_server 192.168.33.11
    • 优先级从100改成90

    脚本内容

    pkill keepalived

    查看ipvs模块

    modprobe ipvs

    加载ipvs模块

    modprobe ip_vs

    lsmod|grep ip_vs

    结论

    • 使用keepalived的抢占模式
    • 主DB挂了,切到backup上
    • 主DB恢复了,自动切回master上---很可能出现DB问题,数据写了slave上,又写了master上
    • 如果主上面的keepalived挂了(虽然几率小),master的db没挂,也切换到slave上,万一异步数据没同步(几率也低),数据也会不一致
    • 这种方式有使用场景么?
  • 相关阅读:
    第 1 章 代码无错便是优?——简单工厂模式
    [转载]由浅入深探究mysql索引结构原理、性能分析与优化
    jquery中 $.expr使用实例介绍
    jQuery UI Widget(1.8.1)工作原理
    asp.net url重写
    CJL.0.1.js
    React Context 的用法
    小程序组件使用
    深入理解es5中Object.defineProperty()
    React合成事件
  • 原文地址:https://www.cnblogs.com/jenvid/p/8412720.html
Copyright © 2020-2023  润新知