在Linux上配置DRBD部署

drbd 工作原理
DRBD是一种块设备,能够被用于高可用(HA)之中.它相似于一个网络RAID-1功能.当你将数据写入本地 文件系统时,数据还将会被发送到网络中还有一台主机上.以同样的形式记录在一个文件系统中。

本地(主节点)与远程主机(备节点)的数据能够保证实时同步.当本地系统出现问题时,远程主机上还会 保留有一份同样的数据,能够继续使用.在高可用(HA)中使用DRBD功能,能够取代使用一个共享盘阵.
由于数据同一时候存在于本地主机和远程主机上,切换时,远程主机仅仅要使用它上面的那份备份数据,
就能够继续进行服务了。
两台机器的环境例如以下:
hostname:srv5.localdomain
192.168.8.5
hostname:srv6.localdomain
192.168.8.6

准备环境

在两台机器上各新加一块磁盘
fdisk -l 列出全部的磁盘和分区的情况
在实验中能够看到新加的磁盘还没有分区
Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

对新加的磁盘分区
[root@srv5 ~]# fdisk /dev/sdb

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e
Partition number (1-4): 1
First cylinder (1-130, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-130, default 130):
Using default value 130

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (1-130, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-130, default 130):
Using default value 130

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
载入磁盘信息
partprobe /dev/sdb
cat /proc/partions

安装和配置DRBD

1。两台机器上分别安装drbd
yum -y install kmod-drbd83 drbd83
检查是否成功安装
[root@srv5 yum.repos.d]# modprobe -l | grep -i drbd
/lib/modules/2.6.18-53.el5/weak-updates/drbd83/drbd.ko
安装完毕后再/sbin 文件夹下有drbd的命令文件。 在/etc/init.d/文件夹下有drbd启动脚本
[root@srv5 yum.repos.d]# ls /sbin/drbd*
/sbin/drbdadm  /sbin/drbdmeta  /sbin/drbdsetup

2,配置drbd
2.1,在两台机器的hosts文件里加入例如以下的内容:
192.168.8.5 srv5.localdomain
192.168.8.6 srv6.localdomain

2.2,DRBD运行的时候要读取/etc/drbd.conf文件,
将文件的内容保存为例如以下内容:
include "drbd.d/global_common.conf";
include "drbd.d/*.res";

改动global_common.conf文件内容例如以下:

global {
	usage-count no;
}
common {
	protocol C;
	startup {
		wfc-timeout 15;  
		degr-wfc-timeout 15;  
		outdated-wfc-timeout 15;  
	}
	disk {
		on-io-error detach;  
		fencing resource-only;  
	}
	net {
		cram-hmac-alg sha1;  
		shared-secret "123456";   
	}
	syncer {
		rate 100M;  
	}
}
创建一个xserver.res文件内容例如以下:
resource xserver {   
	meta-disk internal;   
	device /dev/drbd0; #device指定的參数最后必须有一个数字,用于global的minor-count,
	#否则会报错。device指定drbd应用层设备。 
	on srv5.localdomain{    #注意:drbd配置文件里。机器名大写和小写敏感。
		address 192.168.8.5:7789;   
		disk /dev/sdb5;    
	}   
	on srv6.localdomain {   
		address 192.168.8.6:7789;   
		disk /dev/sdb5;  
	}   
}


2.3,如果上面的配置是在92.168.8.5上做的。拷贝上面配置好的3个文件到92.168.8.6上
scp /etc/drbd.conf 192.168.8.6:/etc/drbd.conf
scp /etc/drbd.d/* 192.168.8.6:/etc/drbd.d/

3,在两台机器上创建drbd元数据信息:
[root@srv5 ~]# drbdadm create-md all
Writing meta data...
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created.

4。启动服务。
4.1,在主节点92.168.8.5上
service drbd start
在备份节点92.168.8.6上
service drbd start
在两台机器上用以下的命令drbd-overview或者cat /proc/drbd查看,发现都是Secondary 备份状态
[root@srv5 ~]# drbd-overview
  0:xserver  Connected Secondary/Secondary Inconsistent/Inconsistent C r-----
[root@srv6 ~]# cat /proc/drbd
version: 8.3.15 (api:88/proto:86-97)
GIT-hash: 0ce4d235fc02b5c53c1c52c53433d11a694eab8c build by mockbuild@builder17.centos.org, 2013-03-27 16:04:08
 0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:1044092

4.2,在主节点92.168.8.5上运行以下的命令让其成为主节点
drbdadm -- --overwrite-data-of-peer primary all
然后再看状态:
[root@srv5 ~]# drbd-overview
  0:xserver  SyncSource Primary/Secondary UpToDate/Inconsistent C r---n-
        [=============>......] sync'ed: 70.6% (310268/1044092)K
[root@srv5 ~]# drbd-overview
  0:xserver  SyncSource Primary/Secondary UpToDate/Inconsistent C r---n-
        [================>...] sync'ed: 89.1% (117372/1044092)K
[root@srv5 ~]# drbd-overview
  0:xserver  Connected Primary/Secondary UpToDate/UpToDate C r-----

4.3,将/dev/drbd0格式化并挂载
在主节点192.168.8.5上运行以下的命令
mkfs.ext3 /dev/drbd0
mkdir /xserver-storage
mount /dev/drbd0 /xserver-storage
4.4,測试同步
在主节点192.168.8.5上运行以下的命令
cd /xserver-storage
echo "a file created in server5" > testfile
在备份节点192.168.8.6上运行以下的命令
mkdir /xserver-storage
mount /dev/drbd0 /xserver-storage
#mount 会出错,由于mount仅仅能在Primary一端使用
在主节点192.168.8.5上运行以下的命令变成备份节点
umount /xserver-storage
drbdadm secondary all
在备份节点192.168.8.6上运行以下的命令变为主节点,能够看到192.168.8.5同步过来的内容
drbdadm primary all
mount /dev/drbd0 /xserver-storage
less /xserver-storage/testfile
能够查看到文件的内容为"a file created in server5"
在192.168.8.6新建一个文件
echo "a file created in server6" > testfile2
再将192.168.8.5变为主节点后mount能够看到testfile2的内容也同步了。

转载于:https://www.cnblogs.com/yangykaifa/p/6917257.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值