导读 Distributed Replicated Block Device(DRBD)是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。数据镜像:实时、透明、同步(所有服务器都成功后返回)、异步(本地服务器成功后返回)。DRBD的核心功能通过Linux的内核实现,最接近系统的IO栈,但它不能神奇地添加上层的功能比如检测到EXT3文件系统的崩溃。DRBD的位置处于文件系统以下,比文件系统更加靠近操作系统内核及IO栈。

一、安装环境说明
系统版本:CentOS6.5 DRBD版本:DRBD-8.4.3 node1:   192.168.7.88(drbd1) node2:   192.168.7.89 (drbd2) (node1)为仅主节点配置 (node2)为仅从节点配置 (node1,node2)为主从节点共同配置 
二、准备环境:(node1,node2)

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

service iptables stop                       //关闭iptables setenforcing 0                                 //暂时关闭selinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux     //永久关闭selinux 

2.设置hosts文件

vi /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.7.88    drbd1 192.168.7.89    drbd2 

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

fdisk /dev/sdb ---------------- n-p-1-回车-"+1G"-wq ---------------- mkdir /data

4.时间同步:

ntpdate -u asia.pool.ntp.org 
三、DRBD的安装部署

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

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

2.安装DRBD:(node1,node2)

wget http://oss.linbit.com/drbd/8.4/drbd-8.4.3.tar.gz tar zxvf drbd-8.4.3.tar.gz cd drbd-8.4.3 ./configure --prefix=/usr/local/drbd --with-km make && make install mkdir -p /usr/local/drbd/var/run/drbd cp /usr/local/drbd/etc/rc.d/init.d/drbd /etc/rc.d/init.d chkconfig --add drbd chkconfig drbd on 加载DRBD模块: modprobe drbd 查看DRBD模块是否加载到内核: lsmod |grep drbd 
四、DRBD的配置

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

vim /usr/local/drbd/etc/drbd.conf 清空里面的配置,添加如下配置: resource r0{ protocol C; startup { wfc-timeout 0; degr-wfc-timeout 120;} disk { on-io-error detach;} net{ timeout 60; connect-int 10; ping-int 10; max-buffers 2048; max-epoch-size 2048; } syncer { rate 30M;} on drbd1.example.com{ device /dev/drbd0; disk /dev/sdb1; address 192.168.7.88:7788; meta-disk internal; } on drbd2.example.com{ device /dev/drbd0; disk /dev/sdb1; address 192.168.7.89:7788; meta-disk internal; } } 

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

mknod /dev/drbd0 b 147 0 drbdadm create-md r0 等待片刻,显示success表示drbd块创建成功 ---------------- Writing meta data... initializing activity log NOT initializing bitmap New drbd meta data block successfully created. --== Creating metadata ==-- As with nodes, we count the total number of devices mirrored by DRBD at http://usage.drbd.org. The counter works anonymously. It creates a random number to identify the device and sends that random number, along with the kernel and DRBD version, to usage.drbd.org. http://usage.drbd.org/cgi-bin/insert_usage.pl? nu=716310175600466686&ru=15741444353112217792&rs=1085704704 * If you wish to opt out entirely, simply enter 'no'. * To continue, just press [RETURN] //出现[RETURN]按回车 success ---------------- 再次输入该命令: # drbdadm create-md r0 成功激活r0 ---------------- [need to type 'yes' to confirm] yes Writing meta data... initializing activity log NOT initializing bitmap New drbd meta data block successfully created. 

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

service drbd start 

注:需要主从共同启动方能生效
4.查看状态:(node1,node2)

cat /proc/drbd version: 8.4.3 (api:1/proto:86-101) GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by root@drbd1.example.com, 2013-05-27 20:45:19 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:f oos:1060184 或者 service drbd status drbd driver loaded OK; device status: version: 8.4.3 (api:1/proto:86-101) GIT-hash: 89a294209144b68adb3ee85a73221f964d3ee515 build by root@drbd1.example.com, 2013-05-27 20:45:19 m:res cs ro ds p mounted fstype 0:r0 Connected Secondary/Secondary Inconsistent/Inconsistent C 

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

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

drbdsetup /dev/drbd0 primary --force

分别查看主从DRBD状态:

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

注:ro在主从服务器上分别显示 Primary/Secondary和Secondary/Primary ds显示UpToDate/UpToDate表示主从配置成功。
6.挂载DRBD:(node1)

从刚才的状态上看到mounted和fstype参数为空,所以我们这步开始挂载DRBD到系统目录 mkfs.ext4 /dev/drbd0 mount /dev/drbd0 /data 注:Secondary节点上不允许对DRBD设备进行任何操作,包括只读,所有的读写操作只能 在Primary节点上进行,只有当Primary节点挂掉时,Secondary节点才能提升为Primary节点继续工作。 
五、模拟故障

(node1)

cd /data touch 1 2 3 4 5 cd .. umount /data drbdsetup /dev/drbd0 secondary 

