Drbd+heartbeat+nfs
设备信息:
master:ip 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 ##drbdadm为drbd的管理命令
启动drbd:(master+backup)
service drbd start ##启动drbd
service drbd sattus ##查看drbd状态
设置开机启动(master+backup)
chkconfig –add drbd
chkconfig drbd on
因为默认状态下master与backup的状态都为secondary,所以需要设置master为primary;(master)
drbdsetup /dev/drbd0 primary –force ##设置master为primary
格式化并挂载磁盘(master)
mkfs.ext4 /dev/drbd0
mkdir /data
mount /dev/drbd0 /data
查看磁盘使用情况
df –h
至此drbd安装完成。
二:安装NFS(master+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部分:设置heartbeat的vip;即对外服务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 #修改此处为master的ip
3.4启动heartbeat(master+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 分区
可以看出master的drbd为primary状态,且/drv/drbd0已经挂载到/data
4.2 backup查看drbd状态与 /data 分区
而backup的drbd状态为secondary,且无/data分区
4.3 关闭master的heartbeat,查看drbd状态,与backup的分区信息
关闭heartbeat后,master的drbd状态切换至secondary,且/data分区已经消失。
查看backup的主机。
发现drbd状态已由原来的secondary切换至primary。
再观察分区,发现/dev/drbd0已成功挂载至/data。