Rsync+inotify+nfs实现数据实时备份方案

技术栈
  • NFS是 Network File System的简写,即网络文件系统。NFS的优点是内核直接支持,部署简单、运行稳定,协议简单、传输效率高。缺点是仅依靠IP地址或主机名来决定用户能否挂载共享目录,容易出现单点故障。

  • rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。

  • Inotify是一个 Linux特性,它监控文件系统操作,比如读取、写入和创建。通过inotify实现数据的时时同步,所需要的应用软件inotify-tool。

机器准备
  • 10.7.11.9 (nfs节点)

  • 10.7.11.5 (备份节点)

  • 注意:关闭机器的防火墙 - systemctl stop firewalld

一、部署 nfs 服务器
  • 安装nfs-server

#nfs-utils:提供了NFS服务器程序和对应的管理工具 
#rpcbind:获取nfs服务器端的端口等信息
yum install -y nfs-utils rpcbind
# k8s node 节点需要安装nfs客户端
systemctl enable rpcbind
systemctl enable nfs-server
systemctl start rpcbind
systemctl start nfs-server
  • 修改配置

#创建目录
mkdir -p /home/nfs-root/
​
#/home/nfs-root/表示要共享文件的目录 
# *表示所有客户端可访问,也可以写成指定IP网段或者具体的ip
#rw:表示读写权限,sync:表示数据同步写入内存硬盘,no_root_squash 会使得根用户在 NFS 客户端上拥有和服务器上相同的权限
/home/nfs-root/ *(insecure,rw,sync,no_root_squash)
  • 保存,使生效

#wq
exportfs -a
exportfs

二、部署 Rsync 服务端(10.7.11.5 )
  • 下载 Rsync 软件包

yum -y install rsync
  • 新增 vi /etc/rsyncd.conf 配置文件

​
#用户id
uid = root
#组id
gid = root
#程序安全设置
use chroot = no
#客户端连接数
max connections = 200
#进程号文件位置
pid file = /var/run/rsyncd.pid
#进程锁文件位置
lock file = /var/run/rsync.lock
#日志文件位置
log file = /var/run/rsyncd.log
#连接超时时间
timeout = 300
#3.1版本以上要加这个
fake super = yes
​
#模块名称
[backup]
#同步数据的目录
path = /backup
#有错误时忽略
ignore errors
#只读模式(true为只读,false为可读可写)
read only = false
#阻止远程列表
list = false
#允许访问的IP
hosts allow = 10.7.11.0/24
#禁止访问的IP
hosts deny = 0.0.0.0/32
#虚拟用户
auth users = rsync_backup
#存放用户和密码的文件
secrets file = /etc/rsync.password
  • 创建密码文件 vi /etc/rsync.password

rsync_backup:123456
  • 修改 /etc/rsync.password 权限

chmod 600 /etc/rsync.password
  • 创建程序用户 rsync

useradd -M -s /sbin/nologin rsync
  • 创建 / backup 目录

mkdir /backup
  • 守护进程启动 rsync

rsync --daemon
三、部署Rsync 客户端(10.7.11.9)
  • 客户端节点新增密码文件 vi /etc/rsync.password

123456
  • 修改 / etc/rsync.password 权限

chmod 600 /etc/rsync.password
  • 测试 ,将inotify.sh文件传输至服务端

rsync -zav inotify.sh rsync_backup@10.7.11.5::backup --password-file=/etc/rsync.password

  • 去服务节点查看

三、部署 inotify 服务
  • 下载阿里云网络源

# 首先备份系统自带『yum 源配置文件』,具体路径为:/etc/yum.repos.d/CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
# CentOS 7 
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  • 更新 yum 源

yum clean all
yum makecache
  • 下载 inotify-tools 工具包

yum -y install inotify-tools
  • 编写 inotify.sh 脚本

backupServer=10.7.11.5
path=/home/nfs-root
inotifywait -mrq --format '%w%f' -e create,close_write,delete $path | while read line
doif [ -f $line ];thenrsync -za $line --delete rsync_backup@$backupServer::backup --password-file=/etc/rsync.passwordelsecd $pathrsync -za ./ --delete rsync_backup@$backupServer::backup --password-file=/etc/rsync.passwordfi
done
  • 后台启动脚本

sh inotify.sh &
  • 测试数据同步

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/pingmian/84267.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue ⑥-路由

单页应用程序 单页应用程序,即 Single-Page Application,简称 SPA,是一种使用 JavaScript、HTML 和 CSS 构建的 Web 应用程序。SPA 的核心是前端路由,它使得用户在访问网站时,只需加载一次页面,然后通过前…

Hadoop复习(九)

Azkaban工作流管理器 选择 问题 1 判断题 2 / 2 分 工作流是指具有依赖的一组job任务,被依赖的job任务最后执行 正确 错误 问题 2 判断题 2 / 2 分 Azkaban兼容任何版本的Hadoop 正确 错误 问题 3 判断题 2 / 2 分 独立服务器模式下,Azkab…

SpringMVC相关知识(二)

一.重定向和转发 1.ModelandView 设置ModelAndView对象 , 根据view的名称 , 和视图解析器跳到指定的页面 页面 : {视图解析器前缀} viewName {视图解析器后缀} 相关代码&#xff1a; <!-- 视图解析器 --> <bean class"org.springframework.web.servlet.vi…

std::ratio 简单使用举例

