XenServer

Speicher-Repositorys verwalten

Dieser Abschnitt behandelt verschiedene Vorgänge, die für die laufende Verwaltung von Speicher-Repositorys (SRs) erforderlich sind, einschließlich der Live-VDI-Migration.

SRs entfernen

Ein Speicher-Repository (SR) kann entweder temporär oder permanent entfernt werden.

Trennen: Unterbricht die Verbindung zwischen dem Speichergerät und dem Pool oder Host (PBD Unplug). Das SR (und seine VDIs) wird unzugänglich. Der Inhalt der VDIs und die Meta-Informationen, die von VMs für den Zugriff auf die VDIs verwendet werden, bleiben erhalten. Trennen kann verwendet werden, wenn Sie ein SR vorübergehend offline nehmen, z. B. für Wartungsarbeiten. Ein getrenntes SR kann später wieder angehängt werden.

Vergessen: Bewahrt den Inhalt des SR auf der physischen Festplatte, aber die Informationen, die eine VM mit ihren VDIs verbinden, werden dauerhaft gelöscht. Dies ermöglicht es beispielsweise, das SR an einen anderen XenServer®-Host wieder anzuhängen, ohne den Inhalt des SR zu entfernen.

Zerstören: Löscht den Inhalt des SR von der physischen Festplatte.

Hinweis:

Wenn Sie SMB-Speicher verwenden, entfernen Sie die Freigabe nicht vom Speicher, bevor Sie das SMB-SR trennen.

Zum Zerstören oder Vergessen muss die mit dem SR verbundene PBD vom Host getrennt werden.

  1. Trennen Sie die PBD, um das SR vom entsprechenden XenServer-Host zu trennen:

    xe pbd-unplug uuid=pbd_uuid
    <!--NeedCopy-->
    
  2. Verwenden Sie den Befehl sr-destroy, um ein SR zu entfernen. Der Befehl zerstört das SR, löscht das SR und die entsprechende PBD aus der XenServer-Hostdatenbank und löscht den SR-Inhalt von der physischen Festplatte:

    xe sr-destroy uuid=sr_uuid
    <!--NeedCopy-->
    
  3. Verwenden Sie den Befehl sr-forget, um ein SR zu vergessen. Der Befehl entfernt das SR und die entsprechende PBD aus der XenServer-Hostdatenbank, belässt aber den tatsächlichen SR-Inhalt auf dem physischen Medium intakt:

    xe sr-forget uuid=sr_uuid
    <!--NeedCopy-->
    

Hinweis:

Es kann einige Zeit dauern, bis das dem SR entsprechende Softwareobjekt durch Garbage Collection bereinigt wird.

Einen SR einführen

Um einen zuvor vergessenen SR wieder einzuführen, erstellen Sie eine PBD. Verbinden Sie die PBD manuell mit den entsprechenden XenServer-Hosts, um den SR zu aktivieren.

Das folgende Beispiel führt einen SR vom Typ lvmoiscsi ein.

  1. Den vorhandenen SR abfragen, um dessen UUID zu ermitteln:

    xe sr-probe type=lvmoiscsi device-config:target=192.168.1.10 \
        device-config:targetIQN=192.168.1.10:filer1 \
        device-config:SCSIid=149455400000000000000000002000000b70200000f000000
    <!--NeedCopy-->
    
  2. Führen Sie die vorhandene SR-UUID ein, die vom Befehl sr-probe zurückgegeben wurde. Die UUID des neuen SR wird zurückgegeben:

    xe sr-introduce content-type=user name-label="Example Shared LVM over iSCSI SR" \
        shared=true uuid=valid_sr_uuid type=lvmoiscsi
    <!--NeedCopy-->
    
  3. Erstellen Sie eine PBD, die den SR begleitet. Die UUID der neuen PBD wird zurückgegeben:

    xe pbd-create type=lvmoiscsi host-uuid=valid_uuid sr-uuid=valid_sr_uuid \
        device-config:target=192.168.0.1 \
        device-config:targetIQN=192.168.1.10:filer1 \
        device-config:SCSIid=149455400000000000000000002000000b70200000f000000
    <!--NeedCopy-->
    
  4. Verbinden Sie die PBD, um den SR anzuhängen:

    xe pbd-plug uuid=pbd_uuid
    <!--NeedCopy-->
    
  5. Überprüfen Sie den Status der PBD-Verbindung. Bei Erfolg ist die Eigenschaft currently-attached wahr:

    xe pbd-list sr-uuid=sr_uuid
    <!--NeedCopy-->
    

