Citrix Hypervisor

IntelliCache

Hinweis:

Diese Funktion wird nur unterstützt, wenn Citrix Hypervisor mit Citrix Virtual Desktops verwendet wird.

Intellicache wird für VMs, die ein GFS2-SR verwenden, nicht unterstützt.

Durch die Verwendung von Citrix Hypervisor mit IntelliCache werden gehostete Virtual Desktop Infrastructure-Bereitstellungen kostengünstiger, da Sie eine Kombination aus gemeinsam genutztem Speicher und lokalem Speicher verwenden können. Dies ist von besonderem Vorteil, wenn viele virtuelle Maschinen (VMs) alle ein gemeinsames Betriebssystemimage teilen. Die Belastung des Speicher-Arrays wird reduziert und die Leistung wird verbessert. Darüber hinaus wird der Netzwerkverkehr zum und vom gemeinsam genutzten Speicher reduziert, da der lokale Speicher das Masterimage aus dem gemeinsam genutzten Speicher zwischenspeichert.

IntelliCache speichert Daten von einem übergeordneten VDI einer virtuellen Maschine im lokalen Speicher auf dem VM-Host. Dieser lokale Cache wird dann gefüllt, während Daten vom übergeordneten VDI gelesen werden. Wenn viele VMs einen gemeinsamen übergeordneten VDI gemeinsam nutzen, kann eine VM die von einer anderen VM in den Cache gelesenen Daten verwenden. Weiterer Zugriff auf das Masterimage im gemeinsam genutzten Speicher ist nicht erforderlich.

Für IntelliCache ist ein Thin Provisioning, lokales SR erforderlich. Thin Provisioning ist eine Möglichkeit, die Nutzung des verfügbaren Speichers zu optimieren. Mit diesem Ansatz können Sie den lokalen Speicher anstelle des gemeinsam genutzten Speichers stärker nutzen. Es stützt sich auf die On-Demand-Zuweisung von Datenblöcken. Bei anderen Ansätzen werden alle Blöcke im Voraus zugewiesen.

Wichtig:

Thin Provisioning ändert den standardmäßigen lokalen Speichertyp des Hosts von LVM zu EXT4. Thin Provisioning muss aktiviert sein, damit das lokale Caching von Citrix Virtual Desktops ordnungsgemäß funktioniert.

Thin Provisioning ermöglicht es dem Administrator, den VMs, die sich mit dem Speicherrepository (SR) verbinden, mehr Speicherplatz zu präsentieren, als in dem SR verfügbar ist. Es gibt keine Speichergarantien, und die Zuweisung einer LUN beansprucht keine Datenblöcke, bis die VM Daten schreibt.

Warnung:

Thin Provisioning SRs kann der physische Speicherplatz ausgehen, da die darin enthaltenen VMs wachsen können und bei Bedarf Datenträgerkapazität verbrauchen. IntelliCache-VMs behandeln diese Bedingung, indem sie automatisch auf den gemeinsam genutzten Speicher zurückgreifen, wenn der lokale SR-Cache voll ist. Mischen Sie keine herkömmlichen virtuellen Maschinen und IntelliCache-VMs auf demselben SR, da IntelliCache-VMs schnell an Größe zunehmen können.

IntelliCache-Bereitstellung

IntelliCache muss entweder während der Host-Installation aktiviert werden oder manuell auf einem laufenden Host über die CLI aktiviert werden.

Wir empfehlen die Verwendung eines lokalen Hochleistungsspeichergeräts, um eine schnellstmögliche Datenübertragung zu gewährleisten. Verwenden Sie beispielsweise eine Solid State Disk oder ein Hochleistungs-RAID-Array. Berücksichtigen Sie bei der Dimensionierung lokaler Datenträger sowohl Datendurchsatz als auch Speicherkapazität. Der freigegebene Speichertyp, der zum Hosten des Virtual Disk Image (VDI) verwendet wird, muss NFS- oder EXT3/EXT4-basiert sein.

