drbd安装配置和切换

来源:互联网 发布:淘宝的分类链接在哪 编辑:程序博客网 时间:2024/05/17 23:56

如图:


实验如下

环境准备

centos6.5
node1:192.168.0.201
node2:192.168.0.200


升级内核
yum update kernel
yum install kernel-devel
升级完内核,重启
安装
wget http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
yum -y install drbd83-utils kmod-drbd83
modprobe drbd
lsmod |grep -i drbd
modprobe -l | grep -i drbd


-----------------------------------------------------------------------------------
配置


1.关闭iptables和SELINUX,避免安装过程中报错。
# service iptables stop
# setenforce 0
# vi /etc/sysconfig/selinux
SELINUX=disabled




vi /etc/hosts
192.168.0.201 node1.drbd.com node1
192.168.0.200 node2.drbd.com node2




建立挂载目录
mkdir /data


时间同步
ntpdate -u asia.pool.ntp.org




配置模版文件
[root@node1 drbd83-utils-8.3.16]# pwd
/usr/share/doc/drbd83-utils-8.3.16
[root@node1 drbd83-utils-8.3.16]# 


配置文件
[root@node1 etc]# cat drbd.conf 
# You can find an example in  /usr/share/doc/drbd.../drbd.conf.example
include "drbd.d/global_common.conf";
include "drbd.d/*.res";


-----------------------------------------------------------------------------------------------------
例子
#include"drbd.d/global_common.conf";   注释掉
#include "drbd.d/*.res";                注释掉
global {
usage-count no;是否参加DRBD 使用者统计,默认参加
}
common {
syncer { rate 200M; }  设置主用节点和备用节点同步时的网络速率最大值,单位是字节
}
resource r0 {  资源名字为r0
protocol C;使用DRBD 的第三种同步协议(A B C),大多数用C,表示收到远程主机的写入确认后认为写入完成
startup {
wfc-timeout 120;在启用DRBD块时,初始化脚本drbd会阻塞启动进程的运行,直到对等节点的出现。该选项就是用来限制这个等待时间的,默认为0,即不限制,永远等待。
degr-wfc-timeout 120;也是用于限制等待时间,只是作用的情形不同:它作用于一个降级集群(即那些只剩下一个节点的集群)在重启时的等待时间。
}
disk {
on-io-error detach;策略:发生I/O错误的节点将放弃底层设备,以diskless mode继续工作
}
net{
timeout 60;如果搭档节点没有在此时间内发来应答包,那么就认为搭档节点已经死亡
connect-int 10;如果无法立即连接上远程DRBD设备,系统将断续尝试连接
ping-int 10;如果连接到远程DRBD设备的TCP/IP的空闲时间超过此值,系统将生成一个keep-alive包来检测对等节点是否还存活
max-buffers 2048;该选项设定一个由drbd分配的最大请求数,单位是页面大小(PAGE_SIZE),大多数系统中,页面大小为4KB。这些buffer用来存储那些即将写入磁盘的数据。最小值为32(即128KB)。这个值大一点好。
max-epoch-size 2048;该选项设定了两次write barriers之间最大的数据块数。如果选项的值小于10,将影响系统性能。大一点好。
cram-hmac-alg "sha1";该选项设定内核支持的一个算法,用于网络上的用户数据的一致性校验。通常的数据一致性校验,由TCP/IP头中所包含的16位校验和来进行,而该选项可以使用内核所支持的任一算法。该功能默认关闭。
shared-secret "Mysql-abcD";用来设定在对待节点授权中使用的密码,最长64个字符。
}
on test02 {  每个主机的说明以on 开头,后面是hostname
device /dev/drbd0;drbd设备名称
disk   /dev/sdb;/dev/drbd0使用的磁盘分区是/dev/sdb
address 192.168.1.244:6666;设置DRBD的监听端口,用于与另一台主机通信
meta-disk internal;DRBD的元数据存放方式
}
on test03 {
device /dev/drbd0;
disk   /dev/sdb;
address 192.168.1.245:6666;两台主机端口必须一致
meta-disk internal;
}
}
============================================================================================
下面是干净配置
#include"drbd.d/global_common.conf";   
#include "drbd.d/*.res";                
global {
usage-count no;
}
common {
syncer { rate 200M; }  
}
resource r0 {  
protocol C;
startup {
wfc-timeout 120;
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;
cram-hmac-alg "sha1";
shared-secret "Mysql-abcD";
}
on node1 {  
device /dev/drbd0;
disk   /dev/sdb1;
address 192.168.0.201:6666;
meta-disk internal;
}
on node2 {
device /dev/drbd0;
disk   /dev/sdb1;
address 192.168.0.200:6666;
meta-disk internal;
}
}


===================================================================================
分别在主备机上执行 (记录数据的信息块)
 drbdadm create-md r0


主备机启动服务
/etc/init.d/drbd start
cat /proc/drbd
version: 8.3.16 (api:88/proto:86-97)
GIT-hash: a798fa7e274428a357657fb52f0ecf40192c1985 build by phil@Build64R6, 2014-11-24 14:51:37
 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:20964116
状态为ro(第一次启动)
【ds为不一致,ns表示网络发送数据包信息,dw表示磁盘写信息,dr表示磁盘读信息】


设置主用节点
主机上
drbdsetup /dev/drbd0 primary -o
cat /proc/drbd
第一次设置主用节点和备用节点使用下面的命令
/sbin/drbdadm primary r0


格式化
mkfs.ext3 /dev/drbd0
挂载
mount /dev/drbd0 /data
df


drbd测试数据镜像
dd if=/dev/zero of=/data/drbdtest.tmp bs=10M count=10


cd /data
ls
iostat
iostat 2


备用机上
/etc/init.d/drbd stop
mount /dev/sdb1 /data
[root@node2 data]# ls -l
total 102520
-rw-r--r-- 1 root root 104857600 Nov 15 20:39 drbdtest.tmp
drwx------ 2 root root     16384 Nov 15 20:37 lost+found
可以看到主节点的数据镜像成功到备用节点上。
测试完毕后,重新启动备用节点drbd服务,此时必须先卸载/dev/sdb1设备然后才能成功启动。




==============================================================================================
主备节点切换
1、停止主节点drbd服务
/etc/init.d/drbd stop
查看备用节点上的drbd状态。
[root@node2 /]# cat /proc/drbd
version: 8.3.16 (api:88/proto:86-97)
GIT-hash: a798fa7e274428a357657fb52f0ecf40192c1985 build by phil@Build64R6, 2014-11-24 14:51:37
 0: cs:WFConnection ro:Secondary/Unknown ds:UpToDate/DUnknown C r-----
    ns:0 nr:16 dw:16 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
主节点状态为unknown
2、切换命令
drbdadm primary all
如果报错执行下面的命令
drbdsetup /dev/drbd0 primary -o
[root@node2 /]# cat /proc/drbd
version: 8.3.16 (api:88/proto:86-97)
GIT-hash: a798fa7e274428a357657fb52f0ecf40192c1985 build by phil@Build64R6, 2014-11-24 14:51:37
 0: cs:WFConnection ro:Primary/Unknown ds:UpToDate/DUnknown C r-----
    ns:0 nr:16 dw:16 dr:672 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

================================================================================================
正常切换
主节点上
umount /data
drbdadm secondary all
cat /proc/drbd


备用节点上
drbdadm primary all
cat /proc/drbd
mount /dev/drbd0 /data
0 0
原创粉丝点击