参考文档:DRBD(磁盘镜像技术)(2)
来源: www.ixdba.net 
作者: IXDBA.NET官方
时间:2007-12-19 阅读:93
本文章共9386字,分2页,当前第2页,快速翻页:1 2
( GPL )发行的。因此在这种许可条件下,它可以自由分发和修改。
十二、编译问题
问:在编译 drbd_syncer.c 时出现 “structure has no member named `nice'” 信息,这是为什么?
答:如果您指的是:
drbd_syncer.c: In function `drbd_syncer' :
drbd_syncer.c: 409 : structure has no member named `nice'
drbd_syncer.c : 439 : structure has no member named `nice'
drbd_syncer.c : 452 : structure has no member named `nice'
make[1] : *** [drbd_syncer.o] Error 1www.ixdba.net
make[1] : Leaving directory `/usr/local/src/drbd-0.6.3 /drbd'
Make*** [all] Error 2
请使用下面的补丁:
--- drbd_syncer.c Wed Oct 16 06: 19 : 17 2002
+++ drbd_syncer.c.orig Wed Oct 16 06 : 18 : 27 2002
@@ -311,7 +311,7 @@
#define SPEED_MIN ( mdev-conf.sync_rate_min )
#define SYNC_MARKS 10
#define SYNC_MARK_STEP ( 3*HZ )
-#if defined ( MAX_RT_PRIO ) || defined
( CONFIG_MAX_RT_PRIO )
+#if 1
/* this should work for the O( 1 ) scheduler */
#define drbd_set_user_nice ( current,x ) set_user_nice ( current,
( x ))
#else
十三、安装和设置
1、问:我能加次级设备吗(至少只读)?
答: DRBD 对此没有限制,但是您的文件系统会变得非常混乱,因为它无法了解底层设备的变化。总之,没有 ext2 、 ext3 、 reiserFS 、 JFS 或 XFS ,
它不能工作。如果您需要的不只是一个镜像,而是共享文件系统,那您可以使用 GFS 或 OpenGFS ,但它们速度较慢。这也是 DRBD 不允许加载次级
设备的原因。因此如果您要加载次级设备,可以先把次级设置为主设备。同时加载的话,两个设备均不能工作。
2、问: DRBD 能使用两个容量大小不同的设备吗?
答: 一般情况下可以,但有些问题需要注意:
本地 DRBD 使用的是配置的磁盘容量,与物理容量相等。如果没有给出,则将被设置为物理容量。连接时,设备容量将设置为两个节点中最小容量。
如果缺少常识的话,您可能会碰到一些问题:如果您先是在一个节点上使用 drbd ,而且没有配置好磁盘容量,之后又连接了一个容量较小的设备。
这时 ,drbd 设备容量在运行时就会变小。在系统记录里,您会发现一条信息提示 “your size hint is bogus,please change to some value”
(您的容量信息不真实,请更改)。这样一来就会让设备顶级的文件系统造成混淆。
因此,如果您的设备容量不同,请明确地为 DRBD 设置所使用的容量。
3、问: XFS 能和 DRBD 一起使用吗?
答: XFS 使用动态块大小,因此需要配备 DRBD 0.7 或更高版本。
4、问:当我试着加载 drbd 模块时,遇到了下面的问题:
compiled for kernel version 2.4.18-4GB while this kernel is version 2.4.18-64GB-SMP.
答:您的实际内核与要在其上构建 drbd 的内核的 .config 不一致。在
SuSE Linux 上,您可以使用下面的命令进行配置:
cd /usr/src/linux/
make cloneconfig
make dep
通常,您不必重新编译内核,只编译 drbd 即可。以后的 DRBD 版本将在创建过程中解决这一问题。
十四、操作问题
1、问:为什么 drbdsetup /dev/nb0 复制((完全同步))的速度那么慢?
答:出于历史原因,复制需要回写数据。而在回写数据时,很多物理设备的速度都非常慢。在更新的 DRBD 版本中可能会解决这一问题。
2、问:为什么我的 “load averag” (平均负载)那么高?
答:平均负载定义为给定的时间间隔内, runqueue 里的平均进程数。如果进程具有以下特点,它就会被列入 runqueue 中:
-- 不是在等待外部事件(如:在某些 fd 上选择)
-- 不是在等待它自己的事件(不是受呼 “ 等待 ” )
-- 未被终止
注:所有等待磁盘 io 的进程都会包括在内。所以,虽然系统实际可能近乎是空闲的,但如果有很多进程在等待磁盘 io, “load average” 就会很高。
例:关闭 nfs 服务器,启动 100
ls /path/to/noncached/dir/on/nfs/mount-point
在客户机上,虽然 CPU 什么也没做,只要 nfs 超时(可能是几个星期),您还是会得到一个 100+ 的 “load average” 。
您可以通过其他方式(例如 vmstat, sysstat/sar )来检测您的系统负载,这样可帮您找出系统的瓶颈所在。或者您还可以使用多个磁盘(不只是分区!) 或配备 10.000rpm SCSI 磁盘的 RAID ,甚至是千兆以太网。即使在快速以太网设备中,您也很少会超过每秒 6Mbyte 。 . (( 100 MBit/s 除去协议开销等最多 可剩下 12.5MByte/s )
3、问:
warning: Return code 255 from
/etc/ha.d/resource.d/datadisk
在使用带心跳的数据磁盘脚本时出现这些信息说明了什么?
答:退出码 255 很可能产生于导致死机的脚本,它有一个详细的错误信息。捕获脚本输出,这是 ha.cf 中的 debugfile 指令 iirc 。 . 如果仍没有用,
您可以手动操作,并查看所给出的错误信息。
4、数据磁盘会提示如 “cannot promote to primary, synchronization running”
或 “fsck failed” 等等。
问:当节点从次级站点上升到主站点时, drbd 设备就不能加载到主站点
上了,但可以进行手动加载。 .
答: DRBD 不会自动加载分区,脚本数据磁盘就是用来做这项工作的。
5、问:当心跳在节点 1 上启动并试着运行数据磁盘脚本以成为 RAID 阵列中的主节点时,出现故障,原因是它仍在同步。
答: 在 ha.cf 中启用 “nice_failback on“ ,或者您还可以阻断 drbd init 脚本块直到全部同步完成,请参见 drbd.conf.A 。
6、问:像 st 、 ns 、 nr 、 dw 、 dr 等字段在 /proc/drdb 中有什么含义?
答:
表 4. /proc/drbd
Field 说明 值:
cs 连接状态 出现的值:
o Unconfigured:设备在等待配置。
o Unconnected:连接模块时的过渡状态。
o WFConnection:设备等待另一测的配置。
o WFReportParams:过渡状态,等待新 TCP 连接的第一个数据包时。 .
o SyncingAll :正将主节点的所有模块复制到次级节点上。 .
o SyncingQuick :通过复制已被更新的模块(因为现在次级节点已经离开了集群)来更新次级节点。
o Connected:一切正常。
o Timeout:过渡状态。
st 状态(设备的作用) 可能的值为:
o 本地 / 远程一级状态
o 二级状态
o 未知(这不是一种作用)
ns 网络发送 模块号码
nr 网络接收 模块号码
dw 磁盘写入 模块号码
DR 磁盘读取 模块号码
of 运行中(过时的)模块号码
pe 待解决的 模块号码
ua 未答复的 模块号码(最好为 0 )
阅读更多内容 :<<上一页 · 1 · 2