首页 技术 正文
技术 2022年11月16日
0 收藏 680 点赞 2,808 浏览 3187 个字

【来源:http://rainbird.blog.51cto.com/211214/225541/】

      一直想做基于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      你应该可以看到两台linux完美实现双机热备【来源网络尚未实践】      注意里面我标注的”Secondary/Secondary”意思是说现在这块盘是从盘,主盘不知道。       ++++++现在开始只在drbd1上操作++++++      5)初始化网络硬盘      drbdsetup /dev/drbd0 primary -o      cat /proc/drbd两台linux完美实现双机热备【来源网络尚未实践】            你会发现现在已经是”Primary/Secondary”了,而且已经开始同步硬盘状态。      为了实时的查看同步情况,你可以在drbd1上执行      watch -n1 cat /proc/drbd两台linux完美实现双机热备【来源网络尚未实践】      同步还在进行两台linux完美实现双机热备【来源网络尚未实践】      经过一段时间的等待,你会发现成功完成!两台linux完美实现双机热备【来源网络尚未实践】      同步完成以后,在drbd2上查看硬盘状态两台linux完美实现双机热备【来源网络尚未实践】      注意磁盘状态是:”Secondary/Primary”      格式化网络磁盘两台linux完美实现双机热备【来源网络尚未实践】      6)设置drbd开机启动      在两台机器上都执行      chkconfig drbd on      7)手工测试drbd是不是正常工作      在drbd1上建立3个文件两台linux完美实现双机热备【来源网络尚未实践】      在drbd2上验证结果两台linux完美实现双机热备【来源网络尚未实践】      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/两台linux完美实现双机热备【来源网络尚未实践】      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的资源调度了,有了这位大管家,还有啥实现不了的服务呢?

下一篇: LaTex初学
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,077
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,552
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,400
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,176
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,813
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,896