06 解决nfs单点故障问题
时间:2021-04-22
本文章向大家介绍06 解决nfs单点故障问题,主要包括06 解决nfs单点故障问题使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
sersync实时同步数据
sersync是国⼈基于rsync+inotify-tools开发的⼯具,不仅保留了优点同时还强化了实时监控,⽂件过滤,简化配置等功能,帮助⽤户提⾼运⾏效率,节省时间和⽹络资源。
下载安装
#安装rsync和inotify
[root@nfs ~]# yum install -y rsync inotify-tools
#下载sersync(2.5.4稳定版本)
wget http://down.whsir.com/downloads/sersync2.5.4_64bit_binary_stable_final.tar.gz
#安装sersync(二进制包)
[root@nfs ~]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz
#移动并改名
[root@nfs ~]# mv GNU-Linux-x86 /usr/local/sersync
配置文件解析
#这里是intify的配置,监控全部开true
<inotify>
<delete start="true"/>
<createFolder start="true"/>
<createFile start="true"/>
<closeWrite start="true"/>
<moveFrom start="true"/>
<moveTo start="true"/>
<attrib start="true"/>
<modify start="true"/>
</inotify>
<sersync>
<localpath watch="/http_data"> #这里更改要监控的目录
<remote ip="192.168.15.41" name="http_backup"/> #这里是推送的服务器的ip和模块名
<!--<remote ip="192.168.8.39" name="tongbu"/>-->
<!--<remote ip="192.168.8.40" name="tongbu"/>-->
</localpath>
<rsync>
<commonParams params="-az --delete"/> #这里是rsync的参数
<auth start="true" users="baimo" passwordfile="/etc/rsync.passwd"/> #这里是rsync的用户名和密码,要开启
<userDefinedPort start="false" port="874"/><!-- port=874 -->#端口
<timeout start="false" time="100"/><!-- timeout=100 -->
<ssh start="false"/>
</rsync>
参数
[root@nfs sersync]# ./sersync2 -h
set the system param
execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches
execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events
parse the command param
_______________________________________________________
参数-d:启用守护进程模式
参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
c参数-n: 指定开启守护线程的数量,默认为10个
参数-o:指定配置文件,默认使用confxml.xml文件
参数-m:单独启用其他模块,使用 -m refreshCDN 开启刷新CDN模块
参数-m:单独启用其他模块,使用 -m socket 开启socket模块
参数-m:单独启用其他模块,使用 -m http 开启http模块
不加-m参数,则默认执行同步程序
________________________________________________________________
启动
[root@nfs sersync]# ./sersync2 -dro confxml.xml
[root@nfs sersync]# /usr/local/sersync/sersync2 -dro/usr/local/sersync/confxml.xml
架构搭建
解决NFS单点故障问题
#!/bin/bash
#NFS_change
showmount -e 192.168.15.31 > /dev/null
if [ $? -eq 1 ];then
umount -lf /var/www/html && mount -t nfs 192.168.15.41:/http_backup /var/www/html
else
df -h | grep 192.168.15.31 > /dev/null
if [ $? -eq 1 ];then
umount -lf /var/www/html && mount -t nfs 192.168.15.31:/http_backup /var/www/html
fi
fi
脚本解析
#!/bin/bash
#NFS_change
showmount -e 192.168.15.31 > /dev/null #查看31是否可以挂载
if [ $? -eq 1 ];then #如果不可以挂载,则证明故障,执行下面命令挂载到41去
umount -lf /var/www/html && mount -t nfs 192.168.15.41:/http_backup /var/www/html
else #如果可以挂载
df -h | grep 192.168.15.31 > /dev/null #查看挂载是在31还是41
if [ $? -eq 1 ];then #如果不在31
umount -lf /var/www/html && mount -t nfs 192.168.15.31:/http_backup /var/www/html #把它挂载回31
fi
fi
添加到定时任务
* * * * * /xxx/xxx > /dev/null
ps
其实bug还是挺多的,但是能基本解决nfs的单点故障问题,运维人员应该监控好,进行人工干预。
原文地址:https://www.cnblogs.com/zhaokunhao/p/14691400.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【Ceph】Rook 中使用 External Cluster 的方式管理外部集群
- Redis排行榜的设计与实现
- 血的教训 | 一次订单号重复的事故差点被开除
- 60分钟看懂HMM的基本原理
- R语言确实会蛮耗费磁盘空间哦
- 很多时候你就是不知道如何提问
- seurat标准流程实例之2个10x样本的项目(GSE135927数据集)
- 使用 Jenkins 和 Ansible 实现 CI/CD
- 太刺激了,面试官让我手写跳表,而我用两种实现方式吊打了TA!
- 被 Google 选择的下一代数据面 Cilium 是什么 - 上手实践
- K8S 生态周报| 是时候从 k8s v1.16 升级了
- ESP8266(一)| 基于OneNet的温度采集显示系统
- 隐秘的 MySQL 类型转换
- 对Jenkinsfile语法说不,开源项目Jenkins Json Build挺你
- Volatile概述