Systemverwaltungshandbuch: Oracle Solaris Container - Ressourcenverwaltung und Solaris Zones

Kapitel 23 Verschieben und Migrieren von nicht-globalen Zonen (Vorgehen)

Dieses Kapitel wurde für das Solaris-Release 10 11/06 neu aufgenommen. Zusätzliche Leistungsmerkmale kamen in späteren Versionen hinzu.

In diesem Kapitel wird Folgendes beschrieben:

Ab Solaris-Release 10 10/08: Wenn auf dem neuen Host die gleichen oder neuere Versionen zonenabhängiger Pakete und zugehöriger Patches installiert sind, wird durch Verwendung von zoneadm attach mit der Option -u der Mindestsatz an Paketen aktualisiert, der erforderlich ist, um die nicht-globale Zone auf dem neuen Host verwenden zu können. Wenn im Vergleich zum Ausgangshost auf dem neuen Host ein Mix von Patches höherer und niedrigerer Versionen installiert ist, ist eine Aktualisierung während des Anhängens nicht zulässig.

Der Befehl zoneadm attach mit der Option -u ermöglicht auch die Migration zwischen Rechnerklassen, z. B. von sun4u auf sun4v.

Ab Solaris-Release 10 9/10 aktualisiert zoneadm attach mit der Option -U alle Pakete für die Zone, sodass sie Paketen einer neu auf diesem Host installierten nicht-globalen Zone entsprechen. Alle Pakete, die in dieser Zone, jedoch nicht in der globalen Zone installiert sind, werden ignoriert und nicht verändert. Diese Option ermöglicht auch die automatische Migration zwischen Rechnerklassen wie z.B. von sun4u auf sun4v

Alternativ zum normalen Patchen können die Zonen getrennt werden, während Patches auf die globale Zone angewendet werden, und danach mit der Option -U wieder angehängt werden, damit sie der Patch-Ebene der globalen Zone entsprechen.

Informationen zum Verschieben und Migrieren von lx Branded Zones finden Sie unter Kapitel 37Verschieben und Migrieren von lx Branded Zones (Vorgehen).

Solaris 10 11/06: Verschieben einer nicht-globalen Zone

Mit diesem Verfahren verschieben Sie die Zone an einen neuen Speicherort auf dem gleichen System. Dazu ändern Sie nur den zonepath. Die Zone muss angehalten sein. Der neue zonepath muss sich auf einem lokalen Dateisystem befinden. Es gelten die normalen, unter Ressourcen- und Eigenschaftentypen beschriebenen zonepath-Kriterien.

ProcedureSo verschieben Sie eine Zone

Für dieses Verfahren müssen Sie als globaler Administrator bei der globalen Zone angemeldet sein.

  1. Melden Sie sich als Superuser an oder nehmen Sie die Rolle des Primäradministrators an.

    Informationen zum Erstellen von Rollen und Zuweisen von Rollen zu Benutzern finden Sie unter Using the Solaris Management Tools With RBAC (Task Map) in System Administration Guide: Basic Administration.

  2. Halten Sie die zu verschiebende Zone, in diesem Beispiel db-zone, an.


    global# zoneadm -z db-zone halt
    
  3. Geben Sie den Befehl zoneadm mit dem Unterbefehl move ein, um eine Zone an den neuen zonepath (/export/zones/db-zone) zu verschieben.


    global# zoneadm -z db-zone move /export/zones/db-zone
    
  4. Überprüfen Sie den Pfad.


    ID  NAME     STATUS       PATH                           BRAND      IP
     0  global   running      /                              native     shared
     -  my-zone  installed    /export/home/my-zone           native     shared
     -  db-zone  installed    /export/zones/db-zone          native     shared

Solaris 10 11/06: Migrieren einer nicht-globalen Zone zu einem anderen Computer

