Die virtuelle Maschine erkennt Dateiänderungen nicht, wenn sie auf dem Hostcomputer geändert werden, es sei denn, „ls -l“ wird ausgelöst

Die virtuelle Maschine erkennt Dateiänderungen nicht, wenn sie auf dem Hostcomputer geändert werden, es sei denn, „ls -l“ wird ausgelöst

Ich sehe ein seltsames Problem auf einer virtuellen Maschine, die auf einem meiner Server läuft. Ich habe unten ein kleines Testszenario eingerichtet, das die Symptome meines Problems veranschaulicht, und ich weiß nicht, worauf ich sonst noch achten soll.

Ich habe also folgende Kriterien

  1. Virtiofs-Modus für "/mnt/user/Backup/Logs/"(Host) => "logs"(virtuelle Maschine Debian)
  2. fstab-Eintrag von „logs /mnt/logs virtiofs ro,relatime,sync 0 0“
  3. Vollständiger RWE auf der Testdatei

Ich habe die Befehle von links nach rechts hin und her ausgeführt.

  1. root "ls -l" um das aktuelle Verzeichnis auf unraid os anzuzeigen
  2. Alexander „ls -l“, um das aktuelle Verzeichnis auf der virtuellen Maschine anzuzeigen
  3. root "cat testfile", um den Inhalt der Datei auf unraid anzuzeigen
  4. alexander "cat testfile" um den Inhalt der Datei auf der virtuellen Maschine anzuzeigen
  5. rooten Sie „sudo nano testfile“ und hängen Sie einen String in nano an
  6. rooten Sie „cat testfile“, um den neuen Inhalt nach der Nano-Änderung anzuzeigen
  7. alexander "cat testfile" hat noch den alten Inhalt der Datei
  8. alexander "ls -l" das Verzeichnis wird neu aufgelistet und der Cache wird aktualisiert
  9. Alexander „cat testfile“ hat jetzt den neuen Inhalt vom Unraid-Laufwerk.

Beispielbefehle

Ich bin nicht ganz sicher, was passiert, da es so aussieht, als ob die virtuelle Maschine eine ältere Kopie der Datei hat und die Datei nur dann korrekt aktualisiert wird, wenn ich „ls -l“ ausführe (oder etwas Gleichwertiges, das die Datei aktualisiert).

Das Ganze rührte daher, dass ich versuchte, eine Protokolldatei mit Filebeat weiterzuleiten und dabei feststellte, dass das Protokoll vom Hostcomputer aus geschrieben wurde, die virtuelle Maschine die Dateiänderung jedoch nicht bemerkte, bis ein „ls -l“ im Verzeichnis dieser Protokolldatei ausgeführt wurde.

verwandte Informationen