原文:http://gushiren.blog.51cto.com/3392832/1685207

首先确保两台机器时间同步,配置ssh。

方法一通过yum源安装:yum安装默认路径是/etc/drbd.d/下

# rpm --import http://elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
# yum -y install drbd84-utils kmod-drbd84

方法二编译安装:默认路径是/usr/local/drbd/etc

#yum install docbook-style-xsl          #编译drbd时候用到
#mkdir -p /tmp/drbdinst
#wget --directory-prefix=/tmp/drbdinst/ http://oss.linbit.com/drbd/8.4/drbd-8.4.6.tar.gz
#cd /tmp/drbdinst
#tar -zxfp drbd-8.4.6.tar.gz
#cd drbd-8.4.6
#yum -y install flex gcc make
#make KDIR=/usr/src/kernels/3.10.0-229.11.1.el7.x86_64

#make install
mkdir -pv /usr/local/drbd/var/run/drbd

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

systemctl enable drbd

cd drbd

make clean

make KDIR=/usr/src/kernels/3.10.0-229.11.1.el7.x86_64

换成自己的内核版本

cp drbd.ko /lib/modules/`uname -r`/kernel/lib5

depmod

modprobe drbd 加载模块

lsmod |grpe drbd  查看是否加载成功

我是通过yum源安装的,其实配置大同小异

vim /etc/drbd.d/global_common.conf

global {
    usage-count no;
}
common {
    protocol C;
    handlers {
        pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
        pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
        local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";
    }
    startup {
        wfc-timeout 30;
        degr-wfc-timeout 30;
    }
    options {
    }
    disk {
                on-io-error detach;  
                fencing resource-only;
    }
    net {
        cram-hmac-alg "sha1";  
                shared-secret "mydrbd";
    }
    
    syncer {
        rate 100M;
    }
}
5.定义一个资源,r0是资源名,可以自己改:

vim /etc/drbd.d/r0.res

resource r0 {  
    device /dev/drbd0;  
        disk /dev/sda1;  
        meta-disk internal;
        on drbdAA {  
        address 9.111.222.59:7789;  
        }  
        on drbdBB {  
        address 9.111.222.60:7789;  
        }  
}

6.以上文件在两个节点上必须相同,因此,可以基于ssh将刚才配置的文件全部同步至drbdBB节点:

7.scp -r /etc/drbd.d/r0.res global_common.conf root@drbdBB:/etc/drbd.d/

8.在两个节点上初始化已定义的资源并启动服务:

drbdadm create-md r0

systemctl start drbd

[root@drbdBB drbd.d]# cat /proc/drbd
version: 8.4.6 (api:1/proto:86-101)
GIT-hash: 833d830e0152d1e457fa7856e71e11248ccf3f70 build by phil@Build64R7, 2015-04-10 05:13:52
 0: cs:Connected ro:Secondary/Secondary ds:UpToDate/UpToDate C r-----
    ns:1600728 nr:2048 dw:1600636 dr:3325 al:37 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

9.我们接下来需要将其中一个节点设置为Primary,在要设置为Primary的节点上执行如下命令,这里在drbdAA上操作

drbdadm primary --force r0

[root@drbdAA yum.repos.d]# cat /proc/drbd
version: 8.4.6 (api:1/proto:86-101)
GIT-hash: 833d830e0152d1e457fa7856e71e11248ccf3f70 build by phil@Build64R7, 2015-04-10 05:13:52
 0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
    ns:2048 nr:1600728 dw:1606877 dr:3714 al:2 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

10.创建文件系统并挂载:

文件系统的挂载只能在Primary节点进行,因此,也只有在设置了主节点后才能对drbd设备进行格式化,这里在drbdAA上进行操作。

mkfs.ext4 /dev/drbd0   格式化块存储

mkdir /mydata                        //创建挂载点

mount /dev/drbd0 /mydata/

11.切换Primary和Secondary节点:

对主Primary/Secondary模型的drbd服务来讲,在某个时刻只能有一个节点为Primary,因此要切换两个节点的角色,只能在先将原有的Primary节点设置为Secondary后,才能原来的Secondary节点设置为Primary。

在coro1上:

1 umount /mydata/2 drbdadm secondary web                //变为secondary节点

      在coro2上:

1 drbdadm primary web                   //变为primary节点2 cat /proc/drbd3 mkdir /mydata                         //创建挂载点4 mount /dev/drbd0 /mydata/5 ls /mydata/

可以看到,coro2已经成为了Primary,之前在coro1上创建的目录也能够访问到。测试完成后,再次将coro1变为Primary并挂载。

