时间 |
2016 一月 07 |
作者 |
曹登化 |
版权 |
版权所者是曹登化-2016 |
第一步:前期准备 |
1. 准备2台机器 同步的磁盘大小一致
问:磁盘可以大小不一致吗?
配置如下表:
操作系统 |
主机名 |
IP |
drbd磁盘 |
|
node1 |
CentOS 6.7 |
centos03.cdh |
192.168.1.93 |
/dev/drbd0 |
node2 |
CentOS 6.7 |
centos04.cdh |
192.168.1.94 |
/dev/drbd0 |
两台设备的防火墙要互相允许。
以上主机名与IP对应的关系中,两台服务器上的hosts、/etc/sysconfig/network文件都要写上
2. 时间同步
ntpdate [公网时间服务器IP或自建ntp服务器IP]
3.在2节点上生成密钥,使得两节点间检测心跳信息无须密码
设置空密码
# ssh-keygen -P ''
用 ssh-copy-id 命令可以大大简化公钥分配过程
$ ssh-copy-id [remote-machine IP]
公钥,私钥已经生成,执行上述命令完毕出现如下错误:
/usr/bin/ssh-copy-id: ERROR: No identities found
发现缺少公钥路径,通过 -i 加上即可:
# ssh-copy-id -i ~/.ssh/id_dsa.pub [用户名@主机名]
不要轻易迷信任何书籍,实践出真知!
查看二台服务器时间是否同步
# ssh centos03.cdh 'date';date
第二步:安装drbd |
在安装之前,将内核进行了升级,如果以下命令不行,可以先将内核进行升级。升级后重启,应用新内核
升级系统:
##yum update kernel
##yum install kernel-devel
说明:drbd共有两部分组成:内核模块和用户空间的管理工具。其中drbd内核模块代码已经整合进Linux内核2.6.33以后的版本中,因此,如果您的内核版本高于此版本的话,你只需要安装管理工具即可;否则,您需要同时安装内核模块和管理工具两个软件包,并且此两者的版本号一定要保持对应。
CentOS 6.4的内核版本是2.6.32-358.el6.x86_64,所以还提安装内核模块。
CentOS 6.7的内核版本是2.6.32-573.el6.x86_64,所以还提安装内核模块。
4条命令安装drbd
1. # rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
# yum -y install drbd83-utils kmod-drbd83
可以安装最新的84版本
2. # yum -y install drbd84-utils kmod-drbd84
3. # modprobe drbd
4. # lsmod |grep drbd
第三步:配置drbd |
1.全局配置文件
vi /etc/drbd.d/global_common.conf
global {
usage-count no;
}
common {
protocol C;
startup {
wfc-timeout 240;
degr-wfc-timeout 240;
outdated-wfc-timeout 240;
}
disk {
on-io-error detach;
}
net {
cram-hmac-alg md5;
shared-secret "testdrbd";
}
syncer {
rate 330; #30% bandwith,官方推荐是30%的带宽
al-extents 3389;
verify-alg md5; ##pei he /etc/crontab 4 * * * * root /sbin/drbdadm verify resourceName,用于数据校验的,通过配合定时任务可以一起起作用。
}
}
2.资源配置文件
vi r0.res
注意文件r0.res与文件里的resource r0一致
resource r0{
on centos03.cdh {
device /dev/drbd0;
disk /dev/sdb1;
address 192.168.1.93:7898;
meta-disk internal;
}
on centos04.cdh {
device /dev/drbd0;
disk /dev/sdb1;
address 192.168.1.94:7898;
meta-disk internal;
}
}
将配置文件同步到node2
# scp global_common.conf r0.res node2:/etc/drbd.d/
第四步:启动drbd |
1. node1与node2上初始化资源
# drbdadm create-md r0
2. node1与node2上启动DRBD服务
# service drbd start
3. 启动后,先查看一下drbd的状态,目前显示是不一致,因为还没有指定主:
# cat /proc/drbd
version: 8.3.16 (api:88/proto:86-97)
GIT-hash: a798fa7e274428a357657fb52f0ecf40192c1985 build by phil@Build64R6, 2014
-10-28 10:31:39
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:5242684
4. 指定node1的drbd设备为主:
# drbdsetup /dev/drbd0 primary -o
5. 再查看时,就会发现开始进行同步了:
# cat /proc/drbd
version: 8.3.16 (api:88/proto:86-97)
GIT-hash: a798fa7e274428a357657fb52f0ecf40192c1985 build by phil@Build64R6, 2014-10-28 10:31:39
0: cs:SyncTarget ro:Secondary/Primary ds:Inconsistent/UpToDate C r-----
ns:0 nr:76376 dw:76376 dr:0 al:0 bm:4 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:5166308
[>....................] sync'ed: 1.5% (5044/5116)M
finish: 3:47:13 speed: 360 (356) want: 330 K/sec
我这里同步比较慢,因为限制了速度,只有330 K/sec。
第五步:注意事项 |
注意:备机的drbd设备无法挂载,因为它由drbd负责。用于接收主机数据的。当然,为了测试,可以在主机无数据写入时,进行查看。
使用:将主机上的drbd设备挂载即可使用。当有数据变更时,它会自动同步到备用磁盘上。
备用磁盘要使用时,待数据同步完成后,将drbd停止掉,然后再挂载上就好。
第六步:主备切换 |
1. 先将node1主上面的磁盘卸载掉并降级
# umount /dev/drbd0
# drbdadm secondary r0
2. 在备机上升级为主机
# drbdadm primary r0
3. 挂载磁盘
# mount /dev/drbd0 /media/mnt
总结 |
DRBD 配置步骤
1. 分区、格式化,准备好需要同步的磁盘或分区
2. 安装drbd
3. 配置资源文件(定义资料名称,磁盘,节点信息,同步限制等)
4. 将drbd加入到系统服务chkconfig --add drbd
5. 初始化资源组drbdadm create-md resource_name
6. 启动服务 service drbd start
7. 设置primary主机,并同步数据
8. 查看状态