Citrix Hypervisor

VM-Speicher

Wenn Sie eine VM erstellen, wird der VM eine feste Menge an Arbeitsspeicher zugewiesen. Sie können Dynamic Memory Control (DMC) verwenden, um die Auslastung des physischen Speichers in Ihrer Citrix Hypervisor Umgebung zu verbessern. DMC ist eine Speicherverwaltungsfunktion, die eine dynamische Neuzuweisung von Speicher zwischen VMs ermöglicht.

XenCenter bietet eine grafische Anzeige der Speicherauslastung auf der Registerkarte “ Speicher “. Weitere Informationen finden Sie in der XenCenter-Dokumentation.

Die Dynamic Memory Control (DMC) bietet folgende Vorteile:

  • Sie können Speicher hinzufügen oder löschen, ohne die VMs neu zu starten, was dem Benutzer ein nahtloses Erlebnis bietet.

  • Wenn die Server voll sind, können Sie mit DMC mehr VMs auf diesen Servern starten, wodurch die Menge des Speichers, der den laufenden VMs zugewiesen ist, proportional reduziert wird.

Was ist Dynamic Memory Control (DMC)?

Citrix Hypervisor DMC passt den Speicher laufender VMs automatisch an, wobei die Menge des jeder VM zugewiesenen Speichers zwischen den angegebenen minimalen und maximalen Speicherwerten gehalten wird, was die Leistung garantiert und eine größere Dichte von VMs pro Server ermöglicht.

Ohne DMC schlägt das Starten zusätzlicher VMs mit Fehlern fehl, wenn ein Server voll ist. Um die vorhandene VM-Speicherzuweisung zu reduzieren und Platz für mehr VMs zu schaffen, bearbeiten Sie die Speicherzuweisung jeder VM und starten Sie dann die VM neu. Bei Verwendung von DMC versucht Citrix Hypervisor, Speicher zurückzugewinnen, indem die aktuelle Speicherzuweisung laufender VMs innerhalb ihrer definierten Speicherbereiche automatisch reduziert wird. Citrix Hypervisor versucht, Speicher zurückzugewinnen, auch wenn der Server voll ist.

Hinweise:

  • Dynamic Memory Control ist in Citrix Hypervisor 8.1 veraltet und wird in einer zukünftigen Version entfernt.

  • Dynamic Memory Control wird bei virtuellen Rechnern mit virtueller GPU nicht unterstützt.

Das Konzept des Dynamikbereichs

Für jede VM kann der Administrator einen dynamischen Speicherbereich festlegen. Der dynamische Speicherbereich ist der Bereich, in dem Speicher der VM hinzugefügt/entfernt werden kann, ohne dass ein Neustart erforderlich ist. Wenn eine VM ausgeführt wird, kann der Administrator den Dynamikbereich anpassen. Citrix Hypervisor garantiert immer, dass der VM zugewiesene Arbeitsspeicher innerhalb des dynamischen Bereichs bleibt. Daher kann das Anpassen während der Ausführung der VM dazu führen, dass Citrix Hypervisor die Speichermenge anpasst, die der VM zugewiesen ist. Im Extremfall setzt der Administrator den dynamischen Min/Max-Wert auf denselben Wert und zwingt Citrix Hypervisor, sicherzustellen, dass diese Menge an Arbeitsspeicher der VM zugewiesen wird. Wenn neue VMs auf “vollen” Servern gestartet werden müssen, haben ausgeführte VMs den Arbeitsspeicher “gequetscht”, um neue zu starten. Der erforderliche zusätzliche Speicher wird erhalten, indem die vorhandenen laufenden VMs proportional innerhalb ihrer vordefinierten Dynamikbereiche zusammengedrückt werden.

Mit DMC können Sie dynamische minimale und maximale Speicherpegel konfigurieren und so einen Dynamic Memory Range (DMR) erstellen, in dem die VM arbeitet.

  • Dynamischer Mindestspeicher: Ein niedrigeres Speicherlimit, das Sie der VM zuweisen.

  • Dynamisches höheres Limit: Ein oberes Speicherlimit, das Sie der VM zuweisen.