Hinweis:

Führen Sie die Schritte 3 bis 5 für jeden Host im Ressourcenpool aus. Diese Schritte können auch mithilfe der Funktion „Speicher-Repository reparieren“ in XenCenter ausgeführt werden.

Live-LUN-Erweiterung

Um Kapazitätsanforderungen zu erfüllen, müssen Sie möglicherweise dem Speicher-Array Kapazität hinzufügen, um die Größe der für den XenServer-Host bereitgestellten LUN zu erhöhen. Die Live-LUN-Erweiterung ermöglicht es Ihnen, die Größe der LUN ohne VM-Ausfallzeiten zu erhöhen.

Nachdem Sie Ihrem Speicher-Array mehr Kapazität hinzugefügt haben, geben Sie Folgendes ein:

xe sr-scan sr-uuid=sr_uuid
<!--NeedCopy-->

Dieser Befehl scannt den SR erneut, und jegliche zusätzliche Kapazität wird hinzugefügt und verfügbar gemacht.

Diese Operation ist auch in XenCenter verfügbar. Wählen Sie den SR aus, dessen Größe geändert werden soll, und klicken Sie dann auf Neu scannen.

Warnungen:

  • Es ist nicht möglich, LUNs zu verkleinern oder zu kürzen. Eine Reduzierung der LUN-Größe auf dem Speicher-Array kann zu Datenverlust führen.
  • Die Größenänderung eines GFS2 SR kann lange dauern. Während der Größenänderung können Sie möglicherweise keine weiteren Hosts zum Pool hinzufügen oder andere SR-Operationen durchführen.

Live-VDI-Migration

Die Live-VDI-Migration ermöglicht es dem Administrator, das virtuelle Festplatten-Image (VDI) der VMs zu verschieben, ohne die VM herunterzufahren. Diese Funktion ermöglicht administrative Vorgänge wie:

  • Verschieben einer VM von günstigem lokalen Speicher zu schnellem, ausfallsicherem, Array-gestütztem Speicher.
  • Verschieben einer VM von einer Entwicklungs- in eine Produktionsumgebung.
  • Verschieben zwischen Speicherebenen, wenn eine VM durch die Speicherkapazität begrenzt ist.
  • Durchführen von Speicher-Array-Upgrades.

Einschränkungen und Vorbehalte

Die Live-VDI-Migration unterliegt den folgenden Einschränkungen und Vorbehalten

  • Auf dem Ziel-Repository muss ausreichend Speicherplatz verfügbar sein.

So verschieben Sie virtuelle Festplatten mit XenCenter

  1. Wählen Sie im Bereich Ressourcen den SR aus, auf dem die virtuelle Festplatte gespeichert ist, und klicken Sie dann auf die Registerkarte Speicher.

  2. Wählen Sie in der Liste Virtuelle Festplatten die virtuelle Festplatte aus, die Sie verschieben möchten, und klicken Sie dann auf Verschieben.

  3. Wählen Sie im Dialogfeld Virtuelle Festplatte verschieben das Ziel-SR aus, auf das Sie die VDI verschieben möchten.

    Hinweis:

    Stellen Sie sicher, dass das SR ausreichend Speicherplatz für eine weitere virtuelle Festplatte hat: Der verfügbare Speicherplatz wird in der Liste der verfügbaren SRs angezeigt.

  4. Klicken Sie auf Verschieben, um die virtuelle Festplatte zu verschieben.

Informationen zur xe-CLI finden Sie unter vdi-pool-migrate.

Kalte VDI-Migration zwischen SRs (Offline-Migration)

VDIs, die einer VM zugeordnet sind, können von einem SR auf ein anderes kopiert werden, um Wartungsanforderungen oder gestufte Speicherkonfigurationen zu berücksichtigen. Mit XenCenter können Sie eine VM und alle ihre VDIs auf dasselbe oder ein anderes SR kopieren. Eine Kombination aus XenCenter und der xe-CLI kann verwendet werden, um einzelne VDIs zu kopieren.

