Виртуальная машина не распознает изменения файлов при их изменении на хост-машине, если не запущена команда «ls -l»

Виртуальная машина не распознает изменения файлов при их изменении на хост-машине, если не запущена команда «ls -l»

Я вижу странную проблему на виртуальной машине, работающей на моем сервере. Я создал небольшой тестовый сценарий ниже, который иллюстрирует симптомы того, что я испытываю, и не могу понять, на что еще обратить внимание.

Итак, у меня есть следующие критерии:

  1. Режим Virtiofs для "/mnt/user/Backup/Logs/"(хост) => "logs"(виртуальная машина Debian)
  2. Запись fstab "logs /mnt/logs virtiofs ro,relatime,sync 0 0"
  3. Полный rwe на тестовом файле

Я выполнил команды вперед и назад слева направо.

  1. root "ls -l" для отображения текущего каталога на unraid os
  2. alexander "ls -l" для отображения текущего каталога на виртуальной машине
  3. root "cat testfile" для отображения содержимого файла на unraid
  4. alexander "cat testfile" для отображения содержимого файла на виртуальной машине
  5. root "sudo nano testfile" и добавьте строку в nano
  6. root "cat testfile" для отображения нового содержимого после модификации nano
  7. Александр "cat testfile" все еще имеет старое содержимое файла
  8. alexander "ls -l", который перерисовывает каталог и обновляет кэш
  9. Александр "cat testfile" теперь имеет новый контент с диска unraid.

Примеры команд

Я не совсем уверен, что происходит, так как, похоже, на виртуальной машине имеется старая копия файла, и только когда я выполняю команду «ls -l» (или что-то эквивалентное, обновляющее его), файл корректно обновляется.

Все это началось с того, что я попытался переслать файл журнала с помощью Filebeat и обнаружил, что запись в журнал производилась с хост-машины, но виртуальная машина на самом деле не замечала изменения файла, пока в каталоге этого файла журнала не была запущена команда «ls -l».

Связанный контент