Wenn beispielsweise der dynamische Mindestspeicher auf 512 MB und der dynamische maximale Speicher auf 1.024 MB festgelegt wurde, wird der VM ein Dynamic Memory Range (DMR) von 512—1024 MB zugewiesen, innerhalb dessen sie arbeitet. Citrix Hypervisor garantiert, dass bei Verwendung von DMC immer jeder VM-Speicher innerhalb seines angegebenen DMR zugewiesen wird.

Das Konzept der statischen Reichweite

Viele Betriebssysteme, die Citrix Hypervisor unterstützt, “verstehen” den Begriff des dynamischen Hinzufügens oder Löschens von Speicher nicht vollständig. Daher muss Citrix Hypervisor die maximale Speichermenge deklarieren, die eine VM zum Zeitpunkt des Neustarts verbrauchen soll. Durch die Angabe der maximalen Speichermenge kann das Gastbetriebssystem seine Seitentabellen und andere Speicherverwaltungsstrukturen entsprechend dimensionieren. Dadurch wird das Konzept eines statischen Speicherbereichs in Citrix Hypervisor eingeführt. Der statische Speicherbereich kann nicht angepasst werden, wenn die VM läuft. Für einen bestimmten Start ist der Dynamikbereich so eingeschränkt, dass er immer in diesem statischen Bereich enthalten ist. Das statische Minimum (die untere Grenze des statischen Bereichs) schützt den Administrator und ist auf die niedrigste Speichermenge festgelegt, die das Betriebssystem mit Citrix Hypervisor ausführen kann.

Hinweis:

Es wird empfohlen, den statischen Mindestpegel nicht zu ändern, da der statische Mindestpegel auf der unterstützten Ebene pro Betriebssystem festgelegt ist. Weitere Informationen finden Sie in der Tabelle mit Speicherbeschränkungen.

Wenn Sie einen statischen Maximalpegel höher als ein dynamisches Maximum festlegen, können Sie einer VM in Zukunft mehr Speicher zuweisen, ohne die VM neu zu starten.

DMC-Verhalten

Automatisches VM-Quetschen

  • Wenn DMC nicht aktiviert ist und Hosts voll sind, schlägt der Neustart der VM mit Fehlern “außer Arbeitsspeicher” fehl.

  • Wenn DMC aktiviert ist, versucht Citrix Hypervisor, selbst wenn die Hosts voll sind, Speicher zurückzugewinnen, indem die Speicherzuweisung laufender VMs innerhalb ihrer definierten Dynamikbereiche reduziert wird. Auf diese Weise werden laufende VMs proportional auf demselben Abstand zwischen dem dynamischen Minimum und dem dynamischen Maximum für alle VMs auf dem Host gequetscht.

Wenn DMC aktiviert ist

  • Wenn der Arbeitsspeicher des Hosts reichlich vorhanden ist, erhalten alle laufenden VMs ihren dynamischen maximalen Speicherpegel

  • Wenn der Arbeitsspeicher des Hosts knapp ist, erhalten alle laufenden VMs ihren dynamischen Mindestspeicherpegel.

Denken Sie bei der Konfiguration von DMC daran, dass die Zuweisung nur einer geringen Speichermenge zu einer VM diese negativ beeinflussen kann. Zum Beispiel zu wenig Speicher zuweisen:

  • Die Verwendung von Dynamic Memory Control zur Reduzierung des für eine VM verfügbaren physischen Speichers kann dazu führen, dass sie langsam neu gestartet wird. Wenn Sie einer VM zu wenig Speicher zuweisen, kann sie ebenfalls langsam beginnen.

  • Wenn Sie das dynamische Speicherminimum für eine VM zu niedrig festlegen, kann dies zu schlechten Leistungs- oder Stabilitätsproblemen führen, wenn die VM gestartet wird.

Wie funktioniert die DMC?

