Linux通过NFS实现文件共享

时间:2023-12-15 18:46:20

在项目生产环境我们经常需要实现文件共享,传统的常见方案是通过NFS,实现服务器之间共享某一块磁盘,通过网络传输将分散的文件集中存储在一块指定的共享磁盘,实现基本的文件共享。实现这种方案,分服务端和客户端,将服务端的磁盘mount到客户端指定目录下,在客户端操作就像操作本地磁盘一样,nfs基本的安装如下:

模拟环境:

服务端/客户端 服务器IP 版本信息
服务端 120.27.15.116 centOS 7.2
客户端 39.108.85.46 centOS 7.2

一、服务端安装NFS

step1、安装nfs和rpcbind程序:yum -y install nfs*

step2、检测nfs与rpcbind是否安装OK

  rpm -qa |grep nfs
  rpm -qa |grep rpcbind

step3、创建一个共享目录,并配置共享信息

  mkdir /data01/nfs     这里假设共享目录为/data01/nfs

  vi  /etc/exports

  Linux通过NFS实现文件共享

step4、启动nfs,rpcbind

  systemctl enable rpcbind

  systemctl start rpcbind

  systemctl enable nfs

  systemctl start nfs
step5、查看是否共享成功

  showmount -e localhost

  Linux通过NFS实现文件共享

二、客户端安装并挂载

step1、安装nfs程序:yum -y install nfs*

step2、启动nfs,rpcbind

  systemctl enable rpcbind

  systemctl start rpcbind

  systemctl enable nfs

  systemctl start nfs

step3、创建挂在目录:mkdir  /data01/share

step4、检测远程共享服务器是否共享成功

  Linux通过NFS实现文件共享

step5、挂载,mount -t nfs -o nolock 服务端IP:共享目录绝对路径 本地挂载目录

   mount -t nfs -o nolock 120.27.15.116:/data01/nfs /data01/share

step6、查看挂载结果:df -Th

  Linux通过NFS实现文件共享

  可以看到,远程那块磁盘已经挂载OK。

三、测试

  在/data01/share下新增一个文件,并写入相关内容,然后到服务器端查看

  Linux通过NFS实现文件共享

  去服务端查看:

  Linux通过NFS实现文件共享

四、卸载

  卸载直接执行如下操作即可:umount 120.27.15.116:/data01/nfs

五、所遇到的问题

1、如果是在阿里云上,可能要在安全组开放相关的端口,在私有环境下,同样需要处理防火墙,开放相关端口。可以通过rpcinfo -p 查看具体用到的端口。

  iptables -A INPUT -p tcp --dport 111 -j ACCEPT

  iptables -A INPUT -p udp --dport 111 -j ACCEPT  其他端口类似处理

2、由于NFS启动会随机生成端口并向RPC注册,每次的端口都不固定,所以,可以设置固定端口,便于配置防火墙和安全组。例如:

 Linux通过NFS实现文件共享