Informationen zur xe-CLI finden Sie unter vm-migrate.

Alle VDIs einer VM auf ein anderes SR kopieren

Die XenCenter-Funktion „VM kopieren“ erstellt Kopien aller VDIs für eine ausgewählte VM auf demselben oder einem anderen SR. Die Quell-VM und die VDIs werden standardmäßig nicht beeinflusst. Um die VM auf das ausgewählte SR zu verschieben, anstatt eine Kopie zu erstellen, wählen Sie die Option „Ursprüngliche VM entfernen“ im Dialogfeld „Virtuelle Maschine kopieren“.

  1. Fahren Sie die VM herunter.
  2. Wählen Sie in XenCenter die VM aus und wählen Sie dann die Option VM > VM kopieren.
  3. Wählen Sie das gewünschte Ziel-SR aus.

Einzelne VDIs auf ein anderes SR kopieren

Eine Kombination aus der xe-CLI und XenCenter kann verwendet werden, um einzelne VDIs zwischen SRs zu kopieren.

  1. Fahren Sie die VM herunter.

  2. Verwenden Sie die xe CLI, um die UUIDs der zu verschiebenden VDIs zu identifizieren. Wenn die VM ein DVD-Laufwerk hat, wird dessen vdi-uuid als not in database aufgeführt und kann ignoriert werden.

    xe vbd-list vm-uuid=valid_vm_uuid
    <!--NeedCopy-->
    

    Hinweis:

    Der Befehl vbd-list zeigt sowohl die VBD- als auch die VDI-UUIDs an. Stellen Sie sicher, dass Sie die VDI-UUIDs und nicht die VBD-UUIDs notieren.

  3. Wählen Sie in XenCenter die Registerkarte VM-Speicher aus. Wählen Sie für jede zu verschiebende VDI die VDI aus und klicken Sie auf die Schaltfläche Trennen. Dieser Schritt kann auch mit dem Befehl vbd-destroy durchgeführt werden.

    Hinweis:

    Wenn Sie den Befehl vbd-destroy verwenden, um die VDI-UUIDs zu trennen, überprüfen Sie zuerst, ob die VBD den Parameter other-config:owner auf true gesetzt hat. Setzen Sie diesen Parameter auf false. Das Ausführen des Befehls vbd-destroy mit other-config:owner=true zerstört auch die zugehörige VDI.

  4. Verwenden Sie den Befehl vdi-copy, um jede der zu verschiebenden VM-VDIs auf das gewünschte SR zu kopieren.

    xe vdi-copy uuid=valid_vdi_uuid sr-uuid=valid_sr_uuid
    <!--NeedCopy-->
    
  5. Wählen Sie in XenCenter die Registerkarte VM-Speicher aus. Klicken Sie auf die Schaltfläche Anhängen und wählen Sie die VDIs aus dem neuen SR aus. Dieser Schritt kann auch mit dem Befehl vbd-create durchgeführt werden.

  6. Um die ursprünglichen VDIs zu löschen, wählen Sie in XenCenter die Registerkarte Speicher des ursprünglichen SR aus. Die ursprünglichen VDIs werden mit einem leeren Wert für das Feld VM aufgelistet. Verwenden Sie die Schaltfläche Löschen, um die VDI zu löschen.

Lokale Fibre Channel SRs in freigegebene SRs konvertieren

Verwenden Sie die xe CLI und die XenCenter-Funktion Speicher-Repository reparieren, um ein lokales FC-SR in ein freigegebenes FC-SR zu konvertieren:

  1. Aktualisieren Sie alle Hosts im Ressourcenpool auf XenServer 8.4.

  2. Stellen Sie sicher, dass alle Hosts im Pool die LUN des SR entsprechend zoniert haben. Weitere Informationen zur Verwendung des Befehls sr-probe zur Überprüfung, ob die LUN auf jedem Host vorhanden ist, finden Sie unter Ein SR prüfen.

  3. Konvertieren Sie das SR in ein freigegebenes SR:

    xe sr-param-set shared=true uuid=local_fc_sr
    <!--NeedCopy-->
    
  4. Das SR wird in XenCenter von der Host-Ebene auf die Poolebene verschoben, was darauf hinweist, dass es jetzt freigegeben ist. Das SR ist mit einem roten Ausrufezeichen versehen, um anzuzeigen, dass es derzeit nicht auf allen Hosts im Pool angeschlossen ist.

  5. Wählen Sie das SR aus und wählen Sie dann die Option Speicher > Speicher-Repository reparieren.

  6. Klicken Sie auf Reparieren, um ein PBD für jeden Host im Pool zu erstellen und anzuschließen.

