设为首页 收藏本站
查看: 1909|回复: 1

[经验分享] 两台linux利用heartbeat+drbd 完美实现双机热备

[复制链接]

尚未签到

发表于 2015-9-5 13:11:59 | 显示全部楼层 |阅读模式
一直想做基于linux的双机热备,一直没有时间和机会。一直以为只要做双机热备的实验就必须两台机器外接一个存储。甚至一个月以前在学习keepalived的时候还在琢磨keepalvied去掉哪些条件可以实现双机热备。直到一个月以前设计存储方案的时候部门老大给了一个国外的链接介绍drbd+nfs实现nfs的热备方案的时候,我的眼前一亮,这不就是我一直想做的不依靠存储实现热备的解决方案吗?
      先来纠正一下自己的错误认识吧,没接触keepalived和heartbeat的时候,道听途说的认为keepalived出现以后就没有必要再用heartbeat了。在仔细学习了这两个传奇人物以后发现:keepavled是专门为高可用的集群而诞生的,而heartbeat生是双机热备的人死是双机热备的死人。
      好了,说说本文实现的原理吧。大体来说就是heartbeat+drbd。heartbeat自是不用说,用它来实现资源的统一调度;而drbd就是本文的重头戏。这一个什么东东呢?官方的东东咱就不说了。用咱们自己的话说,就是实现两台机器的两块硬盘的实时完整复制(drbd即磁盘镜像)。它的出现,解决了两台机器做双机时的数据一致性问题。
      ok,废话半天,说一下本文的实现环境:
      os:ubuntu9.04
      ip1:192.168.1.11 drbd1
      ip2:192.168.1.12 drbd2
      disk:/dev/sdb1(一个8G的分区)
      通过drbd,挂在每台机器上的sdb1这块分区将成为咱们“存储”。let's go !
++++++现在开始两台机器配置一样++++++
      1.设定hosts
      vi /etc/hosts
      192.168.1.11 drbd1
      192.168.1.12 drbd2
      注意:比如在1.11这台机器上。drbd1是你执行hostname命令看到的,而不是随手一写的哟:)
      2.安装并配置drbd
      1).安装drbd。
      你可以去http://oss.linbit.com/drbd/下载最新的版本。本文为了方便直接从ubuntu的源进行安装
      apt-get install drbd8-utils
      2).创建配置文件
      如果用apt-get或者yum的方式安装的话,会默认创建配置文件,而编译安装则不会。不管直接清空或改名,写入以下内容。
      vi /etc/drbd.conf
      common {
          syncer { rate 10M; }           #速率
      }
      resource r0 {
          protocol C;
          disk { on-io-error detach; }
          on drbd1 {                     #drbd1为第一台机器的机器名
              device /dev/drbd0;         #创建的虚拟资源
              disk /dev/sdb1;            #实际的物理分区,一定要注意,是一个单独的分区,而且是未经格式化的
              address 192.168.1.11:7788; #第一台机器的ip地址,及通讯端口
              meta-disk internal;        #类型,局域网
          }   
          on drbd2 {
              device /dev/drbd0;
              disk /dev/sdb1;
              address 192.168.1.12:7788;
              meta-disk internal;
          }   
      }
      3)创建资源
      drbdadm create-md r0 #r0为刚才配置文件里的资源名
      会提示三个疑问,如果你英文还可以的话,可以阅读一下,不然的话,直接回车。在终点你会看到
      success
      :)
      4)启动drbd服务
      /etc/init.d/drbd start
      cat /proc/drbd
      你应该可以看到
DSC0000.jpg
      注意里面我标注的"Secondary/Secondary"意思是说现在这块盘是从盘,主盘不知道。

      ++++++现在开始只在drbd1上操作++++++
      5)初始化网络硬盘
      drbdsetup /dev/drbd0 primary -o
      cat /proc/drbd
DSC0001.jpg       
      你会发现现在已经是"Primary/Secondary"了,而且已经开始同步硬盘状态。
      为了实时的查看同步情况,你可以在drbd1上执行
      watch -n1 cat /proc/drbd
DSC0002.jpg
      同步还在进行
DSC0003.jpg
      经过一段时间的等待,你会发现成功完成!
DSC0004.jpg
      同步完成以后,在drbd2上查看硬盘状态
DSC0005.jpg
      注意磁盘状态是:"Secondary/Primary"
      格式化网络磁盘
DSC0006.jpg
      6)设置drbd开机启动
      在两台机器上都执行
      chkconfig drbd on
      7)手工测试drbd是不是正常工作
      在drbd1上建立3个文件
DSC0007.jpg
      在drbd2上验证结果
DSC0008.jpg
      ok,我们现在已经确定drbd是正常工作的了。也相信在这么细致的介绍下,你已经熟悉了它是怎么工作了。我们现在有了“网络存储”了。下一步就是让一个东东帮我们调度资源了。简单的几步配置有请heartbeat出场
      3.配置heartbeat
      1)安装heartbeat
      apt-get install heartbeat
      2)配置heartbeat
      vi /etc/heartbeat/ha.cf
      logfacility     local0
      keepalive 2
      deadtime 10
      auto_failback off
      bcast   eth0
      node drbd1 drbd2

      vi /etc/heartbeat/haresources
      drbd1 drbddisk::r0 Filesystem::/dev/drbd0::/mnt::ext3

      vi authkeys
      auth 3
      3 md5 abc

      chmod 600 authkeys
      3)相同的配置复制到drbd2
      scp authkeys haresources ha.cf root@192.168.1.12:/etc/heartbeat/
DSC0009.jpg
      4)确保服务都是正常运行的
      /etc/init.d/drbd start
      /etc/init.d/heartbeat start

      5)切换测试
      通过cat /proc/drbd查看drbd的状态或者mount查看/mnt是不是已经挂载确定资源所在的机器。然后在那台机器的/mnt新建立一些文件并停掉那台机器上的heartbeat。看另一台机器上/mnt是不是被自动挂载了呢?里面是不是有刚创建的文件?good luck!

      总结:基本两台linux实现的双机热备到此就要结束了。回顾一下环境:两台机器;两块独立的分区,最好是一样大,只分区,而没有格式化;linux操作系统;drbd网络磁盘;heartbeat实现资源调度;好像就这么多东西吧。可能您要说了,看完这篇文章,一点实际意义都没有,因为只是实现了共享磁盘。哈哈,我要说,要想发挥威力就要仔细的看一下heartbeat的资源调度了,有了这位大管家,还有啥实现不了的服务呢?  本文出自 “rainbird” 博客,转载请与作者联系!

运维网声明 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-109760-1-1.html 上篇帖子: 使用seconds_behind_master和mk-heartbeat 检查MySQL数据库主从延时 下篇帖子: Heartbeat,来点真的
累计签到:2 天
连续签到:1 天
发表于 2015-9-6 00:26:27 | 显示全部楼层
好东西 支持下

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

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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