centos7 NFS 配置

NFS是什么

最近项目上有这么个需求,客户端上传文件的时候,想把文件上传到另外一台服务器。本来想用ftp的,觉得太麻烦,就各种查资料,请教别人,后来发现,NFS这个东东真不错。

NFS(网络文件系统)服务可以将远程Linux系统上的文件共享资源挂载到本地主机的目录上,从而使得本地主机(Linux客户端)基于TCP/IP协议,像使用本地主机上的资源那样读写远程Linux系统上的共享文件。

简单来说就是,把远程服务器上的一个目录映射到本地,就像操作本地目录一下操作远程目录,这个完全符合我的需求。

NFS分为服务器端和客户端,远程服务器是服务端,本地服务器是客户端,我们现在就开始配置吧。



服务端配置


安装NFS

查看是否安装了nfs,输入命令: rpm -qa |grep nfs
centos7 NFS 配置
没有结果,说明没有安装。

输入安装命令: yum install nfs-utils
centos7 NFS 配置
一路选择yes,直到安装完成。

再次查看,已经安装好了。
centos7 NFS 配置

建立共享目录并设置权限

在/usr/local目录下建立upload目录为共享目录。
centos7 NFS 配置
mkdir upload
centos7 NFS 配置
设置足够的权限确保其他用户也有写入权限(因为下面我们把客户端映射为匿名用户了):
chmod -Rf 777 upload
centos7 NFS 配置
创建一个文件(测试用,非必要)
echo “welcome to install nfs” > readme
centos7 NFS 配置

配置文件

NFS服务程序的配置文件为 /etc/exports,默认情况下里面没有任何内容。我们可以按照“共享目录的路径 允许访问的NFS客户端(共享权限参数)”的格式,定义要共享的目录与相应的权限。

参数使用表格如下:
centos7 NFS 配置

输入命令:vi /etc/exports
centos7 NFS 配置
加入 /usr/local/upload 10.145.1.*(rw,sync,root_squash)
注意,NFS客户端地址与权限之间没有空格。
centos7 NFS 配置

启动NFS服务

启动NFS服务之前,还需要顺带重启并启用rpcbind服务程序,并将这两个服务一并加入开机启动项中。

输入命令:
systemctl restart rpcbind
systemctl enable rpcbind
systemctl start nfs-server
systemctl enable nfs-server
centos7 NFS 配置

设置防火墙

firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --reload
centos7 NFS 配置
如果不设置防火墙,客户端可能访问不到服务器的nfs。

查看是否共享成功

showmount -e localhost
centos7 NFS 配置
至此,服务器端配置成功。



客户端配置


安装NFS

同样需要检查安装nfs,步骤和服务器一样。
centos7 NFS 配置

查询NFS服务器的远程共享信息

命令格式为“共享的目录名称 允许使用客户端地址”。
centos7 NFS 配置
showmount -e 10.145.1.36
centos7 NFS 配置
表示客户端和服务器端连接没有问题。

建立共享目录

可以是任何目录,请按需创建。
centos7 NFS 配置
mkdir upload
centos7 NFS 配置

挂载服务器目录

使用mount命令并结合-t参数,指定要挂载的文件系统的类型,并在命令后面写上服务器的IP地址、服务器上的共享目录以及要挂载到本地系统(即客户端)的目录。

命令格式:mount -t nfs 服务器的IP:/服务器上的共享目录 本地的挂载目录

输入命令:mount -t nfs 10.145.1.36:/usr/local/upload /usr/local/upload
centos7 NFS 配置
挂载完成后,进入upload 目录,看到了服务器上创建的readme文件,说明挂载成功!
centos7 NFS 配置
客户端新建一个文件readme2
echo “create by client” > readme2
centos7 NFS 配置
在服务器端查看,写入成功!
centos7 NFS 配置
至此,配置完成了!

一劳永逸

如果希望NFS文件共享服务能一直有效,则需要将其写入到fstab文件中:

vi /etc/fstab
centos7 NFS 配置
10.145.1.36:/usr/local/upload /usr/local/upload nfs defaults 0 0
centos7 NFS 配置
这样就算服务器重启,也不会丢失配置了。



总结

Linux系统之间,共享目录文件用NFS非常方便,有以下优缺点:

优点:服务端的同一块磁盘可以挂载到不同的客户端,实现文件的共享,可以扩充客户端的存储空间。
缺点:严重依赖网络,当网络出现问题,客户端挂载的网络磁盘会无法使用。

最后,搭建NFS系统,最好是在同一局域网内,还要注意防火墙的设置。










centos7 NFS 配置