
Ich habe KVM auf einem Debian 10-Host eingerichtet.
Es laufen 2 virtuelle Maschinen.
Die virtuelle Maschine Nr. 1 enthält OMV.
Die virtuelle Maschine Nr. 2 enthält reines Debian.
Jede virtuelle Maschine wird in ihrer eigenen qcow2-Imagedatei installiert.
Diese beiden Maschinen teilen sich einen zusätzlichen Speicher, eine RAW-Speicherdatei. Auf beiden Maschinen ist dieser Speicher als „Gemeinsam nutzbar“ gekennzeichnet.
Das aktuelle Problem, das mir aufgefallen ist, ist, dass die Dateitabelle nicht im laufenden Betrieb aktualisiert wird. Das heißt, wenn Sie mit diesem Speicher in einer VM etwas tun, werden die Änderungen in der anderen VM erst sichtbar, wenn diese neu gestartet wird (höchstwahrscheinlich bewirkt ein erneutes Einhängen dasselbe).
Wenn beide VMs Änderungen vornehmen, beginnt OMV später, einige SMB-bezogene Fehler auszugeben.
Durch den Neustart von OMV wurde die Dateitabelle nicht aktualisiert, durch den Neustart der Debian-Maschine gingen jedoch alle Daten verloren.
OMV hostet Samba-Freigabe.
Hat jemand Erfahrung mit gemeinsam genutztem Speicher und weiß, wie man die Dateitabelle zumindest manuell aktualisiert, ohne den Speicher erneut bereitzustellen?
Antwort1
kurz und knapp:Haben Sie Ihre einfache Debian-VM (virtuelle Maschine Nr. 2)Mounten Sie die Samba-Freigabegehostet auf Ihrer OpenMediaVault-VM (virtuelle Maschine Nr. 1). Verbinden Sie nur die Rohspeicherdatei mit der virtuellen Maschine Nr. 1.
Erläuterung
Was Sie eingerichtet haben, ist vergleichbar damit, ein Flash-Laufwerk gleichzeitig an zwei Computer anzuschließen. Ich habe bereits früher darüber geschrieben:
Wenn Sie das Dateisystem auf der Festplatte irgendwo auf beiden Computern mounten, weiß keiner der beiden Computer, dass der andere das Dateisystem ebenfalls verwendet. Dies kann dazu führen,schwerwiegende Datenbeschädigungweil jeder Computer dem anderen in die Quere kommt.
Aus:Wie kann ich den iSCSI-Initiator dazu bringen, Änderungen zu propagieren?
Um dies zu beheben, benötigen Sie eine Schicht zwischen der Speicherfestplatte (auf dem Server) und den mehreren darauf zugreifenden Maschinen (Clients), die erkennt, dass mehrere Clients auf denselben Speicher zugreifen können.
Zwei gängige Möglichkeiten, dies einzurichten, sindNFSUndCIFS(Samba), dieNetzwerkdateisysteme.
Ich sehe, dass Sie bereits einen Samba-Server eingerichtet haben. Um den Speicher freizugeben, müssen Sie lediglich Ihre VMs anders machen und eine Verbindung zu diesem einen Samba-Server herstellen. Sie sollten nur die virtuelle Festplatte mit dem Samba-Server verbinden.
Sie könnten noch einen Schritt weiter gehen und eineverteiltes Dateisystem, eine Möglichkeit, Speicher von mehreren Servern zu bündeln und über ein einziges Netzwerkdateisystem darauf zuzugreifen.
Alternativ ist es auch möglich, die virtuelle Festplatte freizugeben, wie Sie es ursprünglich versucht haben. Sie benötigen dazu aber trotzdem ein Dateisystem, das erkennt, dass mehrere Computer gleichzeitig Daten ändern können. Diese andere Antwortschlägt vorShared-Disk-Dateisysteme, die gemeinsam genutzten Speicher auf einer niedrigeren Ebene abstrahieren als Netzwerkdateisysteme.
Ressourcen
Offizielle Dokumentation
- NFS-Server-Setupim Debian-Wiki
- Einfache Einrichtung eines Samba-Dateifreigabeserversim Debian-Wiki
- OpenMediaVault Samba-Dienst
Anleitungen
- Einrichten eines NFS-Servers und -Clients unter Debian 9 (Stretch)auf HowtoForge
(Tutorial sollte weiterhin für Debian 10 gültig sein) - Installieren und Konfigurieren der Samba-Serverfreigabe unter Debian 10 / Ubuntu 18.04zum Thema Computing für Geeks
Darüber hinaus: Verteilte Dateisysteme
Antwort2
Durch das gleichzeitige Mounten eines Ext4-Dateisystems mit Lese-/Schreibzugriff auf zwei Knoten wird der Inhalt nicht für beide verfügbar gemacht, sondern das Dateisystem wird beschädigt.
Wenn Sie die Festplatte im Virt-Manager als gemeinsam nutzbar markieren, wird lediglich verhindert, dass Sie eine Warnung vom Hypervisor erhalten – dies geschieht auf der Ebene der virtuellen Hardware, nicht auf der Ebene des Dateisystems.
Wenn Sie gemeinsam genutzte Festplatten wünschen (und dafür gibt es gute Gründe), verwenden Sie GFS oder OCF2 (die einfachste Wahl für Anfänger).