Ich habe einen Windows 2008 R2 X64-Server, der auf Vmware ESXi läuft. Ursprünglich lief er auf Hyper-V, aber ich habe die VHD inzwischen in eine VMDK konvertiert und bin auf ESXi migriert. Außerdem habe ich VMware Tools installiert. Dieser Server ist unser TeamCity-Server für kontinuierliche Integration, der jede Nacht Builds von Softwarepaketen durchführt, die mein Unternehmen entwickelt. Seit dem Umzug können gelegentlich bestimmte Dateien, die der Build-Prozess löschen sollte, nicht gelöscht werden, da „die Datei von einem anderen Prozess verwendet wird“. Wir versuchen, die Dateien mit dem CMD-Befehl del zu löschen. Manchmal funktioniert es, manchmal nicht. Ich habe den Prozessmonitor mit dem Pfad des Verzeichnisses, in dem Fehler auftreten, als PATH-Filter gestartet (PATH enthält C:\work ). Ich sehe eine MENGE vmtoolsd.exe-Operationen „Createfile“, „FileSystemControl“ und „CloseFile“, die in schneller Folge und wiederholt auftreten. Hat jemand gehört, dass Vmware-Tools Dateisystemsperren bei Windows-Gästen verursachen?
Es ist mir bisher nicht gelungen, es mit Procmon zu erfassen, wenn es tatsächlich passiert, aber ich habe vor, es zu versuchen.
Da außerdem nicht genügend Speicherplatz vorhanden war, wurde dieses Verzeichnis C:\work neu erstellt, indem es in C:\work-old umbenannt wurde, eine zweite virtuelle Festplatte E:\ hinzugefügt und die Festplatte in das Verzeichnis C:\work eingebunden wurde. Anschließend wurde der Inhalt von C:\work-old in das neu eingebundene C:\work kopiert. Ich sehe, dass Vmware Tools ständig FSCTL_Get_Reparse_Point auf C:\work ausführt.
AKTUALISIEREN: Ich habe gestern Abend den VMware Tools-Dienst deaktiviert und es ist trotzdem passiert. Ich glaube, dass auf das Verzeichnis C:\work, das eine Freigabe ist, die eigentlich das Laufwerk E: ist, das als Verzeichnis in C:\work eingebunden ist, von zwei Remote-Hosts gleichzeitig zugegriffen wird und dies möglicherweise eine Sperre des Verzeichnisses durch den ersten Host verursacht. Dies ist nicht passiert, bevor ich E: in das Arbeitsverzeichnis eingebunden habe. Gibt es bekannte Probleme mit Dateisperren und als Verzeichnisse eingebundenen Datenträgern?
Antwort1
Es stellte sich heraus, dass das Problem nicht durch VMware Tools verursacht wurde. Es ist wahrscheinlicher, dass der Windows Application Experience-Dienst dieses Problem verursacht hat, aber ich bin mir nicht sicher. Ich habe das Problem letztendlich gelöst, indem ich eine virtuelle Festplatte hinzugefügt und eine neue Freigabe erstellt und dann den Build so eingerichtet habe, dass er auf diese Freigabe schaut. Wenn der Build-Schritt einen offenen Handle für diese Freigabe hinterlässt, hat dies keine Auswirkungen auf den nachfolgenden Schritt, der nicht erneut auf diese Freigabe verweist (zuvor wurde alles von derselben Freigabe aus durchgeführt, sodass Dateivorgänge fehlschlugen, wenn ein offener Handle vorhanden war).