两个 Linux/Unix VM 之间的 NFS 问题

两个 Linux/Unix VM 之间的 NFS 问题

描述: 我在使用 NFS 的虚拟机上遇到了一个奇怪的问题。我的两个虚拟机都使用 Linux。服务器端使用 RHEL,客户端使用 CentOS 7。我的主机运行的是 Windows 7。

我的客户端 VM 正在使用 nodejs 启动或初始化网站。我创建了一个文件夹目录,服务器端和客户端都可以使用 NFS 共享文件。

问题: 当我从客户端的共享目录创建文件/文件夹时,网站能够检测到共享目录的变化并在网站上发布该变化。

然而,在服务器端,当我在共享目录中创建文件/文件夹时,网站无法检测到更改。尽管从客户端可以看到共享目录中创建的文件/文件夹。

NFS 配置: 我将粘贴我为服务器和客户端所做的配置:

/etc/exports 上的服务器端 NFS 配置:

    /home/awsim2/config  192.168.56.101(rw,sync,no_root_squash,no_all_squash,no_subtree_check)
    /home/awsim2/scenarios 192.168.56.101(rw,sync,no_root_squash,no_all_squash,no_subtree_check)
   #/home/awsim2/config 192.168.56.101(rw,sync,all_squash,anonuid=503,anongid=502)
   #/home/awsim2/scenarios 192.168.56.101(rw,sync,all_squash,anonuid=503,anongid=502)

注意:我尝试了其他方法来解决这个问题......

/etc/fstab 上的客户端 NFS 配置:

    192.168.56.102:/home/awsim2/config /var/nfs_awsim_share/ nfs rw,sync,user,auto,bg,hard,intr,nolock 0 0
    192.168.56.102:/home/awsim2/scenarios /var/nfs_awsim_scenarios_share/ nfs rw,sync,user,auto,bg,hard,intr,nolock 0 0

我希望这些信息足以解释我的问题。

感谢您的时间!

答案1

我做了足够的研究,发现 NFS 和共享目录方法不是一个可行的解决方案,因为 Linux 内核子系统 inotify 之间存在问题。inotify 的作用是扩展文件系统以通知文件系统的更改,并将这些更改报告给应用程序。遗憾的是,nodejs 无法检测到这些更改,因为虚拟框与Linux内核子系统inotify有关。

来源: https://www.virtualbox.org/ticket/10660

相关内容