Festplattenabbilder für virtuelle Maschinen auf dem ZFS-Dateisystem: einige Fragen

627
Joel

Hintergrund

Ich verwende Ubuntu 16.04.4 LTS (konvertiert in Server from Desktop), das auf einem ZFS-Dateisystem installiert ist, das sich selbst auf einer Samsung 840 Evo 120 GB SSD befindet. Ich habe auch vier Festplatten, zwei Spiegel (1 TB und 2 TB Spiegel), die ebenfalls ZFS sind.

Ich verwende das System zur Speicherung, aber auch zur Virtualisierung. Ich verwende KVM-Virtualisierung unter Ubuntu und für eine der VMs speichere ich das VM OS-Festplatten-Image (das auf '/' gemountet ist) auf der SSD und das Speicher-Disk-Image (das auf '/ home' gemountet ist) auf der 1-TB-Festplatte Spiegel.

Das System verfügt über 16 GB ECC-RAM, und auf der SSD gibt es ein 8-GB-SWAP-Volume (ZLE-Komprimierung). Die VM ist auf 8192 MB eingestellt, so dass bei anderen Diensten auf dem Host ca. 7,8 GB für ZFS ARC.

Ich habe festgestellt, dass der ZFS ARC beim Schreiben einer großen Anzahl von Daten in den VMs auf die VM-Festplatten-Images massiv an Größe gewinnt. Obwohl dies ein erwartetes Verhalten von ARC ist, da die Daten Treffer erhalten, habe ich einige Fragen zur Verwendung von ZFS in Bezug auf das Speichern und Verwenden von VM-Images, über die ich im Folgenden nicht sicher bin.

Fall

Bitte beachten Sie folgendes:

  • Die VM-Festplatten-Images speichern keine wichtigen Daten. Sie werden lediglich für das Hosting und Experimentieren verwendet. Daher ist die Integrität nicht so wichtig.
  • Die Plattenabbilder werden in einem Dateisystem innerhalb eines Dateisystems gespeichert. Wenn das Verzeichnis "/ MyMirror / VM /" lautet, ist "MyMirror" das ursprüngliche Dateisystem und das letztere ("VM") das Dateisystem.
  • Die Disk-Images haben das RAW-Format (* .img).

Fragen

In Anbetracht der obigen Ausführungen und Berücksichtigung des Falls ...

  1. Hat es tatsächlich Vorteile, VM-Disk-Images in ZFS im Vergleich zu ext4 zu haben?
  2. Gibt es einen logischen Grund / Vorteil für das ARC-Caching des VM-Festplattenabbilds?
  3. Mache ich das richtig?

Nummer 2 verblüfft mich im Moment am meisten, da ich Schwierigkeiten habe, die Logik und die möglichen Vorteile des ARC zu sehen, die die Festplatten-Images zwischenspeichern. Ich könnte den Punkt völlig verfehlen (vielleicht ein trüber Verstand), aber wie hilft das Zwischenspeichern des Festplatten-Images auf dem Host dem Host oder sogar der VM selbst?

Ich verstehe, dass Nummer 3 eher eine Meinungssache ist (was ich vermeiden wollte), aber ich bin mir nicht sicher, ob ich das "richtig" mache. Vielleicht gibt es unter Berücksichtigung meines Setups eine bessere Möglichkeit, VMs zu speichern und zu verwenden.

Danke im Voraus!

3
Im Moment ist dies ein sehr breiter Beitrag mit mehreren Fragen. Bitte konzentrieren Sie sich auf eine einzelne spezifische Frage für jeden Ihrer Beiträge, damit wir für jede Frage eine richtige Antwort erhalten können. music2myear vor 6 Jahren 1
Vielleicht ein kleiner Schnitt. Aus meiner Lesung scheint es, als würden die drei Fragen wirklich dasselbe stellen, oder genauer gesagt, eine Antwort auf eine der drei Fragen würde notwendigerweise die anderen beiden durch Hintergrund und Aufarbeitung abdecken. Dawn Benton vor 6 Jahren 0

1 Antwort auf die Frage

2
Dan
  1. Hat die Verwendung von ZFS für den VM-Festplattenspeicher Vorteile?

