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: Trennt die Zuordnung 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 Metainformationen, 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. Ermöglicht es Ihnen 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.

Für 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 lösen:

    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 den tatsächlichen SR-Inhalt jedoch intakt auf dem physischen Medium:

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

Hinweis:

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

SR einführen

Um ein zuvor vergessenes SR erneut einzuführen, erstellen Sie eine PBD. Verbinden Sie die PBD manuell mit den entsprechenden XenServer-Hosts, um das SR zu aktivieren.

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

  1. Fragen Sie das vorhandene SR ab, 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 das 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 das 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 des LUN zu erhöhen, das dem XenServer-Host bereitgestellt wird. Die Live-LUN-Erweiterung ermöglicht es Ihnen, die Größe des 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 das 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 das SR aus, das Sie in der Größe ändern möchten, 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 auf schnellen, ausfallsicheren, Array-gestützten 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 Datenträger mit XenCenter

  1. Wählen Sie im Bereich Ressourcen das SR aus, in dem der virtuelle Datenträger gespeichert ist, und klicken Sie dann auf die Registerkarte Speicher.

  2. Wählen Sie in der Liste Virtuelle Datenträger den virtuellen Datenträger aus, den Sie verschieben möchten, und klicken Sie dann auf Verschieben.

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

    Hinweis:

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

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

Eine Referenz 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 einen anderen kopiert werden, um Wartungsanforderungen oder gestufte Speicherkonfigurationen zu berücksichtigen. XenCenter ermöglicht es Ihnen, eine VM und alle ihre VDIs auf denselben oder einen anderen SR zu kopieren. Eine Kombination aus XenCenter und der xe-CLI kann verwendet werden, um einzelne VDIs zu kopieren.

Eine Referenz zur xe-CLI finden Sie unter vm-migrate.

Alle VDIs einer VM auf einen anderen 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 bleiben standardmäßig unberührt. Um die VM auf den ausgewählten 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 den gewünschten Ziel-SR aus.

Einzelne VDIs auf einen anderen 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 jedes zu verschiebende VDI das VDI aus und klicken Sie auf die Schaltfläche Trennen. Dieser Schritt kann auch mit dem Befehl vbd-destroy ausgefü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 das zugehörige VDI.

  4. Verwenden Sie den Befehl vdi-copy, um jedes der zu verschiebenden VM-VDIs in 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 ausgefü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 aufgeführt. Verwenden Sie die Schaltfläche Löschen, um das 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 9.

  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 SR prüfen.

  3. SR in freigegebenes SR konvertieren:

    xe sr-param-set shared=true uuid=local_fc_sr
    <!--NeedCopy-->
    
  4. Das SR wird in XenCenter von der Host-Ebene auf die Pool-Ebene verschoben, was darauf hinweist, dass es jetzt freigegeben ist. Das SR ist mit einem roten Ausrufezeichen gekennzeichnet, 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 Backing-Array mithilfe von Discard zurückgewinnen

Sie können die Speicherplatzrückgewinnung verwenden, um ungenutzte Blöcke auf einem Thin-Provisioning-LUN freizugeben. Nachdem der Speicherplatz freigegeben wurde, kann das Speicher-Array diesen zurückgewonnenen Speicherplatz wiederverwenden.

Hinweis:

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

So geben Sie Speicherplatz mithilfe von 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 die Online-Hilfe aufzurufen.

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-Provisioning-LUNs auf dem Array basieren. Lokale SSDs können ebenfalls von der Speicherplatzrückgewinnung profitieren.
  • Speicherplatzrückgewinnung ist nicht erforderlich für dateibasierte SRs wie NFS und EXT3/EXT4. Die Schaltfläche Freigegebenen Speicherplatz zurückgewinnen ist in XenCenter für diese SR-Typen nicht verfügbar.
  • Wenn Sie den xe-Befehl zur Speicherplatzrückgewinnung für einen dateibasierten SR oder einen Thick-Provisioning-LVM-basierten SR ausführen, gibt der Befehl einen Fehler zurück.
  • Die Speicherplatzrückgewinnung 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 Speicherplatzrückgewinnung auf dem Array erforderlich ist. Wir empfehlen, diese Arbeit außerhalb der Spitzenzeiten der Array-Auslastung zu planen.

