双机热备drbd

先来纠正一下自己的错误认识吧,没接触keepalived和heartbeat的时候,道听途说的认为keepalived出现以后就没有必要再用heartbeat了。在仔细学习了这两个传奇人物以后发现:keepavled是专门为高可用的集群而诞生的,而heartbeat生是双机热备的人死是双机热备的死人。
 
  好了,说说本文实现的原理吧。大体来说就是heartbeat+drbd。heartbeat自是不用说,用它来实现资源的统一调度;而drbd就是本文的重头戏。这一个什么东东呢?官方的东东咱就不说了。用咱们自己的话说,就是实现两台机器的两块硬盘的实时完整复制(drbd即磁盘镜像)。它的出现,解决了两台机器做双机时的数据一致性问题。
 
  ok,废话半天,说一下本文的实现环境:
 
  os:ubuntu9.04ip1:192.168.1.11 drbd1ip2:192.168.1.12 drbd2disk:/dev/sdb1(一个8G的分区)通过drbd,挂在每台机器上的sdb1这块分区将成为咱们“存储”。let's go !
 
  ++++++现在开始两台机器配置一样++++++
 
  1.设定hostsvi /etc/hosts192.168.1.11 drbd1192.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.confcommon { 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 startcat /proc/drbd你应该可以看到
 

  注意里面我标注的"Secondary/Secondary"意思是说现在这块盘是从盘,主盘不知道。

++++++现在开始只在drbd1上操作++++++
 
  5)初始化网络硬盘
 
  drbdsetup /dev/drbd0 primary -ocat /proc/drbd
 
  你会发现现在已经是"Primary/Secondary"了,而且已经开始同步硬盘状态。
 
  为了实时的查看同步情况,你可以在drbd1上执行
 
  watch -n1 cat /proc/drbd
 
  同步还在进行
 
  经过一段时间的等待,你会发现成功完成!
 
  同步完成以后,在drbd2上查看硬盘状态
 
  注意磁盘状态是:"Secondary/Primary"
 
  格式化网络磁盘
 
  6)设置drbd开机启动
 
  在两台机器上都执行
 
  chkconfig drbd on
 
  7)手工测试drbd是不是正常工作
 
  在drbd1上建立3个文件
在drbd2上验证结果
 
  ok,我们现在已经确定drbd是正常工作的了。也相信在这么细致的介绍下,你已经熟悉了它是怎么工作了。我们现在有了“网络存储”了。下一步就是让一个东东帮我们调度资源了。简单的几步配置有请heartbeat出场
 
  3.配置heartbeat
 
  1)安装heartbeat
 
  apt-get install heartbeat
 
  2)配置heartbeat
 
  vi /etc/heartbeat/ha.cflogfacility local0keepalive 2deadtime 10auto_failback offbcast eth0node drbd1 drbd2
 
  vi /etc/heartbeat/haresourcesdrbd1 drbddisk::r0 Filesystem::/dev/drbd0::/mnt::ext3
 
  vi authkeysauth 33 md5 abc
 
  chmod 600 authkeys
 
  3)相同的配置复制到drbd2
 
  scp authkeys haresources ha.cf root@192.168.1.12:/etc/heartbeat/
 
  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的资源调度了,有了这位大管家,还有啥实现不了的服务呢?



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值