Описание: Я столкнулся со странной проблемой с моими виртуальными машинами, использующими NFS. Обе мои виртуальные машины используют Linux. Серверная часть использует RHEL, а клиентская часть — CentOS 7. Моя хостовая машина работает под управлением Windows 7.
Моя клиентская виртуальная машина запускает или инициализирует веб-сайт с помощью nodejs. Я создал папку-каталог, где и серверная, и клиентская стороны могут обмениваться файлами с помощью NFS.
Проблема: Когда я создал файл/папку из общего каталога на стороне клиента, веб-сайт смог обнаружить изменение из общего каталога и опубликовать изменение на веб-сайте.
Однако на стороне сервера, когда я создаю файл/папку в общем каталоге, изменение не обнаруживается на веб-сайте. Хотя созданный файл/папка видны в общем каталоге со стороны клиента.
Конфигурации NFS: Я вставлю конфигурации, которые я сделал для сервера и клиента:
Конфигурация NFS на стороне сервера в /etc/exports:
/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)
ПРИМЕЧАНИЕ: Я пробовал другие методы решения этой проблемы...
Конфигурация NFS на стороне клиента в /etc/fstab:
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