![]() |
![]() HP OpenVMS Systems Documentation |
![]() |
OpenVMS Alpha Partitioning and Galaxy Guide
Chapter 13
|
$ STOP/CPU/MIGRATE=instance-or-id cpu-id |
The user must provide the target instance name (SCSNAME) or numeric ID (0, 1, and so on), and the numeric ID of the CPU being reassigned. The following examples show a few forms of this command.
$ STOP/CPU/MIGRATE=0 4 !Reassign CPU 4 to instance 0 $ STOP/CPU/MIGRATE=1 3,4,5 !Reassign CPUs 3,4,5 to instance 1 $ STOP/CPU 7/MIGRATE=BIGBNG !ReassignCPU 7 to instance BIGBNG $ STOP/CPU/ALL/MIGRATE=0 !Reassign all secondary CPUs to instance 0 |
These commands can be inserted into command procedures. For example, you might want to move extra CPU resources to an instance in a startup procedure of an application with known processing requirements. Similarly, you may want to reassign CPUs away from an instance that is about to perform lengthy, I/O intensive operations (such as backups) so that the CPUs are available to other instances. When the job completes, you may reassign them back. Or you may reassign CPUs away from an instance that is shutting down.
Note that you can only reassign resources away from an instance. This
is the push model defined by the Galaxy Software Architecture. This
model prevents resources from being "stolen" by other
instances that may not be aware of their current usage. To effectively
manage the entire Galaxy system using DCL, you must either log in to
each of the involved instances or use the SYSMAN utility to execute the
commands on the owner instance.
13.2 GCU Drag-and-Drop Reassignment
The GCU provides an interactive visual interface for managing Galaxy
resources. Using the GCU, you can reassign CPUs by simply dragging and
dropping them among instances. Additionally, the GCU allows you to draw
charts of various configurations (known as configuration models) and
save them as files. At any time, you can load and engage a
configuration model and the system will reassign resources as needed to
achieve the desired model.
13.3 Intermodal Reassignment
Because of the resource push model defined by the Galaxy Software Architecture, resources must be given away by the Galaxy instance that currently owns them. For a utility or user to effectively manage resource assignment in a multiple-instance Galaxy configuration, you must establish some means of executing commands on each instance.
One such means is to open a window or terminal session on each of the Galaxy instances and perform your resource management operations in each of these windows.
Another method is use the SYSMAN utility and its underlying SMI server to establish a command environment on the owner instance. Using this method, a fairly simple command procedure can be written to perform specific resource management operations. This method has some limitations, however. First, it requires that the involved Galaxy instances must be in a cluster. Also, a command procedure cannot effectively pass variable parameters to SYSMAN environment scripts, and you cannot specify a remote system password within a SYSMAN script. So it is cumbersome to generate a general-purpose command procedure interface that uses SYSMAN.
The GCU does, in fact, use SYSMAN wherever possible to accomplish its management actions. When a system is not configured to support SYSMAN, the GCU will attempt to use DECnet task-to-task comminations among proxy accounts as its management transport. If that approach also fails (that is, if the system is not running DECnet or if the necessary proxy accounts are not set up), the GCU will not be able to manage Galaxy instances other than the one on which the GCU is currently running. You could certainly run multiple copies of the GCU if you choose, one per Galaxy instance. However, you can assume that OpenVMS Galaxy systems are likely to be clustered or to use DECnet.
The GCUs management actions are based in the SYS$MANAGER:GCU$ACTIONS.COM command procedure. You can modify this file to customize actions for your own environment. For example, in a TCP/IP environment, you may choose to use REXEC or a similar utility for your management transport, or you may want to include some form of notification or logging whenever a management action is executed.
The GCU$ACTIONS.COM file is somewhat unusual in the way it operates.
When using SYSMAN, the procedure builds small SYSMAN command scripts in
temporary files to deal with variable parameters that SYSMAN cannot
handle. When SYSMAN is not available, the procedure attempts to open a
DECnet task-to-task connection to a proxy account on the owner
instance. If successful, it uses this connection to shuffle command
parameters to the copy of GCU$ACTIONS.COM that resides on the owner
instance. The end result is execution of the command locally by the
owner instance.
13.4 Software Reassignment Using Galaxy Services
Perhaps the best method for managing resource assignment is to use the Galaxy APIs to write your own resource management routines. This allows you to base your decisions for resource management on your own criteria and application environment. The same push-model restriction described in Section 13.3 still exists, however, so your routines will need to be Galaxy aware, possibly using shared memory to coordinate their operations.
Table 13-1 briefly describes the OpenVMS system services available to manage CPUs.
System Service | Description |
---|---|
$CPU_TRANSITION[W] | Changes the current processing state of a CPU in the configure set of the current system or an unassigned CPU in an OpenVMS Galaxy configuration. |
CPU reassignment can fail or be blocked, for several reasons. Because the GCU buries its management actions in SYSMAN or DCL scripts, it may not always identify and report the reasons for a reassignment fault. The GCU does perform certain checks prior to allowing reassignment actions in order, for example, to prevent attempts to reassign the primary CPU. Other reasons exist for reassignment faults that can only be detected by the operating system or console firmware. For example, if the operating system detects a fault attempting to reassign a CPU that currently has process affinity or Fast Path duties, a DCL message will be displayed on both the console and the users terminal.
The Galaxy APIs for reassignment are capable of reporting most faults to the caller. However, even using the reassignment services, the console may reject a reassignment because of hardware platform dependencies not readily visible to the operating system.
The following DCL commands are useful for managing an OpenVMS Galaxy:
CPUs are assignable resources in an OpenVMS Galaxy.
14.1.1 STOP/CPU/MIGRATE
The STOP/CPU/MIGRATE command stops and removes the specified secondary processors from the active set in an OpenVMS SMP (symmetric multiprocessing) system.
For example, a user enters:
$ STOP/CPU/MIGRATE=GLX0 4 |
The following message is displayed at the user's terminal:
%SYSTEM-I-CPUSTOPPING, trying to stop CPU 4 after it reaches quiescent state |
The source console displays:
%SMP-I-STOPPED, CPU #04 has been stopped. |
The destination console displays:
%SMP-I-SECMSG, CPU #04 message: P04>>>START %SMP-I-CPUTRN, CPU #04 has joined the active set. |
14.1.2 SHOW CPU
The SHOW CPU command displays information about the status,
characteristics, and capabilities of the specified processors.
For example:
$ SHOW CPU GLX0, AlphaServer 8400 Model 5/440 Multiprocessing ENABLED. Full checking synchronization image loaded. Minimum multiprocessing revision levels: CPU = 1 PRIMARY CPU = 00 Active CPUs: 00 01 Configured CPUs: 00 01 Potential CPUs: 00 01 03 04 05 06 07 |
The SHOW MEMORY command displays the uses of memory by the system.
For example:
$ SHOW MEMORY/PHYSICAL System Memory Resources on 5-OCT-2001 20:50:19.03 Physical Memory Usage (pages): Total Free In Use Modified Main Memory (2048.00Mb) 262144 228183 31494 2467 Of the physical pages in use, 11556 pages are permanently allocated to OpenVMS. $ SHOW MEMORY/PHYSICAL System Memory Resources on 5-OCT-2001 07:55:14.68 Physical Memory Usage (pages): Total Free In Use Modified Private Memory (512.00Mb) 65536 56146 8875 515 Shared Memory (1024.00Mb) 131072 130344 728 Of the physical pages in use, 6421 pages are permanently allocated to OpenVMS. $ |
Lexical Function Example Command Procedure
$ write sys$output "" $ write sys$output "Instance = ",f$getsyi("scsnode") $ write sys$output "Platform = ",f$getsyi("galaxy_platform") $ write sys$output "Sharing Member = ",f$getsyi("galaxy_member") $ write sys$output "Galaxy ID = ",f$getsyi("galaxy_id") $ write sys$output "Community ID = ",f$getsyi("community_id") $ write sys$output "Partition ID = ",f$getsyi("partition_id") $ write sys$output "" $ exit |
Lexical Function Command Procedure Output
$ @SHOGLX Instance = COBRA2 Platform = 1 Sharing Member = 1 Galaxy ID = 5F5F30584C47018011D3CC8580F40383 Community ID = 0 Partition ID = 0 $ |
The INSTALL LIST command now returns the Galaxywide sections as well as
standard global sections.
14.5 CONFIGURE GALAXY
The CONFIGURE GALAXY command invokes the Galaxy Configuration Utility (GCU) to monitor, display, and interact with an OpenVMS Galaxy system. The GCU requires DECwindows Motif Version 1.2-4 or higher and OpenVMS Alpha Version 7.2 or higher.
The optional model parameter specifies the location and name of a Galaxy Configuration Model to load and display. If no model is provided and the system is running as an OpenVMS Galaxy, the current active configuration is displayed.
If the system is not running as an OpenVMS Galaxy, the GCU will assist the user in creating a single-instance OpenVMS Galaxy system.
OpenVMS Galaxy Configuration Models are created with the Galaxy Configuration Utility. Refer to the GCU online help for more information.
Format:
CONFIGURE GALAXY [model.gcm]
Parameters:
GALAXY [model.GCM] |
Specifies the location and name of a Galaxy configuration model to load and display.
If no model is provided and the system is running as an OpenVMS Galaxy, the current active configuration is displayed.
Qualifiers:
/ENGAGE
Causes the GCU to engage (load, validate, and activate) the specified OpenVMS Galaxy Configuration Model without displaying the graphical user interface. After validation, the specified model becomes the active system configuration.
This qualifier allows system managers to restore the OpenVMS Galaxy system to a known configuration, regardless of what dynamic resource reassignments may have occurred since the system was booted. This command can be embedded in DCL command procedures to automate configuration operations.
/VIEW
When used in conjunction with /ENGAGE and a model parameter, causes the GCU to load, validate, activate, and display the specified configuration model.
Examples:
$ CONFIGURE GALAXY |
Displays the GCU's graphical user interface. If the system is currently configured as an OpenVMS Galaxy, the active system configuration is displayed.
$ CONFIGURE GALAXY model.GCM |
Displays the GCU's graphical user interface. The specified OpenVMS Galaxy Configuration Model is loaded and displayed, but does not become the active configuration until the user chooses to engage it.
$ CONFIGURE GALAXY/ENGAGE model.GCM |
Invokes the GCU command line interface to engage the specified OpenVMS Galaxy Configuration Model without displaying the GCU's graphical user interface.
$ CONFIGURE GALAXY/ENGAGE/VIEW model.GCM |
Invokes the GCU command line interface to engage the specified OpenVMS Galaxy Configuration Model and display the GCU's graphical user interface.
This chapter describes the following two OpenVMS internal mechanisms that use shared memory to communicate between instances in an OpenVMS Galaxy computing environment:
The Shared Memory Cluster Interconnect (SMCI) is a System
Communications Services (SCS) port for communications between Galaxy
instances. When an OpenVMS instance is booted as both a Galaxy and as
an OpenVMS Cluster member, the SMCI driver is loaded. This SCS port
driver communicates with other cluster instances in the same Galaxy
through shared memory. This capability provides one of the major
performance benefits of the OpenVMS Galaxy Software Architecture. The
ability to communicate to another clustered instance through shared
memory provides dramatic performance benefits over traditional cluster
interconnects.
15.1.1 SYS$PBDRIVER Port Devices
When booting as both a Galaxy and a cluster member, SYS$PBDRIVER is loaded by default. The loading of this driver creates a device PBAx, where x represents the Galaxy partition ID. As other instances are booted, they also create PBAx devices. The SMCI quickly identifies the other instances and creates communications channels to them. Unlike traditional cluster interconnects, a new device is created to communicate with the other instances. This device also has the name PBAx, where x represents the Galaxy partition ID for the instance with which this device is communicating.
For example, consider an OpenVMS Galaxy that consists of two instances: MILKY and WAY. MILKY is instance 0 and WAY is instance 1. When node MILKY boots, it creates device PBA0. When node WAY boots, it creates PBA1. As the two nodes "find" each other, MILKY creates PBA1 to talk to WAY and WAY creates PBA0 to talk to MILKY.
MILKY WAY PBA0: PBA1: PBA1: <-------> PBA0: |
SYS$PBDRIVER can support multiple clusters in the same Galaxy. This is done in the same way that SYS$PEDRIVER allows support for multiple clusters on the same LAN. The cluster group number and password used by SYS$PEDRIVER are also used by SYS$PBDRIVER to distinguish different clusters in the same Galaxy community. If your Galaxy instances are also clustered with other OpenVMS instances over the LAN, the cluster group number is set appropriately by CLUSTER_CONFIG. To determine the current cluster group number:
$ MCR SYMAN SYSMAN> CONFIGURATION SHOW CLUSTER_AUTHORIZATION Node: MILKY Cluster group number: 0 Multicast address: xx-xx-xx-xx-xx-xx SYSMAN> |
If you are not clustering over a LAN and you want to run multiple clusters in the same Galaxy community, then you must set the cluster group number. You must ensure that the group number and password are the same for all Galaxy instances that you want to be in the same cluster as follows:
$ MCR SYSMAN SYSMAN> CONFIGURATION SET CLUSTER_AUTHORIZATION/GROUP_NUMBER=222/PASSWORD=xxxx SYSMAN> |
If your Galaxy instances are also clustering over the LAN,
CLUSTER_CONFIG asks for a cluster group number, and the Galaxy
instances use that group number. If you are not clustering over a LAN,
the group number defaults to zero. This means that all instances in the
Galaxy will be in the same cluster.
15.1.3 SYSGEN Parameters for SYS$PBDRIVER
In most cases, the default settings for SYS$PBDRIVER should be
appropriate; however, several SYSGEN parameters are provided. Two
SYSGEN parameters control SYS$PBDRIVER: SMCI_PORTS and SMCI_FLAGS.
15.1.3.1 SMCI_PORTS
The SYSGEN parameter SMCI_PORTS controls initial loading of SYS$PBDRIVER. This parameter is a bitmask in which bits 0 through 25 each represent a controller letter. If bit 0 is set, PBAx will be loaded; this is the default setting. If bit 1 is set, PBBx will be loaded, and so on all the way up to bit 25, which will cause PBZx to be loaded. For OpenVMS Alpha Version 7.2--1, Compaq recommends leaving this parameter at the default value of 1.
Loading additional ports allows for multiple paths between Galaxy
instances. For OpenVMS Alpha Version 7.2--1, having multiple
communications channels does not provide any advantages because
SYS$PBDRIVER will initially not support Fast Path. A future release of
OpenVMS will provide Fast Path support for SYS$PBDRIVER. When Fast Path
support is enabled, instances with multiple CPUs can achieve improved
throughput by having multiple communications channels between instances.
15.1.4 SMCI_FLAGS
The SYSGEN parameter SMCI_FLAGS controls operational aspects of SYS$PBDRIVER. The only currently defined flag is bit 1. This controls whether or not the port device supports communications with itself. Supporting SCS communications to itself is primarily used for test purposes. By default, this bit will be turned off and thus support for SCS communication locally is disabled, which saves system resources. This parameter is dynamic and by turning this bit on, an SCS virtual circuit should soon form.
Bit | Mask | Description |
---|---|---|
0 | 0 |
0 = Do not create local communications channels (SYSGEN default). Local
SCS communications are primarily used in test situations and not needed
for normal operations. Leaving this bit off saves resources and
overhead.
1 = Create local communications channels. |
1 | 2 |
0 = Load SYS$PBDRIVER if booting into both a Galaxy and a Cluster
(SYSGEN Default).
1 = Load SYS$PBDRIVER if booting into a Galaxy. |
2 | 4 |
0 = Minimal console output (SYSGEN default)
1 = Full console output, SYS$PBDRIVER will display console messages when creating communication channels and tearing down communication channels. |
Local area network (LAN) communications between OpenVMS Galaxy instances are supported by the Ethernet LAN shared memory driver. This LAN driver communicates to other instances in the same OpenVMS Galaxy system through shared memory. Communicating with other instances through shared memory provides performance benefits over traditional LANs.
To load the LAN shared memory driver SYS$EBDRIVER, enter the following command:
$ MCR SYSMAN SYSMAN> IO CONN EBA/DRIVER=SYS$EBDRIVER/NOADAPTER |
For OpenVMS Version 7.2--1, in order for LAN protocols to automatically start over this LAN device (EBAn, where n is the unit number), the procedure for loading this driver should be added to the configuration procedure: SYS$MANAGER:SYCONFIG.COM .
The LAN driver emulates an Ethernet LAN with frame formats the same as Ethernet/IEEE 802.3 but with maximum frame size increased from 1518 to 7360 bytes. The LAN driver presents a standard OpenVMS QIO and VCI interface to applications. All existing QIO and VCI LAN applications should work unchanged.
In a future release, the SYS$EBDRIVER device driver will be loaded automatically.
Previous | Next | Contents | Index |