电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 1890 人浏览分享

Centos6下DRBD的安装配置

[复制链接]
1890 0

Distributed Replicated Block Device(DRBD)是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。数据镜像:实时、透明、同步(所有服务器都成功后返

回)、异步(本地服务器成功后返回)。DRBD的核心功能通过Linux的内核实现,最接近系统的IO栈,但它不能神奇地添加上层的功能比如检测到EXT3文件系统的崩溃。DRBD的位置处于

文件系统以下,比文件系统更加靠近操作系统内核及IO栈。

一、安装环境说明

  1. 系统版本:CentOS6.5

  2. DRBD版本:DRBD-8.4.3

  3. node1:   192.168.7.88(drbd1)
  4. node2:   192.168.7.89 (drbd2)

  5. (node1)为仅主节点配置
  6. (node2)为仅从节点配置
  7. (node1,node2)为主从节点共同配置
复制代码


二、准备环境:(node1,node2)

1.关闭iptables和SELINUX,避免安装过程中报错


  1. service iptables stop                       //关闭iptables
  2. setenforcing 0                                 //暂时关闭selinux
  3. sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux      //永久关闭selinux
复制代码


2.设置hosts文件

  1. vi /etc/hosts

  2. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
  3. ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
  4. 192.168.7.88    drbd1
  5. 192.168.7.89    drbd2
复制代码


3.在两台虚拟机上添加一块2G硬盘sdb作为DRBD,分别分区为sdb1,大小1G,并在本地系统创建/data目录,不做挂载操作。

  1. fdisk /dev/sdb

  2. ----------------

  3. n-p-1-回车-"+1G"-wq

  4. ----------------

  5. mkdir /data
复制代码


4.时间同步:

1.安装依赖包:(node1,node2)



yum install gcc gcc-c++ make glibc flex kernel-devel kernel-headers


2.安装DRBD:(node1,node2)

  1. wget http://oss.linbit.com/drbd/8.4/drbd-8.4.3.tar.gz

  2. tar zxvf drbd-8.4.3.tar.gz

  3. cd drbd-8.4.3

  4. ./configure --prefix=/usr/local/drbd --with-km

  5. make && make install

  6. mkdir -p /usr/local/drbd/var/run/drbd

  7. cp /usr/local/drbd/etc/rc.d/init.d/drbd /etc/rc.d/init.d

  8. chkconfig --add drbd

  9. chkconfig drbd on

  10. 加载DRBD模块:

  11. modprobe drbd

  12. 查看DRBD模块是否加载到内核:

  13. lsmod |grep drbd
复制代码


四、DRBD的配置

1.参数配置:(node1,node2)

  1. vim /usr/local/drbd/etc/drbd.conf
  2. 清空里面的配置,添加如下配置:
  3. resource r0{
  4. protocol C;
  5. startup { wfc-timeout 0; degr-wfc-timeout 120;}
  6. disk { on-io-error detach;}
  7. net{
  8.   timeout 60;
  9.   connect-int 10;
  10.   ping-int 10;
  11.   max-buffers 2048;
  12.   max-epoch-size 2048;
  13. }
  14. syncer { rate 30M;}
  15. on drbd1.example.com{
  16.   device /dev/drbd0;
  17.   disk   /dev/sdb1;
  18.   address 192.168.7.88:7788;
  19.   meta-disk internal;
  20. }
  21. on drbd2.example.com{
  22.   device /dev/drbd0;
  23.   disk   /dev/sdb1;
  24.   address 192.168.7.89:7788;
  25.   meta-disk internal;
  26. }
  27. }
复制代码


2.创建DRBD设备并激活r0资源:(node1,node2)

  1. mknod /dev/drbd0 b 147 0

  2. drbdadm create-md r0

  3. 等待片刻,显示success表示drbd块创建成功
  4. ----------------
  5. Writing meta data...
  6. initializing activity log
  7. NOT initializing bitmap
  8. New drbd meta data block successfully created.
  9.                --== Creating metadata ==--
  10. As with nodes, we count the total number of devices mirrored by DRBD
  11. at http://usage.drbd.org.
  12. The counter works anonymously. It creates a random number to identify
  13. the device and sends that random number, along with the kernel and
  14. DRBD version, to usage.drbd.org.
  15. http://usage.drbd.org/cgi-bin/insert_usage.pl?
  16. nu=716310175600466686&ru=15741444353112217792&rs=1085704704
  17. * If you wish to opt out entirely, simply enter 'no'.
  18. * To continue, just press [RETURN]        //出现[RETURN]按回车
  19. success
  20. ----------------
  21. 再次输入该命令:
  22. # drbdadm create-md r0
  23. 成功激活r0
  24. ----------------
  25. [need to type 'yes' to confirm] yes
  26. Writing meta data...
  27. initializing activity log
  28. NOT initializing bitmap
  29. New drbd meta data block successfully created.
