Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Anzahl zugeschalteter realer und virtueller CPUs im CPU-Pool

&pagelevel(5)&pagelevel

Jeder CPU-Pool muss aus Verfügbarkeitsgründen mindestens eine zugeschaltete reale CPU besitzen, wenn wenigstens eine der folgenden Bedingungen zutrifft:

  • Dem CPU-Pool ist eine VM im Zustand RUNNING, SETUP(MIGR) oder IN HOLD (WAIT) zugeordnet.

  • Dem CPU-Pool ist eine VM im Zustand INIT-ONLY oder DOWN zugeordnet (SU x86).

Die Anzahl zugeschalteter virtueller CPUs einer VM im Zustand RUNNING oder IN HOLD (WAIT) sollte kleiner oder gleich sein der Anzahl zugeschalteter realer CPUs des CPU-Pools, dem die VM zugeordnet ist.

Dieser Grundsatz garantiert den optimalen Ablauf eines Gastsystems, d.h. Leistungsverluste (z.B. durch Scheduling oder Prozessor-Locks) werden vermieden.

Wenn der Grundsatz für eine VM im Zustand RUNNING oder IN HOLD (WAIT) nicht mehr erfüllt wird („überdimensionierte VM“), dann läuft die VM mit einem zu hohen Multiprozessorgrad und den sich ergebenden Nachteilen trotzdem weiter.


Verringert sich die Anzahl zugeschalteter realer CPUs eines CPU-Pools, so garantiert VM2000 in den meisten Fällen die Einhaltung dieses Grundsatzes. In gewissen Fällen (im Folgenden fett gekennzeichnet) sollte der VM2000-Administrator in Zusammenarbeit mit dem Gastsystem-Operator auf die Einhaltung dieses Grundsatzes achten.

