1.heartbeat提供高可用,一台宕机另一台接管。
2.心跳线尽量使用串口或者直连线,否则可能发生裂脑情况,双方同时接不到心跳,同时启服务器和VIP。
3.防止裂脑发生的办法:
多条心跳线,使用stonith设备强行杀死主节点(断电),对裂脑进行监控报警人工再去处理,磁盘锁,接管时间设置比较长给人上去查看是否裂脑留时间,增加仲裁机制。
4.裂脑告警只需查看备机的VIP出现即可,出现VIP不是正常接管就是裂脑
5.HA.cf配置文件:
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local1
keepalive 2
deadtime 30
warntime 10
initdead 60
#bcast eth1
mcast eth2 225.0.0.7 694 1 0
auto_failback off
node data-1-1
node data-1-2
crm no
5.配置别名IP:
ifconfig eth0:0 172.16.1.252 netmask 255.255.255.0 (即将淘汰)
ip addr add 172.16.1.23/24 dev eth0
ip addr del 172.16.1.23/24 dev eth0 (删除别名)
6.资源生效顺序:从左到右
7.让heartbeat执行Drbd的自动切换角色,并且挂载drbd磁盘到datab,并且添加VIP,重新挂载客户端NFS:
SH_T_nfs_01 drbddisk::data Filesystem::/dev/drbd0::/data::ext4 IPaddr::172.16.1.227/24/eth0 remount-nfs (配置DRBD是主,挂载并且切换VIP)
------------------DRBD------------------------------------
1.异步同步:
A模式:写入成功主设备发送到本端TCP返回成功
B模式:写入成功主设备发送到对端TCP返回成功
2.实时同步:C模式,主备设备需要全部写入成功才返回成功(公司一般选这项,数据最安全)
3.裂脑后人工处理办法:
在选定的非主节点上执行:
drbdadm secondary data (更新备节点位状态)主节点上执行: (查看如果不是WFC)
drbdadm connect data (主节点进行连接)
parted /dev/sdb mkpart primary ext4 0 1000 ignore (划分一个1G的ext4分区)
parted /dev/sdb mkpart primary ext4 1001 2000 Yes ignore (在划分一个1G的ext4分区)
parted /dev/sdb p (查看)
6.安装DRBD:
wget -q http://elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm
yum install drbd kmod-drbd84 -y
modprobe drbd (加载到内核)
lsmod |grep drbd (查看是否加载到内核)
7.修改配置文件:
global {
usage-count no;
}
common {
syncer {
rate 10M;
verify-alg crc32c;
}
}
# primary for drbd1
resource data {
protocol C;
disk {
on-io-error detach;
}
on drbd1 {
device /dev/drbd0;
disk /dev/sdb5;
address 10.0.0.14:7788;
meta-disk /dev/sdb7[0];
}
on drbd2 {
device /dev/drbd0;
disk /dev/sdb5;
address 10.0.0.15:7788;
meta-disk /dev/sdb7[0];
}
}
8.激活DRBD:
drbdadm create-md data
/etc/init.d/drbd start 或者 drbdadm up all
cat /proc/drbd (查看状态)
drbdadm -- --overwrite-data-of-peer primary data (以本地为主,强制同步对端数据)
9.格式化主服务器磁盘:
mkfs.ext4 /dev/drbd1 (必须在primary的服务器上面才能格式化)
tune2fs -c -1 /dev/drbd1 (关闭强制检查挂载次数限制)
10.使用DRBD从小硬盘同步到大硬盘上面,如何恢复大硬盘的原始分区大小的方法:
e2fsck -f /dev/sdb1 (检查磁盘分区表)
resize2fs /dev/sdb1 (对磁盘从新扫描分区大小)