Bitte beachten Sie, dass Sie im Solaris-Release 10 5/08 eine Zonenmigration testen können, bevor die betreffende Zone tatsächlich auf einen neuen Rechner verschoben wird. Weitere Informationen finden Sie unter Solaris 10 5/08: Informationen zum Testen einer Zonenmigration vor dem eigentlichen Ausführen der Migration.

Allgemeine Informationen zum Migrieren einer Zone

Nach dem Solaris-Release 10 11/06 wurden diesem Abschnitt neue Informationen hinzugefügt.

Mit den Befehlen zonecfg und zoneadm können Sie eine vorhandene nicht-globale Zone von einem System zum einem anderen migrieren. Die Zone wird angehalten und vom aktuellen Hostcomputer gelöst. Der zonepath wird auf den Zielhost verschoben und dort angehängt.

Für die Migration einer Zone gelten die folgenden Einschränkungen:

Zum Überprüfen des Solaris-Release und der Computerarchitektur geben Sie Folgendes ein:


#uname -m

Der Prozess zoneadm detach erstellt die Informationen, die zum Anhängen der Zone auf einem anderen System erforderlich sind. Der Prozess zoneadm attach überprüft, ob der Ziel-Computer korrekt konfiguriert ist, um als Host für die Zone zu fungieren.

Da es verschiedene Möglichkeiten gibt, den zonepath auf dem neuen Host verfügbar zu machen, muss das tatsächliche Verschieben des zonepath von einem System auf das andere manuell vom globalen Administrator ausgeführt werden.

Wenn die Zone erfolgreich auf das neue System verlagert wurde, befindet sie sich im installierten Status.

ProcedureSo migrieren Sie eine nicht-globalen Zone

