前言
有时候我们需要在两台linux服务器之间共享资源,例如在服务器A上面部署了一个大文件上传程序,但是需要将文件上传到服务器B的某个目录下面,因为上传大文件,需要先将文件所有分块单独上传到服务器B,然后在服务器B上面进行文件的合并,而服务器B上面有没有我们的上传程序,那么该如何实现这个需求呢?
其中有个简单的方式就是通过Linux的NFS配置,将服务器B的目录共享到服务器A,这样服务器A上面的程序就可以直接在共享目录中上传合并文件,就像访问自己本地的文件一样。
下面就介绍一下如何在两个Linux服务器之间配置NFS。
这里使用的两台Linux服务器都是CentOS 7版本。
服务器端配置
查看是否安装有NFS服务。
输入命令:rpm -qa|grep nfs,如果出现如图所示信息,说明安装有nfs服务。
2.安装必要的包
nfs-utils 和rpcbind (nfs是基于sun公司的rpc通信实现的,所以要装rpcbind)
如果yum安装会自动解决依存关系,如果rpm需要自己解决依存关系,安装所需的所有包。
yum安装:(以下命令需要使用root权限)
yum install nfs-utils
yum install rpcbind
注:这2包,在服务端和客户端都需要安装,并启动服务。
3.启动
systemctl start rpcbind.service
systemctl start nfs.service
注意:顺序不能变,nfs依存rpc,所以先启动rpcbind后启动nfs
开机启动:
chkconfig nfs on
chkconfig rpcbind on
4.创建共享目录,并赋予读写权限。
输入: mkdir /sharedata
chmod -R 777 /sharedata
命令,设置共享目录,并赋予读写权限。
5.修改配置文件/etc/exports
使用root用户来修改NFS的配置文件/etc/exports。这个文件可能不存在,需要新建。
文件格式:
<输出目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)]
例如:vi /etc/exports
/sharedata 192.168.31.102(rw,insecure)
其中,/sharedata是服务器端要共享出来的目录,192.168.31.102是客户端的ip,rw代表客户端可以对共享目录进行读写操作。
6.启动NFS服务
输入命令:systemctl start nfs启动NFS服务。
客户端配置
1. 创建挂载目录。
在客户端创建一个目录用来挂载共享目录,这个目录的结构最好是和共享目录的结构一样,容易记忆,结构不同也可以。
输入:mkdir /sharedata
chmod -R 777 /sharedata
命令,设置挂载目录,并赋予读写权限。
2.挂载共享目录。
命令格式:# mount NFS服务器ip:共享目录 本地挂载点目录
mount 192.168.31.101:/sharedata /sharedata
注:挂载失败,但是IP可以ping通,需要关闭防火墙,再次挂载
3.验证是否挂载成功。
可以在共享目录中存放一些文件,如果在挂载目录中也能看到相同的文件,那么说明挂载成功。
df -h 命令查看