zoukankan      html  css  js  c++  java
  • yum方式安装heartbeat_切换测试

    heartbeat安装,主要用于linux ha,采用VIP的方式,failover/failback,当服务器故障时能够自动切换到备机,保证应用服务的可靠运行

    --由于源码安装繁琐,本次采用yum方式安装

    --hosts 配置 所有节点
    vi /etc/hosts
    192.168.33.190 sql1
    192.168.33.191 sql2
    192.168.33.199 mha

    --vip
    vip: 192.168.33.175


    --同步各节点时间
    《linux ntp服务器搭建.sql》

    --创建heartbeat相关用户和组 所有节点
    groupadd haclient
    useradd -g haclient hacluster -M -s /sbin/nologin

    --1、配置epel联网/yum联网 所有节点
    《vmware网卡net方式linux下静态ip上网设置.sql》

    yum repolist #--检测


    --2、提前安装依赖的包 所有节点
    yum install gcc gcc-c++ autoconf automake libtool glib2-devel libxml2-develbzip2-devel e2fsprogs-devel libxslt-devel libtool-ltdl-devel make wget docbook-dtds docbook-style-xsl libaio-devel

    --3、yum安装heartbeat 所有节点
    yum install heartbeat*

    --主配置文件 sql1
    vi /etc/ha.d/ha.cf

    logfile /var/log/ha-log #--ha的日志文件记录位置。

    keepalive 2 #--心跳频率,2表示2秒
    warntime 5 #--连续多长时间联系不上后开始警告提示
    deadtime 15 #--连续多长时间联系不上后认为对方挂掉了 单位是妙
    initdead 90 #--这里主要是给重启后预留的一段忽略时间段 比如:重启后启动网络等,如果在网络还没有通,alive检测肯定通不过,但这时候并不能切换

    udpport 694 #--心跳信息传递的udp端口

    mcast eth0 225.0.0.1 694 1 0  #采用网卡eth0的udp多播来组织心跳

    auto_failback on #--off则只当备用节点当掉后,主节点才取回资源; on主节点恢复后主动抢占资源

    # Tell what machines are in the cluster
    node sql1
    node sql2

    --认证信息配置文件 sql1
    vi /etc/ha.d/authkeys
    auth 1
    1 crc

    chmod 600 /etc/ha.d/authkeys

    --配置ha资源 所有节点 sql1
    vi /etc/ha.d/haresources
    sql1 IPaddr::192.168.33.175/24/eth0:0 #--格式: 主节点的主机名或域名 VIP 上面的管理服务名mysqld

    --同步到sql2
    cd /etc/ha.d/
    scp authkeys ha.cf haresources root@192.168.33.191:/etc/ha.d/

    --启动hearbeat
    service heartbeat start #--sql1

    --配置开机自启动
    chkconfig heartbeat on


    --###测试vip转移
    --1、eth0:0 当前绑定在sql1上
    [root@sql1 ha.d]# ifconfig
    eth0 Link encap:Ethernet HWaddr 00:0C:29:CE:35:88
    inet addr:192.168.33.190 Bcast:192.168.33.255 Mask:255.255.255.0
    inet6 addr: fe80::20c:29ff:fece:3588/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:342555 errors:0 dropped:0 overruns:0 frame:0
    TX packets:113648 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:481485308 (459.1 MiB) TX bytes:8379811 (7.9 MiB)

    eth0:0 Link encap:Ethernet HWaddr 00:0C:29:CE:35:88
    inet addr:192.168.33.175 Bcast:192.168.33.255 Mask:255.255.255.0
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

    service heartbeat stop #--sql1


    --ping 发现切换
    来自 192.168.33.175 的回复: 字节=32 时间<1ms TTL=64
    来自 192.168.33.175 的回复: 字节=32 时间<1ms TTL=64
    来自 192.168.33.175 的回复: 字节=32 时间<1ms TTL=64
    来自 192.168.33.175 的回复: 字节=32 时间<1ms TTL=64
    请求超时。
    来自 192.168.33.175 的回复: 字节=32 时间<1ms TTL=64
    来自 192.168.33.175 的回复: 字节=32 时间<1ms TTL=64
    来自 192.168.33.175 的回复: 字节=32 时间<1ms TTL=64


    --eth0:0 当前已经绑定在sql2上
    [root@sql2 ha.d]# ifconfig
    eth0 Link encap:Ethernet HWaddr 00:0C:29:CA:63:8F
    inet addr:192.168.33.191 Bcast:192.168.33.255 Mask:255.255.255.0
    inet6 addr: fe80::20c:29ff:feca:638f/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:342597 errors:0 dropped:0 overruns:0 frame:0
    TX packets:116946 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:481525371 (459.2 MiB) TX bytes:9129997 (8.7 MiB)

    eth0:0 Link encap:Ethernet HWaddr 00:0C:29:CA:63:8F
    inet addr:192.168.33.175 Bcast:192.168.33.255 Mask:255.255.255.0
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

    --2、由于我们设置auto_failback on 主节点服务正常启动时候,会自动接管vip
    service heartbeat start #--sql1


    --发现vip切换
    来自 192.168.33.175 的回复: 字节=32 时间<1ms TTL=64
    来自 192.168.33.175 的回复: 字节=32 时间<1ms TTL=64
    请求超时。
    来自 192.168.33.175 的回复: 字节=32 时间<1ms TTL=64
    来自 192.168.33.175 的回复: 字节=32 时间<1ms TTL=64
    来自 192.168.33.175 的回复: 字节=32 时间<1ms TTL=64


    --eth0:0 已经被主节点接管
    [root@sql1 ha.d]# ifconfig
    eth0 Link encap:Ethernet HWaddr 00:0C:29:CE:35:88
    inet addr:192.168.33.190 Bcast:192.168.33.255 Mask:255.255.255.0
    inet6 addr: fe80::20c:29ff:fece:3588/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:343209 errors:0 dropped:0 overruns:0 frame:0
    TX packets:114284 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:481588839 (459.2 MiB) TX bytes:8489009 (8.0 MiB)

    eth0:0 Link encap:Ethernet HWaddr 00:0C:29:CE:35:88
    inet addr:192.168.33.175 Bcast:192.168.33.255 Mask:255.255.255.0
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1


    --关闭自动接管 auto_failback off
    vi /etc/ha.d/ha.cf --sql1
    auto_failback off

    service heartbeat restart --sql1 重启生效

    vi /etc/ha.d/ha.cf --sql2
    auto_failback off

    service heartbeat restart --sql2 重启生效

    service heartbeat restart --sql1 重启heartbeat

    --vip并没有被接管
    [root@sql2 ha.d]# ifconfig
    eth0 Link encap:Ethernet HWaddr 00:0C:29:CA:63:8F
    inet addr:192.168.33.191 Bcast:192.168.33.255 Mask:255.255.255.0
    inet6 addr: fe80::20c:29ff:feca:638f/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:342597 errors:0 dropped:0 overruns:0 frame:0
    TX packets:116946 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:481525371 (459.2 MiB) TX bytes:9129997 (8.7 MiB)

    eth0:0 Link encap:Ethernet HWaddr 00:0C:29:CA:63:8F
    inet addr:192.168.33.175 Bcast:192.168.33.255 Mask:255.255.255.0
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

    --###手工切换
    --主节点发起切换 当前主节点执行 (可主/可备)
    /usr/share/heartbeat/hb_standby


    --备节点手工接管 当前备节点执行 (可主/可备)
    /usr/share/heartbeat/hb_takeover

    --###添加haresources的管理服务 mha
    --mysql 主/从切换核心脚本 接收start/stop 参数

    vi /etc/ha.d/resource.d/mysql_failover
    #! /bin/bash

    case "$1" in
    start)
    /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/mysql/my.cnf &
    ;;
    stop)
    mysqladmin -umysql -pmysql shutdown
    ;;
    esac
    exit 0


    --可执行权限
    chmod +x mysql_failover

    --测试脚本 启动/关闭 是否正常运行
    /etc/ha.d/resource.d/mysql_failover start

    /etc/ha.d/resource.d/mysql_failover stop

    --更新ha资源配置文件 所有节点
    vi /etc/ha.d/haresources #--sql1
    sql1 IPaddr::192.168.33.175/24/eth0:mysql_failover #--格式: 主节点的主机名或域名 VIP 上面的管理服务名mysqld


    vi /etc/ha.d/haresources #--sql2
    sql1 IPaddr::192.168.33.175/24/eth0:mysql_failover #--格式: 主节点的主机名或域名 VIP 上面的管理服务名mysqld

    重启各节点heartbeat服务

  • 相关阅读:
    iOS 里面 NSTimer 防止 循环引用
    [leetcode 34] search for a range
    [leetcode 37]sudoku solver
    [leetcode 36] valid sudoku
    [leetcode 48] rotate image
    [leetcode 35] Search Insert Position
    [leetcode 27]Implement strStr()
    [leetcode 26] Remove Duplicates from Sorted Array
    [leetcode 25]Reverse Nodes in k-Group
    [leetcode 24] Swap Nodes in k-Group
  • 原文地址:https://www.cnblogs.com/justdba/p/7153416.html
Copyright © 2011-2022 走看看