Speicherplatz automatisch zurückgewinnen beim Löschen von Snapshots

Beim Löschen von Snapshots mit XenServer wird der auf LVM-basierten SRs zugewiesene Speicherplatz automatisch zurückgewonnen und ein VM-Neustart ist nicht erforderlich. Dieser Vorgang wird als ‘Online-Coalescing’ bezeichnet. Online-Coalescing gilt für alle SR-Typen.

In bestimmten Fällen kann die automatische Speicherplatzrückgewinnung möglicherweise nicht fortgesetzt werden. Wir empfehlen, 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 Speicherplatz nach einer gewissen Zeit nicht zurückgewonnen wird

Hinweise:

  • Das Ausführen des Offline-Coalesce-Tools führt zu einer gewissen Ausfallzeit für die VM, aufgrund der durchgeführten Anhalte-/Fortsetzungsoperationen.
  • Bevor Sie das Tool ausführen, löschen Sie alle Snapshots und Klone, die Sie nicht mehr benötigen. Das Tool gewinnt so viel Speicherplatz wie möglich zurück, unter Berücksichtigung der verbleibenden Snapshots/Klone. Wenn Sie den gesamten Speicherplatz zurückgewinnen möchten, löschen Sie alle Snapshots und Klone.
  • VM-Festplatten müssen sich entweder auf gemeinsamem oder lokalem Speicher für einen einzelnen Host befinden. VMs mit Festplatten in beiden Speichertypen können nicht zusammengeführt werden.

Speicherplatz zurückgewinnen mithilfe des Offline-Coalesce-Tools

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 Bereich Ressourcen 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 lautet, 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 ausgeschaltet), leitet den Speicherbereinigungsprozess ein und setzt die VM dann fort.

Hinweise:

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

Wenn sich die zusammenzuführenden virtuellen Datenträger-Images (VDIs) auf einem freigegebenen Speicher befinden, müssen Sie das Offline-Coalesce-Tool auf dem Pool-Koordinator ausführen.

Wenn sich die zusammenzuführenden VDIs auf einem lokalen Speicher befinden, führen Sie das Offline-Coalesce-Tool 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 none auf alle neuen SR-Typen angewendet. Der none-Scheduler bietet die fairste Leistung für konkurrierende VMs, die auf dasselbe Gerät zugreifen.

  1. Passen Sie den Disk-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: none, bfq oder mq-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 bfq-Disk-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-Priorität für die Festplatte einer bestimmten VM gegenüber anderen zu erhöhen.

Bevor Sie Parameter zur Priorisierung von Festplatten-I/O-Anfragen für eine VBD konfigurieren, stellen Sie sicher, dass der Disk-Scheduler für den SR entsprechend eingestellt wurde. Der Scheduler-Parameter muss auf dem SR auf bfq gesetzt und die zugehörige PBD getrennt und wieder verbunden werden. Informationen zum Anpassen des Schedulers finden Sie unter Anpassen des Disk-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 mit dem Befehl xe vbd-param-set und den folgenden Parametern angewendet werden:

  • 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 zur Festlegung eines Wertes erfordert.

    • sched=idle - Dieser Wert setzt den Scheduling-Parameter auf Leerlaufpriorität, die keinen class Parameter erfordert, um einen Wert festzulegen.

    • sched=anything - Dieser Wert setzt den Scheduling-Parameter auf Best-Effort-Priorität, die einen class Parameter erfordert, 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 des virtuellen Datenträgers auf 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=bfq
xe pbd-unplug uuid=<pbd_uuid>
xe pbd-plug uuid=<pbd_uuid>
<!--NeedCopy-->