




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
DRBD(磁盘镜像技术)目 录1什么是DRBD32drbd 的应用范围是什么?33它是如何工作的?34drbd 同现在的HA 集群有什么关系?45安装46编译包47命令的使用58DRBD 协议59Config 和脚本的使用610其它问题611一般问题712编译问题713安装和设置814操作问题81 什么是DRBDDRBD refers to block devicesdesigned asa building block toform high availability (HA) clusters. This is done by mirroring a whole block device via an assigned network.DRBD can be understood as network based raid-1. In the illustration above, the two orange boxes represent two servers that form an HA cluster.The boxescontain the usual components of a Linux kernel: file system, buffer cache, disk scheduler, disk drivers, TCP/IP stack and network interface card (NIC) driver. The black arrows illustrate the flow of data between these components. The orange arrows show the flow of data, as DRBD mirrors the data of a high availably service from the active node of the HA cluster to the standby node of the HA cluster.DRBD 是由内核模块和相关脚本而构成,用以构建高可用性的集群。其实现方式是通过网络来镜像整个设备。您可以把它看作是一种网络RAID。2 drbd 的应用范围是什么? Drbd 负责接收数据,把数据写到本地磁盘,然后发送给另一个主机。另一个主机再将数据存到自己的磁盘中。其他所需的组件有集群成员服务,如TurboHA 或 心跳连接,以及一些能在块设备上运行的应用程序。例如:裸I/O文件系统及fsck具有恢复能力的数据库。IXDBA.NET社区论坛3 它是如何工作的?每个设备(drbd 提供了不止一个设备)都有一个状态,可能是主状态或辅助状态。在带有主要设备的节点上,应用程序应能运行和访问设备(/dev/nbX)。每次写入都会发往本地低层设备和带有辅助状态设备的节点中。次要设备只能简单地把数据写入它的低层块设备上。读取数据通常在本地进行。如果主要节点发生故障,心跳将会把辅助设备转换到主状态,并启动其上的应用程序。(如果您将它和无日志FS 一起使用,则需要运行fsck)。如果发生故障的节点恢复工作,它就会成为新的辅助节点,而且必须使自己的内容与主节点的内容保持同步。当然,这些操作不会干扰到后台的服务。4 drbd 同现在的HA 集群有什么关系?大部分现行高可用性集群(如:惠普、康柏等等)使用的是共享存储器,因此存储器连接多个节点(用共享的SCSI 总线或光纤通道就可以做到)。Drbd 也可以作为一个共享的设备,但是它并不需要任何不常见的硬件。它在IP 网络中运行,而且在价格上IP 网络要比专用的存储网络经济的多。目前,drbd 每次只允许对一个节点进行读写访问,这对于通常的故障切换高可用性集群来讲已经足够用了。以后的版本将支持两个节点进行读写存取。这很有用,比如对GFS 来讲就是如此。兼容性Drbd 可以在ide、SCSI 分区和整个驱动器之上运行,但不能在回路模块设备上运行。(如果您硬要这样做,它就会发生死锁)。Drbd 也不能在回送网络设备中运行。(因为它同样会发生死锁:所有请求都会被发送设备占用,发送流程也会阻塞在sock_sendmsg()中。有时,接收线程正从网络中提取数据块,并试图把它放在高速缓存器中;但系统却要把一些数据块从高速缓存器中取到磁盘中。这种情况往往会在接收器的环境下发生,因为所有的请求都已经被接收器块占用了。5 安装下载软件最新的稳定版本为0.6.11,您可从http:// 下载它。您可以从CVS 中得到最新的源文件。注意,有时代码不能进行编译。您可以通过cvs 或命令行界面得到它:philippalf drbd$ export CVSROOT= :pserver : :/var/lib/cvs/drbdphilippalf drbd$ cvs login(Logging in to )CVS password:Press the return keyphilippalf drbd$ cvs -z9 checkout drbd要获取当前的开发分支,可以使用如下命令:philippalf drbd$ cvs -z9 checkout -r rel-0_7-branch6 编译包直接编译即可。只需如下操作:$ make$make install如果您想为drbd 编译不同版本的内核,您需要定义KERNVER(包括路径)同时您也要定义drbd 的安装路径。make KERNVER=2.4.22-7 KDIR=/usr/src/linux-2.4.22-7-includemake KERNVER=2.4.22-7 PREFIX=/local/lib/module/path/ install测试加载drbd 模块如果这些都已经创建和安装妥当,您就可以测试加载模块了。$ /sbin/insmod drbd 如果一切正常,您不会看见任何ERROR(错误)信息,用Ismod 程序可以验证模块是否已被加载。dev2-98:/rpm/SPECS # lsmodModule Size Used by Tainted:PFdrbd 40140 0 (unused).$ dmesg.drbd:initialised.Version:0.6.8(api:63/proto:62)如果您看到了drbd,就表示一切正常。就可以继续执行rmmod,并转到举例配置部分。$ /sbin/rmmod drbd问题未解决符号如果在加载模块时,出现了如下信息:drbd.o:unresolved symbol sock_allocdrbd.o:unresolved symbol proc_registerdrbd.o:unresolved symbol schedule_timeout.这就表示您在内核中编译了CONFIG_MODVERSIONS,而DRBD 模块中没有编译MODVERSIONS,或者正好相反。这里给出两种解决方案:用不带MODVERSIONS 的系统: 更改您的内核配置, 删掉CONFIG_MODVERSIONS 选项。(参见linux/.config。)重建内核。使用带MODVERSIONS 模块的系统:编辑drbd/Makefile.vars,并将-DMODVERSIONS -DCONFIG_MODVERSIONS 添加到KERNFLAGS,最后重建DRBD。7 命令的使用drbdsetupdrbsetup 是drbd 程序套件中的底层配置工具。您可以使用该工具把低层模块设备和drbd 设备联系起来、安装drbd 设备对,以便镜像它们的低层模块设备和检查运行drbd 设备的配置。使用drbdsetup 的例子假设您的两台机器分别命名为节点1(0)和节点2(0),您想在这两台机器上使用/dev/hdc6 作为它们的低层设备。那么在节点2 上,您可以发出以下命令:$ insmod drbd.o$ drbdsetup /dev/nb0 disk /dev/hdc6$ drbdsetup /dev/nb0 net 0 0 B在节点1 上,您可以发出以下命令:$ insmod drbd.o$ drbdsetup /dev/nb0 disk /dev/hdc6$ drbdsetup /dev/nb0 net 0 0 B$ drbdsetup /dev/nb0 primary此时,您就可以像在其他设备一样使用/dev/nb0 了。$ mkfs -b 4096 /dev/nb0$ mount /dev/nb0 /mnt/mountpoint上例中使用了“B”协议。drbd 允许您选择所需的协议,以控制如何将数据写入辅助设备。8 DRBD 协议协议说明A 数据一旦写入磁盘并发送到网络中就认为完成了写入操作。B 收到接收确认就认为完成了写入操作。C 收到写入确认就认为完成了写入操作。您还可以选择其它参数来将数据传输给磁盘和网络选项。更多详情,请参见drbdsetup 手册页。9 Config 和脚本的使用drbd.conf 和脚本在上面,我们介绍了drbdsteup 的使用。drbd 也允许您直接在drbd.conf 文件中进行设置。通过正确地设置该文件和使用init.d/drbd 脚本,您能够轻松让drbd在机器启动后正常运行起来。drbd.conf 设置举例在本配置中,两台机器分别命名为thost1 和thost2。thost1 的IP 地址是1,thost2 的IP 地址是2。我们要在thost1 的/dev/hda7 和thost2的/dev/hda7 之间创建镜像。下面是一个完成该操作的/etc/drbd.conf 文件范例:resource drbd0 protocol=Bfsck-cmd=fsck.ext2 -p -yon thost1 device=/dev/nb0disk=/dev/hda7address=1port=7789on thost2 device=/dev/nb0disk=/dev/hda7address=2port=7789脚本的使用创建了drbd.conf 文件之后,在thost1 上运行如下命令:$ /etc/rc.d/init.d/drbd start在thost2 进行同样的操作,$ /etc/rc.d/init.d/drbd start此时,两台设备之间就建立起一个镜像,您可以查看/proc/drbd 进行核实。$ cat /proc/drbd现在您可以在设备上创建一个文件系统,然后把它加载到thost1 上。$ mkfs /dev/nb0$ mount /dev/nb0 /mnt/disk恭喜您,现在您已经使用drbd 创建了一个镜像。要进一步创建高可用性的故障切换系统,请查看脚本子目录,并可结合使用 上提供的心跳软件#FAQ#10 其它问题1、超时限制的工作原理是怎样的呢? 主节点在发出数据块之后,会等待另一个节点在某一时间范围内做出响应(该时间范围可以通过drbdsetup 中的超时限制选项进行设置)。 一旦另一个节点超过该时限仍未做出响应,主节点就会断开连接并尝试着重新再建立一个连接。2、为什么超时限制短点好呢? 如果另一个节点停机,主节点会就地等待,阻断所有正在向DRBD 设备写入数据的应用。这样一来,一直要等到超时限制过后它才会判断出 另一个节点已经停机,而您的应用就会停滞这么长时间。3、为什么短的超时限制会导致timeout/resync/connect 的情况发生呢? 如果次节点的IO 子系统较慢,就会发生这种情况。4、什么是“延迟数据包”? 为改进这种状况,我产生了“延迟期限”数据包的设想。当次节点意识到它将超时的时候,它就会发送这种数据包。5、如果看到出现了timeout/resync/connect 情况时,您会怎么办? 延长超时限制。(因为connect-int 和pint-int 需要比超时限制更长,所以也要相应地延长它们)6、tl-size 对于syslog 中出现“transfer log too small”(传输日志太小)这样的信息,该采取的措施需要很大篇幅来描述。7、SyncAll 只运行了一半,但我觉得它实在太慢了! 您可以在运行时使用drbdsetup 工具里的syncer 子命令来重新配置同步参数。请参见drbdsetup man page(手册页)了解更多信息。11 一般问题1、问:首先,什么是DRBD?DRBD 是Linux 操作系统的一个分布式远程块设备。它允许您在远程机器上建立一个本地块设备的实时镜像。与心跳连接结合使用,它可打造出高可用性的Linux 集群。2、问:哪里可以下载DRBD?答:最新版本的DRBD 可以从LinBit Information Technologies GmbH 获得。此外,DRBDD 还包括在许多Linux 发行版中例如DebianGNU/Linux 和其它程序。3、问:DRBD 适用于哪种许可情形?答: DRBD 是依照General Public License Version 2 vom Juni 1991 (GPL)发行的。因此在这种许可条件下,它可以自由分发和修改。12 编译问题问:在编译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 make1:* drbd_syncer.o Error 1IXDBA.NET技术社区 make1: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) #else13 安装和设置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 cloneconfigmake dep通常,您不必重新编译内核,只编译drbd 即可。以后的DRBD 版本将在创建过程中解决这一问题。14 操作问题1、问:为什么drbdsetup /dev/nb0 复制(完全同步)的速度那么慢?答:出于历史原因,复制需要回写数据。而在回写数据时,很多物理设备的速度都非常慢。在更新的DRBD 版本中可能会解决这一问题。2、问:为什么我的“load averag”(平均负载)那么高?答:平均负载定义为给定的时间间隔内,runqueue 里的平均进程数。如果进程具有以下特点,它就会被列入runqueue 中: 不是在等待外部事件(如:在某些fd 上选择) 不是在等待它自己的事件(不是受呼“等待”) 未被终止注:所有等待磁盘io 的进程都会包括在内。所以,虽然系统实际可能近乎是空闲的,但如果有很多进程在等待磁盘io, “load average”就会很高。例:关闭nfs 服务器,启动100ls /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在使用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑行业智能建筑管理系统开发方案
- 一年级数学(上)计算题专项练习集锦
- 家政服务行业互联网+转型:家政服务O2O平台运营策略报告(2025年)
- 数字化赋能下的全球价值链重构-洞察及研究
- 3D打印技术在航空航天发动机涡轮叶片的大规模生产技术突破报告
- 中级银行从业资格之中级银行业法律法规与综合能力预测复习及答案详解【网校专用】
- 自考专业(金融)考试综合练习【培优A卷】附答案详解
- 中山大学招聘7名博物馆(校史馆)专业技术人员的笔试备考题库及答案详解一套
- 环保产业绿色制造技术与装备开发方案
- 中级银行从业资格之中级银行业法律法规与综合能力通关测试卷带答案详解(考试直接用)
- 待灭菌物品的装载
- 《急性肺栓塞诊断和治疗指南2025》解读
- 2025年职业卫生技术服务专业技术人员考试(放射卫生检测与评价)历年参考题库含答案详解(5套)
- 《健康体检超声检查质量控制专家建议(2025版)》解读课件
- 2025至2030年中国小信号分立器件行业市场运行现状及投资战略研究报告
- 老年人基础照护护理协助协助老人床椅转移
- 2025年北京中考真题英语试题及答案
- 班组人工协议书
- 2025年浙江省中考社会试题卷(含答案)
- 2025年公需课考试题库(附答案)
- 2025至2030全球及中国过敏原提取物行业产业运行态势及投资规划深度研究报告
评论
0/150
提交评论