Linux中的nfs
nfs安装与相关配置
安装
dnf install nfs-utils -y
防火墙放通
在nfs服务器中放通nfs、rpc-bind和mountd这三个软件和服务。
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd
firewall-cmd --reload
放通后,记得重启防火墙服务
启动服务
systemctl enable --now nfs-server.service
测试是否能访问服务端
在主机2(134)上查看192.168.200.132上共享位置的有无挂载
showmount 192.168.200.132
共享
创建共享的目录并且赋予目录权限
mkdir /nfsdata
chmod 777 /nfsdata/
编写配置文件
如果不知道怎么写exports配置
可以用man来查询配置的模板
man 5 exports
然后我们用vim来编写/etc/exports这个文件
vim /etc/exports
橙框处为例子
按照例子模板来写自己的共享目录
在服务端(132)上编写配置/etc/exports这个文件
/nfsdata *(sync,ro) 192.168.200.134(sync,rw)
配置解析
/nfsdata *(sync,ro) 192.168.200.134(sync,rw)
(1)共享目录
-
/nfsdata
:这是要共享的目录路径,表示NFS服务器上名为/nfsdata
的目录将被共享出去。
(2)客户端及权限
-
*(sync,ro)
:-
*
:表示所有客户端(即任何IP地址的主机)都可以访问这个共享目录。 -
sync
:同步写入模式,表示数据会立即写入磁盘,而不是缓存在内存中,这可以保证数据的一致性,但可能会降低性能。 -
ro
:只读权限,表示所有客户端只能读取共享目录中的内容,不能进行写操作。
-
-
192.168.200.134(sync,rw)
:-
192.168.200.134
:指定IP地址为192.168.200.134
的客户端。 -
sync
:同样表示同步写入模式。 -
rw
:读写权限,表示该客户端可以读取和写入共享目录中的内容。
-
注:这是在服务端(132)上
刷新配置文件并重新启用服务
exportfs -rv
挂载目录到服务端(132)上
mount 192.168.200.132:/nfsdata /media
df查看挂载
在客户端(134) 使用df命令查看
df -h /media/
成功在服务端上生成文件
可选择参数
参数值 | 说明 |
rwro | 该目录共享的权限是可读写还是只读,但最终能否读写,还是与文件系统的rwx有关 |
sync async | sync代表数据会同步写入到内存与硬盘中,async则代表数据会先暂存于内存当中,而非直接写入硬盘 |
no_root_squash root_squash | 若客户端在共享目录里创建的文件的所属者和所属组是root用户和root组,那么显示文件的属主和属组时有以下两种情况: root_squash表示将root用户和组映射为匿名用户和组(默认设置)。 |
all_squash no_all_squash | all_squash:客户端所有用户创建文件时,客户端会将文件的用户和组 映射为匿名用户和组no_all_squash:客户端普通用户创建的文件的 UID和GID是多少,服务端就显示为多少(默认设置) |
anonuid= anongid= | 将文件的用户和组映射为指定的UID和GID,若不指定默认为65534(nfsnobody) |
自动挂载和卸载
在客户端(134)安装autofs
dnf install autofs-1:5.1.7-58.el9.x86_64 -y
启用服务
在客户端(134)上
systemctl enable autofs.service
卸载目录
umount /media
df
df查看挂载的目录,确保刚才挂载的目录已经卸载了
重启服务并测试
systemctl restart --now autofs.service #重启
systemctl enable --now autofs.service #启用
cd /net/192.168.200.132/nfsdata
我们可以直接在客户端直接访问到服务端
注:/net/IP address/共享目录,这个是默认的
更改挂载超时时间
我们用vim更改配置文件/etc/autofs.conf
默认timeout(挂载超时时间)是300秒
vim /etc/autofs.conf
在更改完配置文件后,需要重启服务来更新配置
systemctl restart --now autofs.service
更改自动挂载的目录
用vim在/etc/auto.conf里加上自己想共享的目录
vim /etc/autofs.conf
注:这一行是我们需要新起一行进行编写的
/share为你想要更改共享目录的上一层目录
即如果你想让其自动挂载到/aaa/nfsdata的话
你需要写的是/aaa/etc/auto.xxx(子配置文件)
/etc/auto.vb为子配置文件,待会我们要自己创建并编写
然后我们自己创建好刚刚后面跟着的那个路径下的文件
之后进行编写子配置文件
vim /etc/auto.vb
成功更改自动挂载的目录
直接使用我们刚刚写的路径访问
cd /share/nfs
/share(这是在/etc/auto.conf写的上层目录)/nfs(这是在/etc/auto.vb写的)