设为首页 收藏本站
查看: 1236|回复: 0

[经验分享] 【HA】开源版HeartBeat + DRBD(分布式存储)+MySql

[复制链接]

尚未签到

发表于 2019-1-7 13:14:28 | 显示全部楼层 |阅读模式
  高可用版本下载网站: linux-ha.org
  respan ~ [判断ping的短网切换]
  drbd 分布式复制块设备


                ***********************************************
               ***********HA(高可用集群)[开源版]***************
                ***********************************************
一.安装相应的软件及其简介
      目前版本(RH6.5),安装 heartbeat-3.0.4-2.el6.x86_64.rpm,
              heartbeat-devel-3.0.4-2.el6.x86_64.rpm,
               heartbeat-libs-3.0.4-2.el6.x86_64.rpm,
               ldirectord-3.9.5-3.1.x86_64.rpm

    主要文件(显示路径):/etc/ha.d/README.config  [可用 rpm -q heartbeat-d 查看下面所示文件绝对路径]
        They are:
        ha.cf       Main configuration file
        haresources Resource configuration file
        authkeys    Authentication information

二.依次更改/usr/share/doc/heartbeat-3.0.4/~  下的上述文件,并且完成后cp到/etc/ha.d/ 下
  (1)vim /usr/share/doc/heartbeat-3.0.4/ha.cf         [基本类]
      [行标]
        48 keepalive 2                     [心跳互传等待时间:2S]
        56 deadtime 30                     [死亡确认时间:30S]
        61 warntime 10                     [警告时间:10]
        71 initdead 60                     [资源初始化:60]【一个节点机死亡,另一个节点机接管资源并开启的时间】
    76 udpport 1060                     [设定节点:1060]【每个节点机这个必须不同】
        91 bcast eth0                      [单波传播方式,设备eth0]
        211 node   server1.example.com            [写入所用节点机的主机名,必须是主机名,而且谁先谁主,其次为辅]
       212 node   server2.example.com               
       220 ping 172.25.254.250                 [ping,检测主机是否网通,若不同则启动策略转移]
       253 respawn hacluster/usr/lib64/heartbeat/ipfail    [所使用64版本]
       259 apiauth ipfail gid=haclientuid=hacluster        [开启hacluster用户]

   (2)vim/usr/share/doc/heartbeat-3.0.4/haresources        [策略加载类]
    150 server1.example.comIPaddr::172.25.254.168/24/eth0 httpd
    [主机名,加载IPaddr 文件,VIP(虚拟IP设置),服务(httpd)]【IPaddr可执行文件在/etc/ha.d/resource.d/】

  (3)/usr/share/doc/heartbeat-3.0.4/authkeys           [认证类]
    1.首先 chmod 600authkets,所小权限
        2.其次vim
      [行标]
          23 auth1                      [开启明文认证]
        24 crc     
  (4)测试,开启heartbeat(两个都开启) 服务,看httpd服务是否能正确运行(在虚拟机上可能比较慢,需要等待),curl 172.25.254.168 的显示内容;并且关闭heartbeat 服务,看其是否能自动切换节点。