Speicherplatz für blockbasierten Speicher auf dem Backend-Array mithilfe von Discard freigeben

Sie können die Speicherplatzrückgewinnung verwenden, um ungenutzte Blöcke auf einer dünn bereitgestellten LUN freizugeben. Nachdem der Speicherplatz freigegeben wurde, kann das Speicher-Array diesen freigegebenen Speicherplatz wiederverwenden.

Hinweis:

Die Speicherplatzrückgewinnung ist nur bei bestimmten Arten von Speicher-Arrays verfügbar. Um festzustellen, ob Ihr Array diese Funktion unterstützt und ob eine spezifische Konfiguration erforderlich ist, lesen Sie die Hardware-Kompatibilitätsliste und die spezifische Dokumentation Ihres Speicheranbieters.

So geben Sie Speicherplatz mit XenCenter frei:

  1. Wählen Sie die Ansicht Infrastruktur aus und wählen Sie dann den Host oder Pool aus, der mit dem SR verbunden ist.

  2. Klicken Sie auf die Registerkarte Speicher.

  3. Wählen Sie das SR aus der Liste aus und klicken Sie auf Freigegebenen Speicherplatz zurückgewinnen.

  4. Klicken Sie auf Ja, um den Vorgang zu bestätigen.

  5. Klicken Sie auf Benachrichtigungen und dann auf Ereignisse, um den Status des Vorgangs anzuzeigen.

Weitere Informationen erhalten Sie, indem Sie F1 in XenCenter drücken, um auf die Online-Hilfe zuzugreifen.

Um Speicherplatz mithilfe der xe CLI freizugeben, können Sie den folgenden Befehl verwenden:

xe host-call-plugin host-uuid=host_uuid \
    plugin=trim fn=do_trim args:sr_uuid=sr_uuid

Hinweise:

  • Der Vorgang ist nur für LVM-basierte SRs verfügbar, die auf Thin Provisioned LUNs im Array basieren. Lokale SSDs können ebenfalls von der Speicherfreigabe profitieren.
  • Die Speicherfreigabe ist für dateibasierte SRs wie NFS und EXT3/EXT4 nicht erforderlich. Die Schaltfläche Freigegebenen Speicherplatz zurückgewinnen ist in XenCenter für diese SR-Typen nicht verfügbar.
  • Wenn Sie den xe-Befehl zur Speicherfreigabe für einen dateibasierten SR oder einen Thick Provisioned LVM-basierten SR ausführen, gibt der Befehl einen Fehler zurück.
  • Die Speicherfreigabe ist ein intensiver Vorgang und kann zu einer Beeinträchtigung der Leistung des Speicher-Arrays führen. Leiten Sie diesen Vorgang daher nur ein, wenn eine Speicherfreigabe im Array erforderlich ist. Wir empfehlen, diese Arbeit außerhalb der Spitzenzeiten der Array-Auslastung zu planen.

Speicherplatz beim Löschen von Snapshots automatisch freigeben

Beim Löschen von Snapshots mit XenServer wird der auf LVM-basierten SRs zugewiesene Speicherplatz automatisch freigegeben, und ein VM-Neustart ist nicht erforderlich. Dieser Vorgang wird als „Online-Coalescing“ bezeichnet. Online-Coalescing gilt für alle Arten von SR.

In bestimmten Fällen kann die automatische Speicherfreigabe möglicherweise nicht fortgesetzt werden. Wir empfehlen Ihnen, in diesen Szenarien das Offline-Coalesce-Tool zu verwenden:

  • Unter Bedingungen, bei denen der E/A-Durchsatz einer VM erheblich ist
  • Unter Bedingungen, bei denen nach einer gewissen Zeit kein Speicherplatz freigegeben wird