Mit DMC ist es möglich, eine virtuelle Gastmaschine in einem von zwei Modi zu betreiben:

  1. Zielmodus: Der Administrator gibt ein Speicherziel für den Gast an. Citrix Hypervisor passt die Speicherzuweisung des Gastes an das Ziel an. Die Angabe eines Ziels ist in virtuellen Serverumgebungen nützlich und in Situationen, in denen Sie genau wissen, wie viel Speicher ein Gast verwenden soll. Citrix Hypervisor passt die Speicherzuweisung des Gastes an das von Ihnen angegebene Ziel an.

  2. Dynamikbereichsmodus: Der Administrator gibt einen dynamischen Speicherbereich für den Gast an. Citrix Hypervisor wählt ein Ziel aus dem Bereich aus und passt die Speicherzuweisung des Gastes an das Ziel an. Die Angabe eines Dynamikbereichs ist in virtuellen Desktop-Umgebungen und in jeder Situation nützlich, in der Citrix Hypervisor den Hostspeicher dynamisch neu partitioniert, um auf sich ändernde Anzahl von Gästen oder Änderung des Host-Arbeitsspeicherdrucks zu reagieren. Citrix Hypervisor wählt ein Ziel innerhalb des Bereichs aus und passt die Speicherzuweisung des Gastes an das Ziel an.

Hinweis:

Es ist für jeden laufenden Gast möglich, jederzeit zwischen dem Zielmodus und dem Dynamikbereichsmodus zu wechseln. Geben Sie ein neues Ziel oder einen neuen Dynamikbereich an, und Citrix Hypervisor kümmert sich um den Rest.

Einschränkungen des Speichers

Mit Citrix Hypervisor können Administratoren alle Speichersteuerungsvorgänge mit jedem Gastbetriebssystem verwenden. Citrix Hypervisor erzwingt jedoch die folgende Einschränkung der Reihenfolge der Speichereigenschaften für alle Gäste:

0 < memory-static-min < memory-dynamic-min < memory-dynamic-max < memory-static-max

Mit Citrix Hypervisor können Administratoren die Eigenschaften des Gastspeichers in alle Werte ändern, die diese Einschränkung erfüllen, vorbehaltlich Validierungsprüfungen. Zusätzlich zur vorherigen Einschränkung unterstützen wir jedoch nur bestimmte Gastspeicherkonfigurationen für jedes unterstützte Betriebssystem. Der Umfang der unterstützten Konfigurationen hängt vom verwendeten Gastbetriebssystem ab. Citrix Hypervisor hindert Administratoren nicht daran, Gäste so zu konfigurieren, dass sie das unterstützte Limit überschreiten. Kunden wird jedoch empfohlen, die Speichereigenschaften innerhalb der unterstützten Grenzwerte zu halten, um Leistungs- oder Stabilitätsprobleme zu vermeiden. Ausführliche Richtlinien zu den minimalen und maximalen Speicherbeschränkungen für jedes unterstützte Betriebssystem finden Sie unter Unterstützung für Gastbetriebssysteme.

Warnung:

Bei der Konfiguration des Gastspeichers empfehlen wir, die maximale Menge an physischem Speicher, die von Ihrem Betriebssystem adressierbar ist, NICHT zu überschreiten. Das Festlegen eines Speichermaximums, das über dem vom Betriebssystem unterstützten Limit liegt, kann zu Stabilitätsproblemen innerhalb Ihres Gastes führen.

Das dynamische Minimum muss größer oder gleich einem Viertel des statischen Maximums für alle unterstützten Betriebssysteme sein. Eine Reduzierung der Untergrenze unter das dynamische Minimum kann ebenfalls zu Stabilitätsproblemen führen. Administratoren werden aufgefordert, die Größe ihrer VMs sorgfältig zu kalibrieren und sicherzustellen, dass ihre Arbeitsanwendungen bei minimaler Dynamik zuverlässig funktionieren.

xe CLI-Befehle

Zeigen Sie die statischen Speichereigenschaften einer VM an

  1. Suchen Sie die UUID der erforderlichen VM:

    xe vm-list
    <!--NeedCopy-->
    
  2. Notieren Sie sich die UUID und führen Sie dann den Befehl aus param-name=memory-static

    xe vm-param-get uuid=uuid param-name=memory-static-{min,max}
    <!--NeedCopy-->
    

    Im Folgenden werden beispielsweise die statischen maximalen Speichereigenschaften für die VM angezeigt, wobei die UUID ec77 beginnt:

    xe vm-param-get uuid= \
        ec77a893-bff2-aa5c-7ef2-9c3acf0f83c0 \
        param-name=memory-static-max;
        268435456
    <!--NeedCopy-->
    

    Das Beispiel zeigt, dass der statische maximale Speicher für diese VM 268.435.456 Byte (256 MB) beträgt.

