阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

DRBD简介 安装、编译报错解决 DRBD的配置、初始化及同步、主备模型

435次阅读
没有评论

共计 8582 个字符,预计需要花费 22 分钟才能阅读完成。

DRBD 简介 安装、编译报错解决 DRBD 的配置、初始化及同步、主备模型

主机环境 RedHat6.5 64 位
实验环境 服务端 1 ip 172.25.25.111 主机名:server1.example.com  drbd
    服务端 2 ip172.25.25.112  主机名:server2.example.com    drbd

安装包 drbd-8.4.3.tar.gz
防火墙状态:关闭
 
1.Debd 的简介
1. 基本信息
Distributed Replicated Block Device(DRBD) 是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。
DRBD 的位置处于文件系统以下,比文件系统更加靠近操作系统内核及 IO 栈。
2. 工具
drbdadm: 高级管理工具,管理 /etc/drbd.conf,向 drbdsetup 和 drbdmeta 发送指令,
drbdsetup: 配置装载进 kernel 的 DRBD 模块,平时很少直接用
drbdmeta: 管理 META 数据结构,平时很少直接用。
在 DRBD 中,资源是特指某复制的存储设备的所有方面。包括资源名称、DRBD 设备 (/dev/drbdm,这里 m 是设备最小号,最大号可到 147)、磁盘配置(使本地数据可以为 DRBD 所用)、网络配置(与对方通信)
每个资源有个角色,是 Primary 或 Secondary,下面简称 ” 主 ” 和 ” 备 ”
主角色的 DRBD 设备可以不受限制的读和写,比如创建和映射文件系统、对于块设备的 raw 或直接 IO 访问。
备角色的 DRBD 设备接受来自对方的所有修改,但是不能被应用程序读写,甚至只读也不行。
角色可以改变。
3.DRBD 工作原理图
DRBD 是 linux 的内核的存储层中的一个分布式存储系统,可用使用 DRBD 在两台 Linux 服务器之间共享块设备,共享文件系统和数据。类似于一个网络 RAID- 1 的功能,如图所示:

DRBD 简介 安装、编译报错解决 DRBD 的配置、初始化及同步、主备模型
 
2. 编译、安装 drbd 内核模块计及测试
1. 编译、安装 drbd 内核模块,报错解决及 debd 的配置(服务端 1)
[root@server1 mnt]# ls
drbd-8.4.3.tar.gz   
[root@server1 mnt]# tar zxf drbd-8.4.3.tar.gz      #解压
[root@server1 mnt]# ls
drbd-8.4.3          drbd-8.4.3.tar.gz
[root@server1 mnt]# cd drbd-8.4.3
[root@server1 drbd-8.4.3]# ./configure –enable-spec –with-km     
若报错如下:

DRBD 简介 安装、编译报错解决 DRBD 的配置、初始化及同步、主备模型

则安装:
[root@server1 drbd-8.4.3]# yum install flex -y
 
[root@server1 drbd-8.4.3]# ./configure –enable-spec –with-km
WARNING 系统可以跳过,如下:

DRBD 简介 安装、编译报错解决 DRBD 的配置、初始化及同步、主备模型

[root@server1 drbd-8.4.3]# yum install rpm-build -y
 
[root@server1 drbd-8.4.3]# ./configure –enable-spec –with-km
[root@server1 drbd-8.4.3]# rpmbuild -bb drbd.spec      #
error: File /root/rpmbuild/SOURCES/drbd-8.4.3.tar.gz: No suchfile or directory
[root@server1 drbd-8.4.3]# cp /mnt/drbd-8.4.3.tar.gz/root/rpmbuild/SOURCES/
[root@server1 drbd-8.4.3]# rpmbuild -bb drbd.spec
 
DRBD 简介 安装、编译报错解决 DRBD 的配置、初始化及同步、主备模型

[root@server1 drbd-8.4.3]# rpmbuild -bb drbd-km.spec
error: Failed build dependencies:
    kernel-devel is neededby drbd-km-8.4.3-2.el6.x86_64      #报错,缺少包[root@server1drbd-8.4.3]# yum install kernel-devel -y
