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.1:/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 #每天夜间同步数据
Keepalived+NFS+SHELL脚本实现NFS-HA高可用的更多相关文章
- 使用Keepalived配置主从热备实现Nginx高可用(HA)
Keepalived 简要介绍 Keepalived 是一种高性能的服务器高可用或热备解决方案,Keepalived 可以用来防止服务器单点故障的发生,通过配合 Nginx 可以实现 web 前端服务 ...
- keepalived+nginx实现HA高可用的web负载均衡
Keepalived 是一种高性能的服务器高可用或热备解决方案, Keepalived 可以用来防止服务器单点故障的发生,通过配合 Nginx 可以实现 web 前端服务的高可用.Keepalived ...
- Hadoop 3.1.2(HA)+Zookeeper3.4.13+Hbase1.4.9(HA)+Hive2.3.4+Spark2.4.0(HA)高可用集群搭建
目录 目录 1.前言 1.1.什么是 Hadoop? 1.1.1.什么是 YARN? 1.2.什么是 Zookeeper? 1.3.什么是 Hbase? 1.4.什么是 Hive 1.5.什么是 Sp ...
- CentOS7+Hadoop2.7.2(HA高可用+Federation联邦)+Hive1.2.1+Spark2.1.0 完全分布式集群安装
1 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.9.1 2.9.2 2.9.2.1 2.9.2.2 2.9.3 2.9.3.1 2.9.3.2 2.9.3.3 2. ...
- centos HA高可用集群 heartbeat搭建 heartbeat测试 主上停止heartbeat服务 测试脑裂 两边都禁用ping仲裁 第三十二节课
centos HA高可用集群 heartbeat搭建 heartbeat测试 主上停止heartbeat服务 测试脑裂 两边都禁用ping仲裁 第三十二节课 heartbeat是Linu ...
- HA 高可用集群概述及其原理解析
HA 高可用集群概述及其原理解析 1. 概述 1)所谓HA(High Available),即高可用(7*24小时不中断服务). 2)实现高可用最关键的策略是消除单点故障.HA严格来说应该分成各个组件 ...
- Hdfs的HA高可用
1.Hdfs的HA高可用:保证Hdfs高可用,其实就是保证namenode的高可用,保证namenode的高可用的机制有两个,editlog共享机制+ZKFC.ZKFC就是ZookeeperFailO ...
- 大数据技术之HA 高可用
HDFS HA高可用 1.1 HA概述 1)所谓HA(High Available),即高可用(7*24小时不中断服务). 2)实现高可用最关键的策略是消除单点故障.HA严格来说应该分成各个组件的HA ...
- 七、Hadoop3.3.1 HA 高可用集群QJM (基于Zookeeper,NameNode高可用+Yarn高可用)
目录 前文 Hadoop3.3.1 HA 高可用集群的搭建 QJM 的 NameNode HA Hadoop HA模式搭建(高可用) 1.集群规划 2.Zookeeper集群搭建: 3.修改Hadoo ...
- HA高可用的搭建
HA 即 (high available)高可用,又被叫做双机热备,用于关键性业务. 简单理解就是,有两台机器A和B,正常是A提供服务,B待命闲置,当A宕机或服务宕掉,会切换至B机器继续提供服务.常用 ...
随机推荐
- Problem T: 结构体--学生信息排序
Problem T: 结构体--学生信息排序 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 2219 Solved: 1305[Submit][Sta ...
- Python——函数的高级应用
一.函数赋值给变量 函数也是对象,也可以赋值给变量,当把函数赋值给变量后,可以通过变量调用函数. 例: def test(x,y): return x * y # 把函数赋值给变量 a = test ...
- c#中的自定义泛型类、泛型方法和泛型接口
泛型的产生其中一个原因就是为了解决原来集合类中元素的装箱和拆箱问题: 一.泛型类: /// <summary> /// 返回前台的消息 /// </summary> ...
- Dojo的define接口
http://blog.csdn.net/lovecarpenter/article/details/53979717 第三种用法用的最多. 此接口用于定义模块: define([],function ...
- iBatis自动生成工具Abator
https://blog.csdn.net/k_scott/article/details/8281837 ###首先创建数据库表,然后根据数据库表,生成相应的实体.及其配置文件 https://ww ...
- 【线性基合并 树链剖分】bzoj4568: [Scoi2016]幸运数字
板子题 Description A 国共有 n 座城市,这些城市由 n-1 条道路相连,使得任意两座城市可以互达,且路径唯一.每座城市都有一个 幸运数字,以纪念碑的形式矗立在这座城市的正中心,作为城市 ...
- 初涉manacher
一直没有打过……那么今天来找几道题打一打吧 manacher有什么用 字符串的题有一类是专门关于“回文”的.通常来说,这类问题要么和一些dp结合在一起:要么是考察对于manacher(或其他如回文自动 ...
- k8s搭建WebUI--Dashborad管理界面
k8s的webUI管理界面可以更好更直观更便捷的让我们去管理我们的k8s集群. 我们知道,由于某些原因我们无法直接拉取dashboard的镜像,但是国内有些人已经将镜像下载到dockerhub中可以给 ...
- 微信JS-SDK 示例
微信JS-SDK 示例 1.html部分 <!DOCTYPE html> <!-- saved from url=(0028){sh:$selfUrl} --> <htm ...
- LeetCode(173) Binary Search Tree Iterator
题目 Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the ...