免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1787 | 回复: 0
打印 上一主题 下一主题

DRBD技术研究资料 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-26 17:06 |只看该作者 |倒序浏览

                                               


DRBD研究资料

作者:沈小然
翻译:沈小然
msn :victorboy45@hotmail.com
   公司:北京方标讯业科技有限公司
   日期:2007年9月12日

  
 TOC \o "1-3" \h \z \u
[/url]
1        
DRBD是什么?
DRBD 是Linux 操作系统的一个分布式远程块设备。它允许您在远程机器上通过一个专用网络建立一个本地块设备的实时镜像,你看它就像一个网络上的raid-1。与双机软件结合使用。
DRBD接管数据流把它们写进本地磁盘并且发送到其他的主机上。
一个集群服务需要的另外一些成员就是heartbeat和工作在同一个块设备上的某类应用程序。这类成员例如:
A filesystem & fsck. (文件系统或者fsck)
A journaling FS. (日志型文件系统)
A database with recovery
capabilities. (带有恢复能力的数据库)
2        
DRBD如何工作?
每个设备(DRBD提供一个以上的这些设备)都有一个身份,被称为主或从设备。主设备节点被映射为逻辑设备/dev/drbdX。每次写操作都发送到本地的下级块设备,以及从设备节点。从设备简单地写入数据给它的下级块设备。读操作总是在本地完成。
如果主节点失败,heatbeat开始切换从设备转变为主设备身份,并开启应用服务程序。(如果你使用的是一个非日志文件系统,这就涉及到运行fsck)
如果失败的节点再次恢复,它就成为一个新的从设备节点并且与主设备连接做同步。当然这些将在后台运行不会中断服务。
并且,当然我们仅仅再次同步那些实际上发生过改变的数据。如果可能DRBD总是会执行智能同步。开启DRBD-0.7系列产品的服务后,你能够在必设大小尺寸里定义一个“活动配置”,这个配置使DRBD有可能有一个控制在1-3秒内的总同步时间,不必担心设备的容量大小(当前支持4TB以上),甚至是一个有物理损坏的活动节点。
3        
DRBD如何与当前的HA集群连系起来?
根据我对大多数HA集群(例如HP,Compaq,……)的了解它们都是使用共享存储磁盘,因此磁盘设备被连接给多个节点(连接可以由SCSI总线或光线通道做到)。
DRBD提供给你一个大约原理类似的共享设备,但是它不需要任何稀奇古怪的硬件设备做支撑。它运行在IP网络基础之上,在我的印象中要比那些特殊的存储网络廉价得多。
4        
DRBD和集群文件系统
你可以任意运行DRBD设置一个节点作为主设备角色同时设置一个节点作为从设备角色。这种做法是正统的故障切换集群。你应该在你使用一个普通日志文件系统(例如ext2,ext3,XFS,JFS,reiserFS……)时运用DRBD技术,而且DRBD技术必须在上面的文件系统下运行。
自从DRBD-8.0.0版本以来,你能够同时设置两个节点都作为主设备角色,授权挂载一个集群文件系统(一个物理并行文件系统)到兼容的两个节点之一上。例如像OCFS2和GFS这样的文件系统。
5        
DRBD安装概述
5.1       DRBD支持的操作系统:
Suse,Debian,Redhat
5.2       安装前提条件
gcc,make,etc
5.3       DRBD 协议说明
A 数据一旦写入磁盘并发送到网络中就认为完成了写入操作。
B 收到接收确认就认为完成了写入操作。
C 收到写入确认就认为完成了写入操作。
您还可以附加其它参数来将数据传输给磁盘和网络选项。更多详情,请参见drbdsetup
手册页。
5.4       安装系统环境
主设备角色:192.168.0.247,hostname:cluster
Red Hat
Enterprise Linux AS release 4-up3,内核版本:2.6.9-34.EL
从设备角色:192.168.0.245,hostname:test
Red Hat
Enterprise Linux AS release 4-up3,内核版本:2.6.9-34.EL
5.4.1      
安装主设备角色
5.4.1.1        
解包编译安装
# tar zxvf drbd-8.0.6.tar.gz
# cd drbd-8.0.6
# make
# make install
安装成功后将在/sbin/下生成命令文件:drbdadm    drbdmeta  
drbdsetup。
配置文件:/etc/drbd.conf,启动脚本/etc/init.d/drbd。
源码文件:/lib/modules/2.6.9-34.EL/kernel/drivers/block/drbd.ko。
注:源码包里scripts/drbd.conf文件是安装前的源文件,如果/etc/drbd.conf损坏可以用这个替换。
5.4.1.2        
以模块方式挂载drbd模块
# cd /usr/src/drbd-8.0.6/drbd        进入安装包drbd目录
# insmod drbd.ko
# lsmod
Module   Size        Used by
Drbd       222948  0
出现上面信息说明挂载成功,一切顺利。
5.4.1.3        
配置drbd.conf文件
(1)主设备分区表cluster:
Filesystem           
Size  Used Avail Use% Mounted on
/dev/hda6             8.0G
2.8G  4.9G  36% /
/dev/hda1              97M
8.4M   84M  10% /boot
/dev/hda5             9.7G
913M  8.3G  10% /data
none                  189M   
0  189M   0%
/dev/shm
/dev/hda2             9.9G
965M  8.5G  11% /home
/dev/hda3             8.7G
350M  7.9G   5% /opt
从设备分区表test:
Filesystem           
Size  Used Avail Use% Mounted on
/dev/hda6             7.7G
2.2G  5.2G  30% /
/dev/hda1              99M
8.4M   86M   9% /boot
/dev/hda5             9.7G  
55M  9.1G   1% /data
none                  252M   
0  252M   0%
/dev/shm
/dev/hda8             3.5G  
39M  3.2G   2% /home
/dev/hda7             4.9G  
42M  4.6G   1% /opt
/dev/hda3             9.7G
118M  9.1G   2% /var
(2)配置/etc/hosts文件,将主从机的主机名各自添加进对方的文件里。
(3)vi /etc/drbd.conf
resource mail {
        protocol B;
        startup { wfc-timeout
0; degr-wfc-timeout 120; }
        disk { on-io-error
detach; }
        syncer {
                rate 10M;
        }
        on cluster {
                device      /dev/drbd0;
                disk        /dev/hda5;
                address     192.168.0.247:7788;
                meta-disk   internal;
        }
        on test {
                device      /dev/drbd0;
                disk        /dev/hda5;
                address     192.168.0.152:7788;
                meta-disk   internal;
        }
}
注意:这个配置文件必须是主机从机完全相同才行,否则服务启动不了。
5.4.1.5        
启动drbd服务
# /etc/init.d/drbd start
5.4.1.6        
检查服务状态,和查看日志
# netstat –an|more
tcp  0      0 192.168.0.152:800           192.168.0.247:33293         ESTABLISHED
# cat /proc/drbd     查看同步信息的状态
version: 8.0.6 (api:86/proto:86)
SVN Revision: 3048 build by root@cluster, 2007-09-25 10:39:33
0: cs:SyncSource
st:Primary/Secondary ds:UpToDate/Inconsistent B r---
    ns:1098668 nr:0 dw:0 dr:1106240