[root@server1 drbd-8.4.3]# rpmbuild -bb drbd-km.spec
DRBD 简介 安装、编译报错解决 DRBD 的配置、初始化及同步、主备模型
[root@server1 drbd-8.4.3]# cd /root/rpmbuild/RPMS/x86_64/      #切换目录
[root@server1 x86_64]# ls      #生成 10 个安装包
drbd-8.4.3-2.el6.x86_64.rpm
drbd-bash-completion-8.4.3-2.el6.x86_64.rpm
drbd-debuginfo-8.4.3-2.el6.x86_64.rpm
drbd-heartbeat-8.4.3-2.el6.x86_64.rpm
drbd-km-2.6.32_431.el6.x86_64-8.4.3-2.el6.x86_64.rpm
drbd-km-debuginfo-8.4.3-2.el6.x86_64.rpm
drbd-pacemaker-8.4.3-2.el6.x86_64.rpm
drbd-udev-8.4.3-2.el6.x86_64.rpm
drbd-utils-8.4.3-2.el6.x86_64.rpm
drbd-xen-8.4.3-2.el6.x86_64.rpm
[root@server1 x86_64]# yum install * -y    #安装所有的包
[root@server1 x86_64]# scp * root@172.25.25.112:/mnt      #将包传给服务端 2
[root@server2 mnt]# ls
drbd-8.4.3-2.el6.x86_64.rpm
drbd-bash-completion-8.4.3-2.el6.x86_64.rpm
drbd-debuginfo-8.4.3-2.el6.x86_64.rpm
drbd-heartbeat-8.4.3-2.el6.x86_64.rpm
drbd-km-2.6.32_431.el6.x86_64-8.4.3-2.el6.x86_64.rpm
drbd-km-debuginfo-8.4.3-2.el6.x86_64.rpm
drbd-pacemaker-8.4.3-2.el6.x86_64.rpm
drbd-udev-8.4.3-2.el6.x86_64.rpm
drbd-utils-8.4.3-2.el6.x86_64.rpm
drbd-xen-8.4.3-2.el6.x86_64.rpm
[root@server2 mnt]# rpm -vih *          #安装
Preparing…              ########################################### [100%]
  1:drbd-utils            ########################################### [10%]
  2:drbd-bash-completion  ########################################### [20%]
  3:drbd-heartbeat        ########################################### [30%]
  4:drbd-pacemaker        ########################################### [40%]
  5:drbd-udev            ########################################### [50%]
  6:drbd-xen              ########################################### [60%]
  7:drbd                  ###########################################[70%]
  8:drbd-km-2.6.32_431.el6.########################################### [80%]
  9:drbd-km-debuginfo    ########################################### [90%]
  10:drbd-debuginfo        ###########################################[100%]
 
在服务端 1 和服务端 2 虚拟机中各添加一块虚拟磁盘或划分一个新的分区,然后进行下面的步骤:
 
[root@server1 x86_64]# cd /etc/drbd.d/    #切换到 drbd 的主配置文件目录
[root@server1 drbd.d]# vim dbdata.res    #创建一个文件,后缀必须是.res
  1 resource dbdata{
  2 meta-disk internal;
  3 device /dev/drbd1;
  4 syncer {
  5 verify-alg sha1;        #设置主备机之间通信使用的信息算法
  6 }
# 每个主机的说明以 ”on” 开头, 后面是主机名. 在后面的{} 中为这个主机的配置
  7 on server1.example.com{#主机名
  8 disk /dev/vdb;            #磁盘名称
  9 address172.25.29.1:7789;      #ip 加端口,端口是指定的
 10 }
 11 onserver2.example.com{
 12 disk /dev/vdb;
 13 address172.25.29.2:7789;
 14 }
 15 }
 
[root@server1 drbd.d]# scp dbdata.resroot@172.25.29.2:/etc/drbd.d/
root@172.25.29.2’s password:
# 服务端 1 和服务端 2 同时初始化 , 同时开启 drbd
[root@server1 drbd.d]# drbdadm create-md dbdata    #初始化
  –==  Thank you for participating in the globalusage survey  ==–
The server’s response is:
 
Writing meta data…
initializing activity log
NOT initializing bitmap
New drbd meta data block successfully created.
 
[root@server2 drbd.d]# drbdadm create-md dbdata
  –==  Thank you for participating in the globalusage survey  ==–
The server’s response is:
 
Writing meta data…
initializing activity log
NOT initializing bitmap
New drbd meta data block successfully created.
 
2.drbd 的开启初始化、强制主备同步及格式化(主备模型)
[root@server1 drbd.d]# /etc/init.d/drbd start      #开启 drbd
[root@server2 drbd.d]# /etc/init.d/drbd start
 
[root@server1 drbd.d]# cat /proc/drbd  #查看
version: 8.4.3 (api:1/proto:86-101)
GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build byroot@server1.example.com, 2016-10-08 15:10:25
 
 1: cs:Connectedro:Secondary/Secondary ds:Inconsistent/Inconsistent C r—–
    ns:0 nr:0 dw:0 dr:0al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:2097052 
 
[root@server2 drbd.d]# cat /proc/drbd
version: 8.4.3 (api:1/proto:86-101)
GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build byroot@server1.example.com, 2016-10-08 15:10:25
 
 1: cs:Connectedro:Secondary/Secondary ds:Inconsistent/Inconsistent C r—–
    ns:0 nr:0 dw:0 dr:0al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:2097052
# 从上面可以看出两个都是 secondary
 
[root@server1 drbd.d]# drbdadm primary dbdata –force  #强制使服务端 1 变成 primary
[root@server1 drbd.d]# cat /proc/drbd      #查看,服务端 1 和服务端 2 正在同步
version: 8.4.3 (api:1/proto:86-101)
GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build byroot@server1.example.com, 2016-10-08 15:10:25
 
 1: cs:SyncSource ro:Primary/Secondaryds:UpToDate/Inconsistent C r—–
    ns:496640 nr:0 dw:0dr:497304 al:0 bm:30 lo:0 pe:4 ua:0 ap:0 ep:1 wo:f oos:1604508
    [===>…………….]sync’ed: 23.7% (1604508/2097052)K
    finish: 0:00:16 speed:98,508 (98,508) K/sec
 