Hinweise:

  • Das Ausführen des Offline-Coalesce-Tools führt aufgrund der durchgeführten Suspend-/Resume-Vorgänge zu einer gewissen Ausfallzeit für die VM.
  • Löschen Sie vor dem Ausführen des Tools alle Snapshots und Klone, die Sie nicht mehr benötigen. Das Tool gibt so viel Speicherplatz wie möglich frei, unter Berücksichtigung der verbleibenden Snapshots/Klone. Wenn Sie den gesamten Speicherplatz freigeben möchten, löschen Sie alle Snapshots und Klone.
  • VM-Datenträger müssen sich entweder auf gemeinsamem oder lokalem Speicher für einen einzelnen Host befinden. VMs mit Datenträgern in beiden Speichertypen können nicht zusammengeführt werden.

Speicherplatz mit dem Offline-Coalesce-Tool freigeben

Aktivieren Sie die ausgeblendeten Objekte mit XenCenter. Klicken Sie auf Ansicht > Ausgeblendete Objekte. Wählen Sie im Ressourcenbereich die VM aus, für die Sie die UUID abrufen möchten. Die UUID wird auf der Registerkarte Allgemein angezeigt.

Wählen Sie im Ressourcenbereich den Ressourcenpool-Koordinator (den ersten Host in der Liste) aus. Die Registerkarte Allgemein zeigt die UUID an. Wenn Sie keinen Ressourcenpool verwenden, wählen Sie den Host der VM aus.

  1. Öffnen Sie eine Konsole auf dem Host und führen Sie den folgenden Befehl aus:

    xe host-call-plugin host-uuid=host-UUID \
        plugin=coalesce-leaf fn=leaf-coalesce args:vm_uuid=VM-UUID
    <!--NeedCopy-->
    

    Wenn die VM-UUID beispielsweise 9bad4022-2c2d-dee6-abf5-1b6195b1dad5 und die Host-UUID b8722062-de95-4d95-9baa-a5fe343898ea ist, führen Sie den folgenden Befehl aus:

    xe host-call-plugin host-uuid=b8722062-de95-4d95-9baa-a5fe343898ea \
        plugin=coalesce-leaf fn=leaf-coalesce args:vm_uuid=9bad4022-2c2d-dee6-abf5-1b6195b1dad5
    <!--NeedCopy-->
    
  2. Dieser Befehl hält die VM an (es sei denn, sie ist bereits heruntergefahren), leitet den Speicherfreigabeprozess ein und setzt die VM dann fort.

Hinweise:

Wir empfehlen, die VM manuell herunterzufahren oder anzuhalten, bevor Sie das Offline-Konsolidierungstool ausführen. Sie können die VM entweder mit XenCenter oder der XenServer-CLI herunterfahren oder anhalten. Wenn Sie das Konsolidierungstool auf einer laufenden VM ausführen, hält das Tool die VM automatisch an, führt die erforderlichen VDI-Konsolidierungsvorgänge aus und setzt die VM fort. Agile VMs können auf einem anderen Host neu starten.

Wenn die zu konsolidierenden virtuellen Festplatten-Images (VDIs) auf freigegebenem Speicher liegen, müssen Sie das Offline-Konsolidierungstool auf dem Pool-Koordinator ausführen.

Wenn die zu konsolidierenden VDIs auf lokalem Speicher liegen, führen Sie das Offline-Konsolidierungstool auf dem Host aus, an den der lokale Speicher angeschlossen ist.

Arbeiten mit Festplatten-I/O

Sie können den Festplatten-I/O-Scheduler und die Festplatten-I/O-Prioritätseinstellungen konfigurieren, um die Leistung Ihrer Festplatten zu ändern.

Hinweis:

Die in diesem Abschnitt beschriebenen Festplatten-I/O-Funktionen gelten nicht für GFS2-, NFS- oder SMB3-Speicher.

Festplatten-I/O-Scheduler anpassen

Für die allgemeine Leistung wird der Standard-Festplatten-Scheduler noop auf alle neuen SR-Typen angewendet. Der noop-Scheduler bietet die fairste Leistung für konkurrierende VMs, die auf dasselbe Gerät zugreifen.

  1. Passen Sie den Festplatten-Scheduler mit dem folgenden Befehl an:

    xe sr-param-set other-config:scheduler=<option> uuid=<sr_uuid>
    <!--NeedCopy-->
    

    Der Wert von <option> kann einer der folgenden Begriffe sein: noop, cfq oder deadline.

  2. Trennen Sie die entsprechende PBD und verbinden Sie sie erneut, damit der Scheduler-Parameter wirksam wird.

    xe pbd-unplug uuid=<pbd_uuid>
    xe pbd-plug uuid=<pbd_uuid>
    <!--NeedCopy-->
    

