以下文章转载自http://goplay.blog.51cto.com/3237944/664560
实验说明:
1、通过drbd提供数据的冗余备份功能
2、通过两台虚拟机模拟测试
实验配置
一、配置ip和主机名
1、配置ip #vim /etc/sysconfig/network-scripts/ifcfg-eth0
重启网络配置 #service network restart
查看
2、配置主机名
#vim /etc/hosts 使用hosts文件做dns地址解析
#vim /etc/sysconfig/network
#hostname test1.a.org
测试配置结果 #uname –n
test2.a.org 配置相同
二、ssh 配置(为方便远程管理,以后不用每次都输密码)
#ssh-keygen –t rsa
#ssh-copy-id –i ~/.ssh/id_rsa.pub root@test2
三、分区
#fdisk /dev/sda
#partprobe 重读分区表
四、安装DRBD软件
目前在用的drbd版本主要有8.0、8.2和8.3三个版本,其对应的rpm包的名字分别为drbd,
drbd82和drbd83,对应的内核模块的名字分别为kmod-drbd, kmod-drbd82和kmod-drbd83。
各版本的功能和配置等略有差异;我们实验所用的平台为x86且系统为rhel5.4,因此需要同时安装
内核模块和管理工具。我们这里选用最新的8.3的版本(drbd83-8.3.8-1.el5.centos.i386.rpm和
kmod-drbd83-8.3.8-1.el5.centos.i686.rpm),
下载地址为:http://mirrors.sohu.com/centos/5.6/extras/i386/RPMS/。
1、下载完成后直接安装即可:
# yum -y --nogpgcheck localinstall drbd83-8.3.8-1.el5.centos.i386.rpm
kmod-drbd83-8.3.8-1.el5.centos.i686.rpm
2、配置
drbd的主配置文件为/etc/drbd.conf;为了管理的便捷性,目前通常会将些配置文件分成多个部分,
且都保存至/etc/drbd.d目录中,主配置文件中仅使用"include"指令将这些配置文件片断整合起来。
通常,/etc/drbd.d目录中的配置文件为global_common.conf和所有以.res结尾的文件。
其中global_common.conf中主要定义global段和common段,而每一个.res的文件用于定义一个资源。
1)复制样例配置文件为即将使用的配置文件:
# cp /usr/share/doc/drbd83-8.3.8/drbd.conf /etc
2)配置/etc/drbd.d/global-common.conf (记得备份配置文件)
global {
usage-count no;
# minor-count dialog-refresh disable-ip-verification
}
common {
protocol C;
startup {
wfc-timeout 120;
degr-wfc-timeout 120;
}
disk {
on-io-error detach;
fencing resource-only;
}
net {
cram-hmac-alg "sha1";
shared-secret "mydrbdlab";
}
syncer {
rate 200M;
}
}
3、定义资源/etc/drbd.d/webserver.res,内容如下:
resource webserver {
on test1.a.org {
device /dev/drbd0;
disk /dev/sda6;
address 10.0.0.143:7789;
meta-disk internal;
}
on test2.a.org {
device /dev/drbd0;
disk /dev/sda6;
address 10.0.0.144:7789;
meta-disk internal;
}
}
4、在两个节点上初始化已定义的资源并启动服务
1)scp配置文件到另一个节点上
2)初始化资源,在test1和test2上分别执行:
# drbdadm create-md webserver
3)启动服务,在test1和test2上分别执行:
/etc/init.d/drbd start
4)查看启动状态
# cat /proc/drbd
test1 #此时都是Secondary/Secondary
test2
从上面的信息中可以看出此时两个节点均处于Secondary状态。于是,我们接下来需要将
其中一个节点设置为Primary。在要设置为Primary的节点上执行如下命令:
# drbdsetup /dev/drbd0 primary –o (只有在第一次时这样使用)
或# drbdadm -- --overwrite-data-of-peer primary web
test1 的状态已经变成Primary/Secondary
0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r----
5、格式化、并挂载使用/dev/drbd0
#mke2fs –j -L drbd /dev/drbd0
#mkdir /drbd
#mount /dev/drbd0 /drbd
查看#mount
#cd /drbd
#touch test.txt (测试使用)
#echo "test for drbd" > test.txt
6、主从交换,查看里边的内容
test1
#umount /drbd (要先卸载)
#drbdadm secondary webserver
查看状态
test2
#drbdadm primary webserver
#cat /proc/drbd
#mkdir /drbd
#mount /dev/drbd0 /drbd
#cd /drdb
#ls
结果
umount 的时候报错:device is busy