系统环境:RHEL5.4 selinux关闭

station43.example.com 192.168.10.43
station44.example.com 192.168.10.44


使用源码包生成 rpm 包
yum install gcc rpm-build flex kernel-xen-devel (与系统版本相同) -y
在当前目录执行 rpmbuild
在当前目录解压 drbd-8.3.9.tar.gz
tar zxf drbd-8.3.9.tar.gz
cd drbd-8.3.9
./configure
make rpm
make km-rpm
在上层目录 rpmbuild/RPMS/i386/里生成包
drbd-8.3.9-1.i 386.rpm(drbd 驱动器, 用于高可用集群同步服务)
drbd-km-debuginfo-8.3.9-1.i386.rpm(在开发中给 drbd-km 包提供调试信息)
drbd-bash-completion-8.3.9-1.i386.rpm(包含了用于 drbdadm 管理器的脚本)
drbd-pacemaker-8.3.9-1.i386.rpm(充当 HA 中的资源管理器, 含有master/sl ave 资源)
drbd-debuginfo-8.3.9-1.i386.rpm(在开发中给drbd包提供调试信息)
drbd-udev-8.3.9-1.i386.rpm(用于管理 drbd 设备的, 如/dev/drbd0)
drbd-heartbeat-8.3.9-1.i386.rpm(用于heartbeat集群的资源管理)
drbd-util s-8.3.9-1.i386.rpm(包含 drbd的管理工具)
drbd-km-2.6.18_ 194. el5xen-8.3.9-1.i386.rpm(用于内核支持drbd)
drbd-xen-8.3.9-1.i386.rpm(用于管理虚拟DRBD的)

由于这里只是搭建一个简单的磁盘同步服务, 只要安装 drbd-udev drbd-utils
drbd-km-2.6.18_194. el5xen 就可以了

以下在两台主机上操作
将这三个包放到家目录下,然后安装
rpm -ivh *.rpm
加一块虚拟磁盘/dev/xvdb, 对它进行分区/dev/xvdb1
vi /etc/drbd.conf
global {
usage-count yes; # 是否参加使用者统计,yes 为参加
}
common {
syncer { rate 10M; } # 设置网络同步速率, 建议改为实际网络速率
}
留下资源“r0”的定义,其余资源删除
resource "r0" {
protocol C; # 数据同步协议,C 表示收到远程主机的写入确认后才认为写入完成
... ..
# 每个主机的说明以"on"开头,后面是主机名
on station43.example.com {
device /dev/drbd0;
disk /dev/xvdb1;
# 设置 DRBD 的监听端口,用于与另一台主机通信
address 192.168.0.43:7789;
# metadata 的存放位置
# internal表示将 metadata存放到drbd挂在的磁盘分区的最后的位置上
meta-disk internal ;
}
on station44.example.com {
device /dev/drbd0;
disk /dev/xvdb1;
address 192.168.0.44:7789;
meta-disk internal ;
}
}
scp /etc/drbd.conf station44.example.com:/etc/
drbdadm create-md r0
/etc/ini t. d/drbd start
初始化时可能出现下面错误
#drbdadm create-md ro
md_offset 501702656
al _offset 501669888
bm_offset 501653504
Found ext3 filesystem
489948 kB data area apparently used
489896 kB left usable by current configuration
Device size would be truncated, which would corrupt data and result in
'access beyond end of device' errors.
You need to ei ther
* use external meta data (recommended)
* shrink that fil esystem first
* zero out the devi ce (destroy the fil esystem)
Operati on refused.
Command 'drbdmeta 0 v08 /dev/x vdb1 i nternal create-md' terminated wi th exi t
code 40
drbdadm create-md example: exi ted wi th code 40
先备份/dev/x vdb1 上的数据 再用 dd if=/dev/zero of=/dev/xvdb1 清除数据就可以初始化了

将 station43 配置为主节点
drbdsetup /dev/drbd0 primary --force
watch cat /proc/drbd
m:res cs ro ds pmounted fstype
... sync'ed: 85.0% (150424/979864)K
0: r0 SyncTarget Primary/Secondary Inconsistent/UpToDate C
会看见磁盘正在同步,同步完成后,格式化/dev/drbd0
mkfs. ext3 /dev/drbd0
mount /dev/drbd0 /var/www/html
echo www.westos.org /var/www/html/index.html
umount /dev/drbd0
drbdsetup /dev/drbd0 secondary
在 station44 上
drbdsetup /dev/drbd0 primary(只有主设备才能挂载)
mount /dev/drbd0 /var/www/html
切换到/var/www/html 目录会发现有个 i ndex.html 文件, 表示数据同步了

参考网站
DRBD配置及配置参数解释
http://www. turbolinux.com.cn/turbo/wiki/doku.php?id=系统管理: drbd 的使用
DRBD的一些应用
http://www.wenzizone.cn/?tag=drbd
DRBD 原理
http://leek2006.blog.163.com/blog/static/8908561520112943857453/
DRBD 官网
http://www.drbd.org/