一、项目需求描述
现在使用的架构是nfs+keepalived+rsync+sersync,目前这套架构存在主从nfs节点数据同步不一致问题,大概会有 120s左右的数据延长同步时间,需要提供优化的自动化方案。
二、现有方案缺点
1、切换不能保证主从节点数据一致。
2、客户端需要umount,在从新mount,客户端才能正常读写。
3、sersync+nfs主从节点进行切换时,如果主节点数据没有完全同步到从节点,从节点接管了主节点,sersync在去推送时会导致数据丢失。
4、目前只能单点运行。
三、方案目标
保证业务稳定性和数据的完整性。
四、资源选型
-
三台centos7.6 4C8G200G规格的机器
-
规划资源角色
类型 |
主节点 |
备节点 |
VIP地址 |
客户端 |
IP |
10.241.212.3 |
10.241.212.4 |
10.241.212.249 |
10.241.212.1 |
角色 |
keepalived |
keepalived |
||
nfs-server |
nfs-server |
nfs-client |
||
drbd-Primary |
drbd-Secondary |
-
DRBD90版
五、准备工作
-
修改主机名称(主备节点两台机器执行)
vim /etc/hosts
10.241.212.3 nfs-master
10.241.212.4 nfs-backup
-
设置ssh互信(主节点执行)
ssh-keygen -f ~/.ssh/id_rsa -P '' -q
ssh-copy-id nfs-backup
ssh-copy-id nfs-master
-
关闭防火墙(主备节点两台机器执行)
systemctl stop firewalld && systemctl stop iptables
systemctl disable firewalld && systemctl disable iptables
-
配置磁盘gpt分区(主备节点两台机器执行)
parted /dev/sdb
mklabel gpt
mkpart primary 0 -1
-
配置yum源(主备节点两台机器执行)
rpm -ivh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
yum install -y glib2-devel libxml2-devel bzip2-devel flex-devel bison-devel OpenIPMI-devel net-snmp-devel ipmitool ipmiutil ipmiutil-devel asciidoc kernel-devel