标签:drbd drbd安装
DRBD安装与配置
1.什么是DRBD?
DRBD是由内核模块和相关脚本构成,用以构建高可用性的集群。其实现方式是通过网络来镜像整个设备。它允许用户在远程机器上建立一个本地块设备的实时镜像。也可以把它看成一个网络RAID1。
工作原理:
DRBD负责接收数据,把数据写到本地磁盘,然后发送给另一个主机。另一个主机再将数据存到自己的磁盘中。目前,DRBD每次只允许对一个节点进行读写访问,这对于通常的故障切换高可用性集群已经够了。
DRBD协议:
A:数据一旦写入磁盘并发送到网络中就认为完成了写入操作
B:收到接受确认就认为完成了写入操作
C:收到写入确认就完成了写入操作
目前运用最多的就是C协议
下面就开始安装配置DRBD
1.前提
1)本环境共有两个测试节点,分别ha1.fpj.com和ha2.fpj.com,相的IP地址分别为192.168.3.100和192.168.3.101
2) ha1.fpj.com和ha2.fpj.com两个节点上各提供了一个大小相同的分区作为drbd设备;我们这里为在两个节点上均为/dev/sdb1,大小为10GB;
3) 系统一台为Centos6.3.i686,一台为Centos6.5.i686(先前因安装了)
4)内核分别为2.6.32-279.el6.i686;2.6.32-431.el6.i686
2.准备工作
配置双方hostname、hosts并建立ssh无密码互通
2/1.下载软件包
wget http://oss.linbit.com/drbd/8.4/drbd-8.4.3.tar.gz
drbd共有两部分组成:内核模块和用户空间的管理工具。
2/2.安装kernel-devel与kernel-headers最好用本地源安装
3.安装DRBD
我这边用编译安装,两个节点上都需要安装。
tar zxvf drbd-8.4.3.tar.gz
cd drbd-8.4.3
./configure --prefix=/usr/local/drbd --with-km #--!prefix是制定安装路径。--with-km是启用内核模块
make KDIR=/usr/src/kernels/2.6.32-431.el6.i686/ #--!KDIR指的是自己的内核路径
make install
mkdir -p /usr/local/drbd/var/run/drbd #--!这里需创建这个目录,不然启动服务会报错
cp /usr/local/drbd/etc/rc.d/init.d/drbd /etc/rc.d/init.d/
chkconfig --add drbd
chkconfig drbd on
安装DRBD模块
cd drbd
make clean
make KDIR=/usr/src/kernels/2.6.32-431.el6.i686/
cp drbd.ko /lib/modules/2.6.32-431.el6.i686/kernel/lib/
moprobe drbd #加载内核模块
lsmod | grep drbd
drbd 292339 0
libcrc32c 841 1 drbd
4.配置DRBD
通常/etc/drbd.d目录中的配置文件为global_common.conf和所有以.res结尾的文件。其中global_common.conf中主要定义global段和common段。每一个.res的文件用于定义一个资源。resource段则用于定义drbd资源,每个资源通常定义在一个单独的位于/etc/drbd.d目录中的以.res结尾的文件中。资源在定义时必须为其命名,名字可以由非空白的ASCII字符组成。每一个资源段的定义中至少要包含两个host子段,以定义此资源关联至的节点,其它参数均可以从common段或drbd的默认中进行继承而无须定义。
下面,先在ha1主机上配置global_common.conf与定义fpj.res资源,配置定义完以后拷贝到ha2一份。
1.配置global-common.conf
global {
usage-count no;#是否参加drbd的使用者统计,默认为yes
# minor-count dialog-refresh disable-ip-verification
}
common {
protocol C;#使用drbd的同步协议
handlers {
pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";
}
startup {
#wfc-timeout 120;
#degr-wfc-timeout 120;
}
disk {
on-io-error detach;#配置I/O错误处理策略为分离
rate 200M;#设置主备节点同步时的网络速率
}
net {
cram-hmac-alg "sha1";
shared-secret "123456";
}
}
2.定义一个资源fpj.res,内容如下:
resource fpj { #fpj是定义资源的名字
on ha1 { #on后面是主机名称
address 192.168.3.100:7789;#设置DRBD的监听端口,用于与另一台主机通信。
device /dev/drbd0; #drbd设备名称
disk /dev/sdb1; #drbd使用的磁盘分区为sdb1
meta-disk internal;
}
on ha2 {
address 192.168.3.101:7789;
device /dev/drbd0;
disk /dev/sdb1;
meta-disk internal;
}
}
3.在两个节点上初始化已定义完的资源并启动drbd服务
drbdadm create-md fpj:
再启动drbd服务:
查看下启动状态:
从上面的图片中可以看出此时两个节点均处于Secondary状态。我们接下来需要将其中一个节点设置为Primary。在要设置为Primary的节点上执行如下命令:
drbdadm-- --overwrite-data-of-peer primary fpj也可以用 drbdadmn primary --force fpj
而后再次查看状态,可以发现数据同步过程已经开始:
等数据同步完,再次查看已经有了主和备:
4.格式化文件系统;注意:文件系统的挂载只能在Primary节点进行。因此,也只有在设置了主节点后才能对drbd设备进行格式化:
mkfs.ext4 /dev/drbd0
mkdir /mydata #创建挂载目录
mount /dev/drbd0 /mydata#挂载文件系统
df -h #查看挂载
写入文件,我这里写入了一个fpj.txt的文件:
5.切换主备节点
对主Primary/Secondary的drbd服务来讲,在某个时间只能有一个节点为Primary。因此,要切换两个节点的角色,只能在先将原有的Primary节点设置为Secondary后,才能原来的Secondary节点设置为Primary:(注意:这里必须先把ha1上的挂载目录卸载掉)
先将ha1设置为备节点:
drbdadmn secondary fpj
再将ha2设置为主节点:
drbdadmn primary fpj
再ha2上创建目录,挂载磁盘,查看下fpj.txt是否存在:成功切换
至此,DRBD安装配置成功!!
本文出自 “要相信自己” 博客,请务必保留此出处http://fupj1.blog.51cto.com/4816460/1631787
标签:drbd drbd安装
原文地址:http://fupj1.blog.51cto.com/4816460/1631787