Discussion:
SYSUAF.DAT im HobbyCluster
(zu alt für eine Antwort)
Alexander Horn
2011-08-08 17:37:53 UTC
Permalink
Hallo Welt des VMS,

mein HobbyCluster umfasst inzwischen einen DS10, eine MV3100-80 und
eine PWS433au. Nun stelle ich mir schon seit einiger Zeit die Frage,
ob es nicht sinnvoll ist, eine cluster-wide SYSUAF.DAT zu haben.
Experten in diversen VMS-related IRC-Channels meinten, es wuerde
dadurch u.U. Probleme geben, was z.B. Prozess- und File-Quotas
und sonstige granulierbaren Limits etc. angeht.

Was nun? Any suggestions? :-)

Configs:

DS10: EV6 CPU, OpenVMS Alpha V8.3, 256M memory, 4G diskspace
MV3100-80: Mariah CPU, OpenVMS VAX V7.3, 24M memory, 5G diskspace
PWS433au: EV56 CPU, OpenVMS Alpha V7.3-1, 384M memory, 4G diskspace

Anscheinend muss ich in der MODPARAMS.DAT einige Einstellungen vornehmen,
z.B. dass der AlphaServer DS10 den Cluster als erster Host bildet.

Bis denne,
Euer Vaxima
--
Silverstone Networking Horn & Horn GbR | Alexander Horn, Linux&OpenVMS Admin
Brucknerstrasse 10 | phone: +4970314925738 (vodafone)
71065 Sindelfingen (Germany) | handy: +491724972944 (vodafone)
http://www.marway.org/ (website) | fax: +4932212333736 (vodafone)
Phillip Helbig---undress to reply
2011-08-08 19:13:51 UTC
Permalink
Post by Alexander Horn
mein HobbyCluster umfasst inzwischen einen DS10, eine MV3100-80 und
eine PWS433au. Nun stelle ich mir schon seit einiger Zeit die Frage,
ob es nicht sinnvoll ist, eine cluster-wide SYSUAF.DAT zu haben.
An sich ist so etwas SEHR sinnvoll. Nicht nur SYSUAF.DAT.
Post by Alexander Horn
Experten in diversen VMS-related IRC-Channels meinten, es wuerde
dadurch u.U. Probleme geben, was z.B. Prozess- und File-Quotas
und sonstige granulierbaren Limits etc. angeht.
In deinem Fall ist das starke Leistungsgefälle vielleicht doch ein
Problem, was Quoten betrifft. Ich würde aber auf jeden die Dateien der
beiden ALPHAs zusammenlegen.
Post by Alexander Horn
DS10: EV6 CPU, OpenVMS Alpha V8.3, 256M memory, 4G diskspace
MV3100-80: Mariah CPU, OpenVMS VAX V7.3, 24M memory, 5G diskspace
PWS433au: EV56 CPU, OpenVMS Alpha V7.3-1, 384M memory, 4G diskspace
Gibt es wirklich einen Grund, die VAX im Cluster zu haben?
Post by Alexander Horn
Anscheinend muss ich in der MODPARAMS.DAT einige Einstellungen vornehmen,
z.B. dass der AlphaServer DS10 den Cluster als erster Host bildet.
Verstehe ich nicht.

Sinnvoll wäre, solche gemeinsame Dateien auf einer Platte, die alle
Maschinen mounten, die keine Systemplatte ist. Man soll ein "single
point of failure" vermeiden. Also erst alle Platten als HBVS
konfigurieren (wie kann man sonst ruhig schlafen?), dann vielleicht die
"User-Platte" als Platte für gemeinsame Sachen haben.

Folgende Dateien rufe ich von SYLOGICALS.COM auf, nachdem DISK$USER in
SYLOGICALS.COM gemounted worden ist:

