linux配置数据nfs高可用,Keepalived+NFS+SHELL脚本实现NFS-HA高可用

本来想做DRBD+HEARTBEAT,但是领导说再加硬盘浪费资源,没有必要,而且在已有硬盘上做风险较大,所以就只能用rsync来实现数据同步了,实验中发现很多的坑,都用脚本和计划任务给填上了,打算把这套直接用在生产环境中,到时候如果还遇到什么问题,再进行修正和补全,下面是项目细节:

主机配置:

web:192.168.6.10 Centos 6.4

nfs1:192.168.6.1 Centos 6.4

nfs2:192.168.6.2 Centos 6.4

keepalived 1.2.13 VIP:192.168.6.105

1.安装NFS和keepalived

这部分比较简单,直接用yum -y install nfs keepalived

2.配置NFS(两台同样配置)

mkdir /home/shares

vim /etc/exports

/home/shares 192.168.6.0/24(rw,sync,no_root_squash)

cd /home/shares

echo aaa > /home/shares/a.txt #用作后面脚本判断

touch files{1..10}

service nfs start

3.配置keepalived

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

router_id LVS_DEVEL

}

vrrp_instance VI_1 {

state MASTER  #辅改成BACKUP

interface eth0

virtual_router_id 51

priority 100      #辅改成50

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.6.105

}

}

service keepalived start

web:mount -t nfs 192.168.6.105:/home/shares /shares

4.ssh免密登录

ssh-keygen

ssh-copy-id

5.shell脚本

cd /etc/keepalived

vim notify_master.sh   #判断NFS端口是否存在,不存在就停止keepalived服务

#!/bin/bash

port=`netstat -anp|grep 2049`

if [ "$port" == "" ];then

/sbin/service keepalived stop

fi

vim change.sh(两台NFS都需要)

#!/bin/bash

ip=`/sbin/ip a|grep "eth0"|grep "105"`

web="192.168.6.10"

if [ "$ip" != "" ];then  #判断VIP是否存在,如果存在就表示现在这台是master

/usr/bin/ssh $web "cat /shares/a.txt"  #在web上运行命令,查看/shares目录是否可用,执行cat a.txt消耗内存cpu较小

if [ "$?" != 0 ];then  #如果不可用$?返回值不为0,则卸载原来的/shares目录,再重新挂载这个目录,这样做的原因是,VIP切换的时候,必须重新挂载/shares,否则不能使用这个目录

/usr/bin/ssh $web "umount /shares&&mount -t nfs 192.168.6.105:/home/shares /shares"

fi

fi

chmod +x change.sh

chmod +x notify_master.sh

6.计划任务crontab

crontab -e

* * * * * /etc/keepalived/notify_master.sh  #每分钟检查一次NFS服务是否正常

* * * * * /etc/keepalived/change.sh  #每分钟检查一次keepalived状态

0 00 * * * rsync /home/shares 192.168.6.2:/home/shares  #每天夜间同步数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值