一、NFS简介
网络文件系统(NFS)允许远程主机通过网络挂载⽂件系统,并像它们挂载在本地那样与这些⽂件系统进行交互。这可让您将资源整合到⽹络的集中服务器中。
NFS 服务器参考 /etc/exports 配置⽂件,来确定是否允许客户端访问任何导出的⽂件系统。⼀旦被验证,所有⽂件和⽬录操作都对用户有效。
NFS 主机名格式
- 可用主机名
- ip地址;a.b.c.d/z;例如192.168.0.0/24
二、NFS 服务器配置
⼿动编辑 /etc/exports 配置⽂件
在命令⾏上使⽤ exportfs ⼯具,也可以重启该服务
/etc/exports ⽂件控制哪些⽂件系统被导出到远程主机。
配置文件的一些规则:
- 每个导出的文件系统都应该独⽴。
- 所有在导出的文件系统后放置的授权主机列表都必须⽤空格分开
- 每个主机的选项必须在主机标识符后直接放在括号中,没有空格分离主机和第⼀个括
号。
/home bob.example.com(rw)
/home bob.example.com (rw)
以上两行并不具有相同的意义。第⼀行仅允许来⾃ bob.example.com 的用户读写 /home 目录。第二行允许来⾃bob.example.com 的用户以只读⽅式挂载目录(默认),⽽其他用户可以将其挂载为读/写。
三、安装NFS
dnf install nfs- utils
查看该服务是否启动: systemctl status rpcbind
四、配置 NFS 服务器和客户端挂载
在此之前需要准备两台虚拟机,一台作为服务器,一台作为客户端。
dnf install nfs- utils - y
systemctl status nfs- server
在服务器配置导出目录:
[root@redhat ~]# mkdir /mydata
[root@redhat ~]# chmod 777 /mydata/
[root@redhat ~]# touch /mydata/testfile
[root@redhat ~]# vim /etc/exports
[root@redhat ~]# cat /etc/exports
/mydata 192.168.85.130(rw) #这是客户端的IP
[root@redhat ~]# systemctl start firewalld.service
配置防火墙规则:
[root@redhat ~]# firewall-cmd --add-service=nfs --permanent
[root@redhat ~]# firewall-cmd --add-service=mountd --permanent
[root@redhat ~]# firewall-cmd --add-service=rpc-bind --permanent
[root@redhat ~]# firewall-cmd --reload
在客户端查看导出的目录:
[root@manged ~]# showmount -e 192.168.85.128 #这是服务器的IP
Export list for 192.168.85.128:
/mydata 192.168.85.129
[root@manged ~]# mkdir /client_data
[root@manged ~]# mount 192.168.85.128:/mydata /client_data/
[root@manged ~]# ll /client_data/
总用量 0
-rw-r--r--. 1 root root 0 1月 20 21:04 testfile
当然也可以写/etc/fstab 开机自动挂载,如果服务器连接不上,设置后会很麻烦的。
在这里会遇到一个问题就是:
[root@manged ~]# showmount -e 192.168.85.128
clnt_create: RPC: Program not registered
可以去看一下防火墙或者是nfs的服务没有重启,写点配置文件没有加载进来
五、配置autofs⾃动挂载
客户端安装:
他的功能:
- 当客户端在有使⽤NFS文件系统的需求时才让系统自动挂载。
- 当NFS⽂件系统使用完毕后,让NFS自动卸载。
[root@manged ~]# yum install autofs -y
[root@manged ~]# vim /etc/auto.master
/client_data /etc/auto.suibian
客户端要挂载的目录 写具体挂载配置的目录
[root@manged ~]# cat /etc/auto.suibian
upload 192.168.85.128:/mydata
#本地端要挂载子目录 服务器对应的被挂载
[root@manged ~]# systemctl restart autofs.service
这时候如果出现以下这种情况,就停掉服务,在创建目录;结果是只要一进入到upload目录,就会自动挂载,很久不使用这个目录,挂载就会被取消掉。
[root@manged ~]# mkdir /client_data/upload
mkdir: 无法创建目录 “/client_data/upload”: 权限不够
[root@manged ~]# systemctl stop autofs.service
[root@manged ~]# mkdir /client_data/upload