一文搞定 Linux,Mac,Windows 的 NFS 网络文件共享服务部署

NFS,全称是 Network File System,用于在不同的服务器之间建立文件共享的通道,使得从其他服务器上访问共享目录时,就如同访问服务器自己本地的文件夹一样方便,这在分布式系统上得到广泛的应用。比如, k8s 集群,就会采用 NFS 来实现共享存储

在需要开放共享的机器上,启动一个 NFS Server,需要访问共享的机器上,用 NFS Client 挂载共享目录到本地目录上,就能够直接打开本地目录进行读写

在不同操作系统上安装 NFS Server

  1. Mac OS

Mac 默认安装了 NFS Server,使用如下命令检查 nfsd 的启动状况

$ sudo nfsd status
nfsd service is enabled
nfsd is running (pid 19394, 8 threads)

如果没有开启,执行下列指令启动

$ sudo nfsd enable
$ sudo nfsd start
  1. Linux Centos 7
$ yum install nfs-utils -y
  1. Windows 10

安装一个 NFS Server 应用

https://www.hanewin.net/nfs-e.htm

在不同操作系统上设置共享目录

  1. Mac OS

配置共享目录,通过编辑 /etc/exports

$ sudo vi /etc/exports
$ cat /etc/exports
V4: / -sec=sys
/Users/mac/nfs-share -alldirs  -maproot=root:wheel -network=192.168.0.0 -mask=255.255.0.0

其中/Users/mac/nfs-share 是要开放共享的目录,默认是可读写,如果只让可读,加入参数 -ro

接下来,依次执行检查配置状态,重启服务,查看挂载状态的指令

# 检查配置状态
$ sudo nfsd checkexports
exports:1: got host/group with no directory?: /Users/mac/nfs-share

# 重启服务
$ sudo nfsd restart

# 查看挂载状态
$ showmount -e
Exports list on localhost:
/Users/mac/nfs-share     192.168.0.0

最后可以看到,已经把刚刚设置的共享目录挂载上去了,接下来本地验证一下

先以客户端的身份检查 IP 地址下的挂载情况

$ showmount -e 192.168.31.103
Exports list on 192.168.31.103:
/Users/mac/nfs-share     192.168.0.0

该 IP 地址下存在一个共享的目录,于是客户端将这个目录挂载到本地的目录上

$ sudo mount -t nfs -o nolock,nfsvers=3,vers=3 192.168.31.103:/Users/mac/nfs-share /Users/mac/demo

没有报错,就表示成功了,通过查看 Finder 中的连接情况,发现已经连接到共享目录

一文搞定 Linux,Mac,Windows 的 NFS 网络文件共享服务部署_第1张图片

访问挂载到本地的目录,就能直接访问到远程的共享目录

  1. Linux

Centos 上跟 Mac 的操作方式是有一些不同的地方

首次下载 nfs-util 后,需要先重启 rpcbind 服务

$ systemctl restart rpcbind

配置共享目录到 /etc/exports,然后更改共享目录的所有者,并重启 NFS Server 服务

# 编辑共享目录, * 表示共享给所有 IP 的服务器,rw 表示可读写
# 常用的是配置成同一个局域网内的服务器 192.168.1.0/24
$ vim /etc/exports
$ cat /etc/exports
/home/nfs-share *(rw,sync,all_squash)

# 更改共享目录的所有者,nfsnobody 用户组是 nfs-util 安装包创建的
$ chown -R nfsnobody:nfsnobody /home/nfs-share

# 重启服务
$ systemctl restart nfs-server

接下来在客户端上进行连接测试,这里我们就在本地进行,如果在其他的机器,也需要先安装 nfs-util

查看共享服务器上的目录,并挂载 NFS 共享目录到本地目录

# 查看共享目录
$ showmount -e 192.168.1.3
Export list for 192.168.1.3:
/home/nfs-share *

# 挂载共享目录
$ mount -t nfs 192.168.1.3:/home/nfs-share /home/nfs-data

这样访问本地的 /home/nfs-data 即可

  1. Windows 10

启动在上一步安装的 haneWIN NFS Server ,在 Edit-Preferences-Exports 中配置要共享的目录

一文搞定 Linux,Mac,Windows 的 NFS 网络文件共享服务部署_第2张图片

Windows 10 默认没有安装 NFS Client,需要在控制面板中安装

一文搞定 Linux,Mac,Windows 的 NFS 网络文件共享服务部署_第3张图片
接下来打开 cmd 命令行窗口,输入挂载命令

> mount 192.168.71.64:/d/test-nfs G:
G: 现已成功连接到 192.168.71.64:/d/test-nfs

命令已成功完成。

这里要注意两点:

  • 书写共享目录路径时,不能写成 Windows 盘符的路径,即:D:\test-nfs,而是参考 NFS Server 中 Exports 界面下的路径,写成 /d/test-nfs,Mac 或者 Linux 访问 Windows 也是如此
  • Windows 只能挂载到一个未经使用的盘符上,而不是某个具体的目录下,如上图中的 G:

访问任务管理器中的 G 盘,就可以访问到共享目录

你可能感兴趣的:(一文搞定 Linux,Mac,Windows 的 NFS 网络文件共享服务部署)