1、drbd安装配置DRBD安装配置说明(添加新硬盘)一 安装前说明=DRBD(Distributed Replicated Block Device),分布式复制块设备,是一种通过TCP/IP网络实现块设备数据实时镜像的方案。利用这种方案,单一主节点模式(single primary mode)双机系统能够实时地将业务数据保存在主备节点的磁盘中,正常情况下两个节点的数据是一模一样的。根据官方的说明文档,如果系统内核(linux)版本低于2.6.33,在安装软件之前需要加载DRBD模块,如果高于(或等于)2.6.33,则只安装客户端软件。以下是官网发布的对应版本:此文档是基于每台主机有两块硬盘,硬
2、盘1用于系统安装,硬盘2用于和另一台主机的硬盘进行数据互备。二 安装前环境设定=OS: Fedora 13 内核2.6.33版本硬件环境:两台主机,分别有两块硬盘(用作数据备份的硬盘最好大小相同)主机名 硬盘1 硬盘2www1 sda(15G) sdb(2G)www2 sda(15G) sdb(2G) (此文档中硬盘2将作为互备硬盘)主机名必须设定,因为DRBD靠主机名来识别主机和备份机,设定方法为:#vim /etc/hosts192.168.9.xx hostname1.domain.org hostname1同时要保证两台主机能够相互通信用来做DRBD的分区:/dev/sdb5挂载点:/
3、opt三 安装步骤=检查DRBD模块加载情况:#lsmod如下图所示,表示已经加载该模块四 DRBD配置=-DRBD配置文件drbd.conf-安装完成后,在/etc目录下会生成drbd.conf文件,即为drbd唯一需要配置的文件。对drbd.conf文件进行编辑:#vim /etc/drbd.confglobal usage-count yes; /yes表示同意加入DRBD统计用户数common syncer rate 10M; /确定同步速率resource r0 /r0是资源名称,可自行命名protocol C;disk on-io-error detach; net after-s
4、b-0pri disconnect;after-sb-1pri disconnect;after-sb-2pri disconnect;rr-conflict disconnect;on www1 device /dev/drbd0; disk /dev/sdb5; address 192.168.210.11:7788; flexible-meta-disk internal; on www2 device /dev/drbd0; disk /dev/sdb5; address 192.168.210.44:7788; meta-disk internal; -准备一块新的没有数据的硬盘(只
5、有一块硬盘的情况以上操作与之相同,详见最后说明)-查看当前硬盘设备:#fdisk lDisk /dev/sda: 6442 MB, 6442450944 bytes255 heads, 63 sectors/track, 783 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System/dev/sda1 * 1 743 5968116 83 Linux/dev/sda2 744 783 321300 5 Extended/dev/sda5 744 783 321
6、268+ 82 Linux swap / SolarisDisk /dev/sdb: 1073 MB, 1073741824 bytes255 heads, 63 sectors/track, 130 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDisk /dev/sdb doesnt contain a valid partition table可以看到新添加的硬盘显示在最后,还没有分区,接下来对其进行分区操作# fdisk /dev/sdbCommand (m for help): nCommand actione ex
7、tendedp primary partition (1-4)ePartition number (1-4): 1First cylinder (1-130, default 1):Using default value 1Last cylinder or +size or +sizeM or +sizeK (1-130, default 130):Using default value 130Command (m for help): nCommand actionl logical (5 or over)p primary partition (1-4)lFirst cylinder (1
8、-130, default 1):Using default value 1Last cylinder or +size or +sizeM or +sizeK (1-130, default 130):Using default value 130Command (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.分区完成,用以下命令查看# fdisk -l /dev/sdbDisk /dev/sdb: 1073 MB, 107
9、3741824 bytes255 heads, 63 sectors/track, 130 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesDevice Boot Start End Blocks Id System/dev/sdb1 1 130 1044193+ 5 Extended/dev/sdb5 1 130 1044162 83 Linux这个/dev/sdb5就是准备用作DRBD的磁盘-创建DRBD资源-# drbdadm create-md r0 /r0为配置文件中定义的资源名如果显示如下,表示资源创建成功如果出现以
10、下情况的错误:# drbdadm create-md r0md_offset 1069215744al_offset 1069182976bm_offset 1069150208Found ext3 filesystem which uses 1044160 kBcurrent configuration leaves usable 1044092 kBDevice size would be truncated, whichwould corrupt data and result inaccess beyond end of device errors.You need to either
11、* use external meta data (recommended)* shrink that filesystem first* zero out the device (destroy the filesystem)Operation refused.Command drbdmeta /dev/drbd0 v08 /dev/sdb5 internal create-mdterminated with exit code 40drbdadm aborting这说明在/dev/sdb5上已经有数据存在了,至少已经有了文件系统。遇到这样的情况,有两个解决方法:调整分区大小;备份后擦除现有
12、数据1. 调整分区大小是非常危险的操作。有可能遇到 accessing beyond end of device 的错误,说明磁盘已经写满。如果一定要进行调整,执行以下操作:# e2fsck -f /dev/sdb5 & resize2fs /dev/sdb51044092K2. 第二个方法比较安全,将现有数据备份到其他设备上,然后进行擦除。利用dd命令,可以完成这项工作,下面是备份命令(1) 备份#将本地的/dev/hdx整盘备份到/dev/hdydd if=/dev/hdx of=/dev/hdy#将/dev/hdx全盘数据备份到指定路径的image文件dd if=/dev/hdx of=
13、/path/to/image#备份/dev/hdx全盘数据,并利用gzip工具进行压缩,保存到指定路径(bzip2工具也一样可使用)dd if=/dev/hdx | gzip /path/to/image.gz(2)恢复#将备份文件恢复到指定盘dd if=/path/to/image of=/dev/hdx#将压缩的备份文件恢复到指定盘gzip -dc /path/to/image.gz | dd of=/dev/hdx下面是擦除命令# dd if=/dev/zero of=/dev/sdb5然后就可以在机器上创建资源了:# drbdadm create-md r0五 DRBD的启动、关闭以及
14、测试启动DRBD服务,确保其正常工作hostname1# /etc/init.d/drbd starthostname2# /etc/init.d/drbd start或者使用以下命令代替:hostname1# drbdadm attach r0hostname1# drbdadm connect r0hostname2# drbdadm attach r0hostname2# drbdadm connect r0正常启动后显示为:# /etc/init.d/drbd startStarting DRBD resources: d(r0) .此时查看DRBD运行状况#/etc/init.d/d
15、rbd status可以看到两台机器都处于secondary状态以上操作配置两台机器一样,下面开始分主备机操作为了激发同步启动,将主机(www1)的状态设置为primary(DRBD同时只允许有一台机器处于primary状态) hostame1# drbdsetup /dev/drbd0 primary o(或者#drbdadm overwrite-data-of-peer primary r0)如果是第一次启动,使用第一个命令,之后两个命令都可以用,它们是等价的此时再次查看DRBD状态,发现已经开始同步hostname1# /etc/init.d/drbd status当达到100%的时候,
16、说明同步已经完成,此时两台机器的/dev/sdb2是完全一致的。对主节点进行格式化并创建文件系统:hostname1# mke2fs -j /dev/drbd0 /或者# mkfs.ext3 /dev/drbd0hostname1#mount /dev/drbd1 /opt /将drbd设备挂载到/opthostname1#mkdir /opt/data /建立存放数据的文件夹hostname1#vim /opt/data/testThis is a test 保存退出后,对主节点进行卸载、降级hostname1#umount /opthostname1#drbdadm secondary r
17、0对备份节点进行升级、挂载hostname2#drbdadm primary r0hostname2#mount /dev/drbd0 /opt查看/opt下的数据,和主节点中是一致的,备份成功六 注意事项防火墙设置:打开DRBD需要使用的端口,即drbd.conf配置文件里面的address:port修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,如果要开放哪个端口,在里面添加一条:-A RH-Firewall-1-INPUT -m state -state NEW -m tcp -p tcp -dport 1521 -j ACCEPT就可以了,其中 152
18、1 是要开放的端口号,然后重新启动linux的防火墙服务。停止/启动防火墙服务的命令:用root登录后,执行service iptables stop -停止service iptables start -启动DRDB的一些常规操作:查看DRBD版本:#dpkg l |moredrbd.ko存放路径:/lib/moduled/2.6.33-85.fc13.i686.PAE/kernel/drivers/block/drbd/drbd.ko查看端口使用:#netstat -ant查看DRBD信息:#drbdadm state r0主从节点的切换:主节点切换到备份节点:先卸载(#umount /o
19、pt),再降级(#drbdadm secondary r0)备份节点切换到主节点:先升级(#drbdadm primary r0),再挂载(#mount /dev/drbd0 /opt)(两个节点都是secondary状态后,才可以将其中的一个设置为primary)切换的操作不能在同步的目录下进行!节点间连接:drbdadm connect|disconnect allDRBD脑裂后的处理:脑裂后,两个节点间数据不同步,主从关系失效,需要按下面的步骤修复:a.在从节点如下操作:#drbdadm secondary r0#drbdadm - -discard-my-data connect r0b.在主节点上,通过cat /proc/drbd查看状态,如果不是WFConnection状态,需要再手动连接:#drbdadm connect r0对于只有一块硬盘的情况:DRBD的安装及drbd.conf的配置与有两块硬盘的情况是一样的。配置好drbd.conf之后,使用dd磁盘备份命令,将要作为备份的分区上的数据保存到其它分区,如下图Love is not a maybe thing. You know when you love someone.
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1