Folgende Fälle können auftreten:

  • Einem CPU-Pool werden zugeschaltete reale CPUs entzogen (/SWITCH-VM-CPU):

    • Das Kommando wird abgewiesen, wenn die letzte zugeschaltete reale CPU entzogen werden soll, dem CPU-Pool aber noch eine VM im Zustand RUNNING, SETUP(MIGR) oder IN HOLD (WAIT) bzw., auf SU x86, auch im Zustand INIT-ONLY oder DOWN zugeordnet ist (Meldung/Returncode VMS4612).

    • Sonst wird für alle VMs, die dem CPU-Pool zugeordnet sind, geprüft, ob obiger Grundsatz nach Kommandoausführung noch eingehalten werden kann. Nötigenfalls wird, abhängig vom Parameter ATTACHED-VM-CPUS=*ACTIONS(SOURCE-CPU-POOL=...), das Kommando abgewiesen (SOURCE-CPU-POOL=*CHECK-NUMBER) oder ausgeführt (SOURCE-CPU-POOL=*ADJUST-NUMBER).

    • Bei SOURCE-CPU-POOL=*ADJUST-NUMBER prüft VM2000 den Zustand der virtuellen CPUs aller VMs des Ausgangs-CPU-Pools und leitet ggf. Rekonfigurationskommandos für entsprechend viele virtuelle CPUs im Gastsystem ein.

  • Eine VM wird mit /START-VM gestartet:

    Wenn der Multiprozessorgrad m der VM größer als die Anzahl n zugeschalteter realer CPUs des CPU-Pools ist, dann werden beim Startup des Gastsystems nur n virtuelle CPUs zugeschaltet. Die übrigen m - n CPUs werden von VM2000 entsprechend gekennzeichnet (Zustand BLOCK). Sie können nachträglich im Gastsystem erst dann wieder zugeschaltet werden, wenn dem CPU-Pool weitere zugeschaltete reale CPUs zugeordnet werden.

  • Eine VM (Zustand RUNNING oder IN HOLD (WAIT) oder VM-Gruppe (mit VMs im Zustand RUNNING oder IN HOLD (WAIT)) wird einem anderen CPU-Pool zugeordnet (/ASSIGN-VM-(GROUP-)TO-CPU-POOL):

    Wenn der Grundsatz im neuen CPU-Pool nicht erfüllt wird, dann entscheidet der Operand ATTACHED-VM-CPUS über das weitere Vorgehen:

    • Bei ATTACHED-VM-CPUS=*CHECK-NUMBER wird das Kommando abgewiesen.

    • Bei ATTACHED-VM-CPUS=*ADJUST-NUMBER wird das Kommando ausgeführt, wenn der CPU-Pool, dem die VM oder VM-Gruppe zugeordnet werden soll, wenigstens eine zugeschaltete CPU enthält. Die VM oder VM-Gruppe wird dem neuen CPU-Pool zugeordnet. Zusätzlich versucht VM2000 die überzähligen virtuellen CPUs wegzuschalten (asynchrones, implizites /DETACH-DEVICE im Gastsystem für entsprechend viele virtuelle CPUs). Diese weggeschalteten CPUs können zunächst vom Gastsystem nicht wieder zugeschaltet werden, sie werden von VM2000 entsprechend gekennzeichnet.
      (Status der virtuellen CPU in den Informationskommandos von VM2000: BLOCK).

  • Eine VM im Zustand RUNNING wird migriert und der CPU-Pool auf der Ziel-SU hat weniger zugeschaltete reale CPUs als der CPU-Pool auf der Quell-SU (/MIGRATE-VM):

    Wenn der Grundsatz im neuen CPU-Pool nicht erfüllt wird, dann wird das Kommando ausgeführt, wenn der CPU-Pool, dem die migrierte VM zugeordnet werden soll, wenigstens eine zugeschaltete CPU enthält. Zusätzlich versucht VM2000 die überzähligen virtuellen CPUs wegzuschalten (asynchrones, implizites /DETACH-DEVICE im Gastsystem für entsprechend viele virtuelle CPUs). Diese weggeschalteten CPUs können zunächst vom Gastsystem nicht wieder zugeschaltet werden. Sie werden von VM2000 entsprechend gekennzeichnet.
    (Status der virtuellen CPU in den Informationskommandos von VM2000: BLOCK).

  • Eine reale CPU wird weggeschaltet (/DETACH-VM-RESOURCES):

    VM2000 verhindert das Wegschalten der letzten zugeschalteten realen CPU eines CPU-Pools in folgenden Fällen:

    wenn dem CPU-Pool eine VM mit aktivem Gastsystem zugeordnet ist (Meldung/Returncode VMS4617)

    wenn dem CPU-Pool noch eine VM zugeordnet ist

    Wenn der Grundsatz für eine VM im Zustand RUNNING oder IN HOLD(WAIT) nicht mehr erfüllt wird, dann läuft die VM mit einem zu hohen Multiprozessorgrad trotzdem weiter („überdimensionierte VM“). Der Multiprozessorgrad sollte im Gastsystem nötigenfalls durch Wegschalten einer virtuellen CPU mit /DETACH-DEVICE verringert werden. Eine so weggeschaltete virtuelle CPU erhält dann den Zustand BLOCK und kann erst dann wieder zugeschaltet werden, wenn sich auch die Anzahl zugeschalteter realer CPUs im CPU-Pool wieder erhöht hat.

  • Eine reale CPU fällt aus (SU /390) und kann nicht durch eine „Hot Spare-CPU“ ersetzt werden:

    Wenn es noch weitere zugeschaltete reale CPUs im CPU-Pool gibt, dann ist die Vorgehensweise identisch zum Vorgehen im vorherigen Punkt „Eine reale CPU wird weggeschaltet".

    Wenn die letzte zugeschaltete reale CPU eines CPU-Pools ausfällt, dann leitet VM2000 folgende Recovery-Maßnahme ein um die Ablauffähigkeit der betroffenen VMs und VM-Gruppen zu sichern:

    • bei einem CPU-Pool ungleich dem Standard-CPU-Pool werden die betroffenen VMs und VM-Gruppen dem Standard-CPU-Pool zugeordnet

    • war der Standard-CPU-Pool selbst betroffen, so wird die zugeschaltete reale CPU mit der höchsten CPU-ID dem Standard-CPU-Pool zugeordnet. Ist diese CPU ihrerseits die letzte zugeschaltete reale CPU eines CPU-Pools, so werden auch die davon betroffenen VMs und VM-Gruppen dem Standard-CPU-Pool zugeordnet.

    Die CPU-Anteile der VMs werden dementsprechend neu berechnet.

 

Vergrößert sich die Anzahl zugeschalteter realer CPUs eines CPU-Pools, so bleibt der Grundsatz stets erfüllt. Trotzdem sollte der VM2000-Administrator Folgendes beachten:

  • Zugeschaltete reale CPUs werden dem CPU-Pool zugeordnet (/SWITCH-VM-CPU)

    Für alle VMs des Ziel-CPU-Pools, deren Anzahl zugeschalteter virtueller CPUs kleiner ist als ihr Multiprozessorgrad, hebt VM2000 den Zustand BLOCK für die entsprechende Anzahl virtueller CPUs der VM auf. Die virtuelle CPU kann dann im Gastsystem mit /ATTACH-DEVICE wieder zugeschaltet werden.

    Über die impliziten Aktionen von VM2000 für die virtuellen CPUs der VMs, die dem Ziel-CPU-Pool zugeordnet sind, entscheidet der Operand ATTACHED-VM-CPUS:

    • Bei ATTACHED-VM-CPUS=*ACTIONS(TARGET-CPU-POOL=*NONE) werden keine weiteren impliziten Aktionen ausgeführt. Die Anzahl der zugeschalteten virtuellen CPUs der VMs bleibt unverändert.

    • Bei ATTACHED-VM-CPUS=*ACTIONS(TARGET-CPU-POOL=*ADJUST-NUMBER) prüft VM2000 den Zustand der virtuellen CPUs aller VMs des Ziel-CPU-Pools und leitet ggf. Rekonfigurationskommandos für entsprechend viele virtuelle CPUs im Gastsystem ein.

  • reale CPUs werden zugeschaltet (/ATTACH-VM-RESOURCES):

    Für alle VMs des betroffenen CPU-Pools, deren Anzahl zugeschalteter virtueller CPUs kleiner ist als ihr Multiprozessorgrad, hebt VM2000 den Zustand BLOCK für die entsprechende Anzahl virtueller CPUs der VM auf. Eine weggeschaltete virtuelle CPU kann im Gastsystem mit /ATTACH-DEVICE wieder zugeschaltet werden.

  • Eine VM (Zustand RUNNING oder IN HOLD (WAIT) oder VM-Gruppe (mit VMs im Zustand RUNNING oder IN HOLD (WAIT)) wird einem CPU-Pool zugeordnet, der mehr zugeschaltete reale CPUs besitzt als der bisherige CPU-Pool (/ASSIGN-VM-(GROUP-)TO-CPU-POOL):

    Das Kommando wird ausgeführt. Wenn der Multiprozessorgrad einer VM größer ist als die Anzahl zugeschalteter virtueller CPUs, dann wird der Zustand BLOCK für entsprechend viele CPUs aufgehoben. Über Folgeaktionen entscheidet der Operand ATTACHED-VM-CPUS:

    • ATTACHED-VM-CPUS=*CHECK-NUMBER führt zu keinen weiteren Aktionen.

    • Bei ATTACHED-VM-CPUS=*ADJUST-NUMBER versucht VM2000 die entsprechende Anzahl virtueller CPUs zuzuschalten (asynchrones, implizites /ATTACH-DEVICE im Gastsystem für entsprechend viele virtuelle CPUs).

  • Eine VM im Zustand RUNNING wird migriert und der CPU-Pool auf der Ziel-SU hat mehr zugeschaltete reale CPUs als der CPU-Pool auf der Quell-SU (/MIGRATE-VM):

    Das Kommando wird ausgeführt. Wenn der Multiprozessorgrad einer VM größer ist als die Anzahl zugeschalteter virtueller CPUs, dann wird der Zustand BLOCK für entsprechend viele CPUs aufgehoben. Zusätzlich versucht VM2000 die virtuellen CPUs, die im Zustand BLOCK waren, zuzuschalten (asynchrones, implizites /ATTACH-DEVICE im Gastsystem für diese virtuellen CPUs).