Linux服务器之间如何设置共享目录

分类:计算机 | 操作系统 | Linux | Linux文件系统 1275
更新:2021-02-10 14:00:03
编辑

特别要注意的一点问题

如果在挂载客户端目录到nfs服务器上之前客户端目录里面已经有文件了,而服务端的共享存储目录是空的,那么挂载以后客户端目录里面原来的文件就看不到了,别紧张,原来这些文件不是被删掉了,而是被新的挂载目录掩盖掉了,文件还是在的,而且重启客户端服务器以后挂载目录就会失效,原来的文件也就可以看到了。

1 说明

有时候我们需要在两台linux服务器之间共享资源,例如在服务器A上面部署了一个大文件上传程序,但是需要将文件上传到服务器B的某个目录下面,因为上传大文件,需要先将文件所有分块单独上传到服务器B,然后在服务器B上面进行文件的合并,而服务器B上面有没有我们的上传程序,那么该如何实现这个需求呢?其中有个简单的方式就是通过Linux的NFS配置,将服务器B的目录共享到服务器A,这样服务器A上面的程序就可以直接在共享目录中上传合并文件,就像访问自己本地的文件一样。下面就介绍一下如何在两个Linux服务器之间配置NFS。

我这里使用的两台Linux服务器都是Red Hat7.3版本。

2 步骤

2.1 服务器端配置

2.1.1 查看是否安装有NFS服务

输入命令:rpm -qa|grep nfs,如果出现如图所示信息,说明安装有nfs服务。

如果还没有安装NFS服务,可以执行下面的命令来安装:

yum -y install nfs-utils prcbind

2.1.2 创建共享目录,并赋予读写权限

输入命令:

mkdir /sharedata
chmod -R 777 /sharedata

设置共享目录,并赋予读写权限。

2.1.3 修改配置文件/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代表客户端可以对共享目录进行读写操作。

2.1.4 启动NFS服务

输入命令:

systemctl start nfs

启动NFS服务。

2.2 客户端配置

2.2.1 创建挂载目录

在客户端创建一个目录用来挂载共享目录,这个目录的结构最好是和共享目录的结构一样,容易记忆,结构不同也可以。 输入命令:

mkdir /sharedata
chmod -R 777 /sharedata

设置挂载目录,并赋予读写权限。

2.2.2 挂载共享目录

命令格式:# mount NFS服务器ip:共享目录 本地挂载点目录

mount 192.168.0.109:/sharedata /sharedata

2.2.3 验证是否挂载成功

可以在共享目录中存放一些文件,如果在挂载目录中也能看到相同的文件,那么说明挂载成功。

3 注意事项

3.1 关闭服务器端的防火墙

如果NFS服务器端的防火墙没有关闭的话,共享目录在挂载的时候就会出现挂载失败,连接超时的问题(mount.nfs:Connection timed out)

3.2 服务器端exports的客户端配置选项要加上insecure参数

服务器端exports的客户端配置选项要加上insecure参数,例如:/sharedata 192.168.10.109(insecure,rw)。

如果不加上insecure参数的话,在挂载共享目录时,可能会提示如下错误:mount.nfs:access denied by server while mounting。

3.3 只有root用户才能执行mount操作