设为首页 收藏本站
查看: 1119|回复: 0

[经验分享] DRBD简介 安装、编译报错解决 DRBD的配置、初始化及同步

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-10-11 08:55:52 | 显示全部楼层 |阅读模式
主机环境 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的功能,如图所示:

wKioL1f7SsTCQRDJAAJ_a1Uj9g0734.jpg

2. 编译、安装drbd内核模块计及测试
1.编译、安装drbd内核模块,报错解决及debd的配置(服务端1)
[iyunv@server1 mnt]# ls
drbd-8.4.3.tar.gz   
[iyunv@server1 mnt]# tar zxf drbd-8.4.3.tar.gz       #解压
[iyunv@server1 mnt]# ls
drbd-8.4.3           drbd-8.4.3.tar.gz
[iyunv@server1 mnt]# cd drbd-8.4.3
[iyunv@server1 drbd-8.4.3]# ./configure --enable-spec --with-km      
若报错如下:
wKiom1f7SsWSEUqpAAATAwNZs5E177.jpg
则安装:
[iyunv@server1 drbd-8.4.3]# yum install flex -y

[iyunv@server1 drbd-8.4.3]# ./configure --enable-spec --with-km
WARNING系统可以跳过,如下:
wKioL1f7SsXBKOesAAAr5X37v6c525.jpg
[iyunv@server1 drbd-8.4.3]# yum install rpm-build -y

[iyunv@server1 drbd-8.4.3]# ./configure --enable-spec --with-km
[iyunv@server1 drbd-8.4.3]# rpmbuild -bb drbd.spec       #
error: File /root/rpmbuild/SOURCES/drbd-8.4.3.tar.gz: No suchfile or directory
[iyunv@server1 drbd-8.4.3]# cp /mnt/drbd-8.4.3.tar.gz/root/rpmbuild/SOURCES/
[iyunv@server1 drbd-8.4.3]# rpmbuild -bb drbd.spec

wKiom1f7SsbBGPlMAABf_AxowqQ953.jpg
[iyunv@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
[iyunv@server1 drbd-8.4.3]# rpmbuild -bb drbd-km.spec
wKioL1f7SsbRvFWoAACe935GTXE135.jpg
[iyunv@server1 drbd-8.4.3]# cd /root/rpmbuild/RPMS/x86_64/      #切换目录
[iyunv@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
[iyunv@server1 x86_64]# yum install * -y    #安装所有的包
[iyunv@server1 x86_64]# scp * root@172.25.25.112:/mnt       #将包传给服务端2
[iyunv@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
[iyunv@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虚拟机中各添加一块虚拟磁盘或划分一个新的分区,然后进行下面的步骤:

[iyunv@server1 x86_64]# cd /etc/drbd.d/     #切换到drbd的主配置文件目录
[iyunv@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 }

[iyunv@server1 drbd.d]# scp dbdata.resroot@172.25.29.2:/etc/drbd.d/
root@172.25.29.2's password:
#服务端1和服务端2同时初始化 ,同时开启drbd
[iyunv@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.

[iyunv@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的开启初始化、强制主备同步及格式化
[iyunv@server1 drbd.d]# /etc/init.d/drbd start       #开启drbd
[iyunv@server2 drbd.d]# /etc/init.d/drbd start

[iyunv@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  

[iyunv@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

[iyunv@server1 drbd.d]# drbdadm primary dbdata --force   #强制使服务端1变成primary
[iyunv@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

[iyunv@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

[iyunv@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

[iyunv@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
[iyunv@server1 drbd.d]# mkfs.ext4 /dev/drbd1     #格式化

3.切换主备测试是否同步成功
[iyunv@server1 drbd.d]# mount /dev/drbd1 /mnt/           #将格式化好的磁盘挂载到/mnt上
[iyunv@server1 drbd.d]# cd /mnt/     #切换到/mnt
[iyunv@server1 mnt]# ls
lost+found
[iyunv@server1 mnt]# touch file{1..4}      #创建几个文件
[iyunv@server1 mnt]# ls
file1  file2  file3 file4  lost+found
[iyunv@server1 mnt]# cd
[iyunv@server1 ~]# umount /mnt/          #卸载
[iyunv@server1 ~]# drbdadm secondary dbdata    #将服务端1变成secondary
[iyunv@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
[iyunv@server2 drbd.d]# drbdadm primary dbdata   #将服务端2变成primary
[iyunv@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

[iyunv@server2 drbd.d]# mount /dev/drbd1 /mnt/    #挂载
[iyunv@server2 drbd.d]# cd /mnt/
[iyunv@server2 mnt]# ls              #查看,同步成功
file1  file2  file3 file4  lost+found



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-284297-1-1.html 上篇帖子: linux下批量创建10个系统账号,密码设置为随机字符串 下篇帖子: PG PLProxy配置说明
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表