Unter VM2000 kann der Hauptspeicher einer VM und des Gastsystems durch den VM2000-Administrator im laufenden Betrieb vergrößert und verkleinert werden (dynamische Hauptspeicher-Rekonfiguration), um in einem unterbrechungsfreien Systembetrieb flexibel auf Last- oder Aufgabenänderungen reagieren zu können.
Beispiel
Vergrößerung des Hauptspeichers einer Reserve-VM zur Lastübernahme eines ausgefallenen Produktiv-Systems.
Die dynamische Hauptspeicher-Rekonfiguration erfordert Maßnahmen im Gastsystem (falls es aktiv ist), in der Firmware-Komponente der VM (SU x86) und in VM2000. Sie kann auch für das Monitorsystem durchgeführt werden.
Beim Initialisieren der VM wird mit dem Operanden MEMORY-SIZE
die Größe des Hauptspeichers der VM festgelegt. Mit den Operanden MIN-MEMORY-SIZE
kann der Minimalwert und mit MAX-MEMORY-SIZE
(SU x86) der Maximalwert für die Hauptspeichergröße bei späterer Größenänderung des Hauptspeichers der VM festgelegt werden. Der VM2000-Administrator muss darauf achten, dass die für den Betrieb des Gastsystems mindestens benötigte Hauptspeichergröße nicht unterschritten wird (siehe "Initialisieren einer VM").
Hauptspeicher-Rekonfiguration ist stets möglich für inaktive Gastsysteme (Zustand INIT-ONLY oder DOWN). Für aktive Gastsysteme (VM-Zustand RUNNING) ist eine Hauptspeicher-Rekonfiguration erst nach SYSTEM READY
des Gastsystems möglich. Für VMs im Zustand IN HOLD (WAIT) oder ...(MIGR) ist eine Hauptspeicher-Rekonfiguration nicht möglich.
Während der Bearbeitung eines Kommandos zur Hauptspeicher-Rekonfiguration wird ein weiteres /EXTEND-
VM-MEMORY
oder /REDUCE-VM-MEMORY
für die gleiche VM abgewiesen.
Informationen über die aktuelle, minimale und maximale Größe des Hauptspeichers der VM sowie die geplante Hauptspeichergröße während der Hauptspeicher-Rekonfiguration liefern /SHOW-VM-ATTRIBUTES
und /SHOW-VM-RESOURCES INFORMATION=*MEMORY/*ALL
.
Da die dynamische Hauptspeicher-Rekonfiguration Maßnahmen im Gastsystem, in der Firmware-Komponente (SU x86) und in VM2000 erfordert, benötigt ihre Ausführung etwas Zeit. Während ihrer Ausführung können die Kommandos /MOVE-VM
(SU /390) und /START-VM
ausgeführt werden. Als Hauptspeichergröße der betreffenden VM wird bei /EXTEND-VM-MEMORY
die neue Hauptspeichergröße, bei /REDUCE-VM-MEMORY
die alte Hauptspeichergröße verwendet. Das Gleiche gilt bei einem Restart des Gastsystems.
Die dynamische Hauptspeicher-Rekonfiguration kann mit einer Monitor-Jobvariablen überwacht werden (siehe Abschnitt "Überwachen einer Hauptspeicher-Rekonfiguration mit Jobvariablen (MONJV)"). Der Abschluss eines Rekonfigurationsauftrages wird mit der Meldung VMS4094
(erfolgreich) bzw. VMS4095
(nur teilweise erfolgreich oder erfolglos) allen VM2000-Administratoren als freilaufende Meldung und über Routing-Code „9“ den berechtigten BS2000-Konsolen oder Anwendungen übermittelt. Siehe auch "Automatisieren der VM2000- und VM-Administration".
Abbruch einer laufenden Hauptspeicher-Rekonfiguration
Eine laufende Hauptspeicher-Rekonfiguration wird beendet durch
SETS oder Shutdown des Gastsystems
Abbrechen des Gastsystems mit
/RESET-VM
Beenden der VM mit
/DELETE-VM
erneutes Starten der VM mit
/START-VM ...,CHECK-VM-STATE=*NO
In allen Fällen wird der VM2000-Administrator mit der Meldung VMS4095
über den Abbruch informiert. Diese Meldung wird im Monitorsystem auch über den Routingcode „9“ verteilt, siehe auch "Automatisieren der VM2000- und VM-Administration".
Bei einer Hauptspeicher-Erweiterung wird in allen Fällen ein Abrechnungssatz für die VM geschrieben.
Der Abbruch einer Hauptspeicher-Rekonfiguration durch |
Hauptspeicher vergrößern
Der Hauptspeicher einer VM kann mit /EXTEND-VM-MEMORY
vergrößert werden. Dabei kann auch die minimale Hauptspeichergröße der VM vergrößert werden.
Auf SU x86 ist das Anfordern und die Zuteilung von Hauptspeicher keine atomare Aktion, sondern erfolgt in mehreren Schritten. Tritt dabei ein Fehler auf oder werden maximale Wartezeiten überschritten, dann wird der Hauptspeicher der VM nur bis zu der Größe erweitert, die zum Fehlerzeitpunkt zugeteilt worden war. Der Hauptspeicher einer VM kann nur bis zur maximalen Hauptspeichergröße ( |
Die Bearbeitung des Kommandos umfasst zunächst Aktionen von VM2000 und in der Firmware-Komponente der VM (SU x86), dann auch Aktionen des Gastsystems (Hauptspeicher-Erweiterung im Gastsystem).
Hauptspeicher verkleinern
Der Hauptspeicher einer VM kann mit /REDUCE-VM-MEMORY
bis zur minimalen Hauptspeichergröße der VM verkleinert werden.
Auf SU /390 darf die neue Größe des Hauptspeichers die | |
Auf SU x86 darf die neue Größe des Hauptspeichers die |
Die Bearbeitung des Kommandos umfasst zunächst Aktionen des Gastsystems (Hauptspeicher-Reduktion im Gastsystem), dann auch Aktionen von VM2000 und in der Firmware-Komponente der VM (SU x86).
Überwachen einer Hauptspeicher-Rekonfiguration mit Jobvariablen (MONJV)
Bei der Einleitung der Hauptspeicher-Rekonfiguration durch den VM2000-Administrator mit /EXTEND-VM-MEMORY
oder /REDUCE-VM-MEMORY
kann dazu eine überwachende Jobvariable (MONJV, monitoring job variable) festgelegt werden.
Der Ablageort und die Gültigkeit der MONJV richten sich nach der Ablaufumgebung des Kommando-Senders. VM2000 verwaltet und aktualisiert die MONJV solange die Hauptspeicher-Rekonfiguration läuft. Durch geeignete Prozeduren kann die VM2000-Administration automatisch auf die in der MONJV abgelegten Informationen reagieren und so die VM2000-Administration erleichtern.
Allgemeines zu Jobvariablen unter VM2000 finden Sie im Abschnitt "Überwachen einer VM mit Jobvariablen (MONJV)".
MONJVs können auch zur Überwachung einer VM und bei einer VM-Migration eingesetzt werden, siehe "Überwachen einer VM mit Jobvariablen (MONJV)" und "Überwachen einer VM-Migration mit Jobvariablen (MONJV)".
Ein Beispiel für den Einsatz der MONJV zur Überwachung einer Hauptspeicher-Rekonfiguration finden Sie unten.
Beginn und Ende der Überwachung
Die MONJV zur Überwachung einer Hauptspeicher-Rekonfiguration wird beim Start der Hauptspeicher-Rekonfiguration mit /EXTEND-VM-MEMORY
oder /REDUCE-VM-MEMORY
durch die Angabe des Operanden MONJV
eingerichtet. Ab diesem Zeitpunkt beginnt die Überwachung der Hauptspeicher-Rekonfiguration, die MONJV wird von VM2000 versorgt.
Existiert bereits eine MONJV mit dem angegebenen Namen, so kann im Operanden JV-PASSWORD
ein Kennwort zur Prüfung der Zugriffsberechtigung angegeben werden.
Die Überwachung endet mit dem regulären Ende oder dem Abbruch der Hauptspeicher-Rekonfiguration. Die MONJV bleibt auch nach dem Ende der Überwachung als Benutzer-Jobvariable ohne MONJV-Schutz erhalten.
Schutz der MONJV
Siehe gleichnamigen Absatz im Abschnitt "Überwachen einer VM mit Jobvariablen (MONJV)".
Ablageort der MONJV
Siehe gleichnamigen Absatz im Abschnitt "Überwachen einer VM mit Jobvariablen (MONJV)".
Werte für die MONJV
Eine MONJV für eine Hauptspeicher-Rekonfiguration besteht aus einem Systemteil (Byte 1-128) und einem Benutzerteil (Byte 129-256).
Während der Hauptspeicher-Rekonfiguration werden von VM2000 in den Systemteil der MONJV zu bestimmten Zeitpunkten festgelegte Werte eingetragen.
Byte | Bedeutung / mögliche Werte |
---|---|
1-3 | Zustand der Überwachung (linksbündig, zweistellige Werte gefolgt mit einem Leerzeichen):
|
4 | Reserviert, enthält den Wert Null (0) |
5-8 | Reserviert, enthält Leerzeichen |
9-12 | Katalogkennung des Home-Pubset des Monitorsystems |
13-16 | Reserviert, enthält Leerzeichen |
17 | Typ der MONJV: Zeichen |
18-20 | Aktuelle Systemlaufnummer ( |
21-36 | Beginn der Überwachung (Öffnen der MONJV) |
37-70 | Reserviert |
71-78 | Name der VM ( |
79-81 | Index der VM abdruckbar ( |
82-86 | Speichergröße der VM in MByte ( |
87-91 | Minimale Speichergröße der VM in MByte ( |
92-96 | Vom Gastsystem genutzte Speichergröße in MByte ( |
97-106 | Speichergröße der VM in MByte ( |
107-116 | Minimale Speichergröße der VM in MByte ( |
117-126 | Vom Gastsystem genutzte Speichergröße in MByte ( |
127-128 | Reserviert |
129-256 | Reserviert für Benutzer |
Anzeige der MONJV
Siehe gleichnamigen Absatz im Abschnitt "Überwachen einer VM mit Jobvariablen (MONJV)".
Verhalten bei abnormaler Systembeendigung im Monitorsystem
Siehe gleichnamigen Absatz im Abschnitt "Überwachen einer VM mit Jobvariablen (MONJV)".
Beispiel
Diese Beispielprozedur zeigt die Überwachung einer Hauptspeicher-Rekonfiguration mit MONJV. Die analoge Beispielprozedur unter Verwendung von PROP-XT finden Sie im Abschnitt "Automatisieren der VM2000- und VM-Administration".
/SET-PROC-OPT /" **************************************************************" /" ** PROZEDUR VMMEM FUER GASTSYSTEME MIT VM-ID=2 UND 3 *******" /" **************************************************************" /" ** DIE PROZEDUR FUEHRT EINE SPEICHERREKONFIGURATION DURCH. " /" ** WESENTLICHE SCHRITTE: " /" ** - VERBINDUNGSAUFBAU ZU VM2000 " /" ** - UEBERPRUEFEN DER AKTUELLEN SPEICHERGROESSE " /" ** - REDUZIEREN DES SPEICHERS DER VM2 " /" ** - ASYNCHRONES ENDE UEBER MONITOR-JV BEHANDELN " /" ** - UEBERPRUEFEN DER AKTUELLEN SPEICHERGROESSE " /" ** - ERWEITERN DES SPEICHERS DER VM3 " /" ** - ASYNCHRONES ENDE UEBER MONITOR-JV BEHANDELN " /" ** - VERBINDUNGSABBAU ZU VM2000 " /" **************************************************************" /" **************************************************************" /DECLARE-VARIABLE NAME=SHVAS(TYPE=STRUCTURE),MULT-E=*LIST /DECLARE-VARIABLE NAME=MIMEMSI(TYP=INT) /DECLARE-VARIABLE NAME=TXT(TYPE=STRING,INIT-VALUE='OK') /DECLARE-VARIABLE NAME=JVRES(TYPE=STRING) /ASSIGN-SYSLST LST.VMMEM /MODIFY-JOB-OPTIONS LOG=*PAR(LIST=Y) /BEGIN-BLOCK /"** VERBINDUNG ZU VM2000 AUFBAUEN " /BEGIN-VM-DIALOG VM-ID=1 /"** SPEICHERGROESSE VORAB ERMITTELN " /EXEC-CMD (SHOW-VM-ATTR VM-ID=2,INF=*MEMORY),STRUCT-OUT=SHVAS /IF (SHVAS#.MIN-MEM-SIZE = '*UNDEF') / TXT = 'AKTUELL KEINE SPEICHERREKONFIGURATION FUR VM-ID=2 MOEGLICH' / GOTO LABEL=ERROR /END-IF /MIMEMSI=INT(SHVAS#.MIN-MEM-SIZE) /IF (SHVAS#.MEM-SIZE = MIMEMSI) / TXT = 'AKTUELLE SPEICHERGROESSE IST MINIMALE SPEICHERGROESSE' / GOTO LABEL=ERROR /END-IF /"** PRUEFE SPEICHER VM-ID=3 " /EXEC-CMD (SHOW-VM-ATTR VM-ID=3,INF=*MEMORY),STRUCT-OUT=SHVAS /IF (SHVAS#.MIN-MEM-SIZE = '*UNDEF') / TXT = 'AKTUELL KEINE SPEICHERREKONFIGURATION FUR VM-ID=3 MOEGLICH' / GOTO LABEL=ERROR /END-IF /"** SPEICHER REDUZIEREN FUER VM-ID=2 " /REDUCE-VM-MEMORY VM-ID=2,NEW-MEM-SIZE=*MINIMUM,MONJV=JV.VMMEM.VM02 /IF-CMD-ERROR / TXT = 'FEHLER BEI REDUCE-VM VM-ID=2' / GOTO LABEL=ERROR /END-IF /"** ES MUSS AUF DAS ENDE DER SPEICHERREKONFIGURATION GEWARTET WERDEN " /WAIT-EVENT *JV(((JV.VMMEM.VM02,1,2) = '$T' OR - / (JV.VMMEM.VM02,1,2) = '$A'),TIME-LIM=300) /IF-CMD-ERROR / TXT = 'FEHLER BEI WAIT FUER REDUCE-VM VM-ID=2' / GOTO LABEL=ERROR /END-IF /JVRES = JV('JV.VMMEM.VM02') /IF (SUBSTRING(JVRES,1,2) = '$A') / TXT = 'REDUCE-VM VM-ID=2 ABNORMAL TERMINIERT' / GOTO LABEL=ERROR /END-IF /"** ERWEITERE VM3 ********" /EXTEND-VM-MEMORY VM-ID=3,NEW-MEM-SIZE=*MAXIMUM,MONJV=JV.VMMEM.VM03 /IF-CMD-ERROR / TXT = 'FEHLER BEI EXTEND-VM VM-ID=3' / GOTO LABEL=ERROR /END-IF /"** ES MUSS AUF DAS ENDE DER SPEICHERREKONFIGURATION GEWARTET WERDEN " /WAIT-EVENT *JV(((JV.VMMEM.VM03,1,2) = '$T' OR - / (JV.VMMEM.VM03,1,2) = '$A'),TIME-LIM=300) /IF-CMD-ERROR / TXT = 'FEHLER BEI WAIT FUER EXTEND-VM VM-ID=3' / GOTO LABEL=ERROR /END-IF /JVRES = JV('JV.VMMEM.VM03') /IF (SUBSTRING(JVRES,1,2) = '$A') / TXT = 'EXTEND-VM VM-ID=3 ABNORMAL TERMINIERT' / GOTO LABEL=ERROR /END-IF /"** NORMALES ENDE" /END-BLOCK /IF-BLOCK-ERROR "BEHANDLUNG UEBRIGE ERROR" / TXT = 'UEBRIGE BLOCK-FEHLER' / GOTO LABEL = ERROR /END-IF /ERROR: /IF (TXT <> 'OK') / SEND-MSG TO=OPER,MSG='*** FEHLER BEI VMMEM: &TXT ***' /END-IF /END-VM-DIALOG 1 "ABMELDEN VON VM2000" /IF-CMD-ERROR; END-IF /DEL-JV JV.VMMEM.VM02 /IF-CMD-ERROR; END-IF /DEL-JV JV.VMMEM.VM03 /IF-CMD-ERROR; END-IF /MOD-JOB-OPTIONS LOG=*PAR(LIST=NO) /ASSIGN-SYSLST *PRIMARY /EXIT-PROC