Auf Host-Installation aktivieren

Um IntelliCache während der Hostinstallation zu aktivieren, wählen Sie im Bildschirm Virtual Machine Storage die Option Thin Provisioning aktivierenaus. Diese Option wählt das lokale SR des Hosts aus, das für das lokale Zwischenspeichern von VM-VDIs verwendet werden soll.

Das Fenster "Speicher virtueller Maschinen" in den Installationsbildschirmen.

Konvertieren eines vorhandenen Hosts zur Verwendung von Thin Provisioning

Um ein vorhandenes lokales LVM-SR zu löschen und durch ein Thin Provisioning EXT3/EXT4-SR zu ersetzen, geben Sie die folgenden Befehle ein.

Warnung:

Mit diesen Befehlen wird Ihr vorhandenes lokales SR entfernt, und die VMs auf dem SR werden dauerhaft gelöscht.

    localsr=`xe sr-list type=lvm host=hostname params=uuid --minimal`
        echo localsr=$localsr
        pbd=`xe pbd-list sr-uuid=$localsr params=uuid --minimal`
        echo pbd=$pbd
        xe pbd-unplug uuid=$pbd
        xe pbd-destroy uuid=$pbd
        xe sr-forget uuid=$localsr
        sed -i "s/'lvm'/'ext'/" /etc/firstboot.d/data/default-storage.conf
        rm -f /var/lib/misc/ran-storage-init
        systemctl restart storage-init.service
        xe sr-list type=ext
<!--NeedCopy-->

Um das lokale Caching zu aktivieren, geben Sie die folgenden Befehle ein:

    xe host-disable host=hostname
        localsr=`xe sr-list type=ext host=hostname params=uuid --minimal`
        xe host-enable-local-storage-caching host=hostname sr-uuid=$localsr
        xe host-enable host=hostname
<!--NeedCopy-->

VM-Verhalten mit Intellicache

Das VDI-Flag on-boot bestimmt das Verhalten eines VM-VDI beim Booten der VM, und das VDI-Flag allow-caching bestimmt das Caching-Verhalten.

Die für diese Parameter zu verwendenden Werte hängen vom Typ der VM ab, die Sie erstellen, und von ihrem Verwendungszweck:

  • Für gemeinsam genutzte oder zufällig zugewiesene Maschinen:

    • Setzen Sie den Parameter on-boot auf reset.
    • Setzen Sie den Parameter allow-caching auf true

    Beispiel:

     xe vdi-param-set uuid=vdi_uuid on-boot=reset allow-caching=true
     <!--NeedCopy-->
    

    Beim Start der VM wird der VDI in den Zustand zurückgesetzt, in dem er sich beim vorherigen Start befand. Alle Änderungen während der Ausführung der VM gehen verloren, wenn die VM das nächste Mal gestartet wird. Neue VM-Daten werden nur in den lokalen Speicher geschrieben. Es gibt keine Schreibvorgänge in den gemeinsam genutzten Speicher. Dieser Ansatz bedeutet, dass die Belastung des gemeinsam genutzten Speichers reduziert wird. Die VM kann jedoch nicht zwischen Hosts migriert werden.

    Wählen Sie diese Option, wenn Sie standardisierte Desktops bereitstellen möchten, an denen Benutzer keine dauerhaften Änderungen vornehmen können.

  • Für statische oder dedizierte Maschinen:

    • Setzen Sie den Parameter on-boot auf persist.
    • Setzen Sie den Parameter allow-caching auf true

    Beispiel:

     xe vdi-param-set uuid=vdi_uuid on-boot=persist allow-caching=true
     <!--NeedCopy-->
    

    Beim Start der VM befindet sich der VDI in dem Zustand, in dem er beim letzten Herunterfahren belassen wurde. Neue VM-Daten werden sowohl in den lokalen als auch in den gemeinsamen Speicher geschrieben. Das Lesen von zwischengespeicherten Daten erfordert keinen E/A-Verkehr zum freigegebenen Speicher, sodass die Belastung des gemeinsam genutzten Speichers reduziert wird. Eine VM-Migration auf einen anderen Host ist zulässig und der lokale Cache auf dem neuen Host wird beim Lesen der Daten gefüllt.

    Wählen Sie diese Option aus, wenn Sie Benutzern erlauben möchten, dauerhafte Änderungen an ihren Desktops vorzunehmen.

