有时候我们需要在两台linux服务器之间共享资源,例如在服务器A上面部署了一个大文件上传程序,但是需要将文件上传到服务器B的某个目录下面,因为上传大文件,需要先将文件所有分块单独上传到服务器B,然后在服务器B上面进行文件的合并,而服务器B上面有没有我们的上传程序,那么该如何实现这个需求呢?其中有个简单的方式就是通过Linux的NFS配置,将服务器B的目录共享到服务器A,这样服务器A上面的程序就可以直接在共享目录中上传合并文件,就像访问自己本地的文件一样。
NFS安装
#安装nfs服务 yum -y install nfs-utils
#启动服务 service rpcbind start service nfs start
#设置开机启动 systemctl enable rpcbind systemctl enable nfs-server
服务器端配置
查看是否安装有NFS服务。
输入命令:rpm -qa|grep nfs,如果出现如图所示信息,说明安装有nfs服务
创建共享目录,并赋予读写权限。
输入:mkdir /sharedata
chmod -R 777 /sharedata
命令,设置共享目录,并赋予读写权限。
修改配置文件/etc/exports
使用root用户来修改NFS的配置文件/etc/exports。这个文件可能不存在,需要新建。
文件格式:
<输出目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)]
例如:vi /etc/exports
/sharedata 192.168.0.110(rw,insecure)
其中,/sharedata是服务器端要共享出来的目录,192.168.0.110是客户端的ip,rw代表客户端可以对共享目录进行读写操作。
启动NFS服务
输入命令:systemctl start nfs启动NFS服务。
客户端配置
创建挂载目录。
在客户端创建一个目录用来挂载共享目录,这个目录的结构最好是和共享目录的结构一样,容易记忆,结构不同也可以。
输入:mkdir /sharedata
chmod -R 777 /sharedata
命令,设置挂载目录,并赋予读写权限。
挂载共享目录。
命令格式:# mount NFS服务器ip:共享目录 本地挂载点目录
mount 192.168.0.109:/sharedata /sharedata
验证是否挂载成功。
可以在共享目录中存放一些文件,如果在挂载目录中也能看到相同的文件,那么说明挂载成功。
注意事项
-
如果NFS服务器端的防火墙没有关闭的话,共享目录在挂载的时候就会出现挂载失败,连接超时的问题(mount.nfs:Connection timed out)
-
服务器端exports的客户端配置选项要加上insecure参数,例如:/sharedata 192.168.10.109(insecure,rw)。 如果不加上insecure参数的话,在挂载共享目录时,可能会提示如下错误:mount.nfs:access denied by server while mounting。