当前位置: 首页 > news >正文

架构师之路-学渣到学霸历程-23

实战:NFS安装部署

接早上了解过了NFS的一些基本原理,咋们就看看一些实战;
尝试自己部署一下实验;然后实验成功了是我们最大的鼓励来着;
实战过程中,我们也面临了很多报错;所以每个实战的报错我都会列举出来;
来吧,大伙一下看看这个NFS的部署实战;

1、必备的操作如下
  • 关闭防火墙和安装好nfs服务相关组件
  • 服务器端:192.168.75.71
  • 客户端:192.168.75.72
#服务器端和客户端均进行如下操作:#关闭防火墙和selinux
systemctl stop firewalld
systemctl disable firewalld#永久关闭selinux
sed -i 's#=enforcing#=disabled#g' /etc/selinux/config #安装nfs组件
yum -y install nfs-utils
2、配置服务器端
  • 编辑/etc/exports文件
    • 限定规则
#配置自己的nfs规则
[root@Linux1 ~]# vim /etc/exports
/data/liangjiawei       192.168.75.0/24(rw,sync)
# 格式:#/data/liangjiawei 要共享的目录,需要存在(不存在就可以创建)#192.168.75.0/24 谁能挂载使用,可以是网段,也可以指定具体ip# (rw,sync) 挂载的一些参数,rw表示挂载为可读可写,sync表示同步#创建对应的目录
[root@Linux1 ~]# mkdir -p /data/liangjiawei#然后查看一下这些的目录的权限#这个实际上就是这个nfs挂在出来的权限;
[root@Linux1 ~]# ls -ld /data/ /data/liangjiawei/
drwxr-xr-x 3 root root 25 103 16:06 /data/
drwxr-xr-x 2 root root  6 103 16:06 /data/liangjiawei/#重新读取一下配置文件-导出(广播)编辑的文件,并重启rpc和nfs服务#并且重启一下nfs服务
[root@Linux1 ~]# systemctl restart rpcbind nfs
[root@Linux1 ~]# exportfs -r
3、客户端验证配置
  • 使用showmount命令,查看网络上的共享文件
  • 创建目录,用于客户端的挂载
  • 然后直接挂载使用–>然后验证一下权限问题
#客户端直接查看一下网络中的共享文件
[root@Linux2 ~]# showmount -e 192.168.75.71
Export list for 192.168.75.71:
/data/liangjiawei 192.168.75.0/24#创建建自己想要挂在的目录
[root@Linux2 ~]# mkdir /nfs#直接挂载使用
[root@Linux2 ~]# mount -t nfs  192.168.75.71:/data/liangjiawei /nfs/
[root@Linux2 ~]# df -h  | grep nfs
192.168.75.71:/data/liangjiawei   17G  1.6G   16G   10% /nfs#可以测试一下
[root@Linux2 nfs]# ls#这里明显发现,没法创建文件-->
[root@Linux2 nfs]# touch liangjiawei.txt
touch: 无法创建"liangjiawei.txt": 权限不够#解释如下:
#挂载完成之后,进入目录,可能会发现无法对目录中的文件进行修改,这主要是因为客户端访问服务器时,身份被压缩成nobody,相对服务器文件系统来说,就是其他用户。
#所以要想编辑,需要在服务端对文件授权或者更改exports文件,设置no_root_squash(不压缩客户端root身份)。
4、解读一下exportfs文件
#在服务器端配置:
[root@Linux1 ~]# exportfs  -v
/data/liangjiawei	192.168.75.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)#解释如下:
rw:可读可写
ro:仅可读
sync:是指数据同步写入内存和磁盘
root_squash:如果客户端用root身份访问,则被压缩成nobody,权限也将受到限制。
no_root_squash:也就是不压缩,客户端使用root身份登录,全有所有权限,很危险。
all_squash:不管访问者是什么身份,包括root,全部压缩至匿名用户。
no_all_squash:保留访问用户的身份uid以及gid,一般只能查看,不能修改,权限问题,但是可以强制保存。

回到刚才那个实验,

  • 没法创建文件;
    • 可以直接升级目录权限
    • 也可以从nfs的权限重新定义