author: hjjdebug date: 2025年 06月 09日 星期一 14:28:40 CST descrip: std::ratio 简单使用举例 文章目录 1. 先看一个简单的例子 1/2/1/35/62 std::ratio 的手册页3. std::ratio_add 到底是什么呢&#xff1f;4. 代码注释5. 加深理解.6. 自定义的std::ratio 与 std::ratio_…

Docker 优势与缺点全面解析:容器技术的利与弊

在当今云计算、微服务、DevOps盛行的时代&#xff0c;Docker 几乎成了开发者、运维工程师的标配工具之一。自2013年诞生以来&#xff0c;Docker 以其轻量、快速、易移植的特点&#xff0c;彻底改变了应用的构建、交付与部署方式。 但任何技术都有两面性&#xff0c;Docker 也不…

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型&#xff08;LLM&#xff09;参数规模的增长&#xff0c;推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长&#xff0c;而KV缓存的内存消耗可能高达数十GB&#xff08;例如Llama2-7B处理100K token时需50GB内存&a…

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…

使用Redis作为缓存优化ElasticSearch读写性能

在现代数据密集型应用中,ElasticSearch凭借其强大的全文搜索能力成为许多系统的首选搜索引擎。然而,随着数据量和查询量的增长,ElasticSearch的读写性能可能会成为瓶颈。本文将详细介绍如何使用Redis作为缓存层来显著提升ElasticSearch的读写性能,包括完整的架构设计、详细…

获取wordpress某个栏目的内容数量

获取wordpress某个栏目的内容数量 <?php // 将以下 8 改成你的分类 ID 即可echo get_category(8)->count;?> 在制作wordpress模板时&#xff0c;有时会需要调用某个分类目录下的所有内容数量&#xff0c;通过这段简洁的代码就可以实现。 给WordPress自定义字段加…

uniapp 安卓 APP 后台持续运行(保活)的尝试办法

在移动应用开发领域&#xff0c;安卓系统的后台管理机制较为复杂&#xff0c;应用在后台容易被系统回收&#xff0c;导致无法持续运行。对于使用 Uniapp 开发的安卓 APP 来说&#xff0c;实现后台持续运行&#xff08;保活&#xff09;是很多开发者面临的重要需求&#xff0c;比…

深度学习——知识提炼

第一部分&#xff1a;引言与背景——为什么需要知识提炼&#xff1f; 一、模型压缩的背景 随着深度学习的发展&#xff0c;模型变得越来越大&#xff08;如 ResNet152、BERT、ViT、GPT 等&#xff09;&#xff0c;其参数量动辄数亿甚至上百亿。这些大模型虽然性能强大&#x…

开源之夏·西安电子科技大学站精彩回顾:OpenTiny开源技术下沉校园,点燃高校开发者技术热情

开源之夏2025编程活动正在如火如荼的进行中&#xff0c;当前也迎来了报名的倒计时阶段&#xff0c;开源之夏组织方也通过高校行系列活动进入各大高校&#xff0c;帮助高校开发者科普开源文化、开源活动、开源技术。 6月4日 开源之夏携手多位开源技术大咖、经验型选手走进西安电…

时间复杂度和算法选择

数据范围 时间复杂度 算法选择 n \leq 30 指数级别 O(2^n) 深度优先搜索&#xff08;DFS&#xff09; 剪枝、状态压缩动态规划 n \leq 100 O(n^3) Floyd 算法、动态规划、高斯消元 n \leq 1000 O(n^2) 、 O(n^2 \log n) 动态规划、二分…

数据分析实战2(Tableau)

1、Tableau功能 数据赋能&#xff08;让业务一线也可以轻松使用最新数据&#xff09; 分析师可以直接将数据看板发布到线上自动更新看板自由下载数据线上修改图表邮箱发送数据设置数据预警 数据探索&#xff08;通过统计分析和数据可视化&#xff0c;从数据发现问题&#xf…

CentOS7_Linux下安装Docker和docker-compose

目录 环境要求安装步骤1、修改镜像源配置文件2、卸载旧版本 Docker&#xff08;如有&#xff09;3、安装依赖工具4、添加 Docker 官方仓库5、安装 Docker 引擎6、启动 Docker 并设置开机自启7、验证安装8、配置镜像加速器创建配置文件重启 Docker 生效 9、允许非 root 用户操作…

ubuntu中使用docker

上一篇我已经下载了一个ubuntu:20.04的镜像&#xff1b; 1. 查看所有镜像 sudo docker images 2. 基于本地存在的ubuntu:20.04镜像创建一个容器&#xff0c;容器的名为cppubuntu-1。创建的时候就会启动容器。 sudo docker run -itd --name cppubuntu-1 ubuntu:20.04 结果出…

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…

idea中 maven 本地仓库有jar包,但还是找不到,解决打包失败和无法引用的问题

1、删除本地仓库中的文件 进入本地仓库对应jar包文件目录中删除_remote.repositories文件和结尾为.lastUpdated的文件 2、回到IDEA刷新Maven 3、查看之前引用不了的jar是否引入成功

ALOHA ACT算法与源码笔记

算法 一文通透动作分块算法ACT&#xff1a;斯坦福ALOHA团队推出的动作序列预测算法(Action Chunking with Transformers) 比较简单&#xff0c;算法题目里就写了&#xff1a;Action Chunking with Transformers&#xff0c;比较有特色的地方就是Action Chunking&#xff0c;核…