drbd+heartbeat+nfs 测试实验
drbd+heartbeat+nfs 测试实验
Drbd 就是将不同服务器上的不同的分区组合成 /dev/drbd0 这样的块设备,数据实际分布式存储在不同的服务器的存储上,服务器之间通过ip通讯,实际上简单的实现了网络raid的功能,这样,如果损失了单台的服务器也对于数据没有任何损害。
Heartbeat 主要是实现Ha的功能,在单点失败的情况下,将资源切换到备用的服务器上。
Drbd的conf
----------------------------------------------------------------------
global { usage-count yes; }
common { syncer { rate 100M; } } //同步速率
resource r0 {
protocol C;
net {
cram-hmac-alg sha1;
shared-secret "FooFunFactory";
allow-two-primaries;
}
on drbd1 {
device /dev/drbd0;
disk /dev/hdb1;
address 192.168.10.209:7789;
flexible-meta-disk internal;
}
on drbd2 {
device /dev/drbd0;
disk /dev/hdb1;
address 192.168.11.208:7789;
flexible-meta-disk internal;
}
}
Heartbeat 的conf:
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 120
udpport 694
bcast eth0 # Linux
mcast eth0 225.0.0.1 694 1 0 //组播仲裁 类似hsrp
auto_failback off
node drbd1
node drbd2
ping_group group1 192.168.10.209 192.168.11.208
respawn root /usr/lib/heartbeat/ipfail
apiauth ipfail gid=root uid=root
heartbeat的haresource
drbd1 drbddisk::r0 Filesystem::/dev/drbd0::/mnt::ext3 nfs
drbd1 192.168.12.122
#drbd1 为主
# drbddisk::r0 为资源名
# Filesystem::/dev/drbd0::/mnt::ext3 为行为,意思是将 /dev/drbd0 挂载在/mnt 文件系统为ext3
# 192.168.12.122 为vip
drbd1 和 drbd2 的nfs exports设置
/mnt *(rw,no_root_squash)
实验过程如下:
1. 首先在drbd1和drbd2上启动 service drbd start 和 service heartbeat start 查看状态
主:
drbd driver loaded OK; device status:
version: 8.2.1 (api:86/proto:86-87)
GIT-hash: 318925802fc2638479ad090b73d7af45503dd184 build by root@drbd1, 2008-01-14 17:07:08
0: cs:Connected st:Primary/Secondary ds:UpToDate/UpToDate C r---
ns:24500 nr:1460 dw:26860 dr:2725 al:5 bm:4 lo:0 pe:0 ua:0 ap:0
resync: used:0/31 hits:234 misses:4 starving:0 dirty:0 changed:4
act_log: used:0/257 hits:6345 misses:5 starving:0 dirty:0 changed:5
从:
drbd driver loaded OK; device status:
version: 8.2.1 (api:86/proto:86-87)
GIT-hash: 318925802fc2638479ad090b73d7af45503dd184 build by root@drbd2, 2008-01-14 17:12:30
0: cs:Connected st:Secondary/Primary ds:UpToDate/UpToDate C r---
ns:0 nr:24296 dw:24296 dr:0 al:0 bm:2 lo:0 pe:0 ua:0 ap:0
resync: used:0/31 hits:175 misses:2 starving:0 dirty:0 changed:2
act_log: used:0/127 hits:0 misses:0 starving:0 dirty:0 changed:0
2. 在 HostA 上 mount –o hard 192.168.12.122:/mnt /mnt , 然后执行下边的命令 : > /mnt/test;let count=0; while 2>1;do ((count=$count+1));sleep 1;echo $count >> /mnt/test ;done
然后 执行 tail –f /mnt/test 会发现有数字不断的写入
3. 关闭主电源,发现从上的heartbeat 会切换vip 和nfs , Host A 上的数字写入会有大概3秒的停顿,还是会继续写入
4. 等主启动后,关闭从的电源,发现主上的heartbeat 会切换vip 和nfs , Host A 上的数字写入会有大概3秒的停顿,还是会继续写入
结论,确实实现了网络raid的功能,实现了块设备之间的冗余。 如果有不明白的地方随时可以讨论。
目录 返回
首页