$! CLUSTER_MANAGER:CLUSTER_WIDE_DEFS.COM
$!
$! This procedure is called from SYS$MANAGER:SYLOGICALS.COM as soon
$! as possible by all nodes when they are booted.
$!
$!
$ SET NOON
$!
$!
$! my own definitions
$!
$ CLUSTER_DEF := DEFINE/SYSTEM/EXECUTIVE_MODE/NOLOG
$ CLUSTER_DEF CLUSTER_DISK DISK$USER:
$ CLUSTER_DEF CLUSTER_SYSTEM CLUSTER_DISK:[SYSTEM.EXE]
$ CLUSTER_DEF CLUSTER_MANAGER CLUSTER_DISK:[SYSTEM.MANAGER]
$ CLUSTER_DEF CLUSTER_LIBRARY CLUSTER_DISK:[SYSTEM.LIBRARY]
$ CLUSTER_DEF CLUSTER_STARTUP CLUSTER_DISK:[SYSTEM.STARTUP]
$ CLUSTER_DEF CLUSTER_TCPIP_SMTP CLUSTER_DISK:[SYSTEM.TCPIP_SMTP]
$!
$!
$! definitions of common files (see SYS$MANAGER:SYLOGICALS.TEMPLATE)
$!
$ CLUSTER_DEF SYSUAF CLUSTER_SYSTEM:SYSUAF.DAT
$ CLUSTER_DEF SYSUAFALT CLUSTER_SYSTEM:SYSUAFALT.DAT
$ CLUSTER_DEF SYSALF CLUSTER_SYSTEM:SYSALF.DAT
$ CLUSTER_DEF RIGHTSLIST CLUSTER_SYSTEM:RIGHTSLIST.DAT
$ CLUSTER_DEF NETPROXY CLUSTER_SYSTEM:NETPROXY.DAT
$ CLUSTER_DEF NET$PROXY CLUSTER_SYSTEM:NET$PROXY.DAT
$ CLUSTER_DEF NETOBJECT CLUSTER_SYSTEM:NETOBJECT.DAT
$ CLUSTER_DEF NETNODE_REMOTE CLUSTER_SYSTEM:NETNODE_REMOTE.DAT
$ CLUSTER_DEF LMF$LICENSE CLUSTER_SYSTEM:LMF$LICENSE.LDB
$ CLUSTER_DEF VMSMAIL_PROFILE CLUSTER_SYSTEM:VMSMAIL_PROFILE.DATA
$ CLUSTER_DEF VMS$OBJECTS CLUSTER_SYSTEM:VMS$OBJECTS.DAT
$ CLUSTER_DEF VMS$AUDIT_SERVER CLUSTER_MANAGER:VMS$AUDIT_SERVER.DAT
$ CLUSTER_DEF VMS$PASSWORD_HISTORY CLUSTER_SYSTEM:VMS$PASSWORD_HISTORY.DATA
$ CLUSTER_DEF VMS$PASSWORD_DICTIONARY CLUSTER_LIBRARY:VMS$PASSWORD_DICTIONARY.DATA
$ CLUSTER_DEF NETNODE_UPDATE CLUSTER_MANAGER:NETNODE_UPDATE.COM
$ CLUSTER_DEF VMS$PASSWORD_POLICY CLUSTER_LIBRARY:VMS$PASSWORD_POLICY.EXE
$ CLUSTER_DEF LAN$NODE_DATABASE CLUSTER_SYSTEM:LAN$NODE_DATABASE.DAT
$ CLUSTER_DEF VMS$CLASS_SCHEDULE CLUSTER_SYSTEM:VMS$CLASS_SCHEDULE.DATA
$ CLUSTER_DEF QMAN$MASTER CLUSTER_SYSTEM
$! QMAN$MASTER.DAT
$! SYS$QUEUE_MANAGER.QMAN$QUEUES
$! SYS$QUEUE_MANAGER.QMAN$JOURNAL
$!
$!
$! local symbol
$!
$ NODENAME = F$GETSYI("NODENAME")
$!
$!
$! similar stuff not in SYLOGICALS.TEMPLATE
$!
$ CLUSTER_DEF ACCOUNTNG CLUSTER_MANAGER:ACCOUNTNG_'NODENAME'.DAT
$!
$!
$! similar stuff for TCPIP (still testing)
$!
$ IF NODENAME .EQS. "DANEEL"
$ THEN
$ CLUSTER_DEF TCPIP$CONFIGURATION CLUSTER_SYSTEM:TCPIP$CONFIGURATION.DAT_VAX
$ CLUSTER_DEF TCPIP$HOST CLUSTER_SYSTEM:TCPIP$HOST.DAT_VAX
$ CLUSTER_DEF TCPIP$PRINTCAP CLUSTER_SYSTEM:TCPIP$PRINTCAP.DAT_VAX
$ CLUSTER_DEF TCPIP$NETWORK CLUSTER_SYSTEM:TCPIP$NETWORK.DAT_VAX
$ CLUSTER_DEF TCPIP$PROXY CLUSTER_SYSTEM:TCPIP$PROXY.DAT_VAX
$ CLUSTER_DEF TCPIP$ROUTE CLUSTER_SYSTEM:TCPIP$ROUTE.DAT_VAX
$ CLUSTER_DEF TCPIP$SERVICE CLUSTER_SYSTEM:TCPIP$SERVICE.DAT_VAX
$ ENDIF
$!
$!
$! stuff which one would normally not want to repeat (i.e. only do at boot)
$!
$ IF .NOT. F$TRNLNM("ALREADY_DONE")
$ THEN
$ DEFINE/SYSTEM/NOLOG ALREADY_DONE TRUE
$ LICENSE LOAD
$ CLUSTER_DEF OPC$OPA0_ENABLE TRUE
$ CLUSTER_DEF OPC$LOGFILE_ENABLE TRUE
$ CLUSTER_DEF OPC$ALLOW_INBOUND TRUE
$ CLUSTER_DEF OPC$ALLOW_OUTBOUND TRUE
$ CLUSTER_DEF OPC$LOGFILE_NAME -
CLUSTER_MANAGER:OPERATOR_'NODENAME'.LOG
$ OPEN/APPEND/SHARE BOOT_HISTORY CLUSTER_MANAGER:BOOT.HISTORY
$ WRITE BOOT_HISTORY "''F$GETSYI("BOOTTIME")' ''NODENAME'"
$ CLOSE BOOT_HISTORY
$ IF .NOT. F$TRNLNM("SYSMAN$NODE_TABLE","LNM$SYSTEM_DIRECTORY",,,,"TABLE") -
THEN CREATE/NAME_TABLE/PARENT=LNM$SYSTEM_DIRECTORY SYSMAN$NODE_TABLE
$ ENDIF
$!
$!
$! other definitions
$!
$ DEFINE/SYSTEM/NOLOG/TRANSLATION_ATTRIBUTES=TERMINAL EVE$KEYPAD EDT
$ CLUSTER_DEF MAIL$SYSTEM_FLAGS 55 ! was 23---bit 5 means retry UAF
$ CLUSTER_DEF/TRAN=TERM SYS$NODE 'NODENAME'::
$ CLUSTER_DEF SHUTDOWN$VERBOSE TRUE
$! need to add NEWSRDR etc
$ DEFINE/SYSTEM/EXEC DISK$DOC DISK$OVMSDOC071:
$ DEFINE/SYSTEM/EXEC DECW$BOOK DISK$DOC:[DECW$BOOK]
$ DEFINE/SYSTEM/EXEC DECW$BOOKSHELF DECW$BOOK:LIBRARY.DECW$BOOKSHELF
$! probably obsolete since now in CLUSTER_STARTUP:TCPIP$SMTP_SYSTARTUP.COM
$ CLUSTER_DEF TCPIP$SMTP_COMMON SYS$SPECIFIC:[TCPIP$SMTP],-
CLUSTER_TCPIP_SMTP
$!
$!
$! SYSMAN definitions
$!
$ @ CLUSTER_MANAGER:DEFINE_NODE_LIST.COM
$!
$!
$ EXIT
Dennis Grevenstein
2011-09-12 13:45:43 UTC
Permalink
Hallo,
Post by Phillip Helbig---undress to reply
Folgende Dateien rufe ich von SYLOGICALS.COM auf, nachdem DISK$USER in
Ich wuerde mich da gerne mal einklinken.
Ich habe eine Itanium Kiste, die ich frisch mit 8.3 installiert habe.
Nach ein paar Stunden ist mir allerdings der Krach derart zuviel,
dass ich mich entschieden habe, die Kiste ganz sicher nur bei
Bedarf einzuschalten und am besten als client an meine DS10 zu
haengen. Die DS10 hat einfach nur zwei grosse interne Platten,
die mit volume shadowing als DSA0: verwendet werden. Wenn ich
aber von der Itanium aus die devices anzeigen lasse, dann sehe
ich nur $100$DKA0: und $100$DKA100:, aber nicht DSA0.

