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

实战:NFS安装部署

接早上了解过了NFS的一些基本原理,咋们就看看一些实战;

尝试自己部署一下实验;然后实验成功了是我们最大的鼓励来着;

实战过程中,我们也面临了很多报错;所以每个实战的报错我都会列举出来;

来吧,大伙一下看看这个NFS的部署实战;

1、必备的操作如下
  • 关闭防火墙和安装好nfs服务相关组件
  • 服务器端:192.168.75.71
  • 客户端:192.168.75.72
shell 复制代码
#服务器端和客户端均进行如下操作:
	#关闭防火墙和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文件
    • 限定规则
shell 复制代码
#配置自己的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 10月  3 16:06 /data/
drwxr-xr-x 2 root root  6 10月  3 16:06 /data/liangjiawei/

#重新读取一下配置文件-导出(广播)编辑的文件,并重启rpc和nfs服务
	#并且重启一下nfs服务
[root@Linux1 ~]# systemctl restart rpcbind nfs
[root@Linux1 ~]# exportfs -r
3、客户端验证配置
  • 使用showmount命令,查看网络上的共享文件
  • 创建目录,用于客户端的挂载
  • 然后直接挂载使用-->然后验证一下权限问题
shell 复制代码
#客户端直接查看一下网络中的共享文件
[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文件
shell 复制代码
#在服务器端配置:
[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的权限重新定义
shell 复制代码
#第一个:可以提权;
	#这个不建议,因为权限过大;
[root@Linux1 ~]# chmod 777 -R /data/
[root@Linux1 ~]# ls -ld /data/ /data/liangjiawei/
drwxrwxrwx 3 root root 25 10月  3 16:06 /data/
drwxrwxrwx 2 root root  6 10月  3 16:06 /data/liangjiawei/
	#测试可以发现可以创建了
[root@Linux2 nfs]# touch liangjiawei.txt
[root@Linux2 nfs]# ll liangjiawei.txt 
-rw-r--r-- 1 nfsnobody nfsnobody 0 10月  3 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、卸载问题解决
shell 复制代码
#如果在使用中是没法卸载的
umount.nfs4: /mnt/jfedu: device is busy
umount -l /mnt/jfedu 强行解除挂载
	#或者使用
fuser -m /mnt/data 将会显示使用这个模块的pid
fuser -mk /mnt/data 将会直接kill那个pid

分享环节:

hi,亲爱的朋友们:

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

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

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

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

相关推荐
AlfredZhao2 小时前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334668 小时前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪9 小时前
linux 拷贝文件或目录到指定的位置
linux
大树881 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠1 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质1 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush41 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5201 天前
Linux 11 动态监控指令top
linux
小宇宙Zz1 天前
Maven依赖冲突
java·服务器·maven
Inhand陈工1 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信