Für dieses Verfahren müssen Sie als globaler Administrator in der globalen Zone angemeldet sein.

  1. Melden Sie sich als Superuser an oder nehmen Sie die Rolle des Primäradministrators an.

    Informationen zum Erstellen von Rollen und Zuweisen von Rollen zu Benutzern finden Sie unter Using the Solaris Management Tools With RBAC (Task Map) in System Administration Guide: Basic Administration.

  2. Halten Sie die zu migrierende Zone an. In diesem Beispiel ist das my-zone.


    host1# zoneadm -z my-zone halt
    
  3. Trennen Sie die Zone.


    host1# zoneadm -z my-zone detach
    

    Die getrennte Zone befindet sich jetzt in Status „configured“.

  4. Verschieben Sie den zonepath für my-zone auf den neuen Host.

    Weitere Informationen finden Sie unter So verschieben Sie den zonepath auf einen neuen Host.

  5. Konfigurieren Sie die Zone auf dem neuen Host.


    host2# zonecfg -z my-zone
    

    Die folgende Systemmeldung wird angezeigt:


    my-zone: No such zone configured
    Use 'create' to begin configuring a new zone.
  6. Geben Sie den Befehl zonecfg mit der Option -a und dem zonepath auf dem neuen Host ein, um die Zone my-zone auf dem neuen Host zu erstellen.


    zonecfg:my-zone> create -a /export/zones/my-zone
    
  7. (Optional) Zeigen Sie die Konfiguration an.


    zonecfg:my-zone> info
    zonename: my-zone
    zonepath: /export/zones/my-zone
    autoboot: false
    pool:
    inherit-pkg-dir:
             dir: /lib
    inherit-pkg-dir:
             dir: /platform
    inherit-pkg-dir:
             dir: /sbin
    inherit-pkg-dir:
             dir: /usr
    net:
             address: 192.168.0.90
             physical: bge0
  8. Nehmen Sie ggf. erforderliche Änderungen an der Konfiguration vor.

    Beispielsweise könnte das reelle Netzwerkgerät auf dem neuen Host anders sein, oder in der Konfiguration vorhandene Geräte haben andere Namen auf dem neuen Host.


    zonecfg:my-zone> select net physical=bge0
    zonecfg:my-zone:net> set physical=e1000g0
    zonecfg:my-zone:net> end
    
  9. Übernehmen Sie die Konfiguration und beenden Sie.


    zonecfg:my-zone> commit
    zonecfg:my-zone> exit
    
  10. Hängen·Sie unter Verwendung eines der folgenden Verfahren die Zone an den neuen Host an.

    • Hängen Sie die Zone mit einer Validierungsprüfung an.


      host2# zoneadm -z my-zone attach
      

      Wenn eine oder beide der folgenden Bedingungen zutreffen, wird der Systemadministrator über die erforderlichen Maßnahmen informiert:

      • Erforderliche Pakete und Patches sind nicht auf dem neuen Computer vorhanden.

      • Die Software-Level der beiden Computer weichen voneinander ab.

    • Solaris 10/08: Hängen Sie die Zone mit einer Validierungsprüfung an und aktualisieren Sie die Zone zur Übereinstimmung mit einem Host, auf dem spätere Versionen abhängiger Pakete installiert sind bzw. der eine andere Rechnerklasse hat.


      host2# zoneadm -z my-zone attach -u
      

      Tipp –

      Solaris 10 10/08: Wenn auf dem Ausgangssystem eine ältere Solaris-Version installiert ist, kann es sein, dass beim Aushängen der Zone eine fehlerhafte Paketliste erstellt wird. Um sicherzustellen, dass auf dem Zielsystem die akkurate Paketliste generiert wird, können Sie die Datei SUNWdetached.xml aus dem zonepath entfernen. Durch das Entfernen dieser Datei wird vom Zielsystem eine neue Paketliste erstellt.

      Dies ist ab Solaris 10 5/09 nicht mehr nötig.


    • Solaris 10 9/10: Hängen Sie die Zone mit einer Validierungsprüfung an und aktualisieren Sie alle Pakete für die Zone, sodass sie Paketen einer neu auf diesem Host installierten nicht-globalen Zone entsprechen. Alle Pakete, die in dieser Zone, jedoch nicht in der globalen Zone installiert sind, werden ignoriert und nicht verändert.


      host2# zoneadm -z my-zone attach -U
      
    • Solaris 10 5/09 und höher: Verwenden Sie die Option -b, um bestimmte offizielle oder IDR-Patches während des Anhängens zurückzunehmen.


      host2# zoneadm -z my-zone attach -u -b IDR246802-01 -b 123456-08
      

      Beachten Sie, dass Sie die Option -b unabhängig von der Option -u oder - U verwenden können

    • Erzwingen Sie das Anhängen, ohne eine Überprüfung durchzuführen.


      host2# zoneadm -z my-zone attach -F
      

      Achtung – Achtung –

      Mit der Option -F können Sie den Befehl attach erzwingen, ohne dass eine Überprüfung durchgeführt wird. Dies bietet sich in bestimmten Fällen wie z. B. in einer Cluster-Umgebung oder beim Erstellen von Sicherungskopien bzw. dem Wiederherstellen aus einer Sicherungskopie an, setzt aber voraus, dass das System ordnungsgemäß konfiguriert ist, um als Host für eine Zone zu fungieren. Bei einer falschen Konfiguration könnte sich ein unerwartetes Verhalten einstellen.


ProcedureSo verschieben Sie den zonepath auf einen neuen Host

Es gibt verschiedene Möglichkeiten, ein Archiv eines zonepath zu erstellen. Sie können beispielsweise die Befehle cpio oder pax verwenden, die in den Manpages cpio(1) und pax(1) beschrieben sind.

Auch für das Übertragen des Archivs auf dem neuen Host stehen verschiedene Möglichkeiten zur Verfügung. Der zur Übertragung des zonepath vom Quellhost zum Ziel hängt von der lokalen Konfiguration ab. In einigen Fällen, z. B. bei einem SAN, können die Daten im zonepath nicht tatsächlich verschoben werden. Ein SAN kann jedoch auf einfache Weise neu konfiguriert werden, so dass der zonepath auf dem neuen Host angezeigt wird. In anderen Fällen kann der zonepath auf ein Band geschrieben sein, und das Band wird an den neuen Standort gesendet.