Hinweis:

Für VMs, deren VDIs sich auf einer GFS2-SR befinden, unterscheidet sich das Verhalten der VM beim Booten von VMs mit VDIs auf anderen Arten von SRs. Für VDIs auf einem GFS2 SR wird die On-Boot-Option beim Herunterfahren der VM angewendet, nicht beim VM-Start.

Einzelheiten zur Implementierung und Fehlerbehebung

F: Ist IntelliCache mit Livemigration und Hochverfügbarkeit kompatibel?

A: Sie können Livemigration und Hochverfügbarkeit mit IntelliCache verwenden, wenn sich virtuelle Desktops im privaten Modus befinden, d. h. wenn on-boot=persist

Warnung:

Eine VM kann nicht migriert werden, wenn für eines der VDIs Cacheverhaltensflags auf on-boot=reset und allow-caching=true festgelegt sind. Migrationsversuche für virtuelle Rechner mit diesen Eigenschaften schlagen fehl.

F: Wo ist der lokale Cache auf dem lokalen Datenträger?

A: Der Cache ist in einem Speicherrepository (SR). Jeder Host hat einen Konfigurationsparameter (local-cache-sr), der angibt, welches (lokale) SR für die Cachedateien verwendet werden soll. In der Regel ist dieses SR ein SR vom Typ EXT3/EXT4. Wenn Sie VMs mit IntelliCache ausführen, sehen Sie innerhalb des SRs Dateien mit Namen uuid.vhdcache. Diese Datei ist die Cachedatei für den VDI mit der angegebenen UUID. Diese Dateien werden in XenCenter nicht angezeigt. Sie können sie nur anzeigen, indem Sie sich bei dom0 anmelden und den Inhalt von /var/run/sr-mount/sr-uuid

F: Wie gebe ich ein bestimmtes SR für die Verwendung als Cache an?

A: Das Host-Objektfeld local-cache-sr verweist auf ein lokales SR. Sie können seinen Wert anzeigen, indem Sie den folgenden Befehl ausführen:

xe sr-list params=local-cache-sr,uuid,name-label
<!--NeedCopy-->

Dieses Feld ist entweder gesetzt:

  • Wenn Sie nach der Hostinstallation die Option “Thin Provisioning aktivieren” im Host-Installationsprogramm ausgewählt haben, oder

  • Durch Ausführen von xe host-enable-local-storage-caching host=host sr-uuid=sr. Für den Befehl muss der angegebene Host deaktiviert sein. Fahren Sie die virtuellen Maschinen herunter, wenn Sie diesen Befehl verwenden.

Die erste Option verwendet das lokale SR vom Typ EXT3/EXT4 und wird während der Host-Installation erstellt. Die zweite Option verwendet das SR, das in der Befehlszeile angegeben ist.

Warnung:

Diese Schritte sind nur für Benutzer erforderlich, die mehr als ein lokales SR konfiguriert haben.

F: Wann wird der lokale Cache gelöscht?

A: Eine VDI-Cachedatei wird nur gelöscht, wenn der VDI selbst gelöscht wird. Der Cache wird zurückgesetzt, wenn ein VDI an eine VM angeschlossen wird (z. B. beim Start der VM). Wenn der Host beim Löschen des VDI offline ist, führt die SR-Synchronisierung beim Start eine Bereinigung der Cachedatei durch.

Hinweis:

Die Cachedatei wird nicht vom Host gelöscht, wenn eine VM auf einen anderen Host migriert oder heruntergefahren wird.

IntelliCache