Um die Priorisierung von Festplatten-I/O-Anfragen anzuwenden, überschreiben Sie die Standardeinstellung und weisen Sie dem SR den cfq-Festplatten-Scheduler zu.

Priorisierung von I/O-Anfragen für virtuelle Festplatten

Virtuelle Festplatten verfügen über optionale Einstellungen zur Priorisierung von I/O-Anfragen. Sie können diese Einstellungen verwenden, um die I/O für die Festplatte einer bestimmten VM gegenüber anderen zu priorisieren.

Bevor Sie Parameter zur Priorisierung von Festplatten-I/O-Anfragen für eine VBD konfigurieren, stellen Sie sicher, dass der Festplatten-Scheduler für den SR entsprechend eingestellt wurde. Der Scheduler-Parameter muss auf cfq auf dem SR eingestellt und die zugehörige PBD getrennt und wieder verbunden werden. Informationen zum Anpassen des Schedulers finden Sie unter Anpassen des Festplatten-I/O-Schedulers.

Bei gemeinsam genutzten SRs, bei denen mehrere Hosts auf dieselbe LUN zugreifen, wird die Prioritätseinstellung auf VBDs angewendet, die von demselben Host auf die LUN zugreifen. Diese Einstellungen werden nicht hostübergreifend im Pool angewendet.

Der Host sendet eine Anfrage an den Remote-Speicher, aber die Priorisierung der Anfrage erfolgt durch den Remote-Speicher.

Festlegen von Parametern für Festplatten-I/O-Anfragen

Diese Einstellungen können auf vorhandene virtuelle Festplatten angewendet werden, indem der Befehl xe vbd-param-set mit den folgenden Parametern verwendet wird:

  • qos_algorithm_type – Dieser Parameter muss auf den Wert ionice gesetzt werden, der der einzige für virtuelle Festplatten unterstützte Algorithmus ist.

  • qos_algorithm_param – Verwenden Sie diesen Parameter, um Schlüssel-Wert-Paare festzulegen. Für virtuelle Festplatten nimmt qos_algorithm_param einen sched-Schlüssel an und erfordert je nach Wert auch einen class-Schlüssel.

    Der Schlüssel qos_algorithm_param:sched kann einen der folgenden Werte haben:

    • sched=rt oder sched=real-time – Dieser Wert setzt den Scheduling-Parameter auf Echtzeitpriorität, was einen class-Parameter zum Festlegen eines Wertes erfordert.

    • sched=idle – Dieser Wert setzt den Planungs-Parameter auf Leerlauf-Priorität, der keinen class Parameter benötigt, um einen Wert festzulegen.

    • sched=anything – Dieser Wert setzt den Planungs-Parameter auf Best-Effort-Priorität, der einen class Parameter benötigt, um einen Wert festzulegen.

    Der Schlüssel qos_algorithm_param:class kann einen der folgenden Werte haben:

    • Eines der folgenden Schlüsselwörter: highest, high, normal, low, lowest.

    • Eine Ganzzahl zwischen 0 und 7, wobei 7 die höchste Priorität und 0 die niedrigste ist. Zum Beispiel erhalten E/A-Anfragen mit einer Priorität von 5 Vorrang vor E/A-Anfragen mit einer Priorität von 2.

Beispiel

Zum Beispiel setzen die folgenden CLI-Befehle die VBD der virtuellen Festplatte auf die Echtzeitpriorität 5:

xe vbd-param-set uuid=<vbd_uuid> qos_algorithm_type=ionice
xe vbd-param-set uuid=<vbd_uuid> qos_algorithm_params:sched=rt
xe vbd-param-set uuid=<vbd_uuid> qos_algorithm_params:class=5
xe sr-param-set uuid=<sr_uuid> other-config:scheduler=cfq
xe pbd-unplug uuid=<pbd_uuid>
xe pbd-plug uuid=<pbd_uuid>
<!--NeedCopy-->