Drbd+heartbeat+nfs

设备信息:

masterip 192.168.8.220/24  eth0   增加sdb磁盘无需挂载

backup: ip 192.168.8.221/24   eth0  增加sdb磁盘无需挂载

拓扑:

编辑 /etc/hosts     (master+backup)

下载drbd源码包:drbd8.4.3.tar.bz2

一:编译安装drbd  master+backup

1.1安装依赖

Yum install gcc gcc-c++ make flexkernel-devel kernel-heders

解压并安装:

./configure –prefix=/usr/local/drbd –with-kem#--with-kem 开启内核模块

make KDIR=/usr/src/kernels/’uname-r’#指定系统内核源码路径

make install

modprobe drbd    ##加载内核模块

lsmod | grep drbd

配置drbd master+backup

cp /usr/local/drbd/etc/drbd.d/global_common.conf global_common.conf.bak 

vi global_common.conf

global {

usage-countno;

}

common {

protocol C;

startup {

wfc-timeout120;

degr-wfc-timeout120;

}

disk {

on-io-errordetach;

fencingresource-only;

}

net {

cram-hmac-alg"sha1";

shared-secret"uccc";

}

syncer {

rate 30M;

}

}

2:创建资源文件(master+backup)

vi /usr/local/drbd/etc/drbd.d/nfs.res   #创建名为nfs的资源文件

resource nfs {

on master {

device/dev/drbd0;

disk/dev/sdb1;

address 192.168.8.220:7788;

meta-diskinternal;

}

on backup {

device/dev/drbd0;

disk/dev/sdb1;

address 192.168.8.221:7788;

meta-diskinternal;

}

}

激活资源:(master+backup)

drbdadm  create-md nfs   ##drbdadmdrbd的管理命令

启动drbd(master+backup)

service drbd start   ##启动drbd

service drbd sattus   ##查看drbd状态

设置开机启动(master+backup)

chkconfig –add drbd

chkconfig drbd on

因为默认状态下masterbackup的状态都为secondary,所以需要设置masterprimary(master)

drbdsetup /dev/drbd0 primary –force     ##设置masterprimary

格式化并挂载磁盘(master

mkfs.ext4 /dev/drbd0

mkdir /data

mount /dev/drbd0 /data

查看磁盘使用情况

df –h

至此drbd安装完成。

二:安装NFSmaster+backup

yum install rpcbind nfs-utils –y

编辑配置文件:vi exports

servicerpcbind start

service nfsstart

chkconfigrpcbind on

chkconfig nfson

修改nfs启动配置

vi/etc/init.d/nfs

修改配置

killproc nfsd -2 9     ##此处配置是否必须?

三:安装heartbeat master+backup

3.1通过yum安装,默认yum源没有此包,需对源进行更新。

rpm -Uvh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm

yum install heartbeat* -y

heartbeat有三个配置文件

authkeys ha.cf  haresources    ##分别为认证文件、主配置文件、资源文件

3.2 master配置heartbeat

3.2.1 [root@master ~]# cat /etc/ha.d/ha.cf| grep -v "^#"

debugfile /var/log/ha-debug

logfile   /var/log/ha-log

logfacility    local0

keepalive 2

deadtime 10

warntime 10

initdead 120

udpport 694     ##端口号

ucast eth0 192.168.8.221   ##对端的ip

auto_failback off     ##自动切换

node     master #主节点

node     backup       #备节点

ping 192.168.8.1      ##ping网关

3..2.2 配置authkeys

vi /etc/ha.d/authkeys

auth 1       # 采用何种认证

1 crc        #无加密认证

#2 sha1 HI

#3 md5 Hello!

3.2.3配置haresources

vi /etc/ha.d/haresources

master IPaddr::192.168.8.222/24/eth0 drbddisk::nfs Filesystem::/dev/drbd0::/data::ext4 killnfsd

###此处说明:共有5部分

1部分:主节点主机名

2部分:设置heartbeatvip;即对外服务ip

3部分:设置对资源文件进行的操作。通过drbddisk

4部分:文件系统类型及挂载点

5部分:执行killnfsd脚本

共有4个脚本:IPaddr    drbddisk      Filesystem   killnfsd

需要存放在/etc/ha.d/resource.d/  中,但是经过查看目录中没有drbddisk。所以导致启动一直没能成功。需要找到drbddisk文件并复制到/etc/ha.d/resource.d/

killnfsd文件也需要自己创建。

3.2.4

如图:

查找drbddisk文件,发现在drbd安装文件中是有的,直接复制过去。

cp /usr/local/drbd/etc/ha.d/resource.d/drbddisk/etc/ha.d/resource.d/

创建killnfsd文件

cd /etc/ha.d/recource.d/;vi killnfsd

killall -9 nfsd; /etc/init.d/nfs restart;exit 0

chmod +x killnfsd

3.2.5 修改文件权限

chmod 600  /etc/ha.d/authkeys

chmod 755 /etc/ha.d/resource.d/killnfsd

3.3 backup配置heartbeat

3.3.1复制master的配置文件到backup中。

scp ha.cfauthkeys haresources backup:/etc/ha.d/

scp resource.d/killnfsd backup:/etc/ha.d/resource.d/

scp resource.d/drbddisk backup:/etc/ha.d/resource.d/

3.3.2配置master的ha.cf文件

ucast eth0 192.168.8.220  #修改此处为masterip

3.4启动heartbeatmaster+backup

service heartbeat start    #启动

chkconfig heartbeat on   #设置开机启动

service heartbeat status   #查看状态

ip a 查看ip地址发现 vip已经存在

ping 192.168.8.222 已通

heartbeat已经安装完成!

:模拟测试

4.1 masterdrbd状态与master /data 分区

可以看出masterdrbdprimary状态,且/drv/drbd0已经挂载到/data

4.2 backup查看drbd状态与 /data 分区

backupdrbd状态为secondary,且无/data分区

4.3 关闭masterheartbeat,查看drbd状态,与backup的分区信息

关闭heartbeat后,masterdrbd状态切换至secondary,且/data分区已经消失。

 

 

 

 

查看backup的主机。

发现drbd状态已由原来的secondary切换至primary

再观察分区,发现/dev/drbd0已成功挂载至/data

实验完成!!