[root@server1 drbd.d]# cat /proc/drbd
version: 8.4.3 (api:1/proto:86-101)
GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build byroot@server1.example.com, 2016-10-08 15:10:25
 
 1: cs:SyncSourcero:Primary/Secondary ds:UpToDate/Inconsistent C r—n-
    ns:1566436 nr:0 dw:0dr:1569432 al:0 bm:94 lo:0 pe:16 ua:3 ap:0 ep:1 wo:f oos:546716
    [=============>……]sync’ed: 74.1% (546716/2097052)K
    finish: 0:00:08 speed:64,596 (64,596) K/sec
 
[root@server1 drbd.d]# cat /proc/drbd  #同步完成,服务端 1 为 primary
version: 8.4.3 (api:1/proto:86-101)
GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build byroot@server1.example.com, 2016-10-08 15:10:25
 
 1: cs:Connectedro:Primary/Secondary ds:UpToDate/UpToDate C r—–
    ns:2097052 nr:0 dw:0dr:2097716 al:0 bm:128 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
 
[root@server2 drbd.d]# cat /proc/drbd
version: 8.4.3 (api:1/proto:86-101)
GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build byroot@server1.example.com, 2016-10-08 15:10:25
 
 1: cs:Connectedro:Secondary/Primary ds:UpToDate/UpToDate C r—–
    ns:0 nr:2097052dw:2097052 dr:0 al:0 bm:128 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
[root@server1 drbd.d]# mkfs.ext4 /dev/drbd1    #格式化
 
3. 切换主备测试是否同步成功
[root@server1 drbd.d]# mount /dev/drbd1 /mnt/          #将格式化好的磁盘挂载到 /mnt 上
[root@server1 drbd.d]# cd /mnt/    #切换到 /mnt
[root@server1 mnt]# ls
lost+found
[root@server1 mnt]# touch file{1..4}      #创建几个文件
[root@server1 mnt]# ls
file1  file2  file3 file4  lost+found
[root@server1 mnt]# cd
[root@server1 ~]# umount /mnt/          #卸载
[root@server1 ~]# drbdadm secondary dbdata    #将服务端 1 变成 secondary
[root@server1 ~]# cat /proc/drbd          #查看
version: 8.4.3 (api:1/proto:86-101)
GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build byroot@server1.example.com, 2016-10-08 15:10:25
 
 1: cs:Connectedro:Secondary/Secondary ds:UpToDate/UpToDate C r—–
    ns:2163404 nr:0dw:66352 dr:2098429 al:13 bm:128 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
[root@server2 drbd.d]# drbdadm primary dbdata  #将服务端 2 变成 primary
[root@server2 drbd.d]# cat /proc/drbd  #查看
version: 8.4.3 (api:1/proto:86-101)
GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build byroot@server1.example.com, 2016-10-08 15:10:25
 
 1: cs:Connectedro:Primary/Secondary ds:UpToDate/UpToDate C r—–
    ns:0 nr:2163404dw:2163404 dr:664 al:0 bm:128 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
 
[root@server2 drbd.d]# mount /dev/drbd1 /mnt/    #挂载
[root@server2 drbd.d]# cd /mnt/
[root@server2 mnt]# ls              #查看,同步成功
file1  file2  file3 file4  lost+found

有关 DRBD 的相关知识,可以参考:
DRBD 原理及特性概述 http://www.linuxidc.com/Linux/2015-11/124759.htm
快速安装及部署 DRBD  http://www.linuxidc.com/Linux/2015-11/124760.htm

Linux 高可用(HA)集群之 DRBD 详解 http://www.linuxidc.com/Linux/2013-08/89035.htm

DRBD 中文应用指南 PDF http://www.linuxidc.com/Linux/2013-08/89034.htm

CentOS 6.3 下 DRBD 安装配置笔记 http://www.linuxidc.com/Linux/2013-06/85600.htm

基于 DRBD+Corosync 实现高可用 MySQL http://www.linuxidc.com/Linux/2013-05/84471.htm

CentOS 6.4 下 DRBD 安装配置 http://www.linuxidc.com/Linux/2013-09/90536.htm

DRBD 的详细介绍:请点这里
DRBD 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-10/135985.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计8582字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7991609
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的 Nano Banana Pro?附赠邪修的用法 前言 大家好,我是星哥,今天来介绍谷歌的 ...
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...
在Windows系统中通过VMware安装苹果macOS15

在Windows系统中通过VMware安装苹果macOS15

在 Windows 系统中通过 VMware 安装苹果 macOS15 许多开发者和爱好者希望在 Window...
CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流! 大家好,我是星哥,今天才思枯竭,不写技术文章了!来吐槽一下 CSDN。...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

  颠覆 AI 开发效率!开源工具一站式管控 30+ 大模型 ApiKey,秘钥付费 + 负载均衡全...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...