三.添加 drbd(分布式复制块设备存储)
  (1)所用软件下载
        drbd-8.4.2.tar.gz(tar -zxf 解压);
                yum install -y gcc
  (2)执行./configure --enable-spec 和 ./configure --enbale-spec--with-km,
      (a)按照提示(所需) 依次下载软件(flex,rpm-build,等)
       生成drbd.spec,drbd-km.spec,drbd-kernel.spec 等文件,用来制作rpm包
  (3)rpmbuild -bb drbd.spec 和 rpmbuild -bbdrbd-km.spec    按照提示将压缩包放到相应位置,在进行rpmbuild操作。
         cp drbd-8.4.2.tar.gz ~/rpmbuild/SOURCES/
       执行完上述操作之后会在 ~/rpmbuild/RPMS/x86_64 下生成8个drbd-*包,安装(rpm -ivh *)它们,且发送给其它节点机并安装。
  (4)**在/etc/brdb.d/ 中编辑自定义文件,此文件非常重要,即drbd服务所加载的服务机及其向关信息。
       (a)在配置文件之前,向每个虚拟机添加两块4G的虚拟网卡
       (b) vim/etc/brdb.d/example.res
         resource example {
         meta-disk internal;
     device /dev/drbd1;
     syncer {
         verify-alg sha1;
         }
         on server1.example.com {
     disk /dev/vdb;
     address 172.25.254.161:7789;
     }
     on server2.example.com {
     disk /dev/vdb;
     address 172.25.254.162:7789;
     }
      (c)scp example.com -->172.25.254.162
      (d)每一个节点机都要进行drbd服务添加,drbdadm create-md example,并且开启drbd服务
      (e)设置主/备机,并且进行强行同步存储内容
     drbdadm primary/secondary example --force  [那个机子操作此命令那个为主/辅,并且强行同步信息]
         watch cat /proc/drbd               [可以查看同步内容的进程]
      (f)同步好了之后制作文件系统并且挂载(mkxfs.ext4),这样/dev/drbd 设备的内容就可以同步了。
          在挂载设备时,首先要设置当前机为主,再进行mount 操作
      drbdadm primary/secondary example
   
四.添加 mysql数据库(存储),并完成节点服务异常时,自动转移服务到另一个节点。

  (1)完善挂载mysql点
       a.在主节点中下载mysql-server
         首先开启mysql   /etc/init.d/mysqld start
         挂载mnt,并且删除/mnt 下的所有内容
         关闭mysql(防止产生.sock文件 防止正常开启),并且将/var/lib/mysql/ 中的内同考到/mnt 下
     挂载 mount /dev/drbd1/var/lib/mysql/,进入/var/lib/mysql,将其主组都该为 mysql(chown mysql.mysql ~ -R)
       b.此时,切换主辅 挂载 /dev/drbd1/ 到 /var/lib/mysql 开启mysqld,就可以达成mysql 数据库数据共享了。
  (2)设置服务自动挂载,并且基于heartbeat 的服务转移的策略
       配置/etc/ha.d/haresources
     [行标]
      150 server1.example.comIPaddr::172.25.254.168/24/eth0 drbddisk::exampleFilesystem::/dev/drbd1::/var/lib/mysql::ext4
          mysqld
         【主机名,VIP,加载drbd example文件,挂载文件系统/dev/drbd1 到 /var/lib/mysql ext4本地文件系统,mysql服务】
  (3)测试
    前提,关闭两台主机的mysql服务,将两个主机的都设为辅助机(cat /proc/drbd),关闭两个主机的heartbeat 服务。  
   
        a.开启两台节点机的heatbeat 服务,节点1可以进入mysql服务,并且节点1为主机。
    b.主机1关闭heartbeat 服务,节点2接管mysql服务,并且节点2改变为主机。
        c.开启节点1,服务回到节点1上,并且节点1转为主机,节点2转为辅机
        d.关闭节点机1,节点机2接管服务,开启后,服务回到主机1。反之亦然
        e.当服务在节点机1上运行时,使得节点机1网卡down,节点1 mysql 能登入,在 cat /proc/drbd 信息中会显示对方为DUnknown
          这时,节点2上的heartbeat会将服务在节点2上启动,但是会因为接受不到主节点机的drbd 和 mysql 信息 其动不了drbd mysql服务,
          cat /proc/drbd 中会显示对方为 DUnknown
          [因为,节点机1网络故障。节点机2 找不到节点机1 节点机2的 heartbeat 就会启动节点2,若你重新启动节点2上的 heatbeat ,
      那么节点机2会一至卡住不动,请求主节点的drbd 和 mysql 策略资源,直到主节点修复好网络,但是由于回转模式,当主机网络修复好时,策略资源
      会重新回到主节点机上(节点机1)]
  (4)小拓展,当网络出现问题cat /proc/drbd 时,若两台机子都 Unkown 对方 除了重新制作新的drbd 并同步 这种毁灭性的方法,其时还可以恢复并同步数据。
    在辅机 执行drbdadm disconnect example  [使辅机不连接 example]
              drbdadm ----discard-my-data connect example  [丢掉为的drbd数据,连接 example]
    稍等片刻  cat /proc/drbd    正确信息就会出现在本机 和 主节点机上
  




        

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-660375-1-1.html 上篇帖子: 高可用集群技术之heartbeat应用案例详解(二) 下篇帖子: Linux集群系列之十——高可用集群之heartbeat安装配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表