#第一个:可以提权;#这个不建议,因为权限过大;
[root@Linux1 ~]# chmod 777 -R /data/
[root@Linux1 ~]# ls -ld /data/ /data/liangjiawei/
drwxrwxrwx 3 root root 25 103 16:06 /data/
drwxrwxrwx 2 root root  6 103 16:06 /data/liangjiawei/#测试可以发现可以创建了
[root@Linux2 nfs]# touch liangjiawei.txt
[root@Linux2 nfs]# ll liangjiawei.txt 
-rw-r--r-- 1 nfsnobody nfsnobody 0 103 16:26 liangjiawei.txt#第二个:提高nfs的权限重新定义
[root@Linux1 ~]# vim /etc/exports#添加这个no_root_squash
/data/liangjiawei       192.168.75.0/24(rw,sync,no_root_squash)#重新挂在
[root@Linux2 ~]# vim /etc/fstab #添加如下这一行:
192.168.75.71:/data/liangjiawei /mnt/   nfs     defaults        0       0#使用这个命令,必须在fstab文件中定义好
[root@Linux2 ~]# mount -t nfs -o soft,timeo=1  192.168.75.71:/data/liangjiawei#soft: 软挂载,遇到报错会终止挂载,并返回信息,默认是硬挂载,一直尝试挂载。#timeo: 超时时间,如果不设置,一直链接,可以设置小点
5、卸载问题解决
#如果在使用中是没法卸载的
umount.nfs4: /mnt/jfedu: device is busy
umount -l /mnt/jfedu 强行解除挂载#或者使用
fuser -m /mnt/data 将会显示使用这个模块的pid
fuser -mk /mnt/data 将会直接kill那个pid

分享环节:

hi,亲爱的朋友们:

  • 感谢你们耐心完这个笔记,如果笔记中出现的一些软件包、资源找不到的可以直接留言&私聊,我看见了就回复;
  • 资源免费共享;有需要滴滴,(仅仅是我有的)

我的坚持初衷:💕立志要成为一名架构师

  • 不断地去坚持学,其中的各种各样的难度,不言而喻~!
  • 坚持不是一件容易的事情,但它却是成功的关键。做起来吧~!

如果你也想要坚持:那么组团吧,咋们一块互相监督;一天一点分享也是进步;最怕就是孤军奋战!加油吧,追梦人~!

http://www.lryc.cn/news/463966.html

相关文章:

  • 怎么修改编辑PDF的内容,有这4个工具就行了。
  • 腾讯云宝塔面板前后端项目发版
  • C语言的结构体定义 java赋值关系运算符
  • 重学SpringBoot3-Spring WebFlux简介
  • distinct 和 group by
  • RTThread-Nano学习一-基于MDK移植
  • Vue中v-bind对样式控制的增强—(详解v-bind操作class以及操作style属性,附有案例+代码)
  • 【分布式微服务云原生】《ZooKeeper 深度探秘:分布式协调的强大利器》
  • 打造高性能在线电子表格:WebGL 渲染引擎 Kola2d 自研之路
  • 深入理解WPF中的命令机制
  • 基础算法(6)——模拟
  • 2025年广西高考报名流程图解(手机端)
  • 十、结构型(外观模式)
  • 10.12Python数学基础-矩阵(上)
  • 重学SpringBoot3-安装Spring Boot CLI
  • 代码复现(五):GCPANet
  • 联邦学习实验复现—MNISIT IID实验 pytorch
  • 2015年-2017年 计算机技术专业 程序设计题(算法题)实战_c语言程序设计数据结构程序设计分析
  • 个人用计算理论导引笔记(待补充)
  • 2024年诺贝尔物理学奖揭晓:AI背后的“造梦者”是谁?
  • 2024年AI 制作PPT新宠儿,3款神器集锦,让你的演示与众不同
  • CLion和Qt 联合开发环境配置教程(Windows和Linux版)
  • Qt记录使用QtAwesome
  • ES6新增promise(异步编程新解决方案)如何封装ajax?
  • Kubernetes--深入理解Service与CoreDNS
  • AI大模型:开启智能革命新纪元
  • 快速上手C语言【下】(非常详细!!!)
  • 红黑树的理解与实现(详解)
  • 从一到无穷大 #37 Databricks Photon:打响 Spark Native Engine 第一枪
  • Java 字符串占位格式化