我有一台配置为通过 NFSv4 共享文件夹的 NetApp 服务器。
我的目标是从 Windows 与该 NFSv4 共享进行通信,由于 Windows NFS 客户端不支持 NFSv4,因此我从 CentOS 挂载了该 NFSv4,并且我想共享该挂载文件夹。
这是我想要完成的图表:
“NetApp 服务器”---(NFSv4)-->“CentOS7”---(SMB/NFSv3)-->“Windows”
我在 df-T (CentOS7) 中有这个:
10.10.10.101:/vol/vol0_unix nfs4 828352 362304 466048 44% /mount
10.10.10.101 是 netapp 地址
接下来我想做的是通过 NFS3 或 SMB 共享该 /mount。
那么我该怎么做?我在 /etc/exports 中添加了以下内容:
[root@CentOS7X86-64 ~]# cat /etc/exports
/mount *(rw,sync)
[root@CentOS7X86-64 ~]#
现在,当我尝试重新启动 nfs 或 exportfs -ai 时出现以下错误:
[root@CentOS7X86-64 ~]# exportfs -a
exportfs: /mount does not support NFS export
[root@CentOS7X86-64 ~]#
[root@CentOS7X86-64 ~]# systemctl status nfs-server.service
nfs-server.service - NFS server and services
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled)
Active: failed (Result: exit-code) since Wed 2016-11-16 12:32:32 IST; 10min ago
Process: 3488 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=1/FAILURE)
Nov 16 12:32:32 CentOS7X86-64 systemd[1]: Starting NFS server and services...
Nov 16 12:32:32 CentOS7X86-64 exportfs[3488]: exportfs: /mount does not support NFS export
Nov 16 12:32:32 CentOS7X86-64 systemd[1]: nfs-server.service: control process exited, code=exited status=1
Nov 16 12:32:32 CentOS7X86-64 systemd[1]: Failed to start NFS server and services.
Nov 16 12:32:32 CentOS7X86-64 systemd[1]: Unit nfs-server.service entered failed state.
我尝试实现的方案可行吗?我可以通过 SMB 共享它吗?
谢谢
答案1
我尝试执行的操作称为重新导出 NFS 挂载点。这是不可能的(nfs 内核驱动程序)
答案2
经验丰富的系统管理员只需启动 Samba 即可。教程或其他任何内容在这里都不太合适,但您可以轻松找到它。...并且,由于您在至少一个机器上使用 Centos(我们不知道您在哪个机器上运行 NFS v4),这在我的 Fedora 系统和我的现代 Fedora Core(服务器等)上很常见(足够),软件包如下:
samba-common-4.15.7-0.fc35.noarch
samba-client-libs-4.15.7-0.fc35.x86_64
samba-common-libs-4.15.7-0.fc35.x86_64
samba-libs-4.15.7-0.fc35.x86_64
samba-dc-libs-4.15.7-0.fc35.x86_64
samba-test-libs-4.15.7-0.fc35.x86_64
samba-winbind-modules-4.15.7-0.fc35.x86_64
samba-dc-provision-4.15.7-0.fc35.noarch
samba-client-4.15.7-0.fc35.x86_64
python3-samba-dc-4.15.7-0.fc35.x86_64
python3-samba-4.15.7-0.fc35.x86_64
samba-common-tools-4.15.7-0.fc35.x86_64
samba-4.15.7-0.fc35.x86_64
samba-winbind-4.15.7-0.fc35.x86_64
samba-dc-4.15.7-0.fc35.x86_64
samba-vfs-cephfs-4.15.7-0.fc35.x86_64
samba-vfs-iouring-4.15.7-0.fc35.x86_64
samba-dc-bind-dlz-4.15.7-0.fc35.x86_64
samba-test-4.15.7-0.fc35.x86_64
samba-winbind-clients-4.15.7-0.fc35.x86_64
samba-winbind-krb5-locator-4.15.7-0.fc35.x86_64
samba-vfs-glusterfs-4.15.7-0.fc35.x86_64
samba-pidl-4.15.7-0.fc35.noarch
samba-krb5-printing-4.15.7-0.fc35.x86_64
samba-devel-4.15.7-0.fc35.x86_64
samba-winexe-4.15.7-0.fc35.x86_64
请注意,这是来自一个完整的服务器环境,你可能不需要所有这些,但我不确定如果你只是告诉 dnf 或 yum 安装 samba,你会得到多少或不会得到多少。...我已经用它了几十年;它可靠且稳定。
最后请注意,您需要启用和启动的服务不是 samba,而是 smb (smb.service),守护进程实际上称为 smbd。(过去的一次升级让我牢记这一点,因为与过去相比,名称更改并不明显,我花了好几个小时才弄清楚!)
答案3
如果您尝试在 LXD 容器内安装 nfs 服务器,您将收到此错误。为避免这种情况,您需要使用如下附加选项启动 lxd 容器:
# lxc launch ubuntu:22.04 nfs-02 -c security.privileged=true -c raw.apparmor="mount fstype=rpc_pipefs, mount fstype=nfsd,"
最初找到的解决方案这里