复制代码


3.启动DRBD服务:(node1,node2)

  1. service drbd start
复制代码

注:需要主从共同启动方能生效

4.查看状态:(node1,node2)

  1. cat /proc/drbd

  2. version: 8.4.3 (api:1/proto:86-101)
  3. GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by root@drbd1.example.com,
  4. 2013-05-27 20:45:19
  5. 0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r-----
  6.    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:1060184

  7. 或者

  8. service drbd status

  9. drbd driver loaded OK; device status:
  10. version: 8.4.3 (api:1/proto:86-101)
  11. GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by root@drbd1.example.com,
  12. 2013-05-27 20:45:19
  13. m:res  cs         ro                   ds                         p  mounted  fstype
  14. 0:r0   Connected  Secondary/Secondary  Inconsistent/Inconsistent  C
复制代码


注:这里ro:Secondary/Secondary表示两台主机的状态都是备机状态,ds是磁盘状态,显示的状态内容为“不一致”,这是因为DRBD无法判断哪一方为主机,应以哪一方的磁盘数据作为标准。

5.将drbd1主机配置为主节点:(node1)

  1. drbdsetup /dev/drbd0 primary --force
复制代码


分别查看主从DRBD状态:

  1. (node1)

  2. service drbd status

  3. drbd driver loaded OK; device status:
  4. version: 8.4.3 (api:1/proto:86-101)
  5. GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by root@drbd1.example.com,
  6. 2013-05-27 20:45:19
  7. m:res  cs         ro                 ds                 p  mounted  fstype
  8. 0:r0   Connected  Primary/Secondary  UpToDate/UpToDate  C

  9. (node2)

  10. service drbd status

  11. drbd driver loaded OK; device status:
  12. version: 8.4.3 (api:1/proto:86-101)
  13. GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by root@drbd2.example.com,
  14. 2013-05-27 20:49:06
  15. m:res  cs         ro                 ds                 p  mounted  fstype
  16. 0:r0   Connected  Secondary/PrimaryUpToDate/UpToDate  C
复制代码

注:ro在主从服务器上分别显示 Primary/Secondary和Secondary/Primary ds显示UpToDate/UpToDate表示主从配置成功。

6.挂载DRBD:(node1)

  1. 从刚才的状态上看到mounted和fstype参数为空,所以我们这步开始挂载DRBD到系统目录

  2. mkfs.ext4 /dev/drbd0

  3. mount /dev/drbd0 /data

  4. 注:Secondary节点上不允许对DRBD设备进行任何操作,包括只读,所有的读写操作只能
  5. 在Primary节点上进行,只有当Primary节点挂掉时,Secondary节点才能提升为Primary节点继续工作。
复制代码


五、模拟故障

  1. (node1)

  2. cd /data
  3. touch 1 2 3 4 5
  4. cd ..
  5. umount /data
  6. drbdsetup /dev/drbd0 secondary
复制代码



注:这里实际生产环境若DRBD1宕机,在DRBD2状态信息中ro的值会显示为Secondary/Unknown,

只需要进行DRBD提权操作即可。
(node2)

  1. drbdsetup /dev/drbd0 primary
  2. mount  /dev/drbd0 /data
  3. cd /data
  4. touch 6 7 8 9 10
  5. ls
  6. --------------
  7. 1  10  2  3  4  5  6  7  8  9  lost+found
复制代码


查看(node1)(node2)DRBD状态:

  1. (node2)
  2. service drbd status

  3. drbd driver loaded OK; device status:
  4. version: 8.4.3 (api:1/proto:86-101)
  5. GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by root@drbd2.example.com,
  6. 2013-05-27 20:49:06
  7. m:res  cs         ro                 ds                 p  mounted  fstype
  8. 0:r0   Connected  Primary/Secondary  UpToDate/UpToDate  C  /data    ext4


  9. (node1)
  10. service drbd status

  11. drbd driver loaded OK; device status:
  12. version: 8.4.3 (api:1/proto:86-101)
  13. GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by root@drbd1.example.com,
  14. 2013-05-27 20:45:19
  15. m:res  cs         ro                 ds                 p  mounted  fstype
  16. 0:r0   Connected  Secondary/Primary  UpToDate/UpToDate  C
复制代码



您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.