www.bee1.com 10.0.0.1 centos1 #心跳线互联地址
www.bee2.com 10.0.0.2 centos2 #心跳线互联地址
时间同步
ntpdate ntp.api.bz
yum install gcc gcc-c++ make glibc flex
在primary和secondary节点上均配置
cd /usr/local/src
tar zxvf drbd-8.0.6.tar.gz
cd drbd-8.0.6
make
如果使用了新内核
make DKDIR=/usr/src/linux
或者
make DKDIR=/usr/src/kernel
make install
DRBD安装完成后主要生成命令drbdsetup,drbdadmin,配置文件
/etc/drbd.conf,启动文件/etc/init.d/drbd及模块drbd.ko。
可以查看如下目录
/lib/modules/…/kernel/drivers/block/
加载模块
modprobe drdb
lsmod | grep drbd
mknod /dev/drbd0 b 147 0
假定两台机器都将/dev/sdb1互相作为镜像,那么相类似的配置如下:
yum install -y portmap
yum install -y nfs
mkdir /drbd
vim /etc/exports
/d 10.1.2.0/255.255.252.0 (rw,no_root_squash,no_all_squash,sync)
限定共享文件系统的网段10.1.2.0/255.255.252.0
service portmap start
chkconfig --level 3 portmap
chkconfig --level 3 nfs off
NFS交由Heartbeat管理
resource r0 { #创建的资源名
protocol C; #C协议:如果收到远程主机的写入确认,则认为写入完成。
startup {
wfc-timeout 0;
degr-wfc-timeout 120;
}
disk {
on-io-error detach;
}
net {
timeout 60;
connect-int 10;
ping-int 10;
max-buffers 2048;
max-epoch-size 2048;
}
syncer {
rate 30M; #同步最大速率。同步带宽一般100~200M,可以取值占用带宽最小值的30%。
}
on www.bee1.com {
device /dev/drbd0;
disk /dev/sdb;
address 10.0.0.1:7788; #心跳互联地址
meta-disk internal; #表示在同一个局域网内
}
on www.bee2.com {
device /dev/drbd0
disk /dev/sdb;
address 10.0.0.2:7788;
meta-disk internal;
}
}
drbdadm create-md r0 #配置文件中定义的资源名称
/etc/init.d/drbd start
chkconfig drbd on
cat /proc/drbd #主要查看st和ds状态
drbdsetup /dev/drdb0 primary -o #第一次运行时执行一次
drbdadm primary r0
cat /proc/drbd #主要查看st和ds状态
或者
service drbd status #主要查看st和ds状态
最终状态应为(数据同步完成)
cs:Connected
st:Primary/Secondary
ds:UpToDate/UpToDate
mkfs.ext3 /dev/drbd0
mount /dev/drbd0 /drbd
现在可以对/drbd分区操作了。
secondary节点上不允许对DRBD设备进行任何操作,包括只读。所有的读写操作只能在primary节点上进行。只有当primary节点挂掉时,secondary节点变为primary节点,才可以进行读写操作。
此外,如果启用了Heartbeat,就不需要手动mount了,Heartbeat会自动mount。
DRBD官网 https://www.linbit.com/en/drbd-community/drbd-download/
FAQ http://www.linux-ha.org/DRBD/FAQ
yum install -y heartbeat
配置文件
/etc/ha.d/ha.cf #heartbeat参数配置文件
/etc/ha.d/haresources #heartbeat资源配置文件,如配置IP资源及脚本程序等
/etc/ha.d/authkeys #heartbeat认证文件,高可用服务器对之间根据对端的authkey,对对端进行认证
/etc/ha.d/resource.d/killnfsd
对DRBD的primary和secondary节点配置均为
logfile /var/log/ha-log
logfacility local0
keepalive 2 #心跳时间2秒
deadtime 5 #死亡时间5秒
ucast eth1 10.0.0.2 #单播方式,目标为对端IP
auto_failback off #服务正常后由主服务器接管资源,另一台服务器放弃该资源
node www.bee1.com www.bee2.com #定义节点
chmod 600 /etc/ha.d/authkeys
auth 1
1 crc
www.bee1.com IPaddr::192.168.1.108/24/eth0 drbddisk::r0 Filesystem::/dev/drbd0::/drbd::ext3 killnfsd
primary和secondary节点上均使用上述配置。主机均为www.bee1.com。
killall -9 nfsd; /etc/init.d/nfs restart; exit 0
chmod 755 /etc/ha.d/resource.d/killnfsd
service heartbeat start
这时可以挂载192.168.1.108:/drbd到本地文件系统。192.168.1.108是Heartbeat产生的VIP地址,也是对外提供NFS服务的地址。
drbdadm secondary r0
drbdadm disconnect all
drbdadmin -discard-my-data connect r0
在primary节点上执行
drbdadm disconnect all
drbdadm connect r0
如果primary节点硬件损坏,需将secondary提升为primary节点,可以如下:
先在primary主机上卸载掉DRBD
umount /d
再将primary变为secondary
drbdadm secondary r0
cat /proc/drbd
回显
cs:Connected st:Secondary/Secondary ds:UpToDate/UpToDate
将secondary节点提升为primary
drbdadm primary r0
cat /proc/drbd
回显
cs:Connected st:Primary/Secondary ds:UpToDate/UpToDate