X

Neuigkeiten, Best Practices, Hinweise auf Events zu Oracle Solaris auf Deutsch.

Evakuierung von Hosts

Detlef Drewanz
Master Principal Sales Consultant

Eine weitere neue nützliche Funktionalität in Oracle Solaris 11.4Beta ist die Möglichkeit der Evakuierung von Hosts. Jan hat in seinem Blog darüber bereits ausführlich berichtet.

Als Ergänzung zu meinem Blog über die kalte Migration von Solaris Native Zones, möchte ich hier ein Beispiel für die Evakuierung von Hosts mit Native Zones ergänzen. Die Evakuierung soll nicht vom root Benutzer angestoßen werden, sondern von migrater.

Für die Evakuierung wird das Kommando sysadm benutzt. Zunächst kündigt man mit sysadm maintain dem Host eine anstehende Wartungsarbeit an. Danach können auf dem Host keine Zonen mehr attached, gebootet oder hin-migriert werden und geplante Wartungsarbeiten können durchgeführt werden. Dieser Maintenance-Zustand bleibt auch nach einem Reboot erhalten. Nach erfolgter Arbeit setzt man den Zustand des Systems mit sysadm maintain wieder zurück.

Die Maintenance und Evakuierung will ich auch hier - wie oben bereits erwähnt - als Benutzer migrater anstoßen. Um ein System in den Maintenance Zustand zu versetzen, benötige ich für den Benutzer noch das Profile "Maintenance and Repair". Das reicht jedoch für eine Evakuierung noch nicht aus. Dafür benötigt der Benutzer noch das Profile "Zone Migration" und den Authorizer "solaris.zone.migrate" - nicht eingeschränkt auf bestimmte Zonen, da bei einer Evakuierung alle oder keine Zonen evakuiert werden.

root@s11bk:~# usermod -P +"Maintenance and Repair" migrater
root@s11bk:~# usermod -P +"Zone Migration" \
                      -A +"solaris.zone.migrate" migrater

migrater@s11bk:~$ sysadm maintain -s -m "Test für Solarium Blog"
migrater@s11bk:~$ sysadm maintain -l
TYPE  USER       DATE             MESSAGE
admin migrater   2018-02-11 17:59 Test für Solarium Blog

Ein Versuch, jetzt eine Zone auf diesem System (auch als root) zu booten, muß jetzt fehl schlagen.

Bemerkung: Hier sieht man auch noch einmal, was in Oracle Solaris 11.4 beim Booten einer Zone passiert: Eine Zone SMF-Instanz wird aktiviert. Das schlägt hier nun fehl und der Service ist im Zustand "maintenance".

root@s11bk:~# zoneadm -z zone1 boot
zone 'zone1': error: boot prevented due to system maintenance: see sysadm(8)
zoneadm: zone zone1: call to zoneadmd(8) failed: zoneadmd(8) returned an error 5 (operation not allowed in the current zone state)

root@s11bk:~# svcs -x
svc:/system/zones/zone:zone1 (Solaris Zone)
 State: maintenance since February 11, 2018 at 06:22:44 PM CET
Reason: Requested by service method: "failed zoneadm(8) operation."
   See: http://support.oracle.com/msg/SMF-8000-AR
   See: zones(7)
   See: /var/log/zones/zone1.messages
Impact: This service is not running.

Nun könnte man diesen Host evakuieren - d.h. Solaris Native Zones (im Zustand installed) und Solaris Kernel Zones werden kalt bzw. live auf andere Hosts migriert. Dazu muß vorher ein Zielhost festgelegt werden. Dieser Zielhost kann für alle Zonen eines Hosts oder je Zone festgelegt werden. Im Normalfall wird man sicher für jede Zone einen eigenen Targethost festlegen. Ich nehme hier meinen s11bk2 Host.

root@s11bk:~# svccfg -s svc:/system/zones/zone:zone1 \
              setprop evacuation/target = astring: "ssh://s11bk2/"
root@s11bk:~# svcadm refresh zone:zone1

Jetzt können wir die Evakuierung anstoßen. Das -a Flag ist wichtig, um auch die Solaris Native Zones mitzunehmen, ansonsten würden nur die Solaris Kernel Zones migriert werden (davon haben wir hier in diesem Beispiel aber gerade keine ...).

migrater@s11bk:~$ sysadm evacuate -av
sysadm: preparing 1 zone(s) for evacuation ...
sysadm: initializing migration of zone1 to s11bk2 ...
sysadm: evacuating 1 zone(s) ...
sysadm: migrating zone1 to s11bk2 ...
sysadm: evacuation completed successfully.
sysadm: zone1: evacuated to ssh://s11bk2/

migrater@s11bk:~$ zoneadm list -cv
  ID NAME        STATUS      PATH                    BRAND      IP    
   0 global      running     /                       solaris    shared
   - zone1       configured  /system/zones/zone1     solaris    excl  

migrater@s11bk:~$ sysadm evacuate -l
ZONENAME         STATE     DEST                      ERROR
zone1            EVACUATED ssh://s11bk2/             -

Nach erfolgter Maintenance Aufgabe, setzt man den Zustand des Systems zurück und kann nun die evakuierten Zonen wieder zurückholen. Da das System sich "gemerkt" hat, wohin welche Zone evakuiert wurde, reicht hier ein Kommando.

migrater@s11bk:~$ sysadm maintain -e
migrater@s11bk:~$ sysadm evacuate -arv
sysadm: preparing 1 zone(s) for return ...
sysadm: initializing return of zone1
sysadm: returning 1 zone(s) ...
sysadm: migrating zone1
sysadm: return completed successfully.
sysadm: zone1: returned

migrater@s11bk:~$ zoneadm list -cv
  ID NAME        STATUS      PATH                    BRAND      IP    
   0 global      running     /                       solaris    shared
   - zone1       installed   /system/zones/zone1     solaris    excl 

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.