Aus diesen Gründen ist dieser Schritt nicht automatisiert. Der Systemadministrator muss die am besten geeignete Methode zum Verschieben des zonepath auf den neuen Host auswählen.

  1. Melden Sie sich als Superuser an oder nehmen Sie die Rolle des Primäradministrators an.

    Informationen zum Erstellen von Rollen und Zuweisen von Rollen zu Benutzern finden Sie unter Using the Solaris Management Tools With RBAC (Task Map) in System Administration Guide: Basic Administration.

  2. Verschieben Sie den zonepath auf den neuen Host. Sie können die in diesem Verfahren beschriebene Methode oder eine andere Methode Ihrer Wahl verwenden.


Beispiel 23–1 Archivieren und Verschieben des zonepath mit dem Befehl tar

  1. Erstellen Sie eine tar-Datei des zonepath auf host1 und übertragen Sie sie mit dem Befehl sftp an host2.


    host1# cd /export/zones
    host1# tar cf my-zone.tar my-zone
    host1# sftp host2
    Connecting to host2...
    Password:
    sftp> cd /export/zones
    sftp> put my-zone.tar
    Uploading my-zone.tar to /export/zones/my-zone.tar
    sftp> quit
    
  2. Entpacken Sie die tar-Datei auf host2.


    host2# cd /export/zones
    host2# tar xf my-zone.tar
    

Weitere Informationen finden Sie in sftp(1) und tar(1).


Allgemeine Fehler

Informationen zu den folgenden Problemen finden Sie unter Auflösen von Problemen bei einem zoneadm attach-Vorgang:

Nächste Schritte

Wenn ein SAN nicht neu konfiguriert, sondern die Daten kopiert haben, sind die zonepath-Daten noch immer auf den Quellhost sichtbar, obwohl sich die Zone jetzt im Status „configured“ befindet. Sie können entweder den zonepath manuell vom Quellhost entfernen, nachdem Sie die Daten auf den neuen Host verschoben haben, oder Sie fügen die Zone erneut auf dem Quellhost ein und verwenden den Befehl zoneadm uninstall, um den zonepath zu entfernen.

Solaris 10 5/08: Informationen zum Testen einer Zonenmigration vor dem eigentlichen Ausführen der Migration

Mithilfe der Option „no execute“ (-n) können Sie vor dem Verschieben einer Zone auf einen neuen Rechner die Migration testen.

Mit dem Unterbefehl zoneadm detach der Option -n können Sie ein Manifest auf einer laufenden Zone generieren, ohne sie abtrennen zu müssen. Der Status der Zone auf dem Ursprungssystem bleibt unverändert. Das Zonenmanifest wird auf stdout ausgegeben. Der globale Administrator kann diese Ausgabe in einer Datei umleiten oder mithilfe einer Pipe mit einem Befehl auf dem Zielsystem verknüpfen, damit sie dort validiert werden kann. Der Unterbefehl zoneadm attach kann dann mit der Option -n dieses Manifest lesen und überprüfen, ob die Konfiguration des Zielsystems für die Zone geeignet ist, ohne die Zone dafür wirklich anzuschließen.

Die Zone auf dem Zielsystem muss vor dem Durchführen des testweisen Anschließens nicht auf dem neuen Host konfiguriert werden.

ProcedureSolaris 10 5/08: So testen Sie eine Zonenmigration vor dem eigentlichen Ausführen der Migration

