• DRBD+Heartbeat+Mysql高可用环境部署


    系统环境 RHEL6.5
    192.168.63.111 ty2.com
    192.168.63.112 ty3.com

    Heartbeat配置

    此时,两台机器的操作步骤是一致的

    更改yum源

    注:此yum源 为本地yum源 目的是打开HA LB RS SF等

    # Main rhel6.5 server
    [base]
    name=Instructor Server Repository
    baseurl=http://172.25.254.251/pub/rhel6.5
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
    
    # HighAvailability rhel6.5
    [HighAvailability]
    name=Instructor HighAvailability Repository
    baseurl=http://172.25.254.251/pub/rhel6.5/HighAvailability
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
    
    # LoadBalancer packages
    [LoadBalancer]
    name=Instructor LoadBalancer Repository
    baseurl=http://172.25.254.251/pub/rhel6.5/LoadBalancer
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
    
    # ResilientStorage
    [ResilientStorage]
    name=Instructor ResilientStorage Repository
    baseurl=http://172.25.254.251/pub/rhel6.5/ResilientStorage
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
    
    # ScalableFileSystem
    [ScalableFileSystem]
    name=Instructor ScalableFileSystem Repository
    baseurl=http://172.25.254.251/pub/rhel6.5/ScalableFileSystem
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

    安装软件

    heartbeat-3.0.4-2.el6.x86_64.rpm    
    heartbeat-libs-3.0.4-2.el6.x86_64.rpm   
    heartbeat-devel-3.0.4-2.el6.x86_64.rpm  
    ldirectord-3.9.5-3.1.x86_64.rpm

    配置

    [root@ty2 ~]# cd /usr/share/doc/heartbeat-3.0.4/
    [root@ty2 heartbeat-3.0.4]# cp ha.cf haresources authkeys /etc/ha.d/
     #将 ha.cf&haresources&authkeys 三个文件copy到/etc/ha.d 下
    [root@ty2 ~]# cd /etc/ha.d
    [root@ty2 ha.d]# vim ha.cf
    29 logfile /var/log/ha-log
    34 logfacility local0
     ##系统运行日志文件,此处取默认值/var/log/message, 当然也可以打开 29 行, 只是日志存放
    位置会变化
    48 keepalive 2 ##心跳频率,默认单位秒;ms 表示毫秒
    56 deadtime 30
     ##节点死亡时间阀值,30s 未收到心跳就认为主节点死亡
    61 warntime 10 ##发出警告时间
    71 initdead 60
     ##守护进程首次启动后应该等待 60s 后再启动主服务器上的资源
    76 udpport 739 ##心跳信息传递的 udp 端口, 默认是 694
    91 bcast eth0 ##采用 udp 广播播来通知心跳
    157 auto_failback on ##当主节点恢复后,是否自动切回
    211 node ty2.com
     ##主节点名称,与 uname –n 保持一致, 先写的 node 为主节点
    212 node ty3.com ##副节点名称
    220 ping 192.168.63.110 ##ping 的 ip 不能是节点的 ip
    253 respawn hacluster /usr/lib64/heartbeat/ipfail
     ##因为是 64 位操作系统, 应该把 lib 改为 lib64
    259 apiauth ipfail gid=haclient uid=hacluster
    - 4 -
     ##默认 heartbeat 并不检测除本身之外的其他任何服务,也不检测网络状况,所以当网络中断
    时,并不会进行 Load Balancer 和 Backup 之间的切换。 可以通过 ipfail 插件,设置'ping nodes'
    来解决这一问题,但不能使用一个集群节点作为 ping 的节点。
    
    [root@ty2 ha.d]# vim haresources
    ty2.com IPaddr::192.168.63.88/24/eth0 httpd
    #**这里先使用httpd做测试 到后面安装drbd和mysql之后再进行更改**
    
    [root@ty2 ha.d]# vim authkeys
    auth 1
    1 crc
    [root@ty2 ha.d]# echo westos | md5sum
    [root@ty2 ha.d]# chmod 600 authkeys 
    [root@ty2 ha.d]# scp ha.cf haresources authkeys root@192.168.63.112:/etc/ha.d/
    #将更改后的 三个文件 复制到ty3 下                
    
    [root@ty2 ha.d]# /etc/init.d/heartbeat start                #开启服务
    ty3 也安装好之后
    [root@ty3 ~]# /etc/init.d/heartbeat start

    测试heartbeat

    关闭ty2 的heartbeat

    [root@ty3 ntp]# ip addr show
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:36:04:10 brd ff:ff:ff:ff:ff:ff
        inet 192.168.63.112/24 brd 192.168.63.255 scope global eth0
        inet 192.168.63.88/24 brd 192.168.63.255 scope global secondary eth0
        inet6 fe80::20c:29ff:fe36:410/64 scope link 
           valid_lft forever preferred_lft forever
    #ty3 上出现VIP

    DRBD配置

    源码安装DRBD

    [root@ty2 packages]# yum install -y flex
    [root@ty2 packages]# tar zxf drbd-8.4.2.tar.gz 
    [root@ty2 packages]# cd drbd-8.4.2
    [root@ty2 drbd-8.4.2]# ./configure 
    [root@ty2 drbd-8.4.2]# make
    [root@ty2 drbd-8.4.2]# make install
    下面两个软件在网上下载的=。=
    [root@ty2 packages]# yum install -y drbd84-utils-8.4.2-1.el6.elrepo.x86_64.rpm 
    [root@ty2 packages]# yum install -y kmod-drbd84-8.4.2-1.el6_3.elrepo.x86_64.rpm 
    

    配置

    vim /etc/drbd.conf
    # You can find an example in  /usr/share/doc/drbd.../drbd.conf.example
    
    #include "drbd.d/global_common.conf";
    #include "drbd.d/*.res";
    
    global { usage-count yes; }
    common { syncer { rate 100M; }}
    resource r0 {
            protocol C;
            startup {
            }
            disk {
                    on-io-error detach;
                    #size 1G;
                    }
            net {
             }
            on ty2.com {
                device /dev/drbd0;
                disk /dev/sdb1;
                address 192.168.63.111:7898;
                meta-disk internal;
                      }
             on ty3.com { 
                  device /dev/drbd0;                                                          
                  disk /dev/sdb1;
                  address 192.168.63.112:7898;                                                                     
                  meta-disk internal;                                                                                  
                  }                                                                                                                        }                                                                    

    在硬盘上新建一个分区并格式化

    fdisk /dev/sdb 
    fdisk -l                #略去中间步骤
    mkfs.ext3 /dev/sdb1
    mkdir /data
    mount /dev/sdb1 /data       测试能否挂载
    umount /data/
    scp /etc/drbd.conf root@ty3.com:/etc/

    在station11和station12上初始化并启动两个系统上的 DRBD 服务:

    dd if=/dev/zero bs=1M count=1 of=/dev/sdb1
    drbdadm create-md r0
    /etc/init.d/drbd start
    drbdadm primary all(报错,执行下面操作)
    0: State change failed: (-2) Need access to UpToDate data
    Command 'drbdsetup 0 primary' terminated with exit code 17
    
    drbdadm -- --overwrite-data-of-peer primary all
    
    mkfs.ext3 /dev/drbd0
    
    mkdir /data
    mount /dev/drbd0 /data
    df -h
    注意:DRBD的英文全称就是Distributed Replicated Block Device(分布式块设备复制),
    个人认为,说白了就是对/dev/sdb1的复制。而且Secondary节点的/dev/drbd0是不能进行挂
    载的
    

    MySQL安装

    [root@ty2 ~]# drbdadm primary r0
    #此时 ty2 为主设备
    [root@ty2 ~]# yum install -y mysql mysql-server mysql-devel
    [root@ty2 ~]# mount /dev/drbd1 /data
    说明:数据库存放数据的目录是drbd分区
    [root@ty2 ~]# mysql_install_db --datadir=/data/ --user=mysql
    

    执行完以上操作后

    umount /data

    设置ty2为从设备

    将ty3设为主设备 然后安装MySQL

    [root@ty3 ~]# yum install -y mysql mysql-server mysql-devel
    [root@ty3 ~]# mount /dev/drbd1 /data
    说明:数据库存放数据的目录是drbd分区
    [root@ty3 ~]# mysql_install_db --datadir=/data/ --user=mysql
    

    重新卸载之后
    再将ty2设为主 ty3 设为从
    因为在heartbeat中 ,我们将ty2 设为了主节点

    重新回到heartbeat的配置文件

    [root@ty2 ~]# vim /etc/ha.d/haresources 
    #最后一行
    ty2.com IPaddr::192.168.63.88/24/eth0 drbddisk::r0 Filesystem::/dev/drbd0::/data::ext3 mysqld

    ty3和ty2 的heartbeat 配置文件以及DRBD配置文件是相同的

    到此为止 配置完成
    中间遇到了许多问题 都通过google 别人的解决方法得以解决

  • 相关阅读:
    octotree神器 For Github and GitLab 火狐插件
    实用篇如何使用github(本地、远程)满足基本需求
    PPA(Personal Package Archives)简介、兴起、使用
    Sourse Insight使用过程中的常使用功能简介
    Sourse Insight使用教程及常见的问题解决办法
    github 遇到Permanently added the RSA host key for IP address '192.30.252.128' to the list of known hosts问题解决
    二叉查找树的C语言实现(一)
    初识内核链表
    container_of 和 offsetof 宏详解
    用双向链表实现一个栈
  • 原文地址:https://www.cnblogs.com/aallenn/p/6700613.html
Copyright © 2020-2023  润新知