VM2000 bietet vielfältige Möglichkeiten, die Administration der virtuellen Maschinen und des Gesamtsystems VM2000 zu automatisieren.
Routine-Aufgaben
Wiederkehrende Aufgaben können unter VM2000 automatisiert werden durch:
S-Prozeduren (Software-Produkt SDF-P)
Sie erweitern die Kommandosprache von BS2000 zu einer Programmiersprache. Bei Einsatz unter einer entsprechend privilegierten Benutzerkennung im Monitorsystem können S-Prozeduren BS2000- und VM2000-Kommandos enthalten. Mit dem Privileg OPERATING können auch BS2000-Operatorkommandos enthalten sein.VM2000 unterstützt die Administration über S-Prozeduren durch:
Ein Beispiel für eine S-Prozedur unter VM2000 finden Sie unten. In dieser Prozedur werden Returncodes und SHOW-Ausgaben in S-Variablen verarbeitet.
BS2000-Prozeduren (Nicht-S-Prozeduren)
Sie können durch den VM2000- bzw. VM-Administrator mit dem BS2000-Kommando/CALL-PROCEDURE
oder/ENTER-PROCEDURE
aus einer privilegierten Benutzertask aufgerufen werden, siehe Abschnitt „Bedienen der virtuellen Maschinen (ADMIN-Dialog aus Benutzertask)".
Diese BS2000-Prozeduren enthalten BS2000- und VM2000-Kommandos. Bei Einsatz unter einer Benutzerkennung mit Privileg OPERATING können auch BS2000-Operatorkommandos enthalten sein.RUN-Dateien
Sie können durch den VM2000-Administrator mit/RUN
von einer BS2000-Konsole im Monitorsystem aufgerufen werden.
RUN-Dateien enthalten VM2000-Kommandos und BS2000-Operatorkommandos.VM2000-Prozeduren
Sie können durch den VM2000- bzw. VM-Administrator im ADMIN-Dialog über $VMCONS eingesetzt werden, siehe "CALL-VM-PROCEDURE (VM2000-Prozedurdatei starten)". VM2000-Prozeduren enthalten VM2000-Kommandos.Persistente VM-Definitionen
Eine persistente VM-Definition steht auch nach einem Neustart einer Server Unit zur Verfügung. Mit ihrer Hilfe wird eine persistente VM wieder eingerichtet und bei entsprechender Angabe im ParameterAUTO-IPL
sofort wieder gestartet. Siehe Abschnitt „Arbeiten mit VM-Definitionen".Sicherungsdatei für die VM2000-Konfiguration
Sie können die aktuelle VM2000-Konfiguration in eine Datei sichern und nach einem (Neu-)Start des Gesamtsystems VM2000 die gesicherte VM2000-Konfiguration wiederherstellen, siehe "Sichern und Wiederherstellen der VM2000-Konfiguration".
Überwachen mit Jobvariablen
Die routinemäßige Überwachung virtueller Maschinen, von Hauptspeicher-Rekonfigurationen und von VM-Migrationen kann unter VM2000 durch Jobvariablen (MONJVs) automatisiert werden, siehe "Überwachen einer VM mit Jobvariablen (MONJV)", "Überwachen einer VM-Migration mit Jobvariablen (MONJV)" und "Hauptspeicher rekonfigurieren". Dort finden Sie auch Anwendungsbeispiele.
Asynchrone Ereignisse
Die Reaktion auf asynchrone Ereignisse kann unter VM2000 automatisiert werden. Dazu werden bestimmte, für die ereignisgesteuerte Automatisierung wichtige Meldungen stets über den Routing-Code „9“ ausgegeben.
Folgende Meldungen für den VM2000-Administrator werden, unabhängig von der Existenz eines VM2000-Administrators (ADMIN-Dialog mit Monitor-VM), stets über den Routing-Code „9“ verschickt.
VMS0021 VMS0024 VMS0025 VMS0026 VMS0027 VMS2011 VMS2023 VMS2033 VMS2037 VMS2050 VMS2051 VMS2052 VMS2053 VMS2100 VMS2104 VMS2411 - VMS2422 VMS2424 VMS2425 VMS2430 - VMS2434 VMS2440 - VMS2444 VMS2450 - VMS2452 VMS4065 VMS4066 VMS4075 VMS4077 VMS4094 VMS4095 VMS4342 VMS4343 VMS4344 VMS4510 VMS4511 VMS4512 VMS4514 VMS4515 VMS4551 VMS4552 VMS4553 VMS4554 VMS4555 VMS4556 VMS4557 VMS4558 VMS4559 VMS4560 VMS4561 VMS4562 VMS4563 VMS4564 VMS4620 VMS4621 VMS4910 VMS4912 VMS6002 VMS6003 VMS6018 VMS6020 VMS6021 VMS6023 VMS6094
Die folgenden Produkte können diese Meldungen empfangen und auf das damit verbundene Ereignis automatisch reagieren:
OMNIS-PROP, eine spezielle Exit-Routine des Produkts OMNIS, siehe Handbuch „OMNIS“ [12].
Mit OMNIS-PROP können Sie Uhrzeiten, Zeitintervalle und Systemmeldungen als Ereignisse deklarieren. Bei Eintreffen dieser Ereignisse werden Administrationsprozeduren von OMNIS-PROP aktiviert, die Operator-Aufgaben erledigen. Die Anwendung von OMNIS-PROP setzt Assembler-Kenntnisse voraus.
PROP-XT, ein Software-Produkt im Rahmen der Automatisierung im Data Center, siehe Handbuch „PROP-XT“
[15].PROP-XT ermöglicht programmiertes Operating durch Administrationsprozeduren, die mit den komfortablen Sprachmitteln von SDF-P erstellt wurden.
Administrationsprozeduren können damit über PROP-XT eine ereignisgesteuerte VM2000-Administration parallel zur synchronen Kommandobearbeitung in S-Prozeduren realisieren. $VMCONS oder eine logische Konsole werden dabei als Administrationsobjekt unter PROP-XT eingerichtet.
Über diese Verbindung werden die freilaufenden Meldungen von VM2000 empfangen und mit einer automatisierten Reaktion versehen, siehe Beispiel.Bis zu 15 VM-Administratoren pro VM können aus unterschiedlichen, privilegierten Benutzertasks den ADMIN-Dialog mit der VM beginnen. Damit können mehrere PROP-XT-Administrationsprozeduren parallel zur herkömmlichen VM- oder VM2000-Administration für die Automatisierung des VM2000-Betriebes eingesetzt werden.
Beispiel
Die folgende S-Prozedur zeigt die Anwendung von PROP-XT für die VM2000-Administration in Zusammenhang mit einer Hauptspeicher-Rekonfiguration. Die analoge Beispielprozedur unter Verwendung von MONJV finden Sie im Abschnitt "Hauptspeicher rekonfigurieren".
/SET-PROC-OPT /" **************************************************************" /" ** PROZEDUR VMMEM FUER GASTSYSTEME MIT VM-ID=2 UND 3 *******" /" **************************************************************" /" ** DIE PROZEDUR FUEHRT EINE SPEICHERREKONFIGURATION DURCH. " /" ** DIE ASYNCHRONEN ABSCHLUSSMELDUNGEN WERDEN UEBER PROP-XT " /" ** VERARBEITET. " /" ** WESENTLICHE SCHRITTE: " /" ** - VERBINDUNGSAUFBAU ZU PROP-XT " /" ** - VERBINDUNGSAUFBAU ZU VM2000 " /" ** - UEBERPRUEFEN DER AKTUELLEN SPEICHERGROESSE " /" ** - REDUZIEREN DES SPEICHERS DER VM2 " /" ** - ASYNCHRONES ENDE UEBER PROP-XT BEHANDELN " /" ** - ERWEITERN DES SPEICHERS DER VM3 " /" ** - ASYNCHRONES ENDE UEBER PROP-XT BEHANDELN " /" ** - VERBINDUNGSABBAU ZU PROP-XT " /" ** - VERBINDUNGSABBAU ZU VM2000 " /" **************************************************************" /" **************************************************************" /DECLARE-VARIABLE NAME=SYSPOP(TYPE=STRUCTURE) /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=CONT(TYPE=BOOLEAN,INIT-VAL=TRUE) /ASSIGN-SYSLST LST.VMMEM /MODIFY-JOB-OPTIONS LOG=*PAR(LIST=Y) /BEGIN-BLOCK /START-SUBSYSTEM PROP-XT,SYNC=Y /IF-CMD-ERROR;END-IF /"** ANMELDEN BEI PROP-XT *" /BEGIN-PROP-PROCESS VMMEM /"** VERBINDUNG ZUM LOKALEN UCON *" /START-PROP-OBJECT-MON OBJ-NAME=CONSOLE,OBJECT=*OPER- / (OPERATOR-ROLE=SYSADM) /IF (SYSPOP.MAINCODE <> '0000') / TXT = 'ERROR IN START-P-O-M CONSOLE ** RC: &(SYSPOP.MAINCODE)' / GOTO LABEL=ERROR /END-IF /"** EREIGNIS BEI PROP-XT ANMELDEN " /"** NACH AUSFUEHREN DER FUNKTION SCHICKT VM2000 ASYNCHRON DIE " /"** VMS4094 (GUT-QUITTUNG) ODER VMS4095 (SCHLECHT-QUITTUNG) " /"** AN DIE KONSOLE. DESHALB MUSS AUF DIESE 2 MELDUNGEN " /"** EXPLIZIT GEWARTET WERDEN (ALSO: ALS EREIGNISSE ANMELDEN!). " /START-PROP-EVENT-MON EV-NAME=VMS4094,SELECT-EV=*FROM-OBJ(- / OBJ-NAME=CONSOLE,EVENT-DATA=*SYSTEM-MSG(MSG-ID=VMS4094)) /START-PROP-EVENT-MON EV-NAME=VMS4095,SELECT-EV=*FROM-OBJ(- / OBJ-NAME=CONSOLE,EVENT-DATA=*SYSTEM-MSG(MSG-ID=VMS4095)) /BEGIN-VM-DIALOG VM-ID=1 "VERBINDUNG ZU VM2000 AUFBAUEN " /"** 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 /IF-CMD-ERROR / TXT = 'FEHLER BEI REDUCE-VM VM-ID=2' / GOTO LABEL=ERROR /END-IF /"** ES MUSS AUF VMS4094 ODER VMS4095 GEWARTET WERDEN" /WHILE (CONT=TRUE) / WAIT-F-PROP-EV EV-NAME=(VMS4094,VMS4095),TIME-LIM=300 / IF (SYSPOP.MAINCODE <> '0000') / TXT = 'FEHLER BEI WAIT-PROP-EVENT BEI REDUCE-VM-MEMORY VM-ID=2' / SHOW-VARIABLE SYSPOP / GOTO LABEL=ERROR / END-IF / IF ((SYSPOP.EVENT-NAME = 'VMS4094') AND (SYSPOP.I0='2')) / CONT=FALSE / ELSE-IF ((SYSPOP.EVENT-NAME = 'VMS4095') AND (SYSPOP.I0 = '2')) / TXT = 'VMS4095 BEI REDUCE-VM-MEMORY VM-ID=2' / GOTO LABEL=ERROR / END-IF /END-WHILE /"** ERWEITERE VM3 ********" /EXTEND-VM-MEMORY VM-ID=3,NEW-MEM-SIZE=*MAXIMUM /CONT = TRUE /WHILE (CONT=TRUE) / WAIT-F-PROP-EV EV-NAME=(VMS4094,VMS4095),TIME-LIM=300 / IF (SYSPOP.MAINCODE <> '0000') / TXT = 'FEHLER BEI WAIT-PROP-EVENT BEI EXTEND-VM-MEMORY VM-ID=3' / SHOW-VARIABLE SYSPOP / GOTO LABEL=ERROR / END-IF / IF ((SYSPOP.EVENT-NAME = 'VMS4094') AND (SYSPOP.I0='3')) / CONT=FALSE / ELSE-IF (SYSPOP.EVENT-NAME = 'VMS4095') / TXT = 'VMS4095 BEI EXTEND-VM-MEMORY VM-ID=3' / GOTO LABEL=ERROR / END-IF /END-WHILE /STOP-PROP-EV-MON (VMS4094,VMS4095) /IF-CMD-ERROR; END-IF /STOP-PROP-OBJ-MON CONSOLE "VERBINDUNG ZU UCON ABBAUEN" /IF-CMD-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 IN VMMEM: &TXT ***' /END-IF /END-PROP-PROCESS "ABMELDEN VON PROP-XT" /IF-CMD-ERROR /END-IF /END-VM-DIALOG VM-ID=1 "ABMELDEN VON VM2000" /IF-CMD-ERROR /END-IF /MOD-JOB-OPTIONS LOG=*PAR(LIST=NO) /ASSIGN-SYSLST *PRIMARY /EXIT-PROC