nfs高可用
一.简介
NFS是单点的,如果一个节点出现问题,那使用它挂载服务的都将出现问题。所以需要高可用,挂掉一台不影响。
采用keepalived+rsync+inotify-tools
环境: ubuntu16.4
nfs1 192.168.1.1 /mnt/server
nfs2 192.168.1.2 /mnt/server
虚拟地址 192.168.1.3
二.操作
基本配置
1.机器之间添加信任关系免密码登录,安装nfs
2.有三项输出,则表示默认支持inotify,可以安装inotify-tools工具.ll /proc/sys/fs/inotify
-rw-r—r— 1 root root 0 Oct 18 12:18 max_queued_events
-rw-r—r— 1 root root 0 Oct 18 12:18 max_user_instances
-rw-r—r— 1 root root 0 Oct 18 12:18 max_user_watches
同步配置(2台服务器均操作)
1.编写脚本vim sync_nfs.sh
#!/bin/bash#监控本地目录,有变动则输出一下inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,delete,create,attrib /mnt/server/ | while read filedo#将本地同步到远程目录,这里要根据实际情况修改rsync -avz --delete /mnt/server/ root@192.168.1.1:/mnt/server/echo " ${file} was rsynced" >>/tmp/rsync.log 2>&1done
2.添加权限并运行chmod +x sync_nfs.shnohup inotify_bak.sh &
3.查看日志tail -f /tmp/rsync.log
4.提示
如果是主备模式,则一个脚本直接同步即可,如果是双方做备份,则要写2个脚本进行互相同步
主备切换(均操作)
1.安装keepalivedapt-get install keepalived -y
2.编写文件,默认可能没有配置文件,直接新建即可vim /etc/keepalived/keepalived.conf
! Configuration File for keepalivedglobal_defs { #全局配置router_id lb01 #路由id号,不能重复}vrrp_script nfs #vrrp脚本命名{script "/etc/keepalived/check_nfs.sh" #要执行的脚本interval 2 #脚本指定间隔weight -40 #优先级(如果脚本执行结果为0,并且weight配置的值大于0,则优先级相应的增加,如果脚本执行结果非0,并且weight配置的值小于0,则优先级相应的减少)}vrrp_instance VI_1 { #定义一个实例state MASTER #态参数 master/backup 只是说明,具体根据优先级interface eth0 #虚IP地址放置的网卡位置virtual_router_id 51 #同一个集群id一致priority 100 #优先级决定是主还是备 越大越优先advert_int 1 #主备通讯时间间隔authentication {auth_type PASSauth_pass 1111 #认证号,集群中要一致}virtual_ipaddress {192.168.1.3 #使用的虚拟ip,要和网段内ip不冲突}}
备份nfs配置文件,这是不一样的
! Configuration File for keepalivedglobal_defs { #全局配置router_id lb02 #路由id号,不能重复}vrrp_script nfs #vrrp脚本命名{script "/etc/keepalived/check_nfs.sh" #要执行的脚本interval 2 #脚本指定间隔weight -40 #优先级(如果脚本执行结果为0,并且weight配置的值大于0,则优先级相应的增加,如果脚本执行结果非0,并且weight配置的值小于0,则优先级相应的减少)}vrrp_instance VI_1 { #定义一个实例state BACKUP #态参数 master/backup 只是说明,具体根据优先级interface eth0 #虚IP地址放置的网卡位置virtual_router_id 51 #同一个集群id一致priority 80 #优先级决定是主还是备 越大越优先advert_int 1 #主备通讯时间间隔authentication {auth_type PASSauth_pass 1111 #认证号,集群中要一致}virtual_ipaddress {192.168.1.3 #使用的虚拟ip,要和网段内ip不冲突}}
3.编写检查脚本vim /etc/keepalived/check_nfs.sh
#!/bin/bash#nfs服务检测脚本,服务不存在则返回1A=`ps -aux | grep '\[nfsd\]' | wc -l`if [ $A -eq 0 ];thenexit 1 #测试的时候可以加一个echo 1fi
添加权限chmod +x /etc/keepalived/check_nfs.sh
4.测试
systemctl start keepalived
查看是否有配置的虚拟ip,ping一下试试,只会在主上面出现ip addr
nfs高可用的更多相关文章
- 2 NFS高可用解决方案之NFS的搭建
preface 我们紧接着上一篇博文的基础(drbd+heartbeat的正常工作,http://www.cnblogs.com/liaojiafa/p/6129499.html)来搭建NFS的服务. ...
- (转)Heartbeat+DRBD+NFS高可用案例
原文:http://9861015.blog.51cto.com/9851015/1939521--------------------------------Heartbeat+DRBD+NFS高可 ...
- 1 NFS高可用解决方案之DRBD+heartbeat搭建
preface NFS作为业界常用的共享存储方案,被众多公司采用.我司也不列外,使用NFS作为共享存储,为前端WEB server提供服务,主要存储网页代码以及其他文件. 高可用方案 说道NFS,不得 ...
- NFS-heartbeat-drbd模拟NFS高可用
NFS介绍: NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本地NFS ...
- 使用DRBD+KEEPALIVED来实现NFS高可用
目录 一 DRBD介绍 二 DRBD的模式 三 DRBD的同步协议 四 实验环境 五 安装配置 关于脑裂(split-brain)处理 一 DRBD介绍 DRBD(Distributed Replic ...
- DRBD+Heratbeat+NFS高可用文件共享存储
一.概述 .通过ha-log日志可以看出主释放资源,备接管资源. 来自为知笔记(Wiz)
- 六十一.常用组件 、 Kafka集群 、 Hadoop高可用
1.Zookeeper安装搭建Zookeeper集群并查看各服务器的角色停止Leader并查看各服务器的角色 1.1 安装Zookeeper1)编辑/etc/hosts ,所有集群主机可以相互 pin ...
- Nfs+Drdb+Heartbeat 数据存储高可用服务架构方案
一.方案的应用场景 适用于2千万-3千万PV架构的网站,Nfs数据存储高可用服务方案 备注:互联网排名前30左右公司常用的架构 二.生产环境方案部署原理图 三.生产环境服务器硬件配置: 生产环境中采用 ...
- Centos下部署DRBD+NFS+Keepalived高可用环境记录
使用NFS服务器(比如图片业务),一台为主,一台为备.通常主到备的数据同步是通过rsync来做(可以结合inotify做实时同步).由于NFS服务是存在单点的,出于对业务在线率和数据安全的保障,可以采 ...
随机推荐
- BUUCTF复现记录1
平台地址:https://buuoj.cn/ 里面很多之前的题目,不错的平台.另外幕后大哥博客https://www.zhaoj.in/ 以下的解题,都是参考各位大佬的WP去复现,重在记录下 ...
- Sonar中的坏习惯详解
22种代码的坏味道,一句话概括: 如果一段代码是不稳定或者有一些潜在问题的,那么代码往往会包含一些明显的痕迹. 正如食物要腐坏之前,经常会发出一些异味一样. 我们管这些痕迹叫做“代码异味”. 参考资料 ...
- python测试开发django-rest-framework-63.基于函数的视图(@api_view())
前言 上一篇讲了基于类的视图,在REST framework中,你也可以使用常规的基于函数的视图.它提供了一组简单的装饰器,用来包装你的视图函数, 以确保视图函数会收到Request(而不是Djang ...
- django 项目需要注意的一些点
1.创建新项目 把静态文件夹的名字放在settings文件里面 STATIC_URL = '/static/' STATICFILES_DIRS=[ os.path.join(BASE_DIR, ...
- Alpha冲刺(10/10)——追光的人
1.队友信息 队员学号 队员博客 221600219 小墨 https://www.cnblogs.com/hengyumo/ 221600240 真·大能猫 https://www.cnblogs. ...
- Alpha冲刺(8/10)——2019.5.1
所属课程 软件工程1916|W(福州大学) 作业要求 Alpha冲刺(8/10)--2019.5.1 团队名称 待就业六人组 1.团队信息 团队名称:待就业六人组 团队描述:同舟共济扬帆起,乘风破浪万 ...
- PHP——数组根据某一键值合并
前言 其实要实现很简单直接foreach,再根据PHP中数组的特性就可以轻松实现. 步骤 这是源数据的格式 $info = [ [ "gname" => "特别关心 ...
- hibernate笔记
1.hibernate中的list()遍历方法和iterator()遍历方法之间的区别 1:返回的类型不一样,list()返回List, iterate()返回Iterator,2: 获取数据的方式不 ...
- MySQL 日期格式化,取年月日等相关操作
日期取年.月.日 select id, phone,time,year(time),month(time), DAY(time),TIME(time) from user where phone='x ...
- 应用安全测试技术DAST、SAST、IAST对比分析【转】
转自:https://blog.csdn.net/qq_29277155/article/details/92411079 一.全球面临软件安全危机 2010年,大型社交网站rockyou.com被曝 ...