zoukankan      html  css  js  c++  java
  • mysql运维管理-heartbeat高可用软件的安装及配置

    部署Heartbeat高可用需求

    1 操作系统

    CentOS-6.8-x86_64

    2 Heartbeat服务主机资源准备

    主服务器A:

    主机名:heartbeat-1-130

    eth0网卡地址:192.168.1.130(管理IP)

    eth1网卡地址:10.0.10.4 (心跳IP)

    从服务器B:

    主机名:heartbeat-1-129

    eth0网卡地址:192.168.1.129(管理IP)

    eth1网卡地址:10.0.10.5(心跳IP)

    虚拟VIP:

    虚拟VIP在主服务器heartbeat-1-130上

    VIP:192.168.1.131

    3.Heartbeat高可用实施准备

    搭建虚拟真实环境

    克隆两台虚拟机

    Mysql DBA 高级运维学习笔记-heartbeat高可用软件的安装及配置

    给虚拟机配置IP和主机名

    配置IP和主机名就省略了
    设置两台机器的主机的主机名分别为heartbeat-1-130和heartbeat-1-129。
    分别编译两台机器的/etc/sysconfig/network配置文件,设置HOSTNAME=heartbeat-1-130和HOSTNAME=heartbeat-1-129。
    然后在命令行下执行hostname heartbeat-1-130和hostname heartbeat-1-129使设置马上生效。
    提示:可以执行setup命令然后选network configuration-->Edit configuration即可配置机器名,然后logout退出重新登录后生效。

    配置hosts文件(两个节点都要做)

    在heartbeat-1-130主机上配置hosts文件

    [root@heartbeat-1-130 ~]# cat >>/etc/hosts<<eof
    > 192.168.1.129 heartbeat-1-129
    > 192.168.1.130 heartbeat-1-130
    > eof

    在heartbeat-1-129主机上配置hosts文件

    [root@heartbeat-1-129 ~]# cat >>/etc/hosts<<eof
    > 192.168.1.129 heartbeat-1-129
    > 192.168.1.130 heartbeat-1-130
    > eof

    通过ping ip地址的方法检查测试,看其返回的IP是不是和/etc/hosts中配置的内容一致。

    Mysql DBA 高级运维学习笔记-heartbeat高可用软件的安装及配置

    Mysql DBA 高级运维学习笔记-heartbeat高可用软件的安装及配置

    特别强调:机器名必须是uname –n返回的结果

    [root@heartbeat-1-130 ~]# uname -n
    heartbeat-1-130

    提示:hosts的配置在heartbeat服务中会用到,后文的drbd及存储高可用也会用到,在生产环境中会把所有的机器名对应上所有的机器IP地址,然后通过cfengine或puppet或sshkey+rsync工具分发到所有机器上。网内增加机器时,就会通过分发工具统一分发到所有机器的/etc/hosts中。

    配置服务间的心跳连接

    eth1 10.0.10.5和eth1 10.0.10.4两块网卡之间通过普通网线连接的,即不通过交换机,直接用网线将两块网卡连在一起,用于做心跳检测或传数据等。

    提示:高可用服务器对上的heartbeat软件会利用这条心跳线来检查对端的机器是否存活,进而决定是否做故障转移,资源切换,来保证业务的连续性。
    如果条件允许,以上连接可同时使用,来加大保险系数防止裂脑问题的发生。

    本次案例:选用以太网电缆两网卡直连。

    选用原因:简单,容易部署、效果也不错。

    在两台机器上分别增加一条主机路由,来实现两台机器检查对端时通过这个心跳线线路检查。

    (1)heartbeat-1-130 Server上增加如下主机路由:

    /sbin/route route add -host 10.0.10.4 dev eth1

    同样,这个命令使得从heartbeat-1-130 Server 上访问的10.0.10.4,走eth1网卡出去,即使用心跳线路。

    echo '/sbin/route route add -host 10.0.10.4 dev eth1'>>/etc/rc.local

    加入开机自启动配置里,这样下去启动后会自动加载这个路由的配置。

    (2)heartbeat-1-129 Server上增加如下主机路由:

    /sbin/route route add -host 10.0.10.5 dev eth1

    同样,这个命令使得从heartbeat-1-129 Server 上访问的10.0.10.5,走eth1网卡出去,即使用心跳线路。

    echo '/sbin/route route add -host 10.0.10.5 dev eth1'>>/etc/rc.local

    加入开机自启动配置里,这样下去启动后会自动加载这个路由的配置。
    可以用route –n查看配置的路由状态

    配置虚拟VIP

    在主服务器上heartbeat-1-130上配置虚拟VIP

    [root@heartbeat-1-130 ~]# echo 'ifconfig eth0:1 192.168.1.131 netmask 255.255.255.0 up' >>/etc/rc.local
    [root@heartbeat-1-130 ~]# echo 'route add -host 192.168.1.131 dev eth0:1' >>/etc/rc.local

    关闭防火墙和selinux(两台节点都要操作)

    关闭iptables

    iptables -F
    service iptables save
    service iptables stop

    关闭selinux

    setenforce 0
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

    安装CentOS-6.8-x86_64 heartbeat3.0软件

    CentOS-6.8-x86_64的rpm包没有heartbeat软件,所以要下载epel包

    [root@heartbeat-1-130 ~]# yum search heartbeat
    已加载插件:product-id, subscription-manager
    This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
    rhel-local   | 4.1 kB 00:00 ... 
    警告:没有匹配 heartbeat 的软件包
    没有找到匹配的软件包

    下载并安装epel扩展源(两台都要操作)

    mkdir -p /home/linzhongniao/tools
    cd /home/linzhongniao/tools
    wget http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
    rpm -ivh  epel-release-6-8.noarch.rpm
    rpm -qa|grep epel

    安装heartbeat(两台都要操作)

    yum install heartbeat* -y

    主节点配置heartbeat服务

    Centos5.8机器上,分别执行yum install heartbeat* –y 两遍后,不出意外就可以安装好heartbeat软件了。
    前面已经提到了,heartbeat的默认配置文件目录为/etc/ha.d。heartbeat常用的配置文件有三个,ha.cf、authkey、haresource,各自的作用见下面的表格。

    Mysql DBA 高级运维学习笔记-heartbeat高可用软件的安装及配置

    提示:如果yum安装后想保留rpm包,用下面的方法。

    [root@heartbeat-1-130 ~]# sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf 
    [root@heartbeat-1-130 ~]# grep keepcache /etc/yum.conf 
    keepcache=1
    配置ha.cf文件及文件说明

    (1)先把ha.cf haresources authkeys这三个文件拷到/etc/ha.d/目录下

    [root@heartbeat-1-130 ~]# ll /usr/share/doc/heartbeat-3.0.4/
    总用量 144
     -rw-r--r-- 1 root root  1873 12月  3 2013 apphbd.cf
     -rw-r--r-- 1 root root   645 12月  3 2013 authkeys
     -rw-r--r-- 1 root root  3701 12月  3 2013 AUTHORS
     -rw-r--r-- 1 root root 58752 12月  3 2013 ChangeLog
     -rw-r--r-- 1 root root 17989 12月  3 2013 COPYING
     -rw-r--r-- 1 root root 26532 12月  3 2013 COPYING.LGPL
     -rw-r--r-- 1 root root 10502 12月  3 2013 ha.cf
     -rw-r--r-- 1 root root  5905 12月  3 2013 haresources
     -rw-r--r-- 1 root root  2935 12月  3 2013 README
    [root@heartbeat-1-130 ~]# cd /usr/share/doc/heartbeat-3.0.4/
    [root@heartbeat-1-130 heartbeat-3.0.4]# ls
    apphbd.cf  authkeys  AUTHORS  ChangeLog  COPYING  COPYING.LGPL  ha.cf  haresources  README
    [root@heartbeat-1-130 heartbeat-3.0.4]# cp ha.cf haresources authkeys /etc/ha.d/

    (2)配置ha.cf配置文件

    [root@heartbeat-1-130 ~]# cat /etc/ha.d/ha.cf 
    debugfile /var/log/ha-debug
    logfile/var/log/ha-log
    logfacility local0
    keepalive 2
    deadtime 30
    warntime 10
    initdead 60
    #bcast  eth1
    mcast eth1 225.0.0.130 694 1 0
    #udpport 694
    #ucast eth1 10.0.10.4
    auto_failback on
    node  heartbeat-1-130
    node  heartbeat-1-129
    ping 10.0.10.8
    respawn hacluster /usr/lib64/heartbeat/ipfail
    #crm on

    (3)Ha.cf文件详细说明

    debugfile /var/log/ha-debug:该文件保存heartbeat的调试信息。

    logfile /var/log/ha-log:heartbeat的日志文件。

    keepalive 2:心跳的时间间隔,默认时间单位为秒s。

    deadtime 30:超出该时间间隔未收到对方节点的心跳,则认为对方已经死亡。

    warntime 10:超出该时间间隔未收到对方节点的心跳,则发出警告并记录到日志中。

    initdead 60:在某系统上,系统启动或重启之后需要经过一段时间网络才能正常工作,该选项用于解决这种情况产生的时间间隔,取值至少为deadtime的2倍。

    mcast eth1 225.0.0.130 694 1 0 :设置广播通信使用的端口,225.0.0.130为多播ip地址在一个局域网内这个ip地址不能一样,694为默认使用的端口号。

    注意:一个局域网内有多组heartbeat服务同时正常使用的前提是多播地址不同(可选多播地址段为224.0.0.0-239.255.255.255),一般路由器,交换机等应该都是多播的方式,建议IP的最后八位作为多播地址的最后8位。当然不用多播也能解决心跳问题。

    udpport 694:设置广播通信使用的端口,694为默认使用的端口号。

    ucast eth1 10.0.10.4:设置广播通信对方机器心跳检测的网卡和IP和udpport一起用。

    auto_failback on:heartbeat的两台主机分别为主节点和从节点。主节点在正常情况下占用资源并运行所有的服务,遇到故障时把资源交给从节点由从节点运行服务。在该选项设为on的情况下,一旦主节点恢复运行,则自动获取资源并取代从节点,否则不取代从节点。

    respawn heartbeat /usr/lib/heartbeat/ipfail:指定与heartbeat一同启动和关闭的进程,该进程被自动监视,遇到故障则重新启动。最常用的进程是ipfail,该进程用于检测和处理网络故障,需要配合ping语句指定的ping node来检测网络连接。如果你的系统是64bit,请注意该文件的路径。

    crm on 是否开启Cluster Resource Manager(集群资源管理功能)

    提示:我们可以查看/usr/share/doc/heartbeat-3.0.4/下的ha.cf来详细了解参数信息。

    配置authkey文件及文件说明

    (1)配置authkey文件

    [root@heartbeat-1-129 ~]# cat /etc/ha.d/authkeys 
    auth 3
    3 md5 Hello!

    将authkey权限修改为600

    [root@heartbeat-1-130 ~]# chmod 600 /etc/ha.d/authkeys
    [root@heartbeat-1-130 ~]# ll /etc/ha.d/authkeys
     -rw------- 1 root root 20 3月   3 07:39 /etc/ha.d/authkeys

    (2)参数说明

    此处提到authkey权限必须为600
    #   Authentication file.  Must be mode 600
    #   Must have exactly one auth directive at the front.
    #   authsend authentication using this method-id
    #
    #   Then, list the method and key that go with that method-id
    此处提到可以设置认证方法
    #   Available methods: crc sha1, md5.  Crc doesn't need/want a key.
    #   You normally only have one authentication method-id listed in this file
    #   Put more than one to make a smooth transition when changing auth
    #   methods and/or keys.
    这里说明sha1是最好的认证方法,其次md5是最好的
    #   sha1 is believed to be the "best", md5 next best.
    #   crc adds no security, except from packet corruption.
    #   Use only on physically secure networks.
    #auth 1
    #1 crc
    #2 sha1 HI!
    #3 md5 Hello!
    默认的配置使用crc方法这是不加密的最不安全的,下面为authkey生产配置
    ##########

    注意authkeys需要的权限默认为600否则heartbeat服务会报错不发打开,两台机器都需要操作

    配置haresource文件
    [root@heartbeat-1-120 ~]# cat /etc/ha.d/haresources 
    heartbeat-1-130 IPaddr::192.168.1.131/24/eth0:1

    配置参数说明 :heartbeat-1-130为主节点hostname,192.168.0.131为vip,24为掩码为24的网段,eth0:1为vip的设备名。IPaddr为heartbeat配置IP的默认脚本,其后的IP等都是脚本参数。

    [root@heartbeat-1-130 ~]# ll /etc/ha.d/resource.d/IPaddr
     -rwxr-xr-x 1 root root 2273 12月  3 2013 /etc/ha.d/resource.d/IPaddr

    实际上这里相当于一个脚本传参,相当于执行:

    /etc/ha.d/resource.d/IPaddr 192.168.1.131/24/eth0:1 stop/start

    从节点配置heartbeat服务

    3.11.1 把主节点上的三个配置文件拷贝到从节点
    cd /etc/ha.d
    scp authkeys ha.cf haresources heartbeat-1-129:/etc/ha.d

    生产中所有的配置文件是svn变更比对然后同时发布到两台机器上去的,也可以用scp同步。

    3.11.2 配置ha.cf文件

    从节点只需要修改ha.cf文件的下面地方

    mcast eth1 225.0.0.129 694 1 0

    将255.0.0.130改成255.0.0.129

    上面是多播的方式,如果用广播的方式需要修改下面的地方。

    ucast eth1 10.0.10.4

    将ucast eth1 10.0.10.4修改成ucast eth1 10.0.10.5

    4.启动heartbeat服务

    先启动主节点后启动从节点

    [root@heartbeat-1-130 ~]# /etc/init.d/heartbeat start
    Starting High-Availability services: INFO:  Resource is stopped
    Done.

    5.测试heartbeat服务

    主节点停止heartbeat服务或者将eth1网卡down掉

    /etc/init.d/heartbeat stop

    我们就会发现虚拟VIP切换到从节点上了,来达到heartbeat高可用功能继续为用户提供服务。

    6.测试列脑

    两节点都down掉eth1网卡

    ifdown eth1

    7.查看heartbeat启动及接管资源的过程

    可以查看heartbeat日志和系统日志查看heartbeat启动及接管资源的过程

    tail -f /var/log/ha-log

    tail -f /var/log/messages

  • 相关阅读:
    观察者模式
    strchr
    行转列
    Ja.Net:融合 Java 1.5 和 .NET !
    主题:借JavaFX之风,Swing终于熬到了出头之日
    DOM和SAX概念的总结
    几个linux的命令技巧
    gcc编译的东东
    详细介绍DOM和SAX
    oracle的number类型默认长度是多少?
  • 原文地址:https://www.cnblogs.com/zywu-king/p/8570178.html
Copyright © 2011-2022 走看看