注:这里实际生产环境若DRBD1宕机,在DRBD2状态信息中ro的值会显示为Secondary/Unknown,只需要进行DRBD提权操作即可。

(node2)

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

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

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

本文转载自:http://www.linuxprobe.com/centos6-drdb-setup-instal.html

更多Linux干货请访问:http://www.linuxprobe.com/

Centos6下DRBD的安装配置的更多相关文章

  1. CentOS6下Haproxy的安装配置

    Haproxy 是一个开源的负载均衡和反向代理软件,其提供了高可用的网络服务.其一般是应用于web服务,但同时也能为SMTP和终端服务等提供可靠的支持. 1.下载安装haproxy wget ftp: ...

  2. CentOS6.6下DRBD+HeartBeat+NFS配置

    一.DRBD配置 Distributed Replicated Block Device(DRBD)是一个用软件实现的.无共享的.服务器之间镜像块设备内容的存储复制解决方案. 我们可以理解为它其实就是 ...

  3. CentOS7下RabbitMQ服务安装配置

    参考文档: CentOS7下RabbitMQ服务安装配置 http://www.linuxidc.com/Linux/2016-03/129557.htm 在linux下安装配置rabbitMQ详细教 ...

  4. CentOS6下docker的安装和使用

    CentOS6下docker的安装和使用 Docker是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.利用Linux的LXC.AUFS.Go语言.cgroup ...

  5. CentOS6.6系统中安装配置Samba的教程

    Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通 ...

  6. Windows和Centos下Docker的安装配置

    Windows和Centos下Docker的安装配置 windows环境下的安装(win10) 在Windows系统上需要利用toolbox来安装Docker,现在 Docker 有专门的 Win10 ...

  7. CentOS下使用yum安装配置和使用svn

    安装说明 系统环境:CentOS-6.3安装方式:yum install (源码安装容易产生版本兼容的问题)安装软件:系统自动下载SVN软件 检查已安装版本 ? 1 2 3 4 5 6 7 8 9 1 ...

  8. Linux下Kafka单机安装配置方法(图文)

    Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计.这个独特的设计是什么样的呢 介绍 Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了 ...

  9. (转载)CentOS6下 源代码方式安装openERP7.0

    CentOS6下 源代码方式安装openERP7.0 安装背景 :CPU32 bit,CentOS 6.4版本,openERP7.0,linux shell为bash,PostgreSQL9.2 1. ...

随机推荐

  1. Android 解压html压缩数据

    public static String unzipHTML(String s){ int endPos = s.indexOf("\r\n\r\n"); if(endPos< ...

  2. js打印数组查看

    alert() 是不能查看数组,对象的console.log(数组变量); 然后你用火狐的friebug 在控制台查看

  3. KStar ----BPM应用框架,K2 的新星

    “KStar”是基于K2 BPM搭建的应用框架产品,将K2最佳实践方案以产品的形式呈现给用户,该框架面向SOA服务,便于二次开发和扩展,流程设计.用户组织.业务表单.流程管理.系统集成等开发工作,都按 ...

  4. 交互式报表和工作报表控件Stimulsoft Reports.Fx for Java

    Stimulsoft Reports.Fx for Java是一款Java平台下的报表工具控件,可以为您的应用程序添加交互式报表和工作报表.Java技术可以用于不同的平台.不同的操作系统和不同的硬件, ...

  5. Oracle GoldenGate: 使用宏

         OGG宏与C语言中的宏一样,提供了函数封装的功能,即可以将一些配置参数整理为一个宏,然后在多个参数文件中共用,针对环境复杂或多个复制点的情况尤其有用.下面我们将介绍如何创建一个宏的库,以及在 ...

  6. 有关PHP的字符串知识

    字符串是由一系列字符组成,在PHP中,字符和字节一样,也就是说,一共有256种不同字符的可能性. 字符串型可以用三种方法定义:单引号形式.双引号形式和Heredoc结构形式. 1.每条指令可要记得使用 ...

  7. 一篇介绍jquery很好的

    本文基于jQuery1.7.1版本,是对官方API的整理和总结,完整的官方API见http://api.jquery.com/browser/ 0.总述 jQuery框架提供了很多方法,但大致上可以分 ...

  8. String性能优化

    String 使用的优化建议 其他 String 使用的优化建议 以上我们描述了在我们的大量文本分析案例中调用 String 的 subString方法导致内存消耗的问题,下面再列举一些其他将导致内存 ...

  9. ubuntu下openoffice开发环境配置

    安装openoffice或者liboffice 路径:/usr/lib/openoffice/program ,soffice 开启服务: 安装JDK 其默认路径:jdk7 版本号:1.7...,jd ...

  10. iOS开发之拖动图片

    步骤:1.首先创建一个single view application 2.然后添加一个新的cocoa touch class的类 3.添加的类遵守<UIGestureRecognizerDele ...