Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Hauptspeicher rekonfigurieren

&pagelevel(4)&pagelevel

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 /START-VM, /RESET-VM oder /DELETE-VM sollte auf SU x86 vermieden werden.
Grund: die Rekonfiguration wird nur in BS2000 abgebrochen, aber in der Firmware und im Trägersystem trotzdem fortgesetzt. Ein BS2000-IPL bei /START-VM wird ggf. solange verzögert bis die Rekonfiguration im Trägersystem beendet ist.

 

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 (MAX-MEMORY-SIZE) vergrößert werden.

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 MIN-MEMORY-SIZE der betreffenden VM nur dann unterschreiten, wenn sich die VM im Zustand INIT-ONLY oder DOWN befindet. Der Wert der MIN-MEMORY-SIZE der VM erhält in diesem Fall den Wert von NEW-MEMORY-SIZE.

Auf SU x86 darf die neue Größe des Hauptspeichers die MIN-MEMORY-SIZE der betreffenden VM nicht unterschreiten.

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).

Wird der Hauptspeicher einer VM verkleinert, muss die Last des Gastsystems entsprechend reduziert werden.

 

Ü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):

  • $S  : Hauptspeicher-Rekonfiguration gestartet (Started)

  • $R  : Hauptspeicher-Rekonfiguration läuft (Running)

  • $T  : Hauptspeicher-Rekonfiguration erfolgreich beendet (Terminated)

  • $AE : Hauptspeicher-Rekonfiguration mit Fehlern abgebrochen (z.B. wegen Abbruch
              der laufenden Hauptspeicher-Rekonfiguration, siehe oben)

  • $AF : Hauptspeicher-Rekonfiguration konnte nicht eingeleitet werden

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 V (VM2000)

18-20

Aktuelle Systemlaufnummer (<integer 1..999>)

21-36

Beginn der Überwachung (Öffnen der MONJV)
in UTC-Zeit (Format: yyyy-mm-ddhhmmss)

37-70

Reserviert

71-78

Name der VM (<name 1..8>, nicht für Zustand $S und $AF)

79-81

Index der VM abdruckbar (<name 3..3>, z.B. 002)

82-86

Speichergröße der VM in MByte (<integer 1..32767>, für $AE) 1

87-91

Minimale Speichergröße der VM in MByte (<integer 1..32767>, für $AE) 1

92-96

Vom Gastsystem genutzte Speichergröße in MByte (<integer 1..32767>, für $AE) 1

97-106

Speichergröße der VM in MByte (<integer 1..1048576>, für $AE)

107-116

Minimale Speichergröße der VM in MByte (<integer 1..1048576>, für $AE)

117-126

Vom Gastsystem genutzte Speichergröße in MByte (<integer 1..1048576>, für $AE)

127-128

Reserviert

129-256

Reserviert für Benutzer

1   Angabe der Speichergröße modulo 100 000. Die vollständigen Werte werden ab Byte 97 ausgegeben.


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