Linux 架构篇 知识心得05 rsync备份实例
时间:2021-10-23
本文章向大家介绍Linux 架构篇 知识心得05 rsync备份实例,主要包括Linux 架构篇 知识心得05 rsync备份实例使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
NFS服务
一.什么是NFS服务
共享存储,文件服务器
1.基本概述
NFS是Network File System的缩写及网络文件系统。NFS主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录。
NFS系统和Windows网络共享、网络驱动器类似, 只不过windows用于局域网, NFS用于企业集群架构中, 如果是大型网站, 会用到更复杂的分布式文件系统FastDFS,glusterfs,HDFS
2.为什么使用NFS
1)实现多台服务器之间数据共享
2)实现多台服务器之间数据一致
二、NFS应用
1.没有NFS时
1.A用户上传图片经过负载均衡,负载均衡将上传请求调度至WEB1服务器上。
2.B用户访问A用户上传的图片,此时B用户被负载均衡调度至WEB2上,因为WEB2上没有这张图片,所以B用户无法看到A用户传的图片。
2.有NFS时
1.A用户上传图片无论被负载均衡调度至WEB1还是WEB2, 最终数据都被写入至共享存储
2.B用户访问A用户上传图片时,无论调度至WEB1还是WEB2,最终都会上共享存储访问对应的文件,这样就可以访问到资源了
3.NFS工作原理
vim /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash)
1.用户访问NFS客户端,将请求转化为函数
2.NFS通过TCP/IP连接服务端
3.NFS服务端接收请求,会先调用portmap进程进行端口映射
4.Rpc.nfsd进程用于判断NFS客户端能否连接服务端;
5.Rpc.mount进程用于判断客户端对服务端的操作权限
6.如果通过权限验证,可以对服务端进行操作,修改或读取
三、NFS实践
1.环境准备
主机 IP 角色
web01 172.16.1.7 NFS客户端
web02 172.16.1.8 NFS客户端
web03 172.16.1.9 NFS客户端
nfs 172.16.1.31 NFS服务端
2.服务端准备工作
1) 关闭SElinux和防火墙
vim /etc/selinux/config : enforcing -->disabled
setenforce 0
systemctl disable --now firewalld
2) 安装NFS和rpcbind
yum install -y nfs-utils rpcbind
3)配置NFS
#NFS默认的配置文件是 /etc/exports
vim /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash)
语法 /data 172.16.1.0/24 (rw,sync,all_squash)
含义 NFS服务端共享的目录 NFS允许连接的客户端IP 允许操作的权限
4) 创建共享目录
mkdir /data
5) 启动服务
systemctl start rpcbind nfs
6)验证启动
netstat -lntp | grep rpc
cat /var/lib/nfs/etab # 验证NFS配置
3.客户端准备工作
1) 关闭SElinux和防火墙
vim /etc/selinux/config : enforcing -->disabled
setenforce 0
systemctl disable --now firewalld
2) 安装NFS和rpcbind
yum install -y nfs-utils rpcbind
3)查看挂载点
[root@web01 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
4)挂载
[root@web01 ~]# mount -t nfs 172.16.1.31:/data /mnt
[root@web01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.5M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/mapper/centos-root 99G 2.6G 97G 3% /
/dev/sda1 1014M 168M 847M 17% /boot
172.16.1.31:/data 99G 2.7G 97G 3% /mnt
tmpfs 98M 0 98M 0% /run/user/0
5)写入数据进行测试
#第一次写入测试
[root@web01 ~]# cd /backup/
[root@web01 backup]# touch 123.txt
touch: cannot touch ‘123.txt’: Permission denied #没有权限
#授权目录 在服务端进行授权操作
[root@nfs ~]# chown -R nfsnobody.nfsnobody /data/
#再次创建测试
[root@web01 backup]# touch 123.txt
[root@web01 backup]# ll
total 0
-rw-r--r--. 1 nfsnobody nfsnobody 0 Nov 20 09:26 123.txt
#服务端查看
[root@nfs ~]# ll /data/
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Nov 20 09:26 123.txt
四、NFS挂载与卸载
NFS客户端的配置步骤也十分简单。先使用showmount命令,查询NFS服务器的远程共享信息,其输出格式为“共享的目录名称 允许使用客户端地址(权限)”。
NFS挂载:客户端的目录仅仅是服务端共享目录的一个入口,可以简单理解为软连接,真正的数据全都是存储在服务端的目录,客户端写入的数据也是在服务端存储的
NFS卸载:
#卸载的两种方式
[root@web01 ~]# umount /backup
[root@web01 ~]# umount 172.16.1.31:/data
#强制取消挂载
[root@web01 ~]# umount -lf /backup
NFS开机自动挂载
1、开机自启动脚本
vim /etc/rc.local
chmod +x /etc/rc.local
echo "mount -t nfs 172.16.1.31:/data/image /mnt" >> /etc/rc.local
2、写入/etc/fstab
1、编写配置文件
172.16.1.31:/data /backup nfs defaults 0 0
2、检查配置文件
1、mount -a :检查语法
2、showmount -e 172.16.1.31 : 检查服务
3、重启测试
#注意事项:
1.挂载目录后,原来文件下的内容不会丢失,仅仅是被遮盖住,取消挂载后仍然存在
2.取消挂载时不要在挂载的目录下面操作,否则会提示忙碌,切换到其他目录再进行卸载
3.挂载是如果在挂载的目录下,还是可以看到挂载前目录下的文件,需要重新进入目录才会显示挂载后目录的内容
五、检查nfs服务是否正常
客户端检测脚本:
#!/bin/bash
IP=172.16.1.31
#监测NFS服务是否正常
showmount -e $IP &>/dev/null
[ $? -eq 0 ] && mount -t nfs $IP:/data /mnt || /usr/bin/bash /root/nfs.sh
ps:nfs.sh脚本如下:
#!/bin/bash
echo "NFS服务异常,请及时处理!" |mail -s "异常报警" 446010175@qq.com >/dev/null 2>&1
原文地址:https://www.cnblogs.com/ws7788/p/15449862.html
- INET_ATON()函数在MySQL5.6版本和5.7版本的差异
- Linux主机之间ssh免密登录配置
- 远控木马Posion Ivy开始肆虐缅甸和其它亚洲国家
- Slf4j+Logback配置文件变量使用小记
- Storm消息处理可靠性保证
- git+github创建分支&提交并贡献代码(linux环境)
- 使用Nginx代理restful实现SSL链路加密
- 使用Nginx代理thrift NIO实现SSL链路加密
- TThreadedSelectorServer介绍及Direct Memory OOM分析
- 通过Java程序提交通用Mapreduce任务并获取Job信息
- Mapreduce 任务提交源码分析1
- Java分布式神经网络库Deeplearning4j 环境搭建和运行一个例子
- Java分布式神经网络库Deeplearning4j之上手实践手写数字图像识别与模型训练
- 调用腾讯优图开放平台进行人脸识别-Java调用API实现
- 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 数组属性和方法
- docker login 报错了...
- Spark-Submit 和 K8S Operation For Spark
- Spark的Dockerfile分析
- Spark on Kubernetes在Mac的Demo
- Python的Wand模块
- 机器学习第4天:预测1立方米混凝土抗压强度
- 硬件笔记之GP106-90 3GB GTX1060 3GB魔改
- Java BigDecimal 的舍入模式(RoundingMode)详解
- 实际工程中加快 Java 代码编写的小提示
- CentOS7 离线安装软件并准备依赖包
- CentOS7 SkyWalking APM8.1.0 搭建与项目集成使用
- CentOS7 cassandra安装与测试
- Centos7 搭建DNS服务器
- CentOS7 fastdfs安装与测试
- CentOS7 jdk安装