(转)centos7.0安装配置DRBD的更多相关文章

  1. Centos7.0安装配置PHP7.0

    YUM安装所需开发包 yum install wget make gcc gcc-c++ bison autoconf patch \ pcre-devel zlib-devel openssl-de ...

  2. Centos7下安装配置Redsocks

    Redsocks是一个开源的网络程序,代码依赖开源的libevent网络库.Redsocks允许你将所有TCP连接重定向到SOCKS或HTTPS代理,比如Shadowsocks(Centos7下安装配 ...

  3. CentOS7.0 安装JAVA周围环境

    CentOS7.0 安装JAVA周围环境  安装JDK 1.配置JDK环境变量 把下载好的JDK(jdk-7u75-linux-x64.gz)文件上传到 Reg: /home/p2pweb/java/ ...

  4. centos7 yum安装配置redis 并设置密码

    原文:https://www.cnblogs.com/fanlinglong/p/6635828.html centos7 yum安装配置redis 并设置密码 1.设置Redis的仓库地址 yum ...

  5. CentOS7.0安装EMQ代理服务

    CentOS7.0安装EMQ代理服务 安装文件下载 官网 : https://www.emqx.io/cn/ 下载地址: https://www.emqx.io/cn/downloads 选择需要的版 ...

  6. CentOS 7.0安装配置Vsftp服务器

    一.配置防火墙,开启FTP服务器需要的端口 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop fi ...

  7. CentOS 7.0安装配置LAMP服务器(Apache+PHP+MariaDB)

    CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.service #停止fir ...

  8. centos7.0安装docker报错

    使用centos7.0安装dockers时出现Transaction check error错误. yum install docker Transaction check error: file / ...

  9. CentOS 7.0安装配置Vsftp服务器步骤详解

    安装Vsftp讲过最多的就是在centos6.x版本中了,这里小编看到有朋友写了一篇非常不错的CentOS 7.0安装配置Vsftp服务器教程,下面整理分享给各位. 一.配置防火墙,开启FTP服务器需 ...

随机推荐

  1. Android view状态保存

    为什么我们需要保存View的状态? 这个问题问的好!我坚信移动应用应该帮助你解决问题,而不是制造问题. 想象一下一个非常复杂的设置页面: 这并不是从一个移动应用的截图(这不是典型的win32程序吗.. ...

  2. memcached整理の编译

    memcached是一个自由&开放源码, 高性能,分布式的内存对象缓存系统. nosql相对于传统关系型数据库的"行与列",NoSQL 的鲜明特点为k-v 存储(memca ...

  3. EF中三大开发模式之DB First,Model First,Code First以及在Production Environment中的抉择

    一:ef中的三种开发方式 1. db first... db放在第一位,在我们开发之前必须要有完整的database,实际开发中用到最多的... <1> DBset集合的单复数... db ...

  4. 解决SqlServer 2005 sa帐户不能登录问题

    允许 sa 用户远程是很危险的.推荐的做法是在本地新建一个允许远程连接的用户. 1.启用TCP/IP协议. 2.配置监听端口(1433). net -an 检查本地端口是否建立监听,使用 在线IP端口 ...

  5. MYSQL ZIP 压缩包 安装

    基win10安装 1.管理员身份打开cmd 2.进入mysql 的 bin文件下  D: 回车 3.mysql服务名字  -install  回车 4.net start mysql服务名字     ...

  6. 201621123023《Java程序设计》第7周学习总结

    一.本周学习总结 1.1 思维导图:Java图形界面总结 二.书面作业 1. GUI中的事件处理 1.1 写出事件处理模型中最重要的几个关键词. 关键词:事件源.事件监听器.事件处理方法.事件适配器 ...

  7. windbg符号路径设置

    .sympath C:\Users\leoyin\Desktop\last;SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols  

  8. pandas set_index() reset_index()

    set_index() 官方定义: 使用一个或多个现有列设置索引,   默认情况下生成一个新对象 DataFrame.set_index(keys, drop=True, append=False,  ...

  9. 洛谷P4254 [JSOI2008]Blue Mary开公司(李超线段树)

    题面 传送门 题解 李超线段树板子 具体可以看这里 //minamoto #include<bits/stdc++.h> #define R register #define fp(i,a ...

  10. 为什么 SQLite 用 C 编写?

    简评:SQLite 官方出品. C是最好的选择 从 2000 年 5 月 29 日开始,SQLite 就选择了 C 语言.直到今天,C 也是实现 SQLite 这样软件库的最佳语言. C语言是实现 S ...