drbd 工作原理
DRBD是一种块设备,可以被用于高可用(HA)之中.它类似于一个网络RAID-1功能.当你将数据写入本地 文件系统时,数据还将会被发送到网络中另一台主机上.以相同的形式记录在一个文件系统中。 本地(主节点)与远程主机(备节点)的数据可以保证实时同步.当本地系统出现故障时,远程主机上还会 保留有一份相同的数据,可以继续使用.在高可用(HA)中使用DRBD功能,可以代替使用一个共享盘阵.
因为数据同时存在于本地主机和远程主机上,切换时,远程主机只要使用它上面的那份备份数据,
就可以继续进行服务了。
两台机器的环境如下:
hostname:srv5.localdomain
192.168.8.5
hostname:srv6.localdomain
192.168.8.6

准备环境

在两台机器上各新加一块磁盘
fdisk -l 列出所有的磁盘和分区的情况
在实验中可以看到新加的磁盘还没有分区
Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

对新加的磁盘分区
[root@srv5 ~]# fdisk /dev/sdb

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e
Partition number (1-4): 1
First cylinder (1-130, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-130, default 130):
Using default value 130

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (1-130, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-130, default 130):
Using default value 130

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
加载磁盘信息
partprobe /dev/sdb
cat /proc/partions

安装和配置DRBD

1,两台机器上分别安装drbd
yum -y install kmod-drbd83 drbd83
检查是否安装成功
[root@srv5 yum.repos.d]# modprobe -l | grep -i drbd
/lib/modules/2.6.18-53.el5/weak-updates/drbd83/drbd.ko
安装完成后再/sbin 目录下有drbd的命令文件, 在/etc/init.d/目录下有drbd启动脚本
[root@srv5 yum.repos.d]# ls /sbin/drbd*
/sbin/drbdadm  /sbin/drbdmeta  /sbin/drbdsetup

2,配置drbd
2.1,在两台机器的hosts文件中添加如下的内容:
192.168.8.5 srv5.localdomain
192.168.8.6 srv6.localdomain

2.2,DRBD运行的时候要读取/etc/drbd.conf文件,
将文件的内容保存为如下内容:
include "drbd.d/global_common.conf";
include "drbd.d/*.res";

修改global_common.conf文件内容如下:

global {usage-count no;
}
common {protocol C;startup {wfc-timeout 15;  degr-wfc-timeout 15;  outdated-wfc-timeout 15;  }disk {on-io-error detach;  fencing resource-only;  }net {cram-hmac-alg sha1;  shared-secret "123456";   }syncer {rate 100M;  }
}

创建一个xserver.res文件内容如下:

resource xserver {   meta-disk internal;   device /dev/drbd0; #device指定的参数最后必须有一个数字,用于global的minor-count,#否则会报错。device指定drbd应用层设备。 on srv5.localdomain{    #注意:drbd配置文件中,机器名大小写敏感!address 192.168.8.5:7789;   disk /dev/sdb5;    }   on srv6.localdomain {   address 192.168.8.6:7789;   disk /dev/sdb5;  }
}