Möglicherweise. ZFS verfügt über integrierte Komprimierung, Dedup, Snapshots und Klone sowie viele andere Funktionen, mit denen Sie Ihren Speicherbedarf reduzieren, diese Dateisysteme einfacher auf ein anderes System replizieren können und so weiter. Das hängt wirklich von Ihrem Anwendungsfall ab. Nicht um ein Fanatiker zu sein;), aber die Flexibilität, diese Funktionen zu nutzen, wenn Sie sie brauchen, reicht aus, um "Ja" zu sagen.

  1. Macht der ARC etwas Nützliches?

Nach dem, was Sie gesagt haben, kann ich nicht sagen, ob Sie viele VMs haben und ob dies der Fall ist, ob sie Blöcke gemeinsam verwenden (entweder durch Snapshots / Klone oder durch Dedup). Wenn dies der Fall ist, könnte der Cache für Sie von Vorteil sein, da die Daten in einem Bereich heiß sind, was die Leistung aller anderen verbessert. Wenn nicht, wären die Vorteile wahrscheinlich minimal, da die Gastbetriebssysteme in der Regel einen Seitencache für alles haben, was sie gelesen oder geschrieben haben. Dieser Speicher wird jedoch schnell aufgehoben, wenn von Ihrem Host-Betriebssystem Druck ausgeübt wird, da auf ihn nur einmal zugegriffen wurde (und auf der LRU-Liste im ARC zu finden ist), sodass ich mich nicht um den verschwendeten Speicherplatz kümmern muss.

  1. Mache ich das richtig?

Total hängt von Ihrem Anwendungsfall ab. Für den einfachen Fall, den Sie beschrieben haben, scheint es gut zu sein, aber andererseits wäre so ziemlich alles möglich. Wenn Sie versucht haben, eine Storage Appliance für eine große VM-Farm zu erstellen:

  • Sie könnten ZFS-ZVOLs anstelle von Dateien in ZFS-Dateisystemen für den Speicher verwenden
  • Sie würden Ihre VMs wahrscheinlich auf einem anderen Server als Ihren Speicher ausführen (sodass Sie RAM und CPU leichter skalieren und die Speicherleistung von der VM-Leistung isolieren können). In diesem Fall würden Sie die ZVOLs als iSCSI- oder FibreChannel-Ziele anzeigen
  • Um die Leistung zu erhöhen, möchten Sie möglicherweise viel mehr RAM hinzufügen, Deduplizierung und Komprimierung aktivieren, um Speicherplatz zu sparen (im RAM und auf der Festplatte). Fügen Sie ein dediziertes SLOG-Gerät für schnellere Synchronisierungsschreibvorgänge hinzu. Fügen Sie ein L2ARC-Gerät hinzu, um den Cache auf SSD zu erweitern
  • Aus Gründen der Datenstabilität möchten Sie wahrscheinlich RAID-Z oder ähnliches aktivieren
  • Um Ausfallzeiten für die Wartung zuzulassen, möchten Sie wahrscheinlich, dass sich ein anderer Speicherhost im Standby-Modus befindet, mit dem Sie Daten für die Verwendung von zfs sendund replizieren können. zfs receiveAnschließend können Sie die VM-Hosts auf einen neuen Standort umstellen (oder einen anderen Failover-Weg) eine Option)

Sie können mit Ihrer Bereitstellung beliebig komplex werden, wenn dies ernst genug ist. Wenn Sie jedoch keine Beschwerden darüber haben, wie Ihr System jetzt funktioniert, was ist der Nachteil, wenn Sie es so halten, wie es ist?

Danke für Ihre Antwort, Dan. Sie haben viele gute Punkte hervorgehoben. Am Ende des Tages, wie Sie sagten, wie es funktioniert, was ist der Sinn, es zu ändern? Ich war anfangs ziemlich unsicher, welche Vorteile ARC für die VM-Festplatten-Images bietet, aber selbst wenn es in diesem Fall so gut wie keine bietet, sollte ich es einfach nehmen, denn so funktioniert ZFS. Ich möchte die VMs auf ihrer eigenen Hardware betreiben, kostet aber neue Hardware, Strom und den Aufwand für die Migration (wenn möglich) der VMs. Joel vor 6 Jahren 0