Für dieses Verfahren müssen Sie als globaler Administrator bei der globalen Zone angemeldet sein.

  1. Melden Sie sich als Superuser an oder nehmen Sie die Rolle des Primäradministrators an.

    Informationen zum Erstellen von Rollen und Zuweisen von Rollen zu Benutzern finden Sie unter Using the Solaris Management Tools With RBAC (Task Map) in System Administration Guide: Basic Administration.

  2. Verwenden Sie eine der folgenden Methoden:

    • Erstellen Sie das Manifest auf dem Ausgangs-Host für my-zone und verknüpfen Sie diese Ausgabe mithilfe einer Pipe mit einem Befehl auf dem Zielsystem, das den Ziel-Host sofort validiert:


      global# zoneadm -z my-zone detach -n | ssh remotehost zoneadm attach -n -
      

      Der Bindestrich () am Ende der Zeile gibt stdin als Pfad an.

      Mit stdout wird die Validierung auf dem Bildschirm des Ausgangs-Hosts ausgegeben.

    • Erstellen Sie das Manifest auf dem Ausgangs-Host für my-zone und leiten Sie die Ausgabe in eine Datei um:


      global# zoneadm -z my-zone detach -n > filename
      

      Kopieren Sie das Manifest auf das neue Hostsystem (siehe So verschieben Sie den zonepath auf einen neuen Host) und führen Sie die Validierung durch:


      global# zoneadm attach -n path_to_manifest
      

      Mithilfe des Bindestrichs () kann stdin als Pfad angegeben werden.

So migrieren Sie eine Zone von einem unbrauchbaren Computer

Ein Computer, der als Host für eine native Solaris-Zone fungiert, kann unbrauchbar werden. Solange jedoch die Speicherung der Zonen bestehen bleibt (z. B. ein SAN), kann eine Zone noch erfolgreich zu einem neuen Host migriert werden. Sie können den zonepath der Zone auf den neuen Host verschieben. In einigen Fällen, z. B. bei einem SAN, können die Daten im zonepath nicht tatsächlich verschoben werden. Ein SAN kann jedoch auf einfache Weise neu konfiguriert werden, so dass der zonepath auf dem neuen Host angezeigt wird. Da die Zone nicht ordnungsgemäß getrennt wurde, müssen Sie die Zone zunächst auf den neuen Host erstellen. Dazu verwenden Sie den Befehl zonecfg. Anschließend fügen Sie die Zone auf dem neuen Host ein. Obwohl der neue Host melden wird, dass die Zone nicht ordnungsgemäß getrennt wurde, wird das System die Zone erfolgreich einfügen.

Das Verfahren für diese Tast ist in den Schritten 4 bis 8 unter So migrieren Sie eine nicht-globalen Zone beschrieben. Lesen Sie auch So verschieben Sie den zonepath auf einen neuen Host.

Verwenden von "Aktualisieren während des Anhängens" als Patching-Lösung

Das zum Migrieren von Zonen zu einem anderen System entwickelte Verfahren "Aktualisieren während des Anhängens" kann auch zum Patchen von Zonen verwendet werden. Dadurch ist die globale Zone schneller verfügbar. Der Systemadministrator kann dann bestimmen, welche Zonen zuerst aktualisiert werden, damit diese Zonen verfügbar sind, bevor andere, weniger kritische Zonen aktualisiert und gestartet werden.

Mit dem folgenden Verfahren werden alle Patches aktualisiert, sodass die Zone einer neu auf dem System installierten Zone gleicht:

  1. Vor dem Anwenden eines Patch Bundles auf die globale Zone müssen Sie alle nicht-globalen Zonen abtrennen.

  2. Wenden Sie das Patch Bundle auf die globale Zone an.

  3. Nach Anwenden des Bundles und Neustart des Systems verwenden Sie den Befehl zoneadm attach mit der Option -U, um die nicht-globalen Zonen auf die gleiche Patch-Ebene wie die globale Zone zu bringen.

Alle Pakete, die in dieser Zone, jedoch nicht in der globalen Zone installiert sind, werden ignoriert und sind nicht betroffen.

Zum schnellen Patching unter Verwendung des Dienstprogramms patchadd lesen Sie Solaris 10 10/09: Paralleles Patchen von Zonen zur Reduzierung der für das Patchen erforderlichen Zeit.