2.3,假设上面的配置是在92.168.8.5上做的,拷贝上面配置好的3个文件到92.168.8.6上
scp /etc/drbd.conf 192.168.8.6:/etc/drbd.conf
scp /etc/drbd.d/* 192.168.8.6:/etc/drbd.d/

3,在两台机器上创建drbd元数据信息:
[root@srv5 ~]# drbdadm create-md all
Writing meta data...
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created.

4,启动服务,
4.1,在主节点92.168.8.5上
service drbd start
在备份节点92.168.8.6上
service drbd start
在两台机器上用下面的命令drbd-overview或者cat /proc/drbd查看,发现都是Secondary 备份状态
[root@srv5 ~]# drbd-overview
  0:xserver  Connected Secondary/Secondary Inconsistent/Inconsistent C r-----
[root@srv6 ~]# cat /proc/drbd
version: 8.3.15 (api:88/proto:86-97)
GIT-hash: 0ce4d235fc02b5c53c1c52c53433d11a694eab8c build by mockbuild@builder17.centos.org, 2013-03-27 16:04:08
 0: cs:Connected ro: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 ep:1 wo:b oos:1044092

4.2,在主节点92.168.8.5上执行下面的命令让其成为主节点
drbdadm -- --overwrite-data-of-peer primary all
然后再看状态:
[root@srv5 ~]# drbd-overview
  0:xserver  SyncSource Primary/Secondary UpToDate/Inconsistent C r---n-
        [=============>......] sync'ed: 70.6% (310268/1044092)K
[root@srv5 ~]# drbd-overview
  0:xserver  SyncSource Primary/Secondary UpToDate/Inconsistent C r---n-
        [================>...] sync'ed: 89.1% (117372/1044092)K
[root@srv5 ~]# drbd-overview
  0:xserver  Connected Primary/Secondary UpToDate/UpToDate C r-----

4.3,将/dev/drbd0格式化并挂载
在主节点192.168.8.5上执行下面的命令
mkfs.ext3 /dev/drbd0
mkdir /xserver-storage
mount /dev/drbd0 /xserver-storage
4.4,测试同步
在主节点192.168.8.5上执行下面的命令
cd /xserver-storage
echo "a file created in server5" > testfile
在备份节点192.168.8.6上执行下面的命令
mkdir /xserver-storage
mount /dev/drbd0 /xserver-storage
#mount 会出错,因为mount只能在Primary一端使用
在主节点192.168.8.5上执行下面的命令变成备份节点
umount /xserver-storage
drbdadm secondary all
在备份节点192.168.8.6上执行下面的命令变为主节点,可以看到192.168.8.5同步过来的内容
drbdadm primary all
mount /dev/drbd0 /xserver-storage
less /xserver-storage/testfile
可以查看到文件的内容为"a file created in server5"
在192.168.8.6新建一个文件
echo "a file created in server6" > testfile2
再将192.168.8.5变为主节点后mount可以看到testfile2的内容也同步了。

在Linux上配置DRBD部署相关推荐

  1. 在LINUX上配置oracle ASMLib的多路径磁盘

    在LINUX上配置oracle ASMLib的多路径磁盘 适用于: Oracle Server - Enterprise Edition - Version: 10.2.0.1 Linux Kerne ...

  2. linux没有jre文件夹,linux上配置jdk时,java命令提示没有此文件或文件夹的解决方法...

    linux上配置jdk时,java命令提示没有此文件或文件夹的解决方法 出现这个问题可能有以下几种原因: 1.对该文件没有执行的权限. 2.我们的机器是64位的,而下载的jdk是32位的. 我就是后一 ...

  3. Linux 上配置网络设备命令举例

    Linux 上配置网络设备命令举例 PS:本来内容来自http://www.ibm.com/developerworks/cn/linux/1310_xiawc_networkdevice/ 以 Re ...

  4. linux上配置zabbix并设置企业微信,机器人以及自主告警

    linux上配置zabbix并设置企业微信,机器人以及自主告警 配置lamp 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 linux上配置zabbix并设置企业微信,机 ...

  5. git自动部署代码到服务器windows,Jenkins-在windows上配置自动化部署(Jenkins+Gitlab+IIS)...

    Jenkins-在windows上配置自动化部署(Jenkins+Gitlab+IIS) web部署样例 windows服务部署样例 系统备份 在服务器上创建后缀名为.ps1的文件,例:BackUpD ...

  6. ASP.NET Core网站使用Nginx布署Linux上配置和发布及相关代码

    本文主要介绍使用ASP.NET Core开发的网站,运行布署在Linux上的方法,包括.NET Core SDK找安装,项目的发布和网站运行及开机自动启动及Nginx相关配置方法 . 原文地址:ASP ...

  7. Linux 上配置 SQL Server Always On Availability Group

    SQL Server Always On Availability Group 配置 步骤: 配置三台 Linux 集群节点 创建 Availability Group 配置 Cluster Reso ...

  8. Linux上配置使用iSCSI详细说明

    本文详细介绍iSCSI相关的内容,以及在Linux上如何实现iSCSI. 第1章 iSCSI简介 1.1 scsi和iscsi 传统的SCSI技术是存储设备最基本的标准协议,但通常需要设备互相靠近并用 ...

  9. Linux上安装Java部署项目必要软件

    目录 Linux上软件安装常用软件 1.在Linux上安装JDK: 2.在Linux上安装Mysql: 3.在Linux上安装tomcat: 4.在Linux上安装redis Linux上软件安装常用 ...

最新文章

  1. c语言程序的实质,C语言_printf中的%p的实质
  2. [Android工具]更新音乐下载软件,MP3音乐无损音乐下载器
  3. python 自动化办公 uibot_使用 Python 扩展丰富 UiBot 的功能及在 UiBot 中引用 Python 模块...
  4. 升级安装linux ssh 升级安装
  5. windows切换git账号
  6. 转usb驱动cmw500 ni_支持USB Type-C接口的外置蓝光驱动器IO Data BRP-UT6 / MC2本月发售...
  7. 复习一下,免得下次面试又栽在沟里~
  8. 虚拟资源拳王公社:上班族做什么兼职副业赚钱,大学生最适合做什么兼职副业
  9. Srping MVC中Controller的void方法声明误区
  10. react native android 通知栏
  11. 计算机联锁设备的操作,计算机联锁系统设备的键盘操作
  12. MAC下Charles的破解版
  13. thinkphp集成editormd一系列实战
  14. 软件测试国赛考试文档,GZ-2019026 软件测试赛项规程-2019年国赛-高职组 - 图文
  15. 解决阿里云FTP 227 Entering Passive Mode
  16. 我学习python的体会
  17. 自制COCO 实例分割dataset并测试效果(从采集到测试)
  18. 标准清洗槽中的质量参数的监控方法
  19. 深度学习 如何查看 GPU使用情况
  20. 使用uniapp开发社区交友网站的项目教程

热门文章

  1. AT command
  2. 【学习笔记】网关 路由
  3. 教学一体机属于计算机的什么应用,教学一体机被广泛应用
  4. OCA,OCP,OCM傻傻分不清?
  5. pychar调试报错:Cython extension speeds up Python debugging
  6. maven BUILD FAILURE的解决办法
  7. Springboot使用Actuator健康监控以及可视化界面
  8. 查看Git本地安装位置
  9. 英语新闻app——TagLayout+ViewPager+Fragment实现分类切页功能
  10. XML的两种常见格式