al:0 bm:67 lo:0 pe:5 ua:237 ap:0
      
[==>.................] sync'ed: 10.8% (8927/9999)M
        finish: 2:32:21 speed:
936 (920) K/sec
        resync: used:1/31
hits:68831 misses:68 starving:0 dirty:0 changed:68
        act_log: used:0/257
hits:0 misses:0 starving:0 dirty:0 changed:0
5.4.2      
安装从设备角色
与上面安装主设备步骤相同。略
5.4.3      
挂接文件系统
两个节点同时只能有一个是primary,另外的是secondary状态,处于secondary状态的服务器不能挂载drbd设备。
主机从机的挂载磁盘最好是同等大小,否则以小容量的为准。
# sfdisk –s      这里必须用sfdisk(fdisk –l无法显示出来)。
/dev/hda:  39082680
/dev/hda1:    102280
/dev/drbd0:  10239888
# mkfs.ext2 /dev/hda5    格式化物理磁盘
# mkdir /data         创建一个挂载点
# mount /dev/drbd0 /data      主机挂接顺利
# mount /dev/drbd0 /data      从机无法挂接,/dev/drbd0被设置为只读模式
mount: block device /dev/drbd0 is write-protected, mounting
read-only
mount: Wrong medium type
5.4.4      
测试磁盘数据同步
1.在主设备192.168.0.247,hostname:cluster上
# touch 123.txt /data      创建一个文件在/data分区上
# ls /data        查看/data分区上的数据,呆会对比下从机数据是否与主机的相同。
123.txt  lost+found  mss
userdb  userdb_front
# umount /data              卸载/data分区
# drbdadm secondary mail       切换角色为从设备
2.在从设备192.168.0.152,hostname:test上
# drbdadm primary mail              切换角色为主设备,这样才能挂接drbd0。
# mount /dev/drbd0 /data      挂载顺利
# ls /data        查看/data分区上的数据,挂接上后数据就已经全在了。
123.txt  lost+found  mss
userdb  userdb_front
5.4.5      
DRBD支持双机的配置
详见我的Linux_HA技术文档
另外,我已经把这项技术与公司邮件系统结合起来,可以实现无须存储设备数据实时同步的双机热备份技术方案。
7        
附件1:DRBDHowto参考翻译文档
[url=http://www.slackworks.com/%7Edkrovich/DRBD/index.html]http://www.slackworks.com/~dkrovich/DRBD/index.html

翻译后的参考文档稍后发表

               
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/8516/showart_390476.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP