麒麟操作系统服务架构保姆级教程(二)sersync、lsync备份和NFS持久化存储

news2024/12/22 5:58:21

 如果你想拥有你从未拥有过的东西,那么你必须去做你从未做过的事情

        上篇文章我们说到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 /data
 drwxr-xr-x 2 root root 6 Apr 10 10:19 /data
 [root@nfs ~]#chown nfsnobody.nfsnobody /data
 [root@nfs ~]#ll -d /data
 drwxr-xr-x 2 nfsnobody nfsnobody 6 Apr 10 10:19 /data
 4.启动服务 开机自启
[root@nfs ~]#systemctl start nfs
 [root@nfs ~]#systemctl enable nfs
 5.检查服务
[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 -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
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,     #只同步进程启动以后发生改动事件的文件,原有的目录即使有差异也不会同步。默认是true
    rsync = {     #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开始,一点一点的积累,慢慢成长,明天你就是大佬!!想学习更多麒麟操作系统的知识,关注小屁,让你成为运维老鸟~~~~~

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

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

相关文章

关于小程序内嵌h5打开新的小程序

关于小程序内嵌h5打开新的小程序 三种方式 https://juejin.cn/post/7055551463489011749 只依赖于h5本身的就是 https://huaweicloud.csdn.net/64f97ebb6b896f66024ca16c.html https://juejin.cn/post/7055551463489011749 navigateToMiniProgram 故小程序webview里的h5无法…

QP:Query切词

Query 分词&#xff08;切词&#xff09; 分词指将一段连续的文本切成一个个独立且有意义的词汇&#xff0c;在文本召回中会对 Doc 文本内容分词以构建索引&#xff0c;并通过对查询词 Query 分词后去做检索。Query 分词在搜索中是一个基础信号&#xff0c;除了文本召回&#…

鸿蒙元服务从0到上架【第二篇】

第一招&#xff1a;在AppGallery后台下载对应的证书等文件 AppGallery后台 新增发布证书&#xff0c;具体操作可查看申请发布证书 申请发布Profile证书 第二招&#xff1a;在IDE中填写 第三招&#xff1a;打包【⚠️发布上架的只能是Build App】 终端展示这一片绿&#xf…

9_HTML5 SVG (5) --[HTML5 API 学习之旅]

SVG 模糊效果 HTML5中的SVG&#xff08;可缩放矢量图形&#xff09;允许我们创建高质量的二维图形&#xff0c;包括应用各种滤镜效果。模糊效果是通过<feGaussianBlur>滤镜原语来实现的。下面我将给出4个使用SVG进行模糊效果处理的示例&#xff0c;并为每个代码段添加详…

vue+node+mysql8.0,详细步骤及报错解决方案

1.下载需要安装的插件 下载express npm install express下载cors&#xff0c;用于处理接口跨域问题 npm install cors下载mysql npm install mysql 2.配置服务器 可以在vue项目的src同级创建server文件夹&#xff08;这里的位置可随意选择&#xff09; 然后依次创建&#…

相机雷达外参标定综述“Automatic targetless LiDAR–camera calibration: a survey“

相机雷达外参标定综述--Automatic targetless LiDAR–camera calibration: a survey 前言1 Introduction2 Background3 Automatic targetless LiDAR–camera calibration3.1 Information theory based method(信息论方法)3.1.1 Pairs of point cloud and image attributes(属性…

Epic游戏使用mod

以土豆兄弟为例&#xff1a; 第一步&#xff1a;获取 SteamCMD 下载官方 Steam 控制台客户端 (steamCMD) 1. 下载好后打开&#xff0c;是一个在 cmd 窗口的运行的命令行 2. 输入以下代码登录 login anonymous 第二步&#xff1a; 确认自己要下载的游戏 ID 和 mod ID 然后…

EGO Swarm翻译

目录 摘要 Ⅰ 介绍 Ⅱ 相关工作 A . 单四旋翼局部规划 B . 拓扑规划 C. 分布式无人机集群 Ⅲ 基于梯度的局部规划隐式拓扑轨迹生成 A.无需ESDF梯度的局部路径规划 B.隐式拓扑轨迹生成 Ⅳ 无人机集群导航 A 机间避碰 B. 定位漂移补偿 C. 从深度图像中去除agent Ⅴ …

FFmpeg 框架简介和文件解复用

文章目录 ffmpeg框架简介libavformat库libavcodec库libavdevice库 复用&#xff08;muxers&#xff09;和解复用&#xff08;demuxers&#xff09;容器格式FLVScript Tag Data结构&#xff08;脚本类型、帧类型&#xff09;Audio Tag Data结构&#xff08;音频Tag&#xff09;V…

基于LSTM长短期记忆神经网络的多分类预测【MATLAB】

在深度学习中&#xff0c;长短期记忆网络&#xff08;LSTM, Long Short-Term Memory&#xff09;是一种强大的循环神经网络&#xff08;RNN&#xff09;变体&#xff0c;专门为解决序列数据中的长距离依赖问题而设计。LSTM因其强大的记忆能力&#xff0c;广泛应用于自然语言处理…

在Excel中如果制作可以自动填充的序号,删除或者合并单元也可用

大家好&#xff0c;我是小鱼。在日常的办公中有时需要制作带序号的表格&#xff0c;这样可以通过序号来直观地看到有多少条信息&#xff0c;但是如果普通的批量添加序号的话&#xff0c;一旦我们删除或者合并某几行数据&#xff0c;前面的序号不会自动更新&#xff0c;序号显示…

从ESP8266编程到树莓派Pico集成:实现手机APP控制LED灯

物联网(IoT)技术正广泛应用于智能家居领域,通过WiFi模块(如ESP8266)连接嵌入式开发板(如树莓派Pico),可实现设备远程控制。本文将从ESP8266模块的固件编程开始,直至其与树莓派Pico集成,完成通过手机APP远程控制LED灯的功能实现。 一、项目目标 通过手机APP与ESP8266…

【机器学习】分而知变,积而见道:微积分中的世界之思

文章目录 微积分基础&#xff1a;理解变化与累积的数学前言一、微积分概述与基础概念1.1 微积分的定义与重要性1.1.1 微积分的基本组成1.1.2 微积分在机器学习中的应用 1.2 微积分的历史与发展 二、极限与连续性2.1 极限的定义与计算2.1.1 极限的直观理解2.1.2 极限的数学定义2…

【嵌入式开发笔记】OpenOCD到嵌入式调试

最近在把玩一块Risc-V的开发板&#xff0c;使用开发板调试时&#xff0c;需要用到专门的下载器和OpenOCD进行调试。 为了连接这个板子&#xff0c;费了九牛二虎之力。 这里简单记录一下自己的折腾经过吧。 0x00 环境准备 0x0001 调试背景 系统&#xff1a;Virtual Box Ub…

知网研学 | 知网文献(CAJ+PDF)批量下载

知网文献&#xff08;CAJPDF&#xff09;批量下载 一、知网研学安装二、插件及脚本安装三、CAJ批量下载四、脚本下载及PDF批量下载浏览器取消拦截窗口 一、知网研学安装 批量下载知网文件&#xff0c;格式为es6文件&#xff0c;需使用知网研学软件打开&#xff0c;故需先安装该…

ScottPlot学习的常用笔记-02

ScottPlot学习的常用笔记-02 写在前面Why&Target&#xff1a;这里记一些杂项。上下文&背景 先记一下这几个小时的新收获先说一下&#xff0c;为什么可开发可视工具缩放的问题ScottPlot5.0起步.net Core: WinExe.Net Framework也是可以的 写在前面 Why&Target&…

uniapp使用腾讯地图接口的时候提示此key每秒请求量已达到上限或者提示此key每日调用量已达到上限问题解决

要在创建的key上添加配额 点击配额之后进入分配页面&#xff0c;分配完之后刷新uniapp就可以调用成功了。

【Harmony Next】多个图文配合解释DevEco Studio工程中,如何配置App相关内容,一次解决多个问题?

解决App配置相关问题列表 1、Harmony Next如何配置图标&#xff1f; 2、Harmony Next如何配置App名称&#xff1f; 3、Harmony Next如何配置版本号&#xff1f; 4、Harmony Next如何配置Bundle ID? 5、Harmony Next如何配置build号&#xff1f; 6、Harmony Next多语言配置在哪…

vue3实现打印table订单表格

废话少说&#xff0c;直接上代码&#xff01; /utils/commonFunction.ts 把数字转换成繁体中文封装函数 export default function () {// 把数字转换成繁体中文function convertCurrency(money: any) {//汉字的数字var cnNums new Array("零","壹",&quo…

VSCode:Markdown插件安装使用 -- 最简洁的VSCode中Markdown插件安装使用

VSCode&#xff1a;Markdown插件安装使用 1.安装Marktext2.使用Marktext 本文&#xff0c;将在Visual Studio Code中&#xff0c;安装和使用Markdown插件&#xff0c;以Marktext插件为例。 1.安装Marktext 打开VSCode&#xff0c;侧边栏中找到扩展模块(或CtrlShiftX快捷键)&am…