Linux服务器之间如何设置共享目录
特别要注意的一点问题
如果在挂载客户端目录到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操作
- 1vue和el-table使用经验-如何刷新表格数据10961
- 2three.js加载3D瓦片和3dtiles数据生成交互式地图的开源项目9509
- 3Microsoft Visual C++ Redistributable是什么,有什么作用?7287
- 4mybatis使用经验——mybatis-spring-boot-starter和mybatis的版本对应关系表(持续更新~)5869
- 5uni-app使用经验—vue页面和html页面如何互相调用接口并传参5489
- 6Intellij IDEA下的版本控制VCS的启用与关闭4922
- 7Spring学习经验—@ResponseBody注解的使用说明4907
- 8Druid异常解决经验—java.sql.SQLException url not set4522
- 9如何用批处理命令(bat脚本)启动和停止windows服务4301
- 10nuxt.js项目中如何添加和使用全局变量4165
- 11解决SpringBoot使用maven下载不了jar包的问题3502
- 12linux中解压tar.gz文件报错“gzip: stdin: invalid compressed data--format violated”3405
- 13nuxtjs asyncData使用经验—如何发起多个axios请求并携带参数3252
- 14在Nuxt.js项目的head中引用外部js文件3095
- 15在NVIDIA控制面板设置参数时提示“拒绝访问 无法应用选定的设置到您的系统”的解决方法之一3072