Zeigen Sie die dynamischen Speichereigenschaften einer VM an

Um die Eigenschaften des dynamischen Speichers anzuzeigen, gehen Sie wie oben beschrieben vor, aber verwenden Sie den Befehl param-name=memory-dynamic:

  1. Suchen Sie die UUID der erforderlichen VM:

    xe vm-list
    <!--NeedCopy-->
    
  2. Notieren Sie sich die uuid, und führen Sie dann den Befehl param-name=memory-dynamic aus :

    xe vm-param-get uuid=uuid param-name=memory-dynamic-{min,max}
    <!--NeedCopy-->
    

    Im Folgenden werden beispielsweise die dynamischen maximalen Speichereigenschaften für die VM mit der UUID beginnend mit ec77 angezeigt.

    xe vm-param-get uuid= \
        ec77a893-bff2-aa5c-7ef2-9c3acf0f83c0 \
        param-name=memory-dynamic-max;
        134217728
    <!--NeedCopy-->
    

    Das Beispiel zeigt, dass der dynamische maximale Arbeitsspeicher für diese VM 134.217.728 Byte (128 MB) beträgt.

Aktualisieren der Speichereigenschaften

Warnung:

Verwenden Sie die richtige Reihenfolge, wenn Sie die statischen/dynamischen Minimum/Maximum-Parameter einstellen. Darüber hinaus dürfen Sie die folgende Einschränkung nicht ungültig machen:

0 < memory-static-min < memory-dynamic-min < memory-dynamic-max < memory-static-max

Aktualisieren Sie den statischen Speicherbereich einer virtuellen Maschine:

xe vm-memory-static-range-set uuid=uuid min=value max=value
<!--NeedCopy-->

Aktualisieren Sie den dynamischen Speicherbereich einer virtuellen Maschine:

xe vm-memory-dynamic-range-set \
      uuid=uuid min=value \
      max=value
<!--NeedCopy-->

Die Angabe eines Ziels ist in virtuellen Serverumgebungen nützlich und in jeder Situation, in der Sie genau wissen, wie viel Speicher ein Gast verwenden soll. Citrix Hypervisor passt die Speicherzuweisung des Gastes an das von Ihnen angegebene Ziel an. Beispiel:

xe vm-memory-target-set target=value vm=vm-name
<!--NeedCopy-->

Aktualisieren Sie alle Speicherbeschränkungen (statisch und dynamisch) einer virtuellen Maschine:

xe vm-memory-limits-set \
      uuid=uuid \
      static-min=value \
      dynamic-min=value \
      dynamic-max=value static-max=value
<!--NeedCopy-->

Hinweise:

  • Um einer VM, die sich nicht ändert, eine bestimmte Speichermenge zuzuweisen, legen Sie das dynamische Maximum und das dynamische Minimum auf denselben Wert fest.
  • Sie können den dynamischen Speicher einer VM nicht über das statische Maximum hinaus erhöhen.
  • Um das statische Maximum einer VM zu ändern, müssen Sie die VM herunterfahren.

Aktualisieren einzelner Speichereigenschaften

Warnung:

Ändern Sie nicht die statische Mindeststufe, da sie auf der unterstützten Ebene pro Betriebssystem festgelegt ist. Weitere Informationen finden Sie unter Speicherbeschränkungen.

Aktualisieren Sie die dynamischen Speichereigenschaften einer VM.

  1. Suchen Sie die UUID der erforderlichen VM:

    xe vm-list
    <!--NeedCopy-->
    
  2. Notieren Sie sich die UUID und verwenden Sie dann den Befehl memory-dynamic-{min,max}=value

    xe vm-param-set uuid=uuid memory-dynamic-{min,max}=value
    <!--NeedCopy-->
    

Im folgenden Beispiel wird das dynamische Maximum auf 128 MB geändert:

xe vm-param-set uuid=ec77a893-bff2-aa5c-7ef2-9c3acf0f83c0 memory-dynamic-max=128MiB
<!--NeedCopy-->
VM-Speicher