Wie stelle ich die Sache am besten an?
Ich vermute die Itanium bekommt dann 0 Votes im cluster.
Wenn ich das in sylogicals.com einbaue, was Du unter
"definitions of common files" stehen hast, funktioniert
der Rest dann automagisch? Was bedeuted denn "is called as
soon as possible by all nodes when they are booted."?
An welcher Stelle in sylogicals.com muss das aufgerufen werden?

gruss,
Dennis
--
Don't suffer from insanity...
Enjoy every minute of it.
Phillip Helbig---undress to reply
2011-09-22 22:40:00 UTC
Permalink
Post by Dennis Grevenstein
Ich habe eine Itanium Kiste, die ich frisch mit 8.3 installiert habe.
Nach ein paar Stunden ist mir allerdings der Krach derart zuviel,
dass ich mich entschieden habe, die Kiste ganz sicher nur bei
Bedarf einzuschalten und am besten als client an meine DS10 zu
haengen.
Habe ich früher mit einer ALPHAserver 1200 gemacht, weil dies damals die
einzige Maschine war, die ich hatte, die mit Mozilla schnell genug war.
Allerdings war sie als Satellit konfiguriert, was bei dir ausscheidet.
Post by Dennis Grevenstein
Die DS10 hat einfach nur zwei grosse interne Platten,
die mit volume shadowing als DSA0: verwendet werden. Wenn ich
aber von der Itanium aus die devices anzeigen lasse, dann sehe
ich nur $100$DKA0: und $100$DKA100:, aber nicht DSA0.
Du musst DENSELBEN MOUNT-Befehl von der Itanium absetzen, oder aber
MOUNT/CLUSTER. Nur die physikalischen Platten (oder, bei RAID usw., was
hier relevant ist, was VMS dafür hält, sozusagen) werden über MSCP
geservt; jedes System muss den Shadow-Set mounten.
Post by Dennis Grevenstein
Wie stelle ich die Sache am besten an?
Ich vermute die Itanium bekommt dann 0 Votes im cluster.
Ja.
Post by Dennis Grevenstein
Wenn ich das in sylogicals.com einbaue, was Du unter
"definitions of common files" stehen hast, funktioniert
der Rest dann automagisch?
Ich hoffe. Ich glaube, da ist kaum etwas darin, was nicht überall
funktionieren würde, bis auf den Bezug auf eine Doku-CD.
Post by Dennis Grevenstein
Was bedeuted denn "is called as
soon as possible by all nodes when they are booted."?
Von SYLOGICALS.COM.
Post by Dennis Grevenstein
An welcher Stelle in sylogicals.com muss das aufgerufen werden?
Bei mir am Ende, aber da steht kaum etwas anderes darin.
Dennis Grevenstein
2011-09-25 00:19:40 UTC
Permalink
Post by Phillip Helbig---undress to reply
Du musst DENSELBEN MOUNT-Befehl von der Itanium absetzen, oder aber
MOUNT/CLUSTER. Nur die physikalischen Platten (oder, bei RAID usw., was
hier relevant ist, was VMS dafür hält, sozusagen) werden über MSCP
geservt; jedes System muss den Shadow-Set mounten.
Das habe ich nun gemacht und es funktioniert auch. Allerdings
habe ich jetzt ein ganz anderes Problem dabei. Wenn ich die
Itanium mit shutdown ausschalte, dann wird wohl das shadow
set nicht ordentlich dismountet und die Alpha macht dann
beim naechsten reboot einen shadow set merge.

Hast Du nichtmal was gebastelt, um genau das zu verhindern?
Koenntest Du das nochmal beschreiben?

gruss,
Dennis
--
Don't suffer from insanity...
Enjoy every minute of it.
Phillip Helbig---undress to reply
2011-09-25 07:45:38 UTC
Permalink
Post by Dennis Grevenstein
Post by Phillip Helbig---undress to reply
Du musst DENSELBEN MOUNT-Befehl von der Itanium absetzen, oder aber
MOUNT/CLUSTER. Nur die physikalischen Platten (oder, bei RAID usw., was
hier relevant ist, was VMS dafür hält, sozusagen) werden über MSCP
geservt; jedes System muss den Shadow-Set mounten.
Das habe ich nun gemacht und es funktioniert auch. Allerdings
habe ich jetzt ein ganz anderes Problem dabei. Wenn ich die
Itanium mit shutdown ausschalte, dann wird wohl das shadow
set nicht ordentlich dismountet und die Alpha macht dann
beim naechsten reboot einen shadow set merge.
Hast Du nichtmal was gebastelt, um genau das zu verhindern?
Koenntest Du das nochmal beschreiben?
Man macht dies in SYS$MANAGER:SYSHUTDWN.COM und gibt die Antwort Y(es)
bei "Do you want to invoke the site-specific shutdown procedure" in
SYS$SYSTEM:SHUDOWN.COM. Bei mir steht folgendes darin:

$ SET NOON
$!
$!
$! dismount non-needed disks
$!
$ @ CLUSTER_MANAGER:SHUTDOWN_DISMOUNT.COM SHOW ! schreibe etwas, um
$! deine anderen Platten
$! zu dismounten
$!
$!
$! web servers
$!
$ @ DISK$USER:[ADMIN]WWW_SYMBOLS.COM !defines stuff for the OSU server
$ WWW_SHUTDOWN
$! stuff which I had to add
$!
$! kill the DECwindows server? needed? RIGHTSLIST.DAT
$ @ CLUSTER_MANAGER:STOP_PROCESS.COM DECW$SERVER_0 KILL
$goto weiter2
$! kill the VPM server! not really needed, just for TCPIP so no BG
$sh dev bg
$ @ CLUSTER_MANAGER:STOP_PROCESS.COM VPM_SERVER KILL
$sh dev bg
$weiter2:
$!
$!
$! layered products
$!
$goto weiter3
$ @ SYS$STARTUP:TCPIP$SHUTDOWN.COM ! use CLUSTER_MANAGER:STOP_TCPIP.COM ?!
$weiter3:
$ @ CLUSTER_MANAGER:STOP_TCPIP.COM
$ @ SYS$MANAGER:RMONSTOP70.COM
$ @ SYS$STARTUP:MMOV$SHUTDOWN.COM
$ @ SYS$STARTUP:DFG$SHUTDOWN.COM
$ SET ACCOUNTING/DISABLE
$!
$!
$! cluster-common stuff (perhaps add some of the stuff above)
$!
$ FILE := CLUSTER_MANAGER:SYSHUTDWN.COM
$ IF F$SEARCH(FILE) .NES. "" THEN @ 'FILE'
$!
$!
$ EXIT

$! CLUSTER_MANAGER:SYSHUTDWN.COM
$! so kann man sehen, was noch offen ist
$ X := SYS$SCRATCH:OPEN_FILES.TXT
$ PIPE WRITE SYS$OUTPUT F$GETSYI("NODENAME") > 'X'
$ PIPE WRITE SYS$OUTPUT "" | CONVERT/APPEND SYS$PIPE 'X'
$ PIPE SHOW DEVICE/FILES DISK$USER | CONVERT/APPEND SYS$PIPE 'X'
$ WRITE SYS$OUTPUT "-------------------------"
$ WAIT 0:0:10
$ DIR/DATE 'X'
$ WAIT 0:0:10
$ TYPE 'X'
$ WAIT 0:0:10
$ WRITE SYS$OUTPUT "-------------------------"
$ DEASSIGN/TABLE=LNM$SYSCLUSTER 'F$GETSYI("NODENAME")'_UP
$ WRITE SYS$OUTPUT "-------------------------"
$ EXIT

$! CLUSTER_MANAGER:STOP_PROCESS.COM
$ SET NOON
$ IF P1 .EQS. "" THEN GOTO USAGE
$ TMP = F$CONTEXT("PROCESS",CTX,"PRCNAM","*","EQL")
$LOOP:
$ PID = F$PID(CTX)
$ IF PID .EQS. "" THEN GOTO DONE
$ IF P1 .EQS. "ALL"
$ THEN
$ WRITE SYS$OUTPUT F$GETJPI(PID,"PRCNAM")
$ ELSE
$ IF F$GETJPI(PID,"PRCNAM") .EQS. P1
$ THEN
$ IF P2 .EQS. "SHOW"
$ THEN
$ WRITE SYS$OUTPUT F$GETJPI(PID,"PRCNAM")
$ ELSE
$ IF P2 .EQS. "KILL"
$ THEN
$ STOP/ID='PID'
$ ENDIF
$ ENDIF
$ ENDIF
$ ENDIF
$GOTO LOOP
$DONE:
$ EXIT
$USAGE:
$ TYPE SYS$INPUT

P1: { ALL | <process-name> }
P2: { SHOW | KILL } (only meaningful if P1 .NES. "ALL")
$ EXIT
Dennis Grevenstein
2011-10-08 16:34:48 UTC
Permalink
Post by Phillip Helbig---undress to reply
Man macht dies in SYS$MANAGER:SYSHUTDWN.COM und gibt die Antwort Y(es)
bei "Do you want to invoke the site-specific shutdown procedure" in
Vielen Dank, das scheint soweit zu funktioniern.

gruss,
Dennis
--
Don't suffer from insanity...
Enjoy every minute of it.
Loading...