麒麟操作系统服务架构保姆级教程(二)sersync、lsync备份和NFS持久化存储
如果你想拥有你从未拥有过的东西,那么你必须去做你从未做过的事情
上篇文章我们说到rsync虽好,但是缺乏实时性,在实际应用中,咱们可以将rsync写进脚本,然后写进定时任务去备份,如果每天凌晨1:00进行备份,早晨6:00磁盘损坏,9:00上班时发现之后紧急处理,在这3个小时内,数据丢失,也是不小的损失,那么如何实现短时间内的增量备份呢?有人说可以使用定时任务,每五分钟执行一次定时任务不就可以减少损失了吗,但是企业中的数据可不是五分钟能备份完的,所以有一个新的方案——sersync和lsync
目录
一、NFS
1、NFS服务配置
2、NFS参数
二、sersync服务
1、服务安装
2、启动进程:
三、lsync服务端部署
1、安装lsync服务
2、修改lsync配置文件
3、创建密码文件
4、启动lsync服务
5、验证是否可以同步
💬欢迎交流:在学习过程中如果你有任何疑问或想法,欢迎在评论区留言,我们可以共同探讨学习的内容。你的支持是我持续创作的动力!
👍点赞、收藏与推荐:如果你觉得这篇文章对你有所帮助,请不要忘记点赞、收藏,并分享给更多的小伙伴!你们的鼓励是我不断进步的源泉!
🚀推广给更多人:如果你认为这篇文章对你有帮助,欢迎分享给更多对Linux感兴趣的朋友,让我们一起进步,共同提升!
一、NFS
1、NFS服务配置
服务端: 10.0.0.31 172.16.1.31 NFS
客户端: 10.0.0.7 172.16.1.7 WEB01
客户端: 10.0.0.41 172.16.1.41 BACKUP
1.服务安装
[root@nfs ~]#yum -y install nfs-utils
2.配置文件 默认为空
[root@nfs ~]#vim /etc/exports
/data/ 172.16.1.0/24(rw,sync,all_squash)
注释:
/data 共享的目录
172.16.1.0/24 允许哪些IP地址可以挂载我
rw 挂载上之后的权限
r read write 写
ro 只读
sync 将数据同时写入到磁盘中
all_squash 将所有的来源用户全压缩为虚拟用户身份往本地的磁盘中写入
web01
root用户:
mount -t nfs 172.16.1.31:/data /mnt
touch /mnt/1.txt
3.按配置创建数据
[root@nfs ~]#mkdir /data[root@nfs ~]#ll -d /datadrwxr-xr-x 2 root root 6 Apr 10 10:19 /data[root@nfs ~]#chown nfsnobody.nfsnobody /data[root@nfs ~]#ll -d /datadrwxr-xr-x 2 nfsnobody nfsnobody 6 Apr 10 10:19 /data4.启动服务 开机自启
[root@nfs ~]#systemctl start nfs[root@nfs ~]#systemctl enable nfs5.检查服务
[root@nfs ~]#cat /var/lib/nfs/etab
/data
172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,all_squash)
检查下是否有65534的用户存在
[root@nfs ~]#grep 65534 /etc/passwd
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
客户端挂载:
web01: 需要安装nfs-utils 但是不需要启动服务,只安装即可
[root@web01 ~]#yum -y install nfs-utils
查看服务端共享的目录:
[root@web01 ~]#showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
挂载
[root@web01 ~]#mount -t nfs 172.16.1.31:/data /mnt
写入开机自动挂载:
[root@web01 ~]#tail -1 /etc/fstab
172.16.1.31:/data /mnt nfs defaults 0 0
41客户端挂载:
1.安装nfs-utils 不启动
[root@backup ~]#yum -y install nfs-utils
2.查看服务端共享目录
[root@backup ~]#showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
3.挂载
[root@backup ~]#mount -t nfs 172.16.1.31:/data /mnt
[root@backup ~]#df -hFilesystem Size Used Avail Use% Mounted on
devtmpfs 980M 0 980M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 9.5M 981M 1% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda3 18G 2.0G 16G 12% /
/dev/sda1 197M 110M 88M 56% /boot
tmpfs 199M 0 199M 0% /run/user/0
172.16.1.31:/data 18G 2.0G 16G 12% /mnt
[root@backup ~]#umount /mnt
[root@backup ~]#df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 980M 0 980M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 9.5M 981M 1% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda3 18G 2.0G 16G 12% /
/dev/sda1 197M 110M 88M 56% /boot
tmpfs 199M 0 199M 0% /run/user/0
2、NFS参数
修改参数ro
[root@nfs ~]#cat /etc/exports
/data/ 172.16.1.0/24(ro,sync,all_squash)
重启服务生效
[root@nfs ~]#systemctl restart nfs
客户端测试删除创建
指定匿名用户
1.创建匿名用户
[root@nfs ~]#groupadd -g666 www
[root@nfs ~]#useradd -u666 -g666 -s /sbin/nologin -M www
2.修改配置文件指定匿名用户
[root@nfs ~]#cat /etc/exports
/data/ 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
3.重启生效
[root@nfs ~]#systemctl restart nfs
4.客户端测试
无法写入,必须将/data目录属主属组修改为www用户
注意事项:
centos7.x 启动服务并行运行 可能会导致fastab中的网络挂载不成功,需要写入/etc/rc.local
二、sersync服务
1、服务安装
nfs创建 /server/tools
安装服务 yum install rsync inotify-tools ‐y
进入/server/tools
wget拉取 wget https://raw.githubusercontent.com/wsgzao/sersync/master/sersync2.5.4_64bit_binary_stable_final.tar.gz
解压到当前目录:tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz
将解压后的文件改名:mv GNU‐Linux‐x86/ sersync
进入更改confxml.xml更改内容如下:
<createFile start="true"/> (false改为true)保存退出
2、启动进程:
# 查看启动参数
[root@nfs01 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命令推送一遍
参数‐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]#/server/tools/sersync/sersync2 -dro /server/tools/sersync/confxml.xml #绝对路径启动
开启实时备份
echo 123456 > /etc/rsync.pas
如果nfs出现故障,希望将web客户端挂载至backup服务器上, 怎么实现?
#1.nfs和backup两台服务器应该保持一样(nfs配置。nfs共享的目录。nfs的权限)
[root@backup ~]# yum install nfs‐utils ‐y
[root@backup ~]# rsync ‐avz root@172.16.1.31:/etc/exports /etc/
[root@backup ~]# groupadd ‐g 666 www
[root@backup ~]# useradd ‐u666 ‐g666 www
#2.启动nfs服务
[root@backup ~]# systemctl start rpcbind
[root@backup ~]# systemctl start nfs‐server
#3.修改rsync的权限
[root@backup ~]# vim /etc/rsyncd.conf
uid = www
gid = www
#4.修改授权
[root@backup ~]# chown ‐R www.www /data/ /backup/
#5.重启rsync
[root@backup ~]# systemctl restart rsyncd
#6.进行一次数据推送, 然后模拟nfs故障(挂起虚拟机)
#7.web强制卸载172.16.1.31:/data
[root@web01 ~]# umount ‐lf /data
#8.web尝试挂载172.16.1.41:/data
[root@web01 ~]# mount ‐t nfs 172.16.1.41:/data /data/
三、lsync服务端部署
1、安装lsync服务
yum install -y lsyncd
2、修改lsync配置文件
vim /etc/lsyncd.conf
settings { #lsync配置
logfile = "/var/log/lsyncd/lsyncd.log", #lsync日志文件
pidfile = "/var/run/lsyncd.pid", #记录进程ID的文件,可以不用配置
statusFile = "/var/log/lsyncd/lsyncd.status", #运行状态文件,包括记录一些监控目录的变更信息
statusInterval = 5, #将lsyncd的状态写入上面的statusFile的间隔,默认10秒
nodaemon = true, #表示不启用守护模式,默认
inotifyMode = "CloseWrite", #指定inotify监控的事件,默认是CloseWrite,还可以是Modify或CloseWrite or Modify
maxProcesses = 5, #同步进程的最大个数。假如同时有10个文件需要同步,而maxProcesses=5,则最大能看到有5个rysnc进程
maxDelays = 1, #累计到多少所监控的事件激活一次同步,即使后面的delay延迟时间还未到
}
sync { #sersync配置default.rsync,source = "/data", #同步原目录target = "rsync_backup@10.0.0.41::data", #同步目的地址,用户名,模块名delete = "running", #目标目录和源目录不同时的删除方式,总共四种exclude = { ".tmp" }, #排除同步的文件,可以用rsync的正则delay = 3, #累计事件,等待delay秒后进行rsync同步,默认15秒(最大累计到1000个不可合并的事件)。也就是15s内监控目录下发生的改动,会累积到一次rsync同步,避免过于频繁的同步init = false, #只同步进程启动以后发生改动事件的文件,原有的目录即使有差异也不会同步。默认是truersync = { #rsync配置binary = "/usr/bin/rsync", #rsync命令archive = true,compress = true,verbose = true, #同步详细模式输出password_file = "/etc/clint.password", #其他的一些配置,这里表示限速,单位kb/s}
}
3、创建密码文件
echo "1" >/etc/clint.password
chmod 600 /etc/clint.password
4、启动lsync服务
systemctl restart lsyncd
5、验证是否可以同步
1.在lsync服务端监控的目录创建文件
touch test{01..10}.txt
2.在rsync服务端的备份目录中查看是否同步
ls
数据备份服务的学习到此告一段落了,明天学点好玩的东西,ssh远程连接~~~~
想成为大佬,就要从小白开始,从0开始,一点一点的积累,慢慢成长,明天你就是大佬!!想学习更多麒麟操作系统的知识,关注小屁,让你成为运维老鸟~~~~~
相关文章:
麒麟操作系统服务架构保姆级教程(二)sersync、lsync备份和NFS持久化存储
如果你想拥有你从未拥有过的东西,那么你必须去做你从未做过的事情 上篇文章我们说到rsync虽好,但是缺乏实时性,在实际应用中,咱们可以将rsync写进脚本,然后写进定时任务去备份,如果每天凌晨1:00…...
将OBJ或GLB文件转换为3DTiles
格式简介 GLB文件(.GLB)代表“GL传输格式二进制文件”,是用于共享3D数据的标准化文件格式。确切地说,它可以包含有关三维模型、场景、模型、光源、材质、节点层次和动画的信息。 OBJ文件是一种文本文件格式,这就意味…...
Flink DataStream API 编程指南
(对于Flink的开发,建议使用Java,Scala的支持未来会被移除) DataStream是什么 DataStream API得名于DataStream这个Java类,可以将它们视为可以包含重复项的不可变数据集合。该数据可以是有限的,也可以是无限的,用于处理它们的API是相同的。 DataStream在用法上和普通的…...
tryhackme-Pre Security-HTTP in Detail(HTTP的详细内容)
任务一:What is HTTP(S)?(什么是http(s)) 1.What is HTTP? (HyperText Transfer Protocol)(什么是 HTTP?(超文本传输协议)) http是你查看网站的时候遵循的…...
探索 Plotly:一个强大的交互式数据可视化库
探索 Plotly:一个强大的交互式数据可视化库 数据可视化是数据分析过程中不可或缺的一部分,它能帮助我们更直观地理解数据,发现数据中的趋势和规律。在众多可视化库中,Plotly 是一个非常强大的工具,它以其交互式、易用…...
Oracle 查询表占用空间(表大小)的方法
目录 概述方法一:使用 dbms_space 包方法二:查询 dba_extents 视图方法三:查询 dba_segments 视图总结 1. 概述 在Oracle数据库管理中,了解特定表或索引所占用的空间对于性能调优、存储规划以及资源分配至关重要。本文档介绍了三…...
机器人国际会议IROS论文latex模板
机器人国际会议IROS论文latex模板 文档 root.tex 可以配置为 US Letter 纸或 A4。请注意以下重要行:\documentclass[letterpaper, 10 pt, Conference]{ieeeconf} % 如果需要 a4paper,请注释掉此行%\documentclass[a4paper, 10pt, Conference]{ieeeconf} …...
雪泥鸿爪和屈指可数
paw这个单词,表示“爪或手”,是一个和hoof相对的单词: hoof n.(马等动物的)蹄paw n.爪子;(动物的)爪;(人的)手 v.挠,抓;动手动脚 所以,当你理解了 paw 和 hoof 是相对的概念时&…...
2024年度个人总结
一转眼已经2024年度最后一个月了,今年基本没有在CSDN发布内容,包括其他平台(B站),倒是在其他地方(我的个人网站和V2EX)发布一些零碎的东西,主要是因为今年换了工作后太累了ÿ…...
ChatGPT接口测试用例生成的流程
通常,使用ChatGPT生成接口测试用例的流程可以分为以下关键步骤。 收集接口信息 收集接口的相关文档和信息,如接口名称、请求方法、请求参数、返回结果等。这些是ChatGPT生成测试用例需要的输入信息。 这一步骤的重要性不可忽视,因为它为Chat…...
【读书笔记】《论语别裁》真人和假人
一、内容摘要 在《论语别裁》第01章中,作者探讨了“真人”与“假人”的概念,借鉴于庄子的思想,强调真正有道德修养且懂得人生真谛的人被称为“真人”,而那些未达到道德最高标准的人则称为“假人。孔子所提倡的“学”不仅仅是书本…...
JS字符串方法汇总
String.anchor //创建一个带有名称的 <a> 元素字符串 //已弃用 let str test str.anchor(name) //<a name"name">test</a>String.at let str 1234567 str.at(0) //1 str.at(1) //2 str.at(-1) //7 str.at(-2) //6String.big //已弃用 let …...
CentOs7使用yum安装docker
安装docker 一、安装docker依赖 sudo yum install -y yum-utils device-mapper-persistent-data lvm2二、添加软件源信息 sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i sdownload.docker.commirrors.…...
蓝桥杯刷题——day8
蓝桥杯刷题——day8 题目一题干解题思路代码 题目二题干解题思路代码 题目一 题干 N 架飞机准备降落到某个只有一条跑道的机场。其中第i架飞机在 Ti时刻到达机场上空,到达时它的剩余油料还可以继续盘旋 Di个单位时间,即它最早可以于 Ti时刻开始降落&am…...
如何使用 WebAssembly 扩展后端应用
1. WebAssembly 简介 随着互联网的发展,越来越多的应用借助 Javascript 转到了 Web 端,但人们也发现,随着移动互联网的兴起,需要把大量的应用迁移到手机端,随着手端的应用逻辑越来越复杂,Javascript 的解析…...
BaseCTF_web_week3
复读机 输入的东西会在下方显示出来,wp说是简单的SSTI,这里来学习一下SSTI SSTI模板注入 根据My4n师傅的《超详细SSTI模板注入漏洞原理讲解_ssti注入-CSDN博客》写的 用户的输入返回时会经过一个模板渲染,SSTI漏洞就是用户插入了可以破坏模板…...
模型数据算法概论
模型数据算法是一类使用数据来构建、优化或训练数学模型的算法,常用于数据科学、机器学习和人工智能领域。它们的核心目标是从数据中提取模式或关系,以便在预测、分类或优化任务中应用。以下是一个简要的概述: 1. 模型 模型是用来描述数据特…...
什么是3DEXPERIENCE SOLIDWORKS,它有哪些角色和功能?
将业界领先的 SOLIDWORKS 3D CAD 解决方案连接到基于单一云端产品开发环境 3DEXPERIENCE 平台。您的团队、数据和流程全部连接到一个平台进行高效的协作工作,从而能快速的做出更好的决策。 目 录: ★ 1 什么是3DEXPERIENCE SOLIDWORKS ★ 2 3DEXPERIE…...
Sigrity System SI Parallel Bus Analysis模式进行DDR3仿真分析-传输线模型
Sigrity System SI Parallel Bus Analysis模式进行DDR3仿真分析-传输线模型 Sigrity System SI Parallel Bus Analysis模式提供了简易的已搭建好的模板,方便用户直接在模板上替换数据文件进行仿真分析,下面介绍pba_simple_em模板的使用,具体操作如下 双击启动System SI启动界…...
MacOS下PostIn安装配置指南
PostIn是一款开源免费的接口管理工具, 下面介绍私有部署版本的MacOS下安装与配置。私有部署版本更适合有严格数据安全要求的企业,实现对数据和系统的完全控制。   1、MacOS服务端安装 Mac安装包下载地址:下载Mac安…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...
