DRBD 是由内核模块和相关脚本而构成,用以构建高可用性的集群。其实现方式是通过网络来镜像整个设备。您可以把它看作是一种网络RAID.

Drbd 负责接收数据,把数据写到本地磁盘,然后发送给另一个主机。另一个主机再将数据存到自己的磁盘中。其他所需的组件有集群成员服务,如TurboHA 或 心跳连接,以及一些能在块设备上运行的应用程序

drbd1:192.168.6.106
drbd2:192.168.6.107

OS:ubuntu server 8.04.1
软件:drbd-8.2.6.tar.gz

分别在两台机器安装,我的机器分区是用LVM来管理的
所以,我给两台机器都分了一个G,在/dev/www/www~
1。安装drbd所需要的,因为DRBD编译在内核里的,所以也要安装linux-headers
#uname -r 看下内核版本
2.6.24-19-serve  我的内核版本
#apt-get install  flex  linux-headers-2.6.24-19-server
2.编译安装drbd
#tar zxvf drbd-8.2.6.tar.gz
#cd drbd-8.2.6
#make clean    清除以前历史记录
#make KDIR=/usr/scr/linux-headers-2.6.24-19-server  编译+内核路径
#make install   安装
#groupadd haclient    建立组不然会提示警告
#chgrp haclient /sbin/drbdsetup
#chmod o-x /sbin/drbdsetup
#chmod u+s /sbin/drbdsetup

3.修改配置文件
#mv /etc/drbd.conf /etc/drbd.conf.bak 备份原配置文件
#vim /etc/drbd.conf
贴入
common {
# 设置主备节点同步时的网络速率最大值,单位是字节.
syncer { rate 10M; }
}
resource r0 {
# 使用协议C.表示收到远程主机的写入确认后,则认为写入完成.
protocol C;
disk { .-io-error detach; }
# 每个主机的说明以"on"开头,后面是主机名.在后面的{}中为这个主机的配置.
on drbd1 {
device /dev/drbd0;
disk /dev/www/www;   (如果是新家的硬盘就写 /dev/sdb1;/dev/sdc...)
address 192.168.6.106:7788;
meta-disk internal;
}
on drbd2 {
device /dev/drbd0;
disk /dev/www/www;   (如果是新家的硬盘就写 /dev/sdb1;/dev/sdc...)
address 192.168.6.107:7788;
meta-disk internal;
}
}
我的是很简单的,为了测试,还需要大家根据自己的需要自己修改~
好了两台机器都写完配置文件后,在drbd1和drbd2上分别输入命令
#drbdadm create-md r0  “r0”是我们在drbd.conf里定义
弹出的信息,敲回车,如果drbd.conf配置好的话,有的信息是不会弹出的。

现在我们可以启动DRBD了,分别在两台主机上执行: 
[root@drbd1 local]#/etc/init.d/drbd start
[root@drbd2 local]#/etc/init.d/drbd start

[root@drbd1 ~]# cat /proc/drbd
version: 8.0.11 (api:86/proto:86)
SVN Revision: 2713 build by
root@drbd1
, 2008-06-27 14:07:14 1: cs:Connected st:Secondary/Secondary ds:Inconsistent/Inconsistent C r---
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0
        resync: used:0/31 hits:0 misses:0 starving:0 dirty:0 changed:0
        act_log: used:0/257 hits:0 misses:0 starving:0 dirty:0 changed:0
”/proc/drbd”中显示了drbd当前的状态.第一行的st表示两台主机的状态,都是”备机”状态.
ds是磁盘状态,都是”不一致”状态.
这是由于,DRBD无法判断哪一方为主机,以哪一方的磁盘数据作为标准数据.所以,我们需要初始化

一个主机.在drbd1上执行: 
[root@drbd1 local]#drbdsetup /dev/drbd0 primary -o

 主备机状态分别是”主/备”,主机磁盘状态是”实时”,备机状态是”不一致”.
在第3行,可以看到数据正在同步中,即主机正在将磁盘上的数据,传递到备机上.现在的进度是[>...................] sync'ed:  0.4% (1040316/1040316)K
稍等一会,在数据同步完后,再查看一下drbd1的DRBD状态: 

磁盘状态都是”实时”,表示数据同步完成了.
你现在可以把主机上的DRBD设备挂载到一个目录上进行使用.备机的DRBD设备无法被挂载,因为它是
用来接收主机数据的,由DRBD负责操作.
在drbd1执行
root@drbd1:~# mkfs.ext2 /dev/drbd0  (格式化)
root@drbd1:~# mount /dev/drbd0 /mnt  (挂载到/mnt 目录)
root@drbd1:~# cd /mnt       
root@drbd1:/mnt# touch aaa
root@drbd1:/mnt# ls
aaa  lost+found
然后在 drbd2 上执行
root@drbd2:~#/etc/init.d/drbd stop
Stopping all DRBD resources.
root@drbd2:~# mount /dev/drbd0 /mnt
root@drbd2:~# cd /mnt
root@drbd1:~# ls
aaa  lost+found
可以看到,在主机drbd1上产生的文件aa,也完整的保存在备机drbd2的DRBD分区上.
这就是DRBD的网络RAID-1功能. 在主机上的任何操作,都会被同步到备机的相应磁盘分区上,达到数据备份的效果.
=====================================================================
DRBD的主备机切换有时,你需要将DRBD的主备机互换一下.可以执行下面的操作:
在主机上,先要卸载掉DRBD设备
root@drbd1~# umount /mnt
将主机降级为”备机”
root@drbd1~# drbdadm secondary r0
root@drbd1~# cat /proc/drbd
version: 8.0.11 (api:86/proto:86)
SVN Revision: 2713 build by
root@drbd1
, 2008-06-27 14:07:14
1: cs:Connected st:Secondary/Secondary ds:UpToDate/UpToDate C r---
    ns:497972 nr:0 dw:28 dr:498006 al:2 bm:36 lo:0 pe:0 ua:0 ap:0
        resync: used:0/31 hits:31100 misses:34 starving:0 dirty:0 changed:34
        act_log: used:0/127 hits:26 misses:2 starving:0 dirty:0 changed:2
现在,两台主机都是”备机”.
在备机drbd2上,将它升级为”主机”.  [root@drbd2 mnt]# drbdadm primary r0
root@drbd2~# cat /proc/dr
drbd    driver/
[root@drbd2 mnt]# cat /proc/drbd
version: 8.0.11 (api:86/proto:86)
SVN Revision: 2713 build by
root@drbd2
, 2008-06-27 14:11:24 1: cs:Connected st:Primary/Secondary ds:UpToDate/UpToDate C r---
    ns:0 nr:16 dw:16 dr:0 al:0 bm:2 lo:0 pe:0 ua:0 ap:0
        resync: used:0/31 hits:6 misses:2 starving:0 dirty:0 changed:2
        act_log: used:0/127 hits:0 misses:0 starving:0 dirty:0 changed:0
现在drbd2成为主机了。
===============================================================

特别注意,我在测试的时候发生一个问题,就是我做双机互备的时候,先把/dev/www/www 格式化总是出错,后来从新做,然后格式化的/dev/drbd0就没有错误`所以大家做的时候,不要先格式化。在有就是两个drbd用的盘一样的同等大小!

转载于:https://blog.51cto.com/deidara/105875

ubuntu drbd双机互备相关推荐

  1. mysql双机互备linux成功的_配置MySQL双机热备 - Linux服务器MySQL双机热备份试验_数据库技术_Linux公社-Linux系统门户网站...

    二.配置MySQL双机热备 传统模式都是采用MySQL双机互备,至于双机热备我搜索了大量的精华帖子都没有发现安装配置文档.故我的一个想法产生了:当建立新的数据库时,默认会建立到/usr/local/m ...

  2. 双机热备、双机互备、双机双工之间的区别

    双机热备.双机互备.双机双工之间的区别 双机热备=主机+备机 简单理解:主要应用运行于主机,备机即备用机器 备机不工作,主机出现故障时备机接管主机的所有工作 备机不运行应用,处于等待状态 两台serv ...

  3. hp rx6600两台oracle双机互备服务器其中一台经常自动关机的故障诊断

    hp rx6600两台oracle数据库双机互备服务器其中一台经常自动关机,刚好在做巡检时遇到了就顺便检查一下原因.检查经常出故障的一台小机日志信息如下: rx6600-1:[/]#cat /var/ ...

  4. 双机热备、双机互备和双机双工,这三者之间的区别

    双机热备=主机+备机 简单理解:主要应用运行于主机,备机即备用机器 双机互备=主机(备机)+备机(主机) 简单理解:部分应用运行于主机,部分应用运行于备机 双机双工=主机+主机 简单理解:两台机器同时 ...

  5. 双机互备是什么意思?双机互备就是双机热备吗?

    看到不少小伙伴在问,双机互备是什么意思?双机互备就是双机热备吗?今天我们就来一起简单了解了解吧! 双机互备是什么意思?双机互备就是双机热备吗? 双机互备是指在双机热备的基础上,两个相对独立的应用在两台 ...

  6. mysql两台服务器怎么做数据同步_两台mysql服务器实现双机互备配置并测试数据同步...

    对于实现两台机子的互备配置,本文作出了详细的介绍,之后的测试数据同步,在10.168.1.44服务器数据库里修改一条数据, 可以看到数据已经同步过来了.反过来,修改10.168.0.126的数据,也可 ...

  7. mdb实时同步mysql_Mysql的实时同步 - 双机互备

    Mysql的实时同步 - 主从模式. 设置方法: 步一  在主服务服上建立  同步用的用户并给予 权限 GRANT REPLICATION SLAVE ON *.* TO backup@'%' IDE ...

  8. Nginx实现前后端分离(springboot+vue)+双机互备

    背景介绍 项目采用springboot+vue开发,之 前项目布署时,都是采用pom中配置,把vue打包的dist文件copy到springboot项目中resource/static下做的,这样每次 ...

  9. 磁盘阵列,双机热备,负载均衡

    磁盘阵列,双机热备,负载均衡,这三个东西,中间并没有什么联系,不过现在的大型系统,在软件之前,一般都会做这三种应用 1.磁盘阵列:说白了就是硬盘集群,每个机器都可以访问,放在这个集群上的数据,不会因为 ...

最新文章

  1. 如何将自定义代码生成TVM
  2. SQL进行排序、分组、统计的10个新技巧
  3. 在线编程题之“明明的随机数”
  4. 阿里2500万美元战略投资“神工007”,天猫全面布局建材家居新零售
  5. 火箭技术术语_多物理场仿真优化火箭发动机增材制造工艺
  6. android系统特效详解和修改方法
  7. SVG图片以 https 链接的方式展示在页面上,并且可继承父类的颜色大小(类似阿里巴巴iconfont)
  8. python中星号数字乘字符串_Python系列-数字和字符串
  9. spring:我是如何解决循环依赖的?
  10. android design包控件,Android Design包之TextInputLayout和TextInputEditText的组合使用【原创】...
  11. 超星高级语言程序设计实验作业 (实验03 模块化程序设计)
  12. 车辆路径问题与相关算法总结
  13. AutoJs学习-抖音自动评论
  14. 从零到一学Mycat:入门及配置文件详解
  15. 【折腾服务器 1】妖板 Intel N5105 + i226 主板安装 ESXi 7.0 教程
  16. 【无标题】微信小程序:强制更新(测试编译)
  17. u盘插在电脑上灯亮没有反应_u盘插电脑灯在闪但是没反应怎么办
  18. HDLBites学习笔记之Error (10200): Verilog HDL Conditional Statement error at top_module
  19. 1 简历该怎么写?注意事项--绝密,程序员大厂面试求职大揭秘!
  20. 创业故事:记YouTube创始人陈士骏,选择满意工作,让自己人生无悔

热门文章

  1. mysql集群之MHA简单搭建
  2. 获取系统当前时间(多语言版)
  3. 软件过程评估和软件能力评价之间的差异
  4. 直接从Windows7RC版升级安装RTM版本的小窍门
  5. BMIP002协议介绍
  6. 物联网部署的5个阶段
  7. Establishing SSL connection without server's ident
  8. 【BZOJ】3566: [SHOI2014]概率充电器
  9. Python 第三方模块安装出现的问题和解决方案.
  10. 进程间通信之-信号signal--linux内核剖析(九)