Ibm Z 1
Ibm Z 1
Ibm Z 1
Virtualization Cookbook
for IBM Z Volume 1
IBM z/VM 7.2
Lydia Parziale
Edi Lopes Alves
Vic Cross
Paul Novak
Mauro Cesar de Souza
Redbooks
International Technical Support Organization
July 2021
SG24-8147-02
Note: Before using this information and the product it supports, read the information in “Notices” on
page xiii.
This edition applies to IBM z/VM Version 7, Release 2, Red Hat Enterprise Linux version 8, and SUSE Linux
Enterprise Server 15 GA, and Ubuntu Server 20.04.
© Copyright International Business Machines Corporation 2015, 2016, 2021. All rights reserved.
Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule
Contract with IBM Corp.
Contents
Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Concept of the series . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Volumes in this series . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Main parts of this volume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Font conventions in this cookbook series . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Command conventions that are used in this cookbook series . . . . . . . . . . . . . . . . . . . . . 3
Operating system releases that are used . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
With gratitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Now you can become a published author, too! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Stay connected to IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Summary of changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Summary of changes in this book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Chapter 2. Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.1 Hardware operation and interface mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.1.1 Processor Resource/Systems Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.1.2 IBM Dynamic Partition Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.2 Choosing a z/VM installation method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.2.1 Understanding traditional and upgrade installations . . . . . . . . . . . . . . . . . . . . . . . 37
© Copyright IBM Corp. 2015, 2016, 2021. All rights reserved. iii
2.2.2 Classifications used in this book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.2.3 New and upgrade installations to DASD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.2.4 Installing as VMSSI with live guest relocation. . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.2.5 Planning aids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.3 Bill of materials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.3.1 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.3.2 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.3.3 Networking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.4 Disk planning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.4.1 Primary considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.5 HiperDispatch planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.6 Storage planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.6.1 z/VM 7.2 initial installation and migrations considerations . . . . . . . . . . . . . . . . . . 48
2.6.2 Storage allocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.6.3 Global aging list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.7 Paging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.7.1 Recommendations, tips, and hints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.7.2 Calculating paging space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.8 Passwords and passphrases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.9 Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.9.1 Involvement of stakeholders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.9.2 Open Systems Adapters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.9.3 Network attachment options and considerations . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.9.4 Maximum transmission unit size matters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.9.5 IBM HiperSockets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.9.6 IPv4 and IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.10 Channel-to-channel adapter planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.11 z/VM standardized naming conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.11.1 DASD volume labeling convention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.11.2 Virtual network device naming convention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.11.3 Minidisk and virtual disk naming convention for Linux . . . . . . . . . . . . . . . . . . . . 60
2.11.4 Backup file naming convention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.11.5 Command retrieve convention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.12 Architectural overview of this book’s environment . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.13 Example planning worksheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.13.1 IBM Shop Z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.13.2 Hardware Management Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.13.3 z/VM installation planning panels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.13.4 z/VM networking resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.13.5 z/VM DASD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.13.6 FCP devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.13.7 Linux resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.13.8 Host names and IP addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Contents v
6.5.1 Modifying features and optimizing parameter settings . . . . . . . . . . . . . . . . . . . . 144
6.5.2 Enabling and configuring virtual networking components . . . . . . . . . . . . . . . . . . 149
6.5.3 Using CPSYNTAX to validate the modified system configuration file . . . . . . . . . 151
6.5.4 Initializing the allocated DASD for z/VM Service data. . . . . . . . . . . . . . . . . . . . . 152
6.5.5 Service-level validation and subscribing to service notifications. . . . . . . . . . . . . 154
6.6 Enabling and configuring DirMaint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
6.7 Enabling and configuring RACF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
6.7.1 Creating the RACF RPIDIRCT command file . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
6.7.2 Customizing SMF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
6.7.3 Copying the RACF databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
6.7.4 Setting up the AUTOLOG1 and AUTOLOG2 virtual machines. . . . . . . . . . . . . . 165
6.7.5 Enabling RACF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
6.7.6 Putting RACF into production on all members . . . . . . . . . . . . . . . . . . . . . . . . . . 167
6.7.7 Configuring SMAPI to work with RACF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
6.7.8 Configuring LogonBy processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
6.7.9 Using the RACF SMF data unload utility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
6.8 Implementing more network features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
6.8.1 Enabling z/VM FTP and Network File System functions. . . . . . . . . . . . . . . . . . . 180
6.8.2 Reconfiguring TCP/IP for high availability by using a VSWITCH . . . . . . . . . . . . 181
6.9 Shutting down and IPLing the SSI cluster again . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
6.9.1 IPLing the other SSI members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
6.10 Validating and testing your changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
6.11 Adding page volumes and perm (user) volumes. . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
6.11.1 Formatting volumes for page space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
6.11.2 Copying the utilities to Shared File System file pools . . . . . . . . . . . . . . . . . . . . 186
6.11.3 Using the CPFORMAT EXEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
6.11.4 Formatting DASD for minidisks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
6.11.5 Updating the SYSTEM CONFIG file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
6.11.6 Attaching minidisk volumes to the system for use . . . . . . . . . . . . . . . . . . . . . . 194
6.11.7 Shutting down and IPLing the SSI cluster again . . . . . . . . . . . . . . . . . . . . . . . . 195
6.12 Enabling z/VM basic system automation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
6.12.1 Configuring AUTOLOG1’s PROFILE EXEC . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
6.12.2 Configuring and enabling the programmable operator facility. . . . . . . . . . . . . . 197
6.13 z/VM User Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
6.13.1 z/VM User Directory PROFILEs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
6.13.2 Role-based access controls and CP privilege classes . . . . . . . . . . . . . . . . . . . 206
6.13.3 Creating and using z/VM User Directory prototypes . . . . . . . . . . . . . . . . . . . . . 208
6.13.4 Creating CMSPROTO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
6.13.5 Creating LNXPROTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
6.13.6 Creating a time-based virtual service machine named CRONSVM . . . . . . . . . 212
6.13.7 Creating a console logs repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
6.14 z/VM security and hardening. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
6.14.1 Using an external security manager for correct resource security . . . . . . . . . . 217
6.14.2 Using LOGONBY for correct accountability . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
6.14.3 High-level z/VM security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
6.14.4 Encrypting communications by using SSL/TLS on z/VM . . . . . . . . . . . . . . . . . 221
6.15 Backing up and restoring your z/VM system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
6.16 Creating an SFS file pool for Linux virtual machines . . . . . . . . . . . . . . . . . . . . . . . . 237
6.16.1 SFS file pools characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
6.16.2 Adding a directory entry for the new SFS server machine . . . . . . . . . . . . . . . . 238
6.16.3 Generating the SFS file pool for Linux guest systems . . . . . . . . . . . . . . . . . . . 239
6.16.4 Adding a directory entry for the SFS administration machine . . . . . . . . . . . . . . 242
6.16.5 Enrolling the Linux virtual machines as USERS . . . . . . . . . . . . . . . . . . . . . . . . 243
Contents vii
10.1.4 Enabling DirMaint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
10.2 Tailoring DirMaint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
10.2.1 Changing default passwords. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
10.2.2 Configuring DirMaint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
10.2.3 Working with DirMaint AUTHFOR file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
10.2.4 Customizing the EXTENT CONTROL file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
10.2.5 Copy User Direct to be initialized by DirMaint. . . . . . . . . . . . . . . . . . . . . . . . . . 317
10.3 Starting DirMaint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
10.3.1 Validating DirMaint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
10.4 DirMaint-RACF Connector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
10.4.1 Configuring RACF-Connector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
10.4.2 Adding RACF connector configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
10.4.3 Verifying that DirMaint and RACF work together . . . . . . . . . . . . . . . . . . . . . . . 323
10.5 Systems Management API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
10.5.1 Who needs SMAPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
10.5.2 Configuring SMAPI to work with RACF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
10.5.3 Shared File System that is used by SMAPI . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
10.5.4 SMAPI requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
10.5.5 Configuring DirMaint to support SMAPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
10.5.6 Setting up basic SMAPI configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
10.5.7 Defining SMAPI on RACF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
10.5.8 Start SMAPI at IPL time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
10.5.9 Testing SMAPI from the Conversational Monitor System . . . . . . . . . . . . . . . . . 337
10.5.10 Testing SMAPI from Linux by using smaclient . . . . . . . . . . . . . . . . . . . . . . . . 339
10.6 Adding a z/VM user ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
10.6.1 DirMaint commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
Contents ix
15.1.4 TOOLSRUN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
15.1.5 EDEVICE path management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
15.2 Modifying the z/VM LOGON panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
15.3 Using DirMaint to set special passwords for an ID . . . . . . . . . . . . . . . . . . . . . . . . . . 447
15.4 Resuming a revoked ID in RACF/VM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
15.5 System modifications for wide-screen terminals . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
15.6 Manually formatting DASD for use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
15.7 Running Linux under z/VM with restricted permissions. . . . . . . . . . . . . . . . . . . . . . . 454
15.8 Mitigating SSH client timeout disconnects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
15.9 Sharing IBM WebSphere Application Server binaries. . . . . . . . . . . . . . . . . . . . . . . . 457
Contents xi
xii Virtualization Cookbook: Vol 1: IBM z/VM 7.2
Notices
This information was developed for products and services offered in the US. This material might be available
from IBM in other languages. However, you may be required to own a copy of the product or product version in
that language in order to access it.
IBM may not offer the products, services, or features discussed in this document in other countries. Consult
your local IBM representative for information on the products and services currently available in your area. Any
reference to an IBM product, program, or service is not intended to state or imply that only that IBM product,
program, or service may be used. Any functionally equivalent product, program, or service that does not
infringe any IBM intellectual property right may be used instead. However, it is the user’s responsibility to
evaluate and verify the operation of any non-IBM product, program, or service.
IBM may have patents or pending patent applications covering subject matter described in this document. The
furnishing of this document does not grant you any license to these patents. You can send license inquiries, in
writing, to:
IBM Director of Licensing, IBM Corporation, North Castle Drive, MD-NC119, Armonk, NY 10504-1785, US
This information could include technical inaccuracies or typographical errors. Changes are periodically made
to the information herein; these changes will be incorporated in new editions of the publication. IBM may make
improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time
without notice.
Any references in this information to non-IBM websites are provided for convenience only and do not in any
manner serve as an endorsement of those websites. The materials at those websites are not part of the
materials for this IBM product and use of those websites is at your own risk.
IBM may use or distribute any of the information you provide in any way it believes appropriate without
incurring any obligation to you.
The performance data and client examples cited are presented for illustrative purposes only. Actual
performance results may vary depending on specific configurations and operating conditions.
Information concerning non-IBM products was obtained from the suppliers of those products, their published
announcements or other publicly available sources. IBM has not tested those products and cannot confirm the
accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the
capabilities of non-IBM products should be addressed to the suppliers of those products.
Statements regarding IBM’s future direction or intent are subject to change or withdrawal without notice, and
represent goals and objectives only.
This information contains examples of data and reports used in daily business operations. To illustrate them
as completely as possible, the examples include the names of individuals, companies, brands, and products.
All of these names are fictitious and any similarity to actual people or business enterprises is entirely
coincidental.
COPYRIGHT LICENSE:
This information contains sample application programs in source language, which illustrate programming
techniques on various operating platforms. You may copy, modify, and distribute these sample programs in
any form without payment to IBM, for the purposes of developing, using, marketing or distributing application
programs conforming to the application programming interface for the operating platform for which the sample
programs are written. These examples have not been thoroughly tested under all conditions. IBM, therefore,
cannot guarantee or imply reliability, serviceability, or function of these programs. The sample programs are
provided “AS IS”, without warranty of any kind. IBM shall not be liable for any damages arising out of your use
of the sample programs.
The following terms are trademarks or registered trademarks of International Business Machines Corporation,
and might also be trademarks or registered trademarks in other countries.
AIX® IBM Security™ VTAM®
DB2® IBM Z® WebSphere®
DS8000® IBM z Systems® XIV®
eServer™ IBM z13® z Systems®
FICON® OMEGAMON® z/Architecture®
FlashCopy® Parallel Sysplex® z/OS®
GDPS® RACF® z/VM®
Global Technology Services® Redbooks® z/VSE®
IBM® Redbooks (logo) ® z13®
IBM Blue® S/390® z15™
IBM Cloud® Satellite™ zEnterprise®
IBM FlashSystem® System z®
IBM Garage™ Tivoli®
The registered trademark Linux® is used pursuant to a sublicense from the Linux Foundation, the exclusive
licensee of Linus Torvalds, owner of the mark on a worldwide basis.
Microsoft, Windows, and the Windows logo are trademarks of Microsoft Corporation in the United States,
other countries, or both.
Java, and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its
affiliates.
Ansible, Fedora, OpenShift, Red Hat, are trademarks or registered trademarks of Red Hat, Inc. or its
subsidiaries in the United States and other countries.
UNIX is a registered trademark of The Open Group in the United States and other countries.
Other company, product, or service names may be trademarks or service marks of others.
This IBM® Redbooks® publication is volume one of five in a series of books entitled The
Virtualization Cookbook for IBM Z.
It is recommended that you start with Volume 1 of this series because the IBM z/VM
hypervisor is the foundation (or base “layer”) for installing Linux on IBM Z®. All of the volumes
are described next.
Volume 1 starts with a solution orientation, discusses planning and security, and then,
describes z/VM installation methods, configuration, hardening, automation, servicing,
networking, optional features, and more.
It adopts a “cookbook-style” format that provides a concise, repeatable set of procedures for
installing, configuring, administering, and maintaining z/VM. This volume also includes a
chapter on monitoring z/VM and the Linux virtual servers that are hosted.
Volumes 2, 3, and 4 assume that you completed all of the steps that are described in Volume
1. From that common foundation, these volumes describe how to create your own Linux
virtual servers on IBM Z hardware under IBM z/VM. The cookbook format continues with
installing and customizing Linux.
Volume 5 provides an explanation of the kernel-based virtual machine (KVM) on IBM Z and
how it can use the z/Architecture®. It focuses on the planning of the environment and
provides installation and configuration definitions that are necessary to build, manage, and
monitor a KVM on Z environment. This publication applies to the supported Linux on Z
distributions (Red Hat, SUSE, and Ubuntu).
It is important to realize that the recommendations and examples that are presented in this
book and the others in the series are intended to spark thoughtfulness and meaningful
awareness of the entire process. In situations where required, things can and should be
adapted to suit your specific needs.
Conventions
The conventions that are described in this section are used in this book and others in the
series.
Preface 3
Authors
This book was produced by a team of specialists from around the world working at the
International Technical Support Organization (ITSO), Poughkeepsie Center.
Lydia Parziale is a Project Leader for the IBM Redbooks® team in Poughkeepsie, New York,
with domestic and international experience in technology management, including software
development, project leadership, and strategic planning. Her areas of expertise include
business development and database management technologies. Lydia is a PMI certified PMP
and an IBM Certified IT Specialist with an MBA in Technology Management and has been
employed by IBM for over 25 years in various technology areas.
Edi Lopes Alves is a Senior IT Specialist working with IBM Z and LinuxONE for the Global
Technical Service team in Brazil. She has more than 25 years of experience working as an
IBM z/VM and Linux on IBM Z specialist. Edi has IBM L2 IT Specialist certification, holds a
Mathematics degree and a master’s degree in e-Business from ESPM Sao Paulo. She
currently supports z/VM and Linux on Z for IBM commercial accounts. She supported the
z/VM environment and cloud initiatives for Banco do Brasil and IBM Global Accounts (IGA) by
supporting IBM Green, IBM Blue® Harmony projects, and z/VM Field Test at Endicott Lab
logical partitioned systems. Working across international and diverse teams. Edi has
co-authored several IBM Redbooks publications. Edi acquired professional certifications and \
mentored many professionals at different levels of seniority to progress in their careers.
Vic Cross is an IT Solutions Engineer living in Brisbane, Australia. Vic works as part of the
IBM Worldwide Z Acceleration Team, helping customers in adopting new technologies, such
as Red Hat OpenShift Container Platform on IBM Z and LinuxONE. Before his current role,
Vic worked with IBM Systems Lab Services and IBM Systems, where he provided senior
design and implementation expertise to IBM Z and IBM LinuxONE projects across
Asia-Pacific. He has 30 years of experience in general IT, 25 of which was directly related to
the IBM Z and IBM LinuxONE platforms and their antecedents. Vic holds a degree in
Computer Science from Queensland University of Technology. He has written and contributed
to several IBM Redbooks publications, including Temenos on IBM LinuxONE Best Practices
Guide, SG24-8462; Securing Your Cloud: IBM z/VM Security for IBM z Systems and
LinuxONE, SG24-8353; and Linux on IBM eServer zSeries and S/390®: Virtual Router
Redundancy Protocol on VM Guest LANs, REDP-3657.
Paul Novak is a member of the IBM Advanced Technology Group (formerly known as ATS or
Washington Systems Center) z/VM and Linux team in Endicott, New York. Paul has
experience in field services, user support, software development, enterprise hosting,
enterprise architecture, and customer technical solutioning. His areas of expertise are z/VM,
Linux, middleware, containers, automation, and web identity and access management (IAM)
solutions. Paul previously worked as IBM technical webmaster on a team that was
responsible for consolidation of the world’s largest production implementations of IBM
WebSphere®, Domino, IBM MQ, and Collaboration Software onto Linux under z/VM. He is a
Senior Certified IT Specialist and holds several degrees. Paul is a multi-generation Endicott
IBMer and has more than 25 years of Linux and Open Source technology experience.
Mauro Cesar de Souza is z/VM system support specialist working for IBM Global
Technology Services® in Brazil, and former IBM® Systems Lab Services engineer, with more
than 15 years of experience managing z/VM systems and migrating workloads to the
platform, designing, implementing and optimizing solutions. In addition to z/VM, has more
than 20 years of experience as Linux administrator, and can program in several languages.
He has a degree in Computing Technology from UNICAMP.
Ivan Dobos
Christian Ehrhardt
Frank Heimes
Canonical, Inc.
Chris Mackowski
Jan Stodola
Dan Horak
Red Hat, Inc.
Mike Friesenegger
Ihno Krumreich
Mark Post, Terry Smith, Donald Vosberg
Special thanks
A special thank you to Robert Haimowitz, IBM Garage™ for Systems. Without Bob, these
books would not be possible.
Patrik Hysky
Systems Technical Sales Services, Austin
Deyaa Abuelsaad, Z Product Engineering, Poughkeepsie
Alan Altmark, Systems Lab Services, Endicott
Rhette Angus, Shop Z, Atlanta
Fred Bader, Advanced Technology Group, Gaithersburg
Marci Beach, z/VM Development, Endicott
Karen Beale, Z Unit Executive, Advanced Technology Group, Atlanta
John Bernatz, Advanced Technology Group, Lexington
Andreas Bieswanger, IBM Fellow and Z CTO Platform Management, Böblingen
Bill Bitner, z/VM Customer Focus and Care, Endicott
Kay Blake, z/VM Installation, Endicott
Jay Brenneman, Z Systems Integration and Test, Poughkeepsie
Charlie Bryant, IBM z/OS® Function Test, Endicott
Hendrik Brückner, Manager, Linux on Z Development and Service, Böblingen
Eric Carlson, Techline and Shop Z, San Francisco
Tung-Sing Chong, Z Firmware Development, Endicott
Michael Donovan, z/VM® Development and Service, Endicott
Carol Everitt, z/VM Development, Install, Service, and Packaging, Endicott
John Franciscovich, z/VM Development and Service, Endicott
Ingo Franzki, Development and Service, Linux on Z and IBM z/VSE®, Böblingen
Glenda Ford, z/VM Development and Packaging, Endicott
Jacob Gagnon, z/VM Development, Endicott
Leslie Geer, z/VM Development and Release Management, Endicott
Stephanie Gherghe, Linux on IBM Z® and LinuxONE Education, Böblingen
Timothy Greer, z/VM Development, Endicott
Bruce Hayden, Advanced Technology Group, Iowa
John Hollenbeck, z/VM Function Test, Endicott
Ernie Horn, Manager, Global LinuxONE Client Success, Poughkeepsie
Brian Hugenbruch, Z Virtualization and Cloud Security, Endicott
Emily Hugenbruch, z/VM Development, Endicott
Preface 5
Shalawn King, Manager, Advanced Technology Group, Atlanta
Dominik Klein, Linux on Z Performance, Böblingen
Richard Lewis, Advanced Technology Group, Gaithersburg
Jennifer Lynch, Z New Technology Introduction, Burlington
George Madl, Director, z/VM and Related Products, Endicott
Steffen Maier, Linux on Z and LinuxONE, Böblingen
Carl Mayer, Z and LinuxONE Platform Management STSM, Böblingen
Donald McGlynn, z/VM Development, Endicott
Kevin Meeks, z/VM Development, Endicott
Wilhelm Mild, Linux on Z and LinuxONE Container and Mobile Integration, Böblingen
Yanique Moffitt, z/VM Development, Endicott
Matt Mondics, Advanced Technology Group, Cleveland
Kenneth Morse, Advanced Technology Group, Gaithersburg
Kathryn Murtha, Manager, z/VM Development, Endicott
Damian Osisek, z/VM Architectural Design, Endicott
Vasily Papastrat, z/VM Development, Endicott
Pradeep Parameshwaran, Linux on Z and LinuxONE Security, Böblingen
Eberhard Pasch, Linux on Z Architecture and Performance STSM, Böblingen
Keyur Patel, Manager, Z Product Engineering, Poughkeepsie
Patricia Rando, z/VM Development, Endicott
Stefan Reimbold, Linux on Z and LinuxONE Performance, Böblingen
Timothy Reynolds, z/VM Support, Endicott
Clarice Y Robinson, Shop Z, Raleigh
Bob Rogers, Distinguished Engineer, z/VM Development, Endicott
Jon Ruhl, z/VM Development, Endicottt
Tausif A Samad, Shop Z, India
Lucas Sandoval, Techline and Shop Z, Phoenix
Barry Silliman, Advanced Technology Group, Gaithersburg
James Switzer, z/VM Systems Test, Endicott
Jack Sykes, Advanced Technology Group, Boston
Susan Timashenka, Manager, z/VM Development, Endicott
Kara Todd, Director, IBM Z and LinuxONE, Poughkeepsie
Richard Young, Systems Lab Services, Milwaukee
Brian Wade, z/VM Development and Performance, Endicott
IBM
Thanks to Michael MacIsaac for the original inception of this cookbook and for his efforts in
continually moving the cookbook forward over the years.
Thanks to many others in IBM Endicott, Böblingen, and Poughkeepsie, and also to the many
who answered questions on the Linux-390 and IBMVM list servers.
The Virtualization Cookbook for IBM z Systems Volume 1: IBM z/VM 6.3, SG24-8147, last
updated 27 Jun 2016: Lydia Parziale, Berthold Gunreben, Filipe Miranda, Paul Novak, and
Ken Werner.
Find out more about the residency program, browse the residency index, and apply online at:
ibm.com/redbooks/residencies.html
Comments welcome
Your comments are important to us!
We want our books to be as helpful as possible. Send us your comments about this book or
other IBM Redbooks publications in one of the following ways:
Use the online Contact us review Redbooks form found at:
ibm.com/redbooks
Send your comments in an email to:
[email protected]
Mail your comments to:
IBM Corporation, International Technical Support Organization
Dept. HYTD Mail Station P099
2455 South Road
Poughkeepsie, NY 12601-5400
Preface 7
8 Virtualization Cookbook: Vol 1: IBM z/VM 7.2
Summary of changes
This section describes the technical changes made in this edition of the book and in previous
editions. This edition might also include minor corrections and editorial changes that are not
identified.
Summary of Changes
for SG24-8147-02
for Virtualization Cookbook: Vol 1: IBM z/VM 7.2
as created or updated on November 11, 2024.
General
The chapter to configure an File Transfer Protocol (FTP)/Network File Server (NFS) server
on a PC was removed. The availability of an FTP server in the local environment is
assumed.
Although the concepts of virtualization and cloud computing are familiar to many by now,
there is information in this section that is likely to be unknown, even to readers who might
consider themselves experts. For this reason, it is our recommendation that anyone reading
this book should fully read and understand this chapter.
After reading this chapter, you understand why the use of this platform as a fully-integrated
cloud solution continues to grow in popularity and how it can surpass virtually everything else
from the perspectives of performance, density, and low total cost of ownership.
The conceptual landscape and philosophy that was used in authoring this book are covered
first. Next, we cover topics that are critical to understand for success such as terminology,
z/VM components, capabilities, and enhancements. Finally, the decisions and assumptions
that were made by the authors are reviewed, followed by information about design and
usability.
Virtualization
Virtualization is the ability of a computer system to share resources so that one physical
server machine can act as many virtual servers. Unlike other hardware platforms, IBM Z and
IBM LinuxONE operate on virtualized hardware by default, which results in incredible
performance and efficiency.
Virtualization is the way to consolidate the amount of hardware, floor space, and energy
consumption in the data center. It also simplifies the procedures to provide reliable, highly
available, and seamless serviceability for the virtualization environment.
Virtualization was a hot topic in the overall IT industry for well over a decade and gained even
more popularity with the recent explosion of cloud computing.
Cloud computing
Cloud computing is on-demand access, via the internet, to computing resources —
applications, servers (physical servers and virtual servers), data storage, development
tools, networking capabilities, and more — hosted at a remote data center managed by a
cloud services provider (or CSP). The CSP makes these resources available for a monthly
subscription fee or bills them according to usage. The term ‘cloud computing’ also refers
to the technology that makes cloud work. This includes some form of virtualized IT
infrastructure — servers, operating system software, networking, and other infrastructure
that’s abstracted, using special software, so that it can be pooled and divided irrespective
of physical hardware boundaries. For example, a single hardware server can be divided
into multiple virtual servers.” “Cloud computing transforms IT infrastructure into a utility: It
lets you ‘plug into' infrastructure via the internet, and use computing resources without
installing and maintaining them.
— Courtesy IBM Cloud® Learning Hub
Because the topic of cloud computing is so expansive, it is impossible to cover with sufficient
detail here in this book. Instead, we recommend visiting the IBM Cloud Learning Hub where
you can explore each area for more information.
Early mainframe systems were not the compact and affordable systems they are today.
Because of cost and physical size, it was exceptionally rare for any organization to have more
than one.
To maximize the utility and return on investment, it became standard practice to provide
shared access through physical terminals. Was there a better way? Engineers at IBM’s
Glendale development laboratory in Endicott, New York began to ponder this question and
prototype methods.
In 1971, IBM released a product that is considered the genesis of cloud computing; an
operating system called virtual machine (VM). For the first time ever, it was possible to have
multiple virtual systems, or VMs all co-existing on one physical system. The VM operating
system moved the concept of shared access ahead by a massive leap by allowing individual
users to effectively have their own personal mainframe.
By the early 1980s, VMs continued to evolve, pioneering ground breaking concepts later to
become cloud fundamentals. Automated systems management and self-service functionality
for common tasks, such as identity and access management, are just two of many examples.
At this point, you might assume this person to be fantasizing; dreaming about a wish they
hope someday might become reality, because this car sounds far too impossible to be real.
With nearly six decades of continual optimization, enhancement, and refinement of the
hardware and z/VM, the result is a premium, high-performance solution: the ultimate
virtualization platform.
With a z/VM and Linux infrastructure, you can reduce the time between deciding on the
acquisition of new servers and then implementing them because new servers can be easily
deployed in a matter of minutes. With this powerful capability, you can launch new products
and services without the exhaustive planning for, purchasing, installing, and configuring new
hardware and software that can be associated with conventional discrete hardware servers.
The addition of new companion products, such as IBM Wave for z/VM, now permit many of
these tasks to be accomplished with a point and click interface through a web browser.
The following capabilities are several key strengths of IBM Z and IBM LinuxONE and z/VM:
Their virtualization capabilities are more mature and robust than any other hardware and
hypervisor combination.
The z/VM virtual switch makes networking Linux much simpler and provides automatic
redundancy.
Full volume backup of systems allows for complete disaster recovery when another data
center is available.
z/VM is easy to customize at the base installation level because of a relatively small number
of configuration files. When z/VM is set up correctly, it can run for months with little required
maintenance or administration.
Simply put, good business leaders \ go to great lengths to safeguard information about what
is sometimes referred to as the secret sauce. In reality, this secret can be a reference to
anything that makes the products or services they offer superior to any competitors through
affordability, quality, or some combination of both. Running their business on this platform is
the secret sauce they do not want competitors to know about.
Many books and papers talk about virtualization and cloud computing concepts today, but
they do not tell you how to do it. The remainder of this book gives you the “how to” that backs
up these marketing concepts.
Implementing this environment results in a robust virtualized cloud environment that can
serve as a base for many upcoming new tasks and workloads.
1.4.1 Hardware
Consider the following hardware concepts:
Central processor complex
Depending on the context of a discussion, the terms processor and CPU can refer to the
complete system box, or one of the central processors (CPUs) within the system box.
Although the meaning might be clear from the context of a discussion, even IT
professionals must clarify their intended meaning when they use the terms processor or
CPU.
IBM uses the term central processor complex (CPC) to refer to the physical collection of
hardware for IBM Z that includes main storage or memory, one or more central
processors, timers, channels, interconnects, peripherals, cooling apparatus, and more.
Professionals typically use the term system to indicate the hardware box, a complete
hardware environment (with I/O devices), or an operating environment (with software),
depending on the context. They typically use processor to mean a single processor
(central processor (CP/GP) or Integrated Facility for Linux (IFL)) within the system.
Note: Despite the outward similarities in appearance between the IBM Z and IBM
LinuxONE systems, they are indeed two distinctly different systems. As such, it is not
technically accurate or correct to refer to a LinuxONE system frame as a CPC. The
correct terms to use for LinuxONE are server or system.
Important: You might hear some system programmers use the antiquated term central
electronic complex, which is abbreviated as CEC and sometimes even pronounced
“k‘ehk” (as if an actual word).
CEC (nor any pronounced variant of CEC) is not sanctioned by IBM for use. It is
considered to be highly offensive in some languages and cultures, and should not be
used.
In addition, today’s modern CPC evolved far past the point of a simple electronic
complex. Referring to a modern Z CPC as a CEC is analogous to calling a modern
state-of-the-art smart refrigerator an “icebox”.
Figure 1-1 IBM Z 15 model T02 (left) and IBM LinuxONE III model LT2 (right)
Processing units
Briefly, all of the IBM z/Architecture processors within a system are processing units
(PUs). When IBM delivers the system, the PUs are characterized as different types based
on the workloads they process.
For IBM Z, these PUs can be General Processors (GP or CP), Integrated Facility for Linux
(IFL), Integrated Coupling Facility (ICF) for IBM Parallel Sysplex® configurations, and so
on.
For LinuxONE, the system is equipped with only Integrated Facility for Linux (IFL)
processing units.
Logical partitions
From the perspective of system use and management, LPARs are equivalent to separate
physical systems. Each LPAR has its own operating system, which can be any mainframe
operating system. LPARs optionally also can be configured to share I/O devices, but this
decision is a local decision that is made during hardware planning.
1.4.2 Software
The software components are described in this section.
Note: Multics, which inspired UNIX, shares a common background with the z/VM
Conversational Monitor System and some components of the CP.
Virtual Machine
From a z/VM perspective, the following terms all refer to the same thing; that is, a VM
definition:
– User
– ID
– Identity
– Guest
– VM
– Virtual Server
A VM definition is a unique entry inside of the z/VM User Directory, which consists of a
collection of parameters and defined resources that begin with the term USER or IDENTITY.
Note: For clarity and consistency, virtual server is the preferred term that is used in this
book wherever possible to refer to a Linux VM or server.
For more information, a description of VM types, and the USER and IDENTITY
statements, see z/VM Getting Started with Linux on System z®, SC24-6194.
The following brief summary describes what is new or enhanced by version and release.
z/VM 7.2
Debuting September 2020, z/VM 7.2 provides organizations with the premier hypervisor for
hosting enterprise-class virtual servers to use the IBM Z and IBM LinuxONE advantages in
scalability, performance, high availability, and security.
The objective of z/VM 7.2 is to enhance the capabilities that support digital transformation,
specifically those capabilities that are associated with scalability and efficiency. z/VM 7.2 is
designed to enable the deployment of up to thousands of Linux servers on a single IBM Z or
LinuxONE server
Although cloud computing became the standard use model for IT services, an IT
infrastructure continues to be the foundation for every IT service. Realizing the benefits of
cloud computing requires an infrastructure that delivers availability, reliability, security, and
performance, while also providing strong virtualization technology, such as z/VM.
Because the list of enhancements continues to grow with each release, an abbreviated listing
is presented here. For more information about the full and complete list of enhancements, see
this web page.
With z/VM 7.2, IBM continues to deliver the following product enhancements to its z/VM
advanced virtualization technology on IBM Z and LinuxONE servers:
VM Centralized Service Management (VMCSM) for non-VMSSI environments
Multiple Subchannel Set (MSS) MT-PPRC support for the IBM GDPS® environment
Support for the z/VM ADJUNCT environment
Planned near-term future support for:
– Eight-member VMSSI clusters
– z/XC Architecture support
– Cylinder 001-END Minidisk HyperPAV
z/VM 7.1
IBM enters into a new era for delivering enhancements to z/VM advanced virtualization
technology with z/VM Version 7.1, which debuted September 2018. Consider the following
points:
With the adoption of the z/VM Continuous Delivery model, IBM offers z/VM V7 customers
timely introduction of new functions in the service stream and a two-year release delivery
model that helps customers predictably manage the lifecycle of their z/VM systems.
To support continuous deployment of the new z/VM functions, z/VM V7.1 includes the
Single System Image (VMSSI) function as part of the z/VM V7.1 base at no extra cost.
The following enhancements that were delivered in Version 7 Release 1 are significant:
New z/VM function, as Small Programming Enhancements (SPEs), are delivered in the
service stream of the current Version 7 release. When a new release is introduced, SPEs
are delivered on that release that goes forward and, with a few exceptions, the earlier
release delivers corrective service only and no new function. When z/VM V7.1 becomes
available, licensed users of z/VM V6.4 receive only corrective service.
z/VM 6.4
IBM z/VM V6.4 (November 2016 - March 2021) helps to extend the business value of IBM z
Systems and IBM LinuxONE technology across the enterprise. z/VM V6.4 virtualization
technology is designed to run hundreds to thousands of Linux servers on a single IBM z
Systems or LinuxONE server with the highest degrees of efficiency and elasticity.
A fundamental strength of z/VM is the ability for VMs to share system resources with high
levels of resource usage. z/VM V6.4 provides even greater levels of extreme scalability,
security, and efficiency to create opportunities for cost savings, while providing a robust
foundation for cognitive computing on z Systems and LinuxONE servers
z/VM 6.3
z/VM 6.3 (July 2013 - December 2017) extends IBM Z and IBM LinuxONE virtualization
platform to help you reshape and derive more value from your systems. It was designed to
offer the following benefits:
Improved economies of scale with z/VM support for 1 TB of real memory:
– Better performance for larger VMs
Quadruples memory scalability while continuing to maintain greater than 90% resource
utilization
– More vertical scalability to help reduce LPAR sprawl
Considerably more VMs can be consolidated into a single LPAR, depending on
workload characteristics
– Reduced administrative expense through managing a smaller number of large-capacity
z/VM host servers
Improved performance with z/VM HiperDispatch.
More efficient use of CPU hardware resources for dispatched work.
IBM adopted OpenStack as part of its cloud strategy. IBM is making contributions to the
OpenStack project that are designed to enable z/VM 6.3 to be the first IBM System z®
operating environment to be managed by these open cloud architecture-based interfaces.
Simplified migration to z/VM V6.3 with upgrade in place, which reduces the effect of an
upgrade on active workloads.
Highly secure industry-standard support that is required for banking and financial-industry
applications.
Support for the new IBM zEnterprise® EC12 (zEC12) and IBM zEnterprise BC12 (zBC12)
servers.
The use of expanded memory is now deprecated.
z/VM 6.2
z/VM 6.2 (December 2011 - June 2017) continues to help customers extend business value
across the enterprise by integrating applications and data while providing high levels of
availability, security, and operational ease.
With the IBM z/VM Single System Image (VMSSI) feature, a running Linux VM can be
relocated non-disruptively from one member system to any other member, a process that is
known as live guest relocation (LGR). LGR provides application continuity across planned
z/VM and hardware outages.
Members of a cluster are part of the same Inter-System Facility for Communications (ISFC)
collection, and use ISFC channel connections to communicate. Multiple channel-to-channel
devices provide a greater capability for data to flow between members. All members of a
cluster share DASD for VMs and selected z/VM data. Sharing minidisks between members
improves the integrity and performance of the system and provides a foundation for LGR.
Members of a z/VM VMSSI cluster are managed, serviced, and administered as one system.
Resources, including the user directory, minidisks, spool files, and network devices that are
used by the control program (CP) and VMs are shared among all members. Sharing of
resources helps give Linux guests access to the same devices and networks, regardless of
which member they are logged on to or where they are relocated.
Each member of a z/VM VMSSI cluster can communicate with other active members. When a
z/VM system is configured as a member of a cluster, it automatically joins the other members
during system start. Coordination of members that are joining and leaving the cluster,
maintaining a common view of member and resource states, and negotiating access to
shared cluster resources are all accomplished in a seamless fashion. This coordination
allows Linux guests to be relocated between members during planned outages.
Linux guests can now be moved from one member to another during most planned outages
(service upgrades) without interruption. This capability allows the Linux application
continuous run time during planned outages, and therefore allows the application to
experience no downtime.
To use the functions that define and maintain an VMSSI cluster, the IBM VMSSI feature must
be licensed and enabled. Servicing in an VMSSI cluster is simplified by using a single service
stream for all members. Sharing service resources allows service to be rolled out to each
member of the cluster on individual schedules, which avoids an outage for the entire cluster.
This capability allows uninterrupted Linux guest availability because the Linux guest can be
relocated to a different member before a planned outage.
Attention: It is bad practice to run a z/VM system without an ESM in place to correctly
encrypt passwords and ensure sufficient controls on commands and system functions.
It is widely regarded as good practice for any non-production systems (such as those
systems for development and testing) to be administered to a production-level standard.
As such, z/VM always must be configured to use an ESM, regardless of any functional
readiness or status labels.
Use of a Shared File System (SFS) file pool inside of z/VM acts as a central repository for
the Linux kernel and master copies of parameter and configuration files.
A writable Linux /usr/ file system that is unique to each Linux guest is used. Specific
solutions create an environment that shares the /usr/ file system across all Linux guests
as read-only. This approach often makes the solution more complex by requiring more
planning, especially when adding or updating software that is used by the virtual servers.
A read/write /usr/ file system on the virtual servers is chosen to keep things as simple as
possible.
Conventional 3390 IBM extended count key data (ECKD) DASD, fixed-block architecture
(FBA) disks that are accessed with Small Computer System Interface (SCSI) over Fibre
Channel Protocol (FCP), and emulated DASD (EDEV) are all described. However, the use
of conventional 3390 DASD is still considered to be the fastest and simplest choice.
To avoid unnecessary risk, the authors chose not to cover cloning. As an alternative to
cloning, automated installation or imaging is now considered the preferred practice and is
covered in this publication.
z/VM 6.2 introduced VMSSI with LGR and brought about major changes. No longer is it true
that a z/VM system is the most important “object” in the hierarchy. With z/VM 6.1 and earlier,
the system identifier of each z/VM system was the most important. With z/VM 6.2 and later,
the VMSSI name is the highest level identifier.
A block diagram of a four member VMSSI, with default volume labels, is shown in Figure 1-2.
The recommend scenario for full continuous availability is a four-member cluster with two
members on two different CPCs. Figure 1-2 uses this layout.
The VMs that are described in this book have the following functions:
LNXMAINT A VM that is used to own and manage the Shared File System (SFS)
file pool to be used by Linux virtual servers.
LNXADMIN The Linux system administration server that owns data in the SFS file
pool, controls access control list (ACL) entries on SFS, and performs
other system administrative functions. This identity can be logged on
to all VMSSI members at the same time.
LINUX1 - LINUX4 Four sample worker virtual servers.
Script (executable file .sh, .ksh, .pl, and similar) EXEC or REXX
Table 1-2 Similar common commands and functions between Linux and z/VM
Linux command z/VM CP or CMS command
df QUERY DISK
QUERY ACCESSED
dir, ls LISTFILE
ls -alp FILELIST
Chapter 2. Planning
This chapter covers the planning of hardware, software, and networking resources that you
must complete before you attempt to install z/VM and Linux.
First, planning for the mode in which you operate your IBM Z or LinuxONE system, the type of
z/VM installation you use, and comparing z/VM running in a VMSSI cluster versus running
standalone z/VM systems is described.
Then, we discuss of the bill of materials, which is a listing of all of the necessary resources.
Next, we describes standardized conventions and good practices that should be adopted for
labeling, configuring, and using system resources.
Finally, a planning resource worksheet is presented to document all of the values that were
obtained during planning.
The previous edition of this publication exclusively covered z/VM with the VMSSI feature
enabled. This decision was made because of the increasing popularity of the VMSSI feature,
which was furthered by the inclusion of VMSSI at no extra charge in the z/VM base as of
Version 7.1.
However, non-VMSSI installations are still in use, mostly at installations where ECKD DASD,
as described in Part 1.4.1, “Hardware” on page 18, is not present. When z/VM is installed to
SCSI-over-FCP disk, the use of VMSSI is not possible.
In addition, a new service mode was introduced with z/VM 7.2. Called VM Centralized
Service Management (VMCSM). This capability allows a single non-VMSSI system to
generate service updates for other non-VMSSI systems.
If you are just getting started with z/VM and were not planning to use the VMSSI feature
immediately, we still encourage you to install z/VM as a VMSSI cluster with only one member
node to facilitate expansion in the future. Adding nodes to an existing cluster is much easier
than having to start from square one.
This section describes the two options in an effort to help you make an informed decision.
If you purchased the IBM Dynamic Partition Manager (DPM) feature and do not plan to run
other IBM Z operating systems, you likely want to consider the use of DPM to operate your
system and manage the partitions you create.
Regardless of which method you choose, remember that IFLs are never assigned to an
PR/SM LPAR or DPM partition. Rather, the weights are set to move the entitlements to the
LPARs or partitions that are deemed to be higher priority. For more information, see “z/VM
configuration and performance information from Dr. Brian Wade:” on page 476.
The IBM Z virtualization landscape is unique by providing native support for two levels of
virtualization: The first level is used by PR/SM to enable logic partitioning and the second
level is used by z/VM to enable the efficient execution of virtual machines.
z/VM is a specialized operating system entirely dedicated to the execution of virtual machines
which makes it a type 1 hypervisor (see Figure 2-1).
Chapter 2. Planning 35
2.1.2 IBM Dynamic Partition Manager
IBM Dynamic Partition Manager (DPM) is a new administrative mode that was introduced to
LinuxONE servers. A system can be configured in DPM mode or PR/SM mode. DPM
provides a simplified way to configure a LinuxONE server. It supports Linux and KVM
systems with FCP-attached SCSI storage. It removes the need for IBM Z configuration tools,
such as Hardware Configuration Definition (HCD) and Hardware Configuration Manager
(HCM).
The entire system configuration is performed from the HMC. It eliminates the need to build a
stand-alone IOCP input deck for I/O devices. It also eliminates the need for the second
power-on reset (POR) to enable dynamic I/O, which is required in non-DPM configurations.
DPM provides for fully dynamic reconfiguration of CPU, memory, and I/O resources. Adding
and dynamically reconfiguring I/O devices is greatly simplified with DPM.
Note: For more information about DPM operations and capabilities, see z Systems IBM
Dynamic Partition Manager (DPM) Guide, SB10-7168.
In the z/VM 7.2.0 Installation Guide, the following methodologies are provided to install z/VM:
Traditional first level:
– VMSSI installation to DASD
– Non-VMSSI (stand-alone) installation to:
• DASD
• FCP/SCSI LUNs
Traditional second level non-VMSSI (stand-alone) installation to:
– DASD
– FCP/SCSI LUNs
Upgrade VMSSI installation to DASD
Upgrade non-VMSSI (stand-alone) installation to:
– DASD
– FCP/SCSI LUNs
Upgrade installations
An upgrade installation is used to perform an upgrade-in-place installation to migrate from
z/VM 6.4 or 7.1 to z/VM 7.2.
A new release system is used as a staging system that is installed in a second level system of
your current system. This upgrade-in-place process essentially performs the following tasks:
Creates a clone of your current system to run as a second level system.
Upgrades the cloned system to z/VM Version 7 Release 2.
After upgrade is complete, moves the new level of code to the current system with minimal
impact.
If your current system is a VMSSI cluster, you can upgrade one member individually.
If you are planning to install z/VM in either of the following ways, use the z/VM 7.2 Installation
Guide, GC24-6292, instead of this Virtualization Cookbook because we do not address these
options:
Second level (z/VM virtualized as a guest under z/VM)
On Fibre Channel Protocol (FCP)/SCSI disk
Chapter 2. Planning 37
2.2.3 New and upgrade installations to DASD
In this book, we describe the installation process by covering the initial load of z/VM in
memory first. Regardless of which installation method you choose, the initial load in memory
is the same process.
From that point forward, you decide which type of the following installations is better for you:
A first-level VMSSI installation of z/VM from DVD or FTP server onto 3390 DASD (highly
recommended at least with one VMSSI member only)
A first-level Non-SSI installation of z/VM from DVD or FTP server onto 3390 DASD
If you are new to z/VM, plan to install on only one logical partition (LPAR), and plan to use
ECKD DASD. It is still recommended that you proceed by using the VMSSI path. The
installation of a single-member VMSSI cluster provides you with an easy path for future
expansion to add member nodes later.
If you are installing to SCSI disk, you cannot install with VMSSI enabled. However, non-SSI
installations can use the z/VM Centralized Service Management (VMCSM) capability that was
introduced with z/VM 7.2. VMCSM allows non-SSI installations to manage service across a
set of systems from one central system.
In this book, we do not describe the non-VMSSI installation in detail; however, we describe
setting up VMCSM in Chapter 9, “z/VM Centralized Service Management” on page 275.
Before you adopt VMSSI, you must understand the architectural, disk, memory, and
networking requirements.
Even if you are experienced with the installation and service of z/VM, it is important that you
read the instructions for installation of z/VM with or without VMSSI.
If you are experienced with z/VM, or, are migrating from an older release, be aware that
significant changes were made throughout the platform, beginning with Version 6 Release 2.
It is critically important that you understand what changed and why.
Because of these differences, you must not create a cluster that contains a mix of first-level
and second-level z/VM members. Attempting to do so results in unpredictable or
catastrophic results.
For more information, see z/VM CP Planning and Administration, Version 7 Release 2,
SC24-6178.
Chapter 2. Planning 39
Real memory: Real memory resources are important for the source and the destination
systems for relocations. You need enough real memory to hold buffers during the
relocation on both systems, and accommodate the incoming guest’s working set afterward
on the target system. Relocation performance also is affected by the level of overall
resource constraint for the source and destination systems.
Dump space: If you are allocating a large amount of real storage (memory), you must plan
for dump space so that if you must collect a system dump, enough space is available to
write it to disk.
Linux distributions and LGR: With the introduction of LGR among members of your VMSSI
cluster, it is increasingly important to identify the level of Linux on IBM Z that is running
within each member. The latest level of a distribution release is considered to be the
supported level by the Linux Distribution Partners. The preferred practice for setting up
VMSSI is to ensure that you are running on the latest level and that your distribution is
supported by your Linux distributor.
If you plan to implement RACF, the database must be configured as being shared and at least
two ECKD DASD volumes are necessary. Concurrent virtual and real reserve/release must
always be used for the RACF database DASD when RACF is installed in A VMSSI.
For more information about sharing a RACF database, see z/VM RACF Security Server
System Programmer’s Guide, SC24-6212.
For information about DASD sharing, see IBM z/VM CP Planning and Administration,
SC24-6178.
If you are not familiar with the Hardware Management Console (HMC) and z/VM, refer to the
official z/VM 7.2 Installation Guide as you progress through the installation process.
2.3.1 Hardware
The following hardware is needed:
A minimum of one, and up to a maximum of four LPARs with:
– Processors or CPUs per LPAR: One IFL (or CP) minimum; two or more are
recommended.
– Memory: First level installation requires at least 768 MB of real storage that is assigned
to the LPAR where z/VM is to be installed. A total of 8 GB storage or more is
recommended.
– DASD: A total of 20 3390-09s were allocated to our lab system that is described in this
book.
– Open Systems Adapter (OSA) network cards: One card minimum with six device
numbers. Two OSA Express cards with six device numbers are recommended for high
availability.
A network-attached computer running Linux or UNIX that acts as a File Transfer Protocol
(FTP) server with at least 8 GB of disk space.
Important: FTP servers that run on any DOS or DOS-like operating system, such as
Microsoft Windows, are not supported. Therefore, Linux or UNIX (such as IBM AIX®) is
recommended. Be aware that a Windows-based FTP server is likely to cause code
page translation, which results in corruption issues during network transport.
A workstation that includes network access to the IBM Z and operates as the HMC if
physical access is not possible.
2.3.2 Software
z/VM 7.2 installation media with documentation is needed. The physical media of DVDs are
described. If you use Shopz to download the z/VM installation media and make it available by
using an FTP server, physical media is not needed.
After installing z/VM, you need one or more of the following software resources to install
Linux:
Red Hat Enterprise Linux version 7.1 or greater (we used version 8.2) installation media. If
you do not have it, you can request a 180-day evaluation copy from Red Hat. For more
information, see Appendix , “Online resources” on page 524.
SUSE Linux Enterprise Server version 15 or later installation media (DVD .iso files). If you
do not have it, you can request a 180-day evaluation copy at no charge from SUSE. For
more information, see Appendix , “Online resources” on page 524.
Chapter 2. Planning 41
Ubuntu Server version 20.04 LTS or later installation media. If you do not have it, you can
obtain a full copy at no charge from Canonical. For more information, see Appendix ,
“Online resources” on page 524.
The code that is associated with this book, as described in Appendix C, “Additional
material” on page 489
Tools on the workstation:
– A 3270 emulator, such as x3270, Attachmate Extra, Hummingbird Host Explorer, or
IBM Personal Communications.
– A Linux Secure Shell (SSH) customer, such as PuTTY, xTerm, or similar.
– A Virtual Network Computing (VNC) viewer, such as RealVNC, TightVNC,
MobaXTerm, or similar.
2.3.3 Networking
The following network resources are needed:
One TCP/IP address for each:
– z/VM system
– Linux virtual server
Associated TCP/IP information:
– Primary Domain Name Server (DNS) IP address and fully-qualified host name.
– Secondary DNS IP address and fully-qualified host name.
– DNS sub-domain/domain names to use for z/VM and Linux virtual servers (these might
not always be the same).
– DNS server TCP/IP address.
– TCP/IP gateway.
– TCP/IP subnet mask.
– TCP/IP maximum transmission unit (MTU) size.
Be sure to review the information that is provided in this book regarding correct MTU
sizes on IBM z/Architecture Open Systems Adapters (OSAs)
The TCP/IP addresses must be routed to the appropriate OSA cards.
Virtual LAN (VLAN) ID if you plan to use a VLAN
Locally Administered Ethernet Media Access Control (MAC) address range to be used
across all members of the z/VM cluster (IEEE 802 OSI layer 2 EUI-48; 02:00:00 OUI).
Under most circumstances, this information is obtained from the person or team that is
responsible for managing your network. If no one is responsible for managing your
network, use the following guidelines for assigning a Locally Administered address range
to use with your SSI cluster:
– The address range must be unique. Ideally, it must be unique across your entire
enterprise. If not possible, at a minimum it must be unique within the LAN segment to
which your OSA cards are cabled.
If you are deploying your new z/VM infrastructure onto a network segment that shares
a Server Access or Server Distribution switch with any existing production systems, it is
important that you ensure the uniqueness of your MAC address range. If it is not
unique, severe negative consequences can occur to the other network-attached
devices or systems.
The MAC address range must be unique within the LAN segment to which you connect. For
more information, see this IEEE web page.
IMPORTANT: If you plan to install Ubuntu Server by using Volume 4 of this book series,
review Appendix C of The Virtualization Cookbook for IBM z Systems Volume 4: Ubuntu
Server 16.04, SG24-8354 for considerations regarding systems that are behind a network
proxy or firewall.
Important: If you have a storage administrator that meets our definition, you must involve
them in your planning activities. Never assume anything; therefore, if you are not sure,
check with your CIO office to determine if such a person or group exists.
Your storage administrator is crucial to the success of your z/VM cloud deployment. By
involving them early on in the planning process, you ensure a smooth deployment that
performs at its optimal best.
Chapter 2. Planning 43
DASD versus SCSI-FCP
This book describes how to use conventional ECKD DASD and to access SCSI-FCP and
emulated DASD (EDEV) disks.
SCSI/FCP disks require worldwide port name/logical unit number (WWPN/LUN) identifiers
and the correct zoning setup.
Frequently, a combination of these types of disk storage is used. When a combination is used,
the ECKD or EDEV DASD are often used for the root file system and SCSI/FCP disks are
used for large data storage areas.
3390-09s, or larger
Emulated 3390-09s format to approximately 6.8 GB, about three times larger are 3390-27s
(20.1 GB), and 3390-54s format to about 42.1 GB. z/VM 7.2 can be installed on to 3390-09s
or larger. However, for the z/VM system volumes that are used for version, residence, release,
and so forth, we recommend the use of 3390-09.
For PAGE and SPOOL areas, DASDs larger than 3390-09 can be used; however, all of the
involved page and spool disks must be of identical size and not serve mixed purposes. If you
have 3390-54 or larger volumes available that also include associated HyperPAV aliases, we
recommend starting out with these for PAGE and SPOOL use.
Specific larger IBM Z or LinuxONE system customer environments are choosing to use
volumes that are larger than 3390-27s to avoid reaching the 64 K limit of real device
addresses (four-character hexadecimal).
EDEVICEs
SCSI Disks are emulated as 9336 Model 20 FBA DASD. FBA Emulation allows any operating
system or application that supports a 9336 to use SCSI disks without change. The following
Emulated 9336 disk sizes are supported:
1 TB for CP with the exception that PAGE, SPOL, and DRCT allocations must remain
below the 64 GB (minus a 4 K page) mark on a CP-formatted volume because internal
addressing of these slots is limited to 224 4-K pages.
381 GB for CMS/GCS including software functions that depend on CMS functions, such
as DIRMAINT MOVE, COPY, ERASE and DFSMS MOVE, COPY, and CHECK.
z/VM officially supports the following IBM hardware as emulated 9336 DASD (other SCSI
disks might work because a generic SCSI driver is provided):
IBM DS8000
IBM DS6000
ESS 750/800
SAN Volume Controller
IBM XIV®
For more information about the studies that led to these recommendations, see the following
resources:
CP Disk I/O Performance
Linux Disk I/O Alternatives
SCSI Performance
You might choose to add another full pack 3390-9 DASD at address 0701, which doubles the
disk space to 13.6 GB.
We strongly recommend the layout of file systems for Linux virtual servers that is shown in
Figure 2-2 and listed in Table 2-1 on page 46.
Chapter 2. Planning 45
Table 2-1 Linux virtual server file system layout
File system Size Mount Disk partition / File system type LVM
point logical volume
For more information about the types of file systems that are available for each Linux
distribution, see the following resources:
Red Hat: Managing file systems
SUSE Release Notes: 5.6.1 Comparison of Supported File Systems
Ubuntu: Linux Filesystems Explained
Swapping
The terms swap disk and swapping are often used in describing the operation of Linux, but it
is important to realize that Linux does not “swap” process spaces in the traditional sense. The
Linux behavior that is commonly referred to as swapping is the paging of data out of system
memory to a block device based on least recently used (LRU) algorithms. For historical
reasons, the term swap is still shown and used, but it refers to paging in Linux. Swap is also
used to help delineate paging at the Linux level (swap disk), in contrast to paging at the z/VM
level.
z/VM includes a feature that is called virtual disks (VDisks). VDisks exist in memory but are
presented to guest operating systems as disks. IBM Z memory is fast (many times faster than
disk especially); therefore, the use of VDisks for swap spaces makes sense because they are
so fast.
Ideally, your Linux systems never have to swap, but workloads cannot be predicted so easily.
Therefore, all Linux VMs must have an adequate set of swap spaces. What defines “an
adequate set of swap space” is debatable. However, the z/VM and Linux community agrees
that one or two small swap spaces on a VDisk that also can be backed up by a larger swap
space on real disk are best.
Real-world experience from IBM ATS and Lab Services teams that work with customers
indicates that correctly sized Linux guests seldom, if ever, swaps. This book describes how to
set up two VDisk swap spaces, but not the additional physical disk because it is seldom
required.
To create the swap spaces, the SWAPGEN EXEC created by Sine Nomine Associates, Inc. is
used. It creates and formats a Linux swap disk from Conversational Monitor System (CMS).
For more information about the current version, and instructions for downloading and
installing SWAPGEN are in the swapgen-readme.txt file that is available on this Sine Nomine
web page.
Chapter 2. Planning 47
2.5 HiperDispatch planning
In z/VM 6.3, IBM introduced new virtual server dispatching technology into z/VM this is called
HiperDispatch. The z/VM HiperDispatch enhancement is meant to help the workload realize
good performance from the CPC’s memory subsystem, especially from its caches. To achieve
this performance, z/VM HiperDispatch runs the partition in vertical mode, dispatches virtual
servers in a topologically aware way, and uses logical CPUs in accordance with the
availability of physical CPU power.
Workloads that are likely to benefit from z/VM HiperDispatch are those workloads for which
cache performance is likely to influence total performance. Workloads with these traits usually
involve a few CPU-heavy virtual servers for which isolating their execution from one another in
the physical hardware will allow cache to adapt well to the respective servers’ memory
reference habits.
Memory planning might be the most complex issue with z/VM and Linux on IBM Z or
LinuxONE systems, yet it is the most important factor in performance.
By using the Hardware Management Console (HMC), you can define the INITIAL and
RESERVED real storage (memory) for each LPAR that will run z/VM. When you IPL z/VM, the
control program assumes that all of the INITIAL central storage is available to it.
For more information about memory planning, see the following resources:
Linux on IBM System z: Performance Measurement and Tuning, SG24-6926
IBM z/VM Performance Resources
For z/VM 6.3 and newer Releases
After you determine the INITIAL value that you plan to use for each LPAR, also always define
RESERVED storage, even if you think that you will not require it immediately. By defining
RESERVED storage, you can dynamically increase the amount of memory that is available to
z/VM without requiring a shutdown. The added storage is typically obtained from standby
storage, which is a dynamically calculated value that is based on the following information:
Amount of storage that is installed in the CPC that is not claimed by activated LPARs
Amount of RESERVED storage that is specified for the LPAR
A good rule is to allocate memory on a “just enough” basis for each Linux VM. A good starting
point is to set a VM size by changing the memory allocation value to be slightly above the
value at which Linux has more than 64 MB of combined cache and buffer. If you are migrating
workloads from distributed platforms, you typically find that Linux under z/VM needs less
memory to which you are accustomed.
In addition to the “just enough” amount of memory, assign a number of VDisks as SWAP
disks to each of the Linux VMs. The VDisks must provide as much memory as Linux needs at
the peak level during operation.
When you are performing calculations for z/VM page disks, add up all of the maximum real
storage and VDisks, plus reserve. That amount also must be available as real memory to the
LPAR, plus page space.
One recommended rule is to have as few VMs logged on (or in a disconnected state) as
possible to handle the workload that is presented. Every VM that is not required needs to be
logged off where suitable because more memory is available for the other VMs that remain
running.
Chapter 2. Planning 49
2.6.3 Global aging list
In the unusual situation where your CPC has an abundance of unassigned memory and you
can assign enough initial storage to your LPAR to fit your intended z/VM workload entirely into
central storage, run with a small global aging list and with global aging list early writes
disabled.
In all other situations, use the IBM recommendation to run the system with the default global
aging list size. For the environment that is described in this book, the default is used.
The global aging list can be controlled by using the CP SET AGELIST command or the STORAGE
AGELIST system configuration file statement.
2.7 Paging
Your paging channels and DASD must be planned to be equipped for conducting multiple
concurrent paging I/O operations. As the paging configuration becomes capable of increasing
levels of I/O concurrency, CP then becomes increasingly able to handle the concurrent
execution of page-fault-inducing VMs. This ability results in optimal throughput for your
workloads.
B Sum of the sizes of any data spaces for all logged-on VMs.
C Sum of the sizes of any VDISKs that are created for all logged-on VMs.
D Sum of the sizes of any shared NSSes or DCSSes for all logged-on VMs.
F Multiply E by 1.01 to account for the DAT structures that are associated with all
that pageable data.
G Total number of CP directory pages that are reported by DIRECTXA. Be sure that
you convert pages to MB, GB, or whatever unit that is used.
Chapter 2. Planning 51
A Sum of primary address space sizes for all logged-on VMs, which are all VMs that
are typically expected to be up and running under normal conditions, such as
DirMaint and other service machines, and the Linux VMs.
H 10% of real storage that is defined for the LPAR to allow for system-owned virtual
pages.
J Multiply I by a reserve margin value to obtain J, which is the final value you use.
recommended Reserve is added because your calculation might be uncertain and your system
grows over time.
Multiply your value that is calculated for I by a reserve safety margin to help to
protect yourself against abends that are caused by paging space filling up. IBM
offers no rule for the reserve safety factor multiplier that you need to use. For this
book, the authors chose a value of 25% and recommend no less than 15%.
The z/VM systems programmer and Linux systems administrator can be the same person.
The method of backing up z/VM data onto the Linux administration system that is described in
this book means that the Linux administrator can access all z/VM passwords, unless
RACF/VM or another external security manager (ESM) is in place to provide password
encryption. As described in 1.5, “Choices and decisions for this book” on page 27, the use of
an ESM must not be seen as optional.
Important: A different method of backing up z/VM data, such as IBM Backup & Restore
Manager for z/VM, must be chosen in a situation where the following conditions exist:
An ESM is not used.
The z/VM systems programmer and Linux systems administrator roles are separate.
The Linux administrator does not have access to the clear text z/VM password.
If you choose to deploy your system in an unsecured manner by omitting an ESM, the USER
DIRECT file and possibly others that are associated with it \ contain clear text passwords for
every USER and IDENTITY.
In general, it is considered bad practice to set a password for any USER or IDENTITY that is
a non-person ID. That is, each individual who requires access to z/VM must be issued their
own ID that is for their exclusive use and never to be shared with anyone else for any reason.
Each individual’s ID should then be granted LOGONBY authority for any other ID to which
they require access. This process provides an audit trail to identify who accessed an
alternative ID and when. It also eliminates the need to change and remember multiple
passwords.
For more information about how to correctly configure LBYONLY, see 6.13.6, “Creating a
time-based virtual service machine named CRONSVM” on page 212.
2.9 Network
Most servers need network connectivity. On IBM Z or LinuxONE systems, different
networking methods are available, which are provided by the I/O subsystem that controls the
LPARs, such as IBM PR/SM (possibly with IBM Dynamic Partition Manager [DPM]), or the
z/VM hypervisor.
Several other networking methods are available that are not described in this book because
they are impractical, complex, or limited.
The virtual Open Systems Adapter (OSA) and Virtual Switch (VSWITCH) TCP/IP devices that
are used in z/VM are equivalent to high-end enterprise class networking devices. You need at
least a fundamental understanding of TCP/IP networking, routing, and switching to plan your
network configuration more easily.
If you have a new installation, we recommend that you use one of the options that are
described in this section.
Important: If you have a network administrator that meets our definition, you must involve
them in your network planning tasks. Never assume anything; if you are unsure whether a
network administrator person or groups exists, check with your CIO office.
Chapter 2. Planning 53
Even the best system is useless if nobody can use it. Without networking, your systems
cannot be accessed. As such, it is important that you view your network administrator as an
ongoing partner in all of your IT projects.
Collaboration ensures that MAC addresses and other network configuration do not become a
problem that can cause more re-configuration efforts later. This collaboration also help to
ensure that you do not inadvertently create any possible problems.
IBM developed the QDIO mode to enhance high-speed OSA Express adapters. It brings with
it many features, such as fast-path I/O, direct memory addressing, LPAR-to-LPAR
capabilities, and configuration-from-host options.
The following rules apply to configuring OSA OSD adapters for use:
READ/WRITE must be an even/odd pair:
– READ is set to an even device number.
– WRITE is set to the device number after READ.
DATA can be another device number on the same device, it is nearly always the device
number following the WRITE device.
A good method to provide this type of device is the read, write, data method:
The first device gets 0AD0, 0AD1, and 0AD2.
The second device gets 0AD4, 0AD5, 0AD6 or 0AD6, 0AD7, and 0AD8.
VSWITCH interfaces
The VSWITCH type of network is provided to z/VM VM systems by z/VM. During the
installation phase, a basic VSWITCH is configured. VSWITCHES are software switches that
offer many of the capabilities that are provided by a real switch.
The IBM recommended configuration for z/VM VSWITCHES is ETHERNET mode, which is
also frequently referred to as Layer 2. Ethernet-based networks are currently used for most
z/VM installations that run Linux as a VM operating system. Under virtually all circumstances,
z/VM VSWITCHES must be configured as ETHERNET/Layer 2.
A simplified way to help determine the correct MTU size to use is to run tracepath
destination from a Linux system on the same network segment that your OSAs use. It
traces the path to destination and discovers MTU along this path by using User Datagram
Protocol (UDP). It is similar to traceroute, but it does not require superuser (root) privileges.
Follow these guidelines:
If the application data is less than or equal to 1400 bytes, use an MTU size of 1492.
If the application is able to send larger chunks of data, use an MTU size of 8992.
Important: These MTU sizes are all-inclusive. They apply to z/VM and Linux virtual
servers running under z/VM.
Chapter 2. Planning 55
Transmission Control Protocol (TCP) uses the MTU for the window size calculation, not the
actual application send size. For VSWITCH, an MTU size of 8992 is recommended if possible
because an OSA is optimized for use with an 8992 MTU. With synchronous operation, SIGA
is required for every packet. You do not encounter packing (stalling due to queuing) from a
VSWITCH as you do from a dedicated OSA.
Attention: Most Linux distributions assuming that they are operating on commodity
hardware; therefore, the default Ethernet MTU of 1500 is the typical default value. Do not
use the default MTU of 1500 with Linux on IBM Z or LinuxONE; instead, use the guidance
that is provided in this chapter.
For more information about TCP/IP and the z/VM hypervisor, see Appendix B, “Reference,
cheat sheets, blank worksheets, and education” on page 475.
For more information about Open Systems Adapters, see IBM z Systems Connectivity
Handbook, SG24-5444.
The main use for this type of network option is as an internal connection between two
Z LPARs that are on the same physical system frame. An example is the connectivity between
a z/OS LPAR that serves IBM DB2® and a z/VM LPAR where one or more Linux VMs access
the DB2 instance on z/OS.
With the advent of 10 GB Ethernet connectivity, the utility from HIPERS is diminished. The
network speeds that are obtained from a HiperSocket are substantially similar to that of
10 GB Ethernet.
It is the general opinion of the authors of this book, whenever you can use 10 GB Ethernet or
HiperSockets, use the 10 GB Ethernet unless a substantially compelling reason exists not to
use it.
HiperSockets characteristics
HiperSockets feature the following characteristics:
They are used to configure the connection between two Z LPARs.
HIPERS is a direct memory-to-memory pipeline; it operates at memory transfer speed.
HIPERS can use System Assist Processors (SAP).
HiperSockets require access to the General Purpose Command Processor (CP). Because
of this, HiperSockets are not available on any LinuxONE CPC, nor any LPAR that is
defined to have only IFL engines.
HIPERS can become queued and stall if it is waiting for processor time.
Bridges to networks that are outside of the mainframe can be configured.
The interconnection between Linux and z/OS is configured with Layer 3 HiperSockets.
HIPERS provides a limited number of real devices that cannot be reused from different
LPARs.
Important: Use caution when you implement HIPERS on processor-bound, heavily loaded
LPARs where software or programs are running that are sensitive to or intolerant of
network delays or stalls.
If you \ use the VMSSI feature for consolidated systems management only, two CTCs for each
SSI member are sufficient. If you plan to use LGR also, plan to add a third CTC to each
member node soon as the workload grows. For more information, see 5.8, “Adding CTCAs to
an SSI cluster” on page 130.
To configure the two channel-to-channel adapters (CTCAs) during initial installation, you need
Input/Output Definition File (IODF or IODEF) information from your hardware configuration
colleague. They initially must provide two FICON Native CTC (FCTC) control units, each with
a minimum of four devices.
Example 2-1 shows sample IODF configuration statements that represent the FCTC
connections for member 1.
Chapter 2. Planning 57
Example 2-2 shows the configuration for member 2.
From the provided CTC information, the selected CTC devices from ITSOZVM1 are 41A0 and
41A1. For ITSOZVM2 devices, 5190 and 5191 are used.
For more information about CTC capacity recommendations, see z/VM Performance Update
for z/VM 6.2.
Each DASD includes a real device address that consists of four hexadecimal digits, and each
DASD has a six character label. When assigning DASD labels, include the four-digit address
in the label so that you can easily tell the address of each DASD from its label. As your
workload expands and you begin to work on disk administration tasks, this information proves
to be invaluable because it saves time.
When followed thoroughly, this naming convention ensures that no two DASDs have the same
label, which can be important, especially when an IBM z/OS LPAR can access the DASD.
Sometimes, DASD is shared among LPARs. In this case, your z/VM LPAR can see DASD that
is owned by other LPARs. In this situation, it is convenient to identify the LPAR or SSI that
owns the DASD.
Therefore, the volume labeling convention that is used in this book creates DASD labels
where each of the six characters specifically represents identifying information:
Character 1 Identifies the LPAR or VMSSI cluster name or ID. The example VMSSI
cluster in this book is identified by the character “V”.
Character 2 The basic function of the DASD.
Characters 3-6 The real device number of the DASD volume.
Note: Previous iterations of this book recommended the use of 0600 as the default virtual
device number for a virtual network adapter. We recommend against this default because it
can become confusing.
Default virtual network adapters should use 0AD0, which can be thought of as “adapter 0”. By
reserving the 0AD0 - 0ADF range for networking only, it is easy to recognize a virtual NIC.
Each virtual NIC uses three channels; read control, write control, and data. Therefore, when
you define a virtual NIC that uses device 0AD0, it also implies that 0AD1 and 0AD2 also are
used. Issuing the QUERY VIRTUAL NIC device DETAILS command displays the output that is
shown in Example 2-3.
Chapter 2. Planning 59
→ Device: 0AD0 Unit: 000 Role: CTL-READ
→ Device: 0AD1 Unit: 001 Role: CTL-WRITE
→ Device: 0AD2 Unit: 002 Role: DATA Port: 2205
Options: Broadcast Multicast IPv6 IPv4 VLAN
Unicast IP Addresses:
9.60.87.203 MAC: 02-04-0D-00-00-58
FE80::204:D00:200:58 MAC: 02-04-0D-00-00-58 Local
Multicast IP Addresses:
224.0.0.1 MAC: 01-00-5E-00-00-01
FF01::1 MAC: 33-33-00-00-00-01 Local
FF02::1 MAC: 33-33-00-00-00-01 Local
FF02::1:FF00:58 MAC: 33-33-FF-00-00-58 Local
Because 0AD0 - 0AD2 are used for your first NIC, if you must define a secondary NIC by using
0AD3.
Note: The previous edition of this book used 0600 as the default virtual device for Virtual
NICs. We recommend any user that is still using this default to discontinue it and instead
adopt the advice that is presented in this section.
Note: Previous iterations of this book recommended the use of 0100 as the first virtual
device number for a minidisk to be used with a Linux virtual server. We recommend against
the use of the range 0100 - 06FF because it competes with z/VM volumes in the same
range.
To ensure it is clear that a minidisk or virtual disk is used for Linux, begin at virtual device
0700. This device makes it possible to easily understand what is a Linux volume versus
something else.
Avoid the use of the range 0100 - 06FF for Linux minidisks or dedicated volumes.
Originals
For the original file, the suffix ORIG is used. For example, before any editing is done, the
original USER DIRECT file is copied to the file USER DIREORIG before it is modified for the first
time. The original SYSTEM CONFIG file is copied to the SYSTEM CONFORIG file. This process
ensures that you always retain the original copy.
Both methods are described next and use the SYSTEM CONFIG file as an example to help you
decide which makes the most sense for you:
It works:
– Only the most recent working copy is retained and uses the suffix WRKS (for “it
WORKS”).
– Before editing, SYSTEM CONFIG is copied to the file SYSTEM CONFWRKS.
In this fashion, a copy of the original, a copy of the current, and the last working copy of
configuration files always exist.
Now minus; typically referred to as n minus:
– Several recent working copies are retained and use the suffixes -1, -2, -3, and so on.
– Before editing, SYSTEM CONFIG is copied to the file SYSTEM CONF-1.
– If SYSTEM CONF-1 exists, it is renamed to the file SYSTEM CONF-2 first.
This method is simple to implement by using REXX.
A convention in z/VM is to use the F12 function key (labeled PF12 on physical 3270 devices)
to retrieve the last command, although it is not defined to all VMs. No convention exists to
retrieve commands in the other direction, but it is possible to set another key to that function.
Therefore, the F11 key is used to retrieve forward because it is next to the F12 key. Also, the
same function is useful in the editor, XEDIT. The ? subcommand retrieves past commands,;
therefore, it is recommended that you assign it to F12.
For more information about implementing this concept, see “PROFILE EXEC for Linux virtual
machines” on page 497.
Chapter 2. Planning 61
2.12 Architectural overview of this book’s environment
Figure 2-3 shows a block diagram with the CPC, LPARs, and volume labels that are used in
this book. The example VMSSI in this book consists of two members on a single CPC;
therefore, the bottom half of the diagram is left blank.
The planning worksheet that is shown includes the resources that were used in writing this
book to serve as an example.
Important: The values in the following fully populated worksheet tables are shown in
monospace bold italics to signify that you need to replace the example value with the
correct value for your environment.
Previous versions of this book encouraged the collection of passwords on the planning
worksheets. For obvious reasons, this suggestion is not followed. No valid reason exists to
write down passwords. Instead, catalog all of the user IDs and passwords you are responsible
for in a well-known, thoroughly vetted trust no one (TNO) password vault solution, such as
LastPass, OnePass, or other similar password management solution.
User ID My IBMid
The values that are required for each row are listed in Table 2-4.
HMC password Because out HMC is set up to use LDAP by using an RACF-LDAP
connector, this password is the same password that is used to log in to
z/VM
Chapter 2. Planning 63
The required values for each row are listed in Table 2-5.
Product install target F (SFS file pool) Leave set to the default value of F for all
M (minidisk)
DASD model 3390 10016 3390 10016 is a reference to 3390 Model-9. If you
3390 _________ are installing to a larger disk size, overtype 10016
with the cylinder count for the disks you will use.
(Installation to a fixed-block architecture (FBA)
disk is not described in this book.).
SSI cluster name RBVMCLA VMSSI installation only. Our example is Redbooks
z/VM cluster “A”
Automatic configuration NO
INSTPLAN panel 3
Complete this table to document the values that you use on the third installation panel, as
described in 5.6.1, “Copying in-memory z/VM system to DASD” on page 124. The member
names become the z/VM system identifiers, and the LPAR names must be the same names
as on the HMC.
The required values for each row are listed in Table 2-6.
Table 2-6 INSTPLAN values for panel 3
Slot Member name LPAR name Comment
INSTPLAN worksheet 3
Complete the worksheet in Table B-6 on page 484 to document the volume labels and real
device addresses that you use on the third installation panel that is described in 5.5.1,
“Copying the in-memory z/VM system to DASD” on page 115.
INSTPLAN worksheet 4
The values in Table 2-8 document the common volume and CTC addresses that are used in
this book. This pane is shown in 5.5.1, “Copying the in-memory z/VM system to DASD” on
page 115. If only two members exist in the SSI, you must specify only two pairs of CTCAs
(from member 1 to member 2, and vice versa).
Chapter 2. Planning 65
2.13.4 z/VM networking resources
Table 2-9 lists the networking resources that are used in the examples in this book. They are
needed when you start the IPWIZARD and when you create a VSWITCH for the Linux VMs.
TCP/IP domain name cpolab.ibm.com System domain name is usually set in DNS.
TCP/IP gateway 9.76.61.1 The router to and from the local subnet.
OSA starting device number 1944 Start of OSA triplet for z/VM TCP/IP stack.
VSWITCH1 primary OSA triplet 0FA0 Specify the first real device number and the
0FA1 0FA2 next two device numbers will also be used.
Important: For setting the VMLAN MACPREFIX value, IBM z/VM CP Planning and
Administration, SC24-6178, includes the following information:
“In A VMSSI cluster, system-defined locally administered MAC addresses are created
by using the prefix value that is specified on the MACPREFIX operand. The MACPREFIX
value must be different for each member of the cluster. The default value is 02xxxx,
where xxxx is the member’s slot number on the SSI statement. If the MACPREFIX value is
explicitly defined, the VMLAN statement must be qualified for the member to which it
applies. Therefore, if a VMLAN statement with the MACPREFIX operand is retained from the
non-SSI system or created in this step, it must be qualified for member VMSYS01.”
Chapter 2. Planning 67
2.13.6 FCP devices
Table 2-11 and Table 2-12 list the z/VM FCP resource values that are used in the examples in
this book.
A0A C05076DD90000484
C05076DD90000AE4
A0A C05076DD90000488
C05076DD90000AE8
A0A C05076DD9000048C
C05076DD90000AEC
A0A C05076DD90000490
C05076DD90000AF0
A0A C05076DD90000494
C05076DD90000AF4
A0A C05076DD90000498
C05076DD90000AF8
A0A C05076DD9000049C
C05076DD90000AFC
Table 2-13 External Linux FTP server resources that were used in this book
Name Example Value Comment
User/password ftpuser/linux4vm
Table 2-14 Linux common configuration values that were used in this book
Name Example Value Comment
Chapter 2. Planning 69
2.13.8 Host names and IP addresses
Table 2-15 lists the host names and associated IP addresses that are used in the examples in
this book.
vmlnx2-4.ats.ibm.com 9.60.101.93
vmlnx2-11.ats.ibm.com 9.60.101.100
vmlnx2-12.ats.ibm.com 9.60.101.101
vmlnx2-13.ats.ibm.com 9.60.101.102
vmlnx2-14.ats.ibm.com 9.60.101.103
vmlnx2-15.ats.ibm.com 9.60.101.104
In this chapter, we discuss security considerations for your z/VM environment that help to
make it a more secure place for Linux systems to run.
Establishing rules up-front, getting support for those rules at the corporate level, and knowing
where the rules are written down, makes it much easier to work out what you need so that
those rules are enforced in your IT systems.
This book does not discuss the establishment of a corporate security policy. However, we do
cover some aspects of z/VM security that are relevant to supporting good IT security policy
and protecting Linux virtual machines (VMs) under z/VM.
Linux features its own security model, which is implemented in several kernel and file system
capabilities, including the following examples:
File system permissions, and access control lists (ACLs)
Mandatory Access Control layers, such as SELinux or AppArmor
Cgroups
Because Linux features its own security capability, it is tempting to consider security at the
hypervisor layer to be superfluous or unnecessary. However, this idea is a significant and
risky security exposure that can put your environment at risk.
This movement of data between VMs might occur through attaching the disks of one instance
to another, or by creating an isolated network connection between them. These methods
might result in sensitive data (such as SPI) being exfiltrated from a high-sensitivity VM to one
with a lower security profile.
One way to mitigate this issue might be to create separate hypervisor instances for the
different security levels in your environment. However, this process quickly leads to problems
in scalability and management by forcing more hypervisor instances that might be needed to
support the workload. Also, it becomes harder to effectively manage resource allocation
across too many hypervisor instances.
A strong security configuration at the hypervisor layer allows for full protection of resources
across the environment, reduced management overhead from a reduction in hypervisor
instances, and improved resource allocation.
Although the use of a directory manager can help to mitigate these points, it cannot eliminate
them. Password management is still a concern because a system administrator can still
obtain clear-text passwords. Also, the granularity of resource access control is not improved.
These points can be addressed through the use of an External Security Manager (ESM).
Password management
When an ESM is used, the passwords in the directory are no longer used. User passwords
appear in the directory as placeholders, and minidisk passwords are ignored.
An ESM stores passwords in an encrypted form in its database; therefore, the passwords
cannot be read from a file. Also, ESMs do not provide a method of retrieving or querying a
password.
The use of an ESM also enables the use of pass phrases instead of passwords. Like CP
directory passwords, ESM passwords are limited to eight characters from a limited character
set. Pass phrases (as implemented in RACF) support up to 100 characters from a wider
character set.
Note: In the past, some ESMs (including RACF) did not use strong encryption methods to
protect passwords; instead, they used “security by obscurity”. RACF now provides the
KDFAES password encryption method, which uses much stronger encryption (backed by
the hardware CPACF) to protect passwords and pass phrases.
Enabling KDFAES also avoids a previous RACF restriction around pass phrase length.
Pass phrases 9 - 13 characters were not supported in RACF without writing an exit to allow
them. This restriction is removed when KDFAES is enabled, and pass phrases 9 - 100
characters are supported.
The use of pass phrases instead of passwords is an important consideration that allows z/VM
to integrate into a wider enterprise security environment.
With an ESM in place, access can be granted to individual users or groups of users. More
importantly, if access must be revoked from an individual or group, this process can be done
without affecting any other valid access. Even if an individual is a member of a group that can
access a resource, that individual can be denied access to the resource by defining a specific
“deny” entry removing their access.
By using an ESM, authority can be delegated to different individuals. For example, RACF
provides a capability to make a user ID a security administrator for a group to which the user
is connected. This capability is known as group-special.
A user with the group-special attribute on their connection to a group can perform security
operations against users in that group without having to be made a system-wide
administrator. By using this mechanism, different users can be made security administrators
of different parts of the z/VM environment (such as one or more Linux system administrators
can be given group-special over the Linux systems they manage).
Auditing
The security of a system is only as good as its administrator’s ability to prove it is secure. One
of the strengths of a z/VM system that is secured by using an ESM is the audit stream that is
available. By using the audit records that are created by the ESM, it is possible to document
that a security event did (or did not) occur by reviewing the audit trail.
On RACF, auditing is provided by using SMF. To ensure that the audit trail is reliable, it is
important to configure SMF to write the audit data out to persistent storage when the SMF
data disk fills.
SMF on z/VM RACF provides two data disks for this purpose, and by default switches from
one recording disk to the other when one fills. To ensure that it can switch back again when
the second disk fills, some processing is required to clean up the data disk and prepare it for
its next use.
RACF also allows the system administrator to configure how the system is to respond if both
audit data disks ever fills or otherwise become unusable. The default action is for RACF to
continue operating without recording audit data. In a production environment, it is essential
that this behavior is changed so that no auditable action is allowed to occur without a record
being kept. In the SMF CONTROL file, RACF can be configured to sever its connection to CP if
that SMF data cannot be recorded.
Although SEVER YES is the recommended configuration, it must not be set until suitable
automation or management of the SMF data disks is established.
z/VM can help to separate administrative roles into separate IDs, which makes it difficult for
the actions of an individual (accidental or malicious) to create a security event. In addition,
z/VM provides a capability that is called surrogate logon (known as logon-by) to protect VM
and other user IDs that are on the system that might be shared for valid administrative
purposes.
Some shared user IDs are provided as part of a z/VM system (including MAINT, MAINTvrm,
TCPMAINT, product owning IDs, and service VMs). In addition, Linux guest VMs can be
considered shared.
Without surrogate logon, the passwords for these users must be recorded in a way that is
accessible by those with an authorized need to access them. A secure way of managing this
process is to add complexity, which also might affect recovery time in the case of a problem
that required the shared ID to resolve. Done insecurely (such as the
“password-on-the-noticeboard”), the shared ID presents a significant risk to the security and
integrity of the system.
With surrogate logon in place, authorized system administrators use their own credentials
(user ID and password or passphrase) to log on to the shared ID. Credentials are not shared,
and only an administrator who is authorized to log on to the shared ID is permitted to do so.
Also, when managed by using an ESM, audit records are generated for every successful (or
failed) attempt to log on as a shared ID.
IBMVM1 ID
With z/VM 7.1, IBM delivered the IBMVM1 user ID to demonstrate the correct use of the
surrogate logon capability. In the default directory that is installed with z/VM 7.1, IBMVM1 is
used to access most of the shared IDs on the system.
Important: It is vital to ensure that IBMVM1 is used only as a modeling template for the
setup of administration IDs on your system. IBMVM1 must never be used for someone to
log on to the system.
After your local system administrator IDs are defined and thoroughly tested to ensure that
they function as expected, we recommend that the IBMVM1 ID is disabled by setting the
password to NOLOG, as described in 15.3, “Using DirMaint to set special passwords for an ID”
on page 447 or setting the status to REVOKED by using the ESM.
In older releases of z/VM, the MAINT ID was used for all administration tasks. From user
creation and administration to software installation and service, the MAINT ID was used for
everything. If a system administrator bothered to create an ID for themselves, it generally was
a copy of MAINT with all of its privilege classes copied as well.
As a result, it is common to see many z/VM system administration tasks still being managed
through only one or two admin IDs (often the ones supplied with the z/VM system). This issue
might represent a security exposure in that one or two user IDs feature high levels of system
access authority. If such an ID became compromised, a significant risk to the system can
result.
Note: Some tasks are sufficiently complex that they must be done by using the supplied
ID; for example, z/VM service by using VMSES/E that uses the MAINT720 ID. Other tasks,
such as System SSL certificate maintenance by using the GSKADMIN ID, are done so
infrequently that the supplied ID is the most effective one to use.
We are not suggesting that supplied IDs is not be used; rather, these supplied IDs can be
used for the purpose they are supplied. We are suggesting that the access and use of
these IDs be managed and monitored, used correctly, and not used to circumvent security
or management practices.
One of the simplest areas where risk can be reduced is by removing security administration
access from the system administration IDs. Security administration is not likely to be a daily
task because a system that is established does not need frequent security changes. Also,
changes that are needed can often be done automatically by using tools (such as the
DirMaint-RACF connector as described in “DirMaint-RACF Connector” on page 321) to mirror
directory changes into RACF.
Hint: During the installation or set up of a new system, the convenience of making security
changes while performing installation or set up tasks might override the security concerns.
However, this convenience must be weighed against the risk to system integrity that might
occur if the ID became compromised. Any such convenience must be viewed as
temporary, and reviewed and removed at the earliest opportunity.
The IBM Z Multifactor Authentication V2.1 product (5655-MA1) supports z/VM and z/OS
(although a separate installation of the MFA server is needed for z/VM and z/OS systems).
The extra factors can be various out-of-band techniques, including RSA SecurID, LDAP,
Radius, and one-time password (OTP) systems, such as Google Authenticator.
Although MFA is configured across an entire ESM instance, MFA log on is enabled on a
per-user basis. Fallback to an ESM password or passphrase can be configured, also on a
per-user basis. Also, the attributes of the provided authentication token can be configured,
such as the number of uses, the length of time it is valid (from seconds up to 24 hours), and
the length and character composition.
Note: When MFA is used for an ID, the ESM password or passphrase is not one of the
available tokens that can be used. The only time the ESM password or passphrase is used
for an MFA-enabled user is if fallback is enabled (and the user uses their fallback).
MFA further enhances the ability of z/VM to integrate into the security policies of an enterprise
installation.
The z/VM LDAP Server also supports TLS, but it does not use the z/VM System SSL.
Instead, it uses its own internal TLS implementation.
TN3270 is the main access method to a z/VM system. Because it is based on the Telnet
protocol, it provides no security by default. Therefore, passwords and other information can
be retrieved from an intercepted network session.
Such an exposure might occur for entirely innocent reasons. At some point, your
organization’s network team might be conducting problem identification on the network. As a
result, they might be required to capture network traffic. During that traffic capture, you
happen to log on to your z/VM system, so your z/VM login details are captured. Then, that
capture data might be sent to your organization’s network hardware vendor or other external
organization for analysis, including your z/VM credentials.
Despite being an EBCDIC data flow, a login by using unencrypted TN3270 can be easily
decoded. We used the popular Wireshark tool to trace traffic during a log on to a non-TLS
z/VM system, and can easily locate the user ID and password in the stream.
Note: Ansible is a popular system management tool that can be used to simplify the
configuration of large system deployments across various platforms. Although no native
Ansible modules are available for z/VM, it is still possible to use Ansible for tasks in support
of z/VM management.
Ansible provides the following modules that use OpenSSL to create and manage certificates:
openssl_privatekey This module is used to create a private key file that can be used in
subsequent certificate operations.
openssl_csr This module creates Certificate Signing Request (CSR) files, which
are sent to a Certificate Authority (CA) to generate a certificate.
openssl_certificate This module performs various operations on certificates, including
signing (generation of a certificate from a CSR), and verification and
validation of certificates.
Example 3-1 shows the Ansible task that can be used to create a CA certificate. The variables
ca_key_path, ca_csr_path, and ca_cert_path are provided in the playbook that starts the
task, or in a variable file (perhaps included by way of the host inventory).
After the CA is created, it can be used to sign certificates for any purpose, including the
creation an intermediate CA, if needed.
The use of Ansible to create a certificate that is signed by our CA is shown in Example 3-2.
Here, we are creating the z/VM private key, and a CSR with the details of the certificate we
want to generate. The openssl_certificate module is used to sign the certificate by using
the CA certificate. Finally, a PKCS#12 file is created that contains the server certificate, server
private key, and CA certificate.
Example 3-2 Ansible task for creating a certificate and PKCS#12 package file
---
- name: generate z/VM private key
openssl_privatekey:
path: "{{ ca_key_path }}/zVM.pem"
z/VM System SSL supports the use of a PKCS#12 key file as an alternative to the traditional
gskkyman key database (KDB). Although the KDB format still has some advantages on z/VM
(it is easier to have different certificates for different purposes stored in the same key
database, for example) the easy generation of a PKCS#12 file by using common utilities makes
it attractive. In our example, after the PKCS#12 file that is generated by the Ansible task is sent
to z/VM, the configuration is almost complete.
We used FTP as a transport to send the file by using a single curl command, as shown in
Example 3-3. We then also used FTP to store the PKCS#12 file passphrase in the required
stash file (.p12pw).
Example 3-3 Transferring the PKCS#12 file to z/VM, and creating the passphrase stash file
$ curl -v -T /etc/pki/tls/certs/zVM.p12 -Q "CWD /../VMBFS:VMSYS:GSKSSLDB/"
ftp://maint.by.ibmvm1:[email protected]/
* Trying 9.60.86.71...
* TCP_NODELAY set
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0*
Connected to 9.60.86.71 (9.60.86.71) port 21 (#0)
< 220-FTPSERVE IBM VM Level 710 at IBMZVM.IBM.COM, 11:38:34 UTC SATURDAY
2020-09-12
< 220 Connection will close if idle for more than 5 minutes.
> USER maint.by.ibmvm1
< 331 Send password please.
> PASS ********
< 230-MAINT logged in; working directory = MAINT 191 (ReadOnly)
< 230 write access currently unavailable
> PWD
< 257 "MAINT.191" is working directory (ReadOnly)
> SYST
* Entry path is 'MAINT.191'
< 215-z/VM Version 7 Release 1.0, service level 2001 (64-bit)
< VM/CMS Level 29, Service Level 2001
< 215 VM is the operating system of this server.
Note: If the files are newly created and not replacing files, it might be necessary to modify
the permissions of the files uploaded. The GSKADMIN ID can be used for this purpose.
After the PKCS#12 and passphrase stash files are created, you can update the TCP/IP
configuration. The SYSTEM DTCPARMS file is updated to point System SSL to the uploaded
PKCS#12 file (see Example 3-4).
Example 3-4
:nick.SSL* :type.server
:class.ssl
:stack.TCPIP
:Parms.KEYFile /etc/gskadm/zVM.p12
Note: For more information about GSKADMIN, see “Encrypting communications by using
SSL/TLS on z/VM” on page 221.
Consider the following points regarding the architecture that is shown in Figure 4-1:
For one cloud, only one management node must be set up that manages all of the
compute nodes.
For each to-be-managed z/VM, one compute node is required.
The management node can be installed at the same z/VM with one of the compute nodes,
but they must be on different Linux virtual machines of that z/VM.
4.1.2 Automation
By using a library of predefined images, it is possible to quickly change the environment to
better fit any situation. The workloads also can be better fit by starting new web servers, or
shutting down unused back-end servers.
The API can be used to check key metrics from the environment, and not only from the
deployed guests. With those interfaces, it is possible to verify resource usage, software
versions, service status, application logs, and more.
4.2 OpenShift
Container-based applications provide organizations with a new paradigm for application
development and deployment. Kubernetes and containerized applications allow organizations
to streamline their DevOps environment and rapidly deploy, develop, and maintain stateless
and stateful applications.
Red Hat OpenShift Container Platform (RHOCP) is Red Hat’s enterprise Kubernetes
distribution. It provides developers, IT organizations, and business leaders with a hybrid cloud
application platform for developing and deploying new containerized applications on a secure
platform.
RHOCP also offers scalable resources that require minimal configuration and management.
Developer can create and deploy applications by delivering a consistent environment
throughout the lifecycle of the application, including development, deployment, and
maintenance. The self-service capabilities and minimal maintenance requirements reduce
the burden on IT organizations that are associated with deploying and maintaining application
platforms.
RHOCP provides powerful orchestration capabilities for the container workload that you are
deploying. For orchestration to occur seamlessly, it is essential to provide sufficient resources
to your cluster.
Minimum requirements
The following minimum requirements must be met:
Hardware:
– Three LPARs with six IFLs each that support SMT2
– OSA or RoCE network adapters in HA configuration
– HiperSockets, which are attached to a node
– In a z/VM environment, the HiperSockets network can use the z/VM VSWITCH bridge
to enable the communication to a z/VM VSWITCH
z/VM hypervisor instances:
– Three guest virtual machines for RHOCP control plane machines, one per hypervisor
– At least six guest virtual machines for RHOCP compute machines, distributed across
the hypervisor instances
– One guest virtual machine for the temporary RHOCP bootstrap machine
Disk storage for the z/VM hypervisor guest virtual machines:
– FICON attached disk storage (DASDs).
For z/VM hypervisor, these can be z/VM minidisks, fullpack minidisks, or dedicated
DASDs. To reach the minimum required DASD size for Red Hat Enterprise Linux
CoreOS (RHCOS) installations, you need extended address volumes (EAVs) in z/VM.
It is highly recommended to use Parallel Access Volume access (HyperPAV) and
High-Performance FICON (zHPF) to ensure optimal performance.
– FCP attached disk storage.
– For FCP/SCSI attached storage.
Storage and main memory:
– 16 GB for RHOCP control plane machines
– 8 GB for RHOCP compute machines
– 16 GB for the temporary RHOCP bootstrap machine
Note: It is also suggested that production systems are carefully monitor in terms of
performance and resources consumption and make sure that RHOCP does not encounter
bottlenecks in available hardware.
By using Operations Manager, routine tasks can be automated and the need for manual
running of those tasks can be reduced, which removes the possibility of human error,
maintains repeatability, and allows for timely execution.
It provides fast action and fast notifications. By monitoring system metrics and user logs,
Operations Manager can take action whenever any message is received or any metric meets
a predefined threshold. On events that require manual intervention, Operations Manager can
send alerts with no delay.
A replica is not a backup. A replica can protect against hardware failures, but not operational
failures. A file that was saved with incorrect data is replicated on the Disaster Recovery site,
and both sites have a stored corrupted version. With a backup implementation, several
versions of the file exist, which allows system administrators to recover the newest good
version of any backed-up file.
It can create full disk backups from SFS, FBA, CKD, or CMS minidisk. This feature is useful
for backing up a set of Linux servers, for example. It is helpful to create a system backup
before applying a set of fixes to allow for rapid recovery if an update fails.
Backups can be a full backup or an incremental backup, and stored on tape, CMS minidisk, or
a Shared File System (SFS) volume. Backups can be compressed to reduce storage
requirements, and have a limited number of versions, with automatic aging and pruning of
backup sets. To protect the backup, you can encrypt the backup by using your own routines,
third-party routines, or encryption-enabled tape devices.
The restore process can be run from a full screen interface, or the command-line interface. It
allows users to restore their own data so that files that are deleted or corrupted can be
restored without administrator intervention. It also enables system administrators to restore
any backed-up data.
The pipeline module contains a library of stages to perform a handful of utility functions, such
as reading and writing files, sorting and changing records, and even opening TCP sockets.
Those functions can be used to perform various processing without having to write the filters
and subroutines. It is even possible to use REXX to create a custom stage if no suitable
stages are available.
Every stage consists of a program, its arguments, and the pipeline separator (the vertical bar
“|” by default). The programs are not common CMS programs, but are created specially to be
run by the pipeline.
Every stage reads one line of data from the pipeline, processes it in some way, and writes it
back to the pipeline. Every stage is independent from the others; they do not have to know the
previous or following stage. Data flows to the next stage when the current stage processed it.
This process gives the pipeline a robust behavior. Consider the following points:
The pipeline starts only if every parameter on every stage is valid and all programs can be
allocated on memory.
A syntax error in any stage or an error on any program on the pipeline stops the entire
pipeline.
Data is read again from input only when the previous record is processed and its output is
sent to the next stage.
The HELP PIPE command contains more information about the available stages, with samples
about the usage of them.
4.5.2 VM Utilities
VM Utilities is a repository of tools for z/VM administration. It includes several programs to
implement functions that are not available on z/VM. They are intended for system
administrators, system programmers, and support personal.
The utilities are available for download for no charge at this web page. Even if those utilities
are hosted by IBM, they are not supported in any way. They are provided as is, without any
type of warranty.
It integrates with RACF z/VM to simplify complex and time-consuming tasks, allows for
mass-changes to be easily run, and helps automate daily tasks, such as the following
examples:
Add or delete user IDs and groups
Modify access permissions
Set and revoke user IDs and passwords
Search for users and groups
Generate audit reports
zSecure analyses and audits the RACF database and audit logs, and displays security
issues, such as missing or invalid definitions, privileged access by users, and others. It also
includes support for Linux on z audit events, which helps detect Linux security issues and
generate compliance records.
It also analyses the system to help reveal breaches in the system integrity, unintended
exposures, potential threats, and other irregularities. A careful analysis generates a report for
those exposures, indicates the severity of each, and includes a description that help
determines the corrective actions to be taken.
For more information about zSecure, see this IBM Documentation web page.
Part 2 Installation,
configuration, and
service
In this part, we describe how to install and configure z/VM. We also discuss live guest
relocation and how to service z/VM.
We also describe Centralized Service Management (z/VM CSM), which allows you to
manage distinct levels of service for a specific group of z/VM systems.
For all of these methods, we describe performing the initial configuration, hardening, and
enabling basic system automation.
For more information about how to choose which type of installation based on prerequisites,
available resources, and other factors, see 2.2, “Choosing a z/VM installation method” on
page 36.
Important: Prevent unnecessary problems and rework by fully completing all tasks in this
volume in the order they are presented. Each chapter relies upon actions that are taken in
the previous chapter. Also, each chapter and the sections within are sequenced to give you
the quickest results.
You can download the z/VM product installer to a staging machine, such as a workstation, as
we did in this example, and later upload them to a File Transfer Program (FTP) server.
However, you can also download them directly to the machine that will be the FTP server,
such as a Linux personal computer if it has access to the Internet.
7. Select a hardware system on which you plan to run z/VM from the list of hardware
systems for your customer number, and click Continue.
If you know which programs you need and did licensed them, you also can select RSCS
Feature for z/VM 7.2 and DFSMS/zVM Primary 7.2.
Click Continue.
Important: During the time in which z/VM 7.1 and 7.2 can be ordered, be sure you
select the correct release from the list by verifying the Version column.
Figure 5-1 The order status page for our example order used to author this book
If this is the first time you are ordering any of the optional features that require a license, the
order must go to the entitlements department first to generate the license. Although
generated within one business day, license generation might take up to two full business days
in some situations.
After the license is generated, the order then moves on to the CSO department for fulfillment.
In our example, the email that indicates that the order is ready for download was received
after approximately four hours. An example email is shown in Example 5-2.
Example 5-2 Example email that indicates an order is ready for download
From: Software_eDelivery <[email protected]>
To: Paul W Novak/Endicott/IBM <[email protected]>
Date: 2020-09-21 12:18:43
Subject: IBM Order 1234567890 is ready for download.
========================================================================
To >> [email protected]
From >> [email protected]
Subject >> IBM Order 1234567890 is ready for download.
Before you access the ShopzSeries Download link above, please read
through these steps to familiarize yourself with the DOWNLOAD screen.
Below is a description of what you will be presented with when
receiving your order electronically. You may receive part of your
order by mail if some components of your order are not available by
electronic delivery. For any installable items that you received by
mail, follow the Program Directory for z/VM System Delivery Offering
(SDO).
STEP 1:
Order Packing List - This link contains a media report which lists
all Products contained in your order. Review this list to ensure
the order is correct.
STEP 2:
STEP 4:
STEP 5:
Depending on what was ordered, you may receive some of the content in
a .zip format.
In most cases the extracted file(s) are usable directly after they are
extracted.
You are now ready to access your order. Click on the ShopzSeries link
to get to the download page and proceed through the steps you just
reviewed.
***********************************************************************
* Please do not reply to this email, as *
* it was sent by an unattended machine. *
***********************************************************************
When you receive the email, it includes the URL for downloading your order. Use a web
browser to go to that URL.
Important: Be sure that you obtain the code in your order in a timely manner. In
Example 5-2 on page 100, it specifies a date through which the order is available:
Your order is available for download on the IBM software delivery server
through "30 Oct 2020.
After the date passes, the code is no longer available and you must go through the entire
ordering process again if you did not download everything.
Figure 5-2 Example web page to download the order from ShopZ
Note: In the example that is used in this book, we chose the Download to your
workstation using IBM Download Director option \ whenever it was available.
Download Director is a multi-connection threaded applet that results in a much faster
download than the basic HTTPS method.
2. Select the products that you want to download, as shown in Figure 5-3.
Figure 5-4 Files that are associated with selected package downloads
In our example environment, all of the items that were downloaded from the Shop Z order are
uploaded to a Linux-based FTP server and unpacked in the next section. The file was staged
on a Linux workstation. If you plan to use an FTP server for installing z/VM, you might want to
download directly to that server.
The download of the z/VM installation compressed file is complete. In addition to reviewing
the Installation Instructions page, it is recommended that you also review the VM Installation
Tips web page.
You can now configure an FTP server as described in the next section.
Important: Do not unpack or expand any of the materials that are downloaded from Shop
Z or provided with this book on a Windows system. Because of the differences in code
pages, unpacking can result in corrupting the installation files.
5.2.1 Creating directories on the FTP server and upload the installation image
The compressed file contains the z/VM product DVD. The content of this file must be copied
to the directory of the FTP server. Complete the following steps:
1. Start a Secure Shell (SSH) session to the FTP server to be used.
2. Create a directory tree where the files will be stored. We debated over the correct path to
use on an FTP server to store the data. The path that you choose to use (/var/ftp,
/srv/ftp, or even /ftp) is up to you. You can adjust the FTP server configuration to
present any of these paths as /ftp for a user. In the example environment that we used to
author this book, we opted for simplicity and used /ftp/zvm/720/:
# mkdir -p /ftp/zvm/720
3. Set the group ownership of this directory to ftp or whatever the correct group is on your
server to permit the FTP daemon to read the contents. Also, set +s for the group so that
new files inherit group ownership. In the environment that was used to author this book,
the FTP daemon runs under the ID ftp, which has a primary group of ftp:
# chgrp -r ftp /ftp/zvm
# chmod -r g+s /ftp/zvm
4. Upload the z/VM installation image from an intermediate workstation, or download it
directly from the Internet. The following example shows the use of rsync with file attribute
retention and transport compression that is enabled to copy the compressed file from an
intermediate Linux workstation to an FTP server at the <ipaddress> to the correct
directory. Windows users might want to use an open source FTP application, such as
FileZilla or WS-FTP to perform this step:
/tmp/vmisodisk/
bash $ ===> rsync -az --progress *.zip ftproot@<ipaddress>:/ftp/zvm/720
...
Note: Open source software does not mean unrestricted use in all cases. It is your
responsibility to ensure that you are not violating terms, licensing, or any applicable
laws. Furthermore, always check with your IT department or Help Desk before you
attempt to install any product on a company asset.
After z/VM is installed, it is strongly recommended that you check the RSU level of the
installed system and compare it to the latest available RSU as extra service (updates
and fixes) might need to be applied.
7. Create directories for the files that are associated with this book. For more information
about these files, see Appendix C, “Additional material” on page 489.
8. Create a directory where the files are to be stored. In our example, we use the following
command:
# mkdir -p /ftp/zvm/cookbook
Note: Previously, this book used an example value of /ftp/zvm/sg248147/ for this
directory. For easy of use, the new value for the directory was adopted. If you created
/ftp/zvm/sg248147/, use the following commands to move it and then create a
symbolic link for it:
# cd /ftp/zvm
# mv ./sg248147 ./cookbook && ln -s ./cookbook ./sg248147
9. Obtain the latest version of the associated files. You can choose to download the
compressed tar archive (.tgz) to an intermediate system such as a workstation, or
download it directly from the Internet. The following example shows downloading a
compressed tarball that is named example.tgz to the correct directory directly from the
Internet:
# cd /ftp/zvm/cookbook
# wget -v www.vm.ibm.com/pubs/redbooks/sg248147/files/example.tgz
...
Note: For more information about verifying that you are downloading the latest version
of the associated files, see this web page.
10.Expand the tarball file with the tar command and the flags for decompression, expansion,
and verbosity -- -zxv, which creates the subdirectories lnxadmin, lnxmaint and maintvrm:
# tar -zxvf example.tgz
...
All of the files and utilities that are used throughout this book are ready to be downloaded to
your z/VM system, as described in 6.7, “Enabling and configuring RACF”.
The traditional method installs a new z/VM system or VMSSI cluster on a set of DASD, which
can then be customized according to your needs.
The upgrade method is used to upgrade from z/VM 6.4 or 7.1 to z/VM 7.2. A new release
system is used as a staging system installed in a second-level system of your current system.
You must clone your current system to run as a second level, upgrade it, and when complete,
the new level of code is moved to the current system with minimal impact. If your current
system is an SSI-cluster, you can upgrade one member at a time.
Before installing the new z/VM 7.2, check for current information and make sure that all
requirements are satisfied.
Tip: For more information, see the following topics at this web page:
Important z/VM Installation News
z/VM Installation Tips
Preventive Service Planning (PSP) bucket for z/VM 720 installation.
If you are not familiar with the Hardware Management Console (HMC) and z/VM, you might
want to use the official z/VM manual, z/VM 7.2 Installation Guide, GC24-6292, which is
available at this web page.
If you are planning a non-SSI installation, see Chapter 7, “Install a z/VM non-SSI LPAR” of the
previous version of this publication, The Virtualization Cookbook for IBM z/VM 6.3, RHEL 6.4,
and SLES 11 SP3, SG24-8147.
If you are installing z/VM second level (z/VM under z/VM) or onto a Fibre Channel Protocol
(FCP)/SCSI disk, use the z/VM 7.2 Installation Guide, GC24-6292, instead of this
Virtualization Cookbook because we do not address those options.
In this book, we describe the load in memory of z/VM. Then, you can decide which of the
following types of installations is better for you:
First-level VMSSI installation of z/VM from DVD or FTP server onto 3390 DASD (highly
recommended at least with one VMSSI member only)
First-level Non-SSI installation of z/VM from DVD or FTP server onto 3390 DASD
Important: While you work on the HMC, whenever you are prompted for input, such as an
IP address, password, parameters, or other value, be aware that pressing Enter is the
same as clicking Cancel. You must click OK to submit input.
This safety precaution prevents accidentally committing changes that are destructive. If
you press Enter by mistake, repeat any steps that you accidentally canceled.
Important: The LOAD process is destructive and cannot be undone. Therefore, you
must be certain that you selected the correct LPAR. If you are unsure, check with
someone who knows. If you select the wrong LPAR, you irreparably destroy the system
that is running on that LPAR.
4. Open an Integrated 3270 Console (see Figure 5-8) by clicking the Tasks drop-down menu
in the upper right. Then, select Recovery → Integrated 3270 Console. A new Java
window, Integrated 3270 Console, opens.
5. Begin the installation process by selecting Load from Removable Media or Server from
the same Recovery submenu.
6. The Load from Removable Media or Server window opens, as shown in Figure 5-9.
Complete the following steps:
a. Click FTP Source.
b. Enter the IP address (or hostname) of your FTP server into the Host computer field.
c. Enter the FTP User ID and Password into those fields.
d. Enter the FTP server directory path that contains 720vm.ins into the File location field.
In this example, it is /ftp/zvm/720/cpdvd.
e. Click OK.
If you are installing from DVDs: The first disc must be in the HMC DVD drive. Click
Hardware Management Console CD/DVD-ROM only.
Figure 5-9 HMC FTP Load from Removable Media or Server window
e. You see the Load from Removable media or Server Progress window. When you see
the message Completed successfully, click OK to close. This step takes less than a
minute. If you still do not see a message that indicates successful completion after
several minutes, repeat Step 7. An in-memory z/VM 7.2 system is running.
Note: While you are working in the Integrated 3270 Console on the HMC, the Esc key on
your keyboard is mapped to the Clear Screen function for the terminal console.
RUNNING IBMVMRAM
Figure 5-12 First z/VM 7.2 installation in-memory window
Note: From this point, if you want to install z/VM VMSSI Cluster, see “Installing VMSSI” on
page 115. If you want to install a stand-alone system, see “Installing non-SSI z/VM” on
page 124.
Note: The information in this section is not to be used for a stand-alone installation or if you
want to use VMCSM. For more information about that type of installation, see 5.6,
“Installing non-SSI z/VM” on page 124.
2. Run the INSTPLAN TRADITIONAL command to set up the configuration for the installation
process.
===> INSTPLAN TRADITIONAL
If the status at the bottom of the window changes to HOLDING IBMVMRAM, you must press
the ESC to clear the hold.
You see the z/VM INSTALLATION PLANNING window as shown in Figure 5-14 on
page 116.
Mark the product(s) selected to be installed into the file pool with an "F"
and those selected to be installed to minidisks with an "M"
F VM F DIRM F ICKDSF
F PERFTK F RACF F RSCS
F TCPIP F VMHCD
3. It is the recommendation of IBM z/VM Development and the authors of this book that you
leave all values set to their default of “F” in the top section of this window, as shown in
Figure 5-15. Installing to file pools provides you with far more flexibility. Installing to
minidisk is a practice that continues to dwindle and is likely to fade further into obscurity.
IMPORTANT: You must ensure you respond with N (no) to the question regarding
SMAPI system management. If you respond otherwise, you create a system that you
cannot manage by using the concepts and processes that are described in this book.
If you say YES, you should not attempt to manage your system in
any other way.
X First-Level
_ Second-Level
9. You see a summary of your choices and are prompted whether you want to continue.
Carefully review all of the values. If the values are correct, enter Y to the question and
press Enter.
10.You now see the z/VM INSTALLATION VOLUME DEFINITION panel. Initially, it is
populated with the default z/VM volume labels VMCOM1, 720RL1, M0... as shown in
Figure 5-18. Update these default values with the correct information from the planning
worksheet that you completed.
Figure 5-19 on page 119 shows the results of the use of the example values from the
environment that was used to produce this book. In this example, a prefix character of V is
used. After you update the label values, press F5 to continue.
12.Press F5. You see a summary of your values. Then the following message is displayed:
...HCPINP8392I INSTPLAN EXEC ENDED SUCCESSFULLY.
13.Reference your planning worksheet and attach all DASD that is part of the VMSSI cluster
to your virtual machine by using the ATTACH command. The * that is used in the ATTACH
command means “self” (the ID that is running the command). In this example, we used the
following command:
===> attach 953E 95BE 963E 96BE 973E 97BE 983E 98BE to *
17:53:14 DASD 953E ATTACHED TO MAINT 953E WITH DEVCTL HYPERPAV BASE
17:53:14 DASD 95BE ATTACHED TO MAINT 95BE WITH DEVCTL HYPERPAV BASE
17:53:14 DASD 963E ATTACHED TO MAINT 963E WITH DEVCTL HYPERPAV BASE
17:53:14 DASD 96BE ATTACHED TO MAINT 96BE WITH DEVCTL HYPERPAV BASE
17:53:14 DASD 973E ATTACHED TO MAINT 973E WITH DEVCTL HYPERPAV BASE
17:53:14 DASD 97BE ATTACHED TO MAINT 97BE WITH DEVCTL HYPERPAV BASE
17:53:14 DASD 983E ATTACHED TO MAINT 983E WITH DEVCTL HYPERPAV BASE
17:53:14 DASD 98BE ATTACHED TO MAINT 98BE WITH DEVCTL HYPERPAV BASE
14.Run the INSTALL command. The DASD is formatted and the z/VM system disks are
copied. This step often takes more than one hour:
===> install
HCPIIS8490I NOW FORMATTING VOLUME 953E (1 OF ##)
...
You see the message HCPMLP8392I INSTALL EXEC ENDED SUCCESSFULLY.
Important: It is imperative that the INSTALL EXEC succeeds. If it fails, do not proceed.
You must fix the issues and try again.
15.Run the INSTSCID REMOVE command to update the SYSTEM CONFIG file:
===> instscid remove
...
MSGPFX8392I INSTSCID EXEC ENDED SUCCESSFULLY
16.Run the SHUTDOWN command. This command shuts down the last VMSSI member that
IPLed. You see the system shutting down, which ends in a disabled wait with a state code
of 961:
===> shutdown
...
HCPGIR450W CP entered; disabled wait PSW 00020000 00000000 00000000 00000961
You see the system identifier in the lower right go back to IBMVMRAM, which is the
in-memory copy of z/VM that was used to begin the installation process.
17.Shut down the in-memory system:
===> shutdown system ibmvmram
16:03:37 SYSTEM SHUTDOWN STARTED
The in-memory copy of z/VM is halted on VMSSI member 1. On the HMC, the LPAR
status changes from Operating to Not Operating instead.
--------------------------------IPL PARAMETERS-----------------------------
fn=SYSTEM ft=CONFIG pdnum=1 pdvol=953E cons=SYSG
-----------------------------------COMMENTS---------------------------------
----------------------------------------------------------------------------
6. At the Start (Warm|Force|COLD|CLEAN) prompt, enter warm and then, press Enter:
===> warm
7. At the Change TOD clock prompt, enter no:
===> no
8. The first VMSSI member IPLs cleanly after about a minute. Disconnect from the
OPERATOR virtual machine by using the DISCONNECT command:
===> disconnect
9. Log on MAINT720 user ID and check:
===> q cplevel
q cplevel
z/VM Version 7 Release 2.0, service level 2001 (64-bit)
Generated at 07/29/20 16:50:40 EDT
IPL at 09/20/20 20:13:22 EDT
Figure 5-22 First SSI-member q cplevel
===> q cpload
q cpload
Module CPLOAD was loaded from minidisk on volume RDHRES at cylinder 39.
Parm disk number 1 is on volume RS3CM1, cylinders 1 through 120.
Last start was a system restart from SHUTDOWN REIPL.
Figure 5-23 First SSI-member q cpload
IPL each of the extra members from the HMC by completing the following steps:
1. Select the next LPAR, again double-checking to ensure that it is the correct choice.
2. Click Tasks → Recovery → Integrated 3270 Console, as shown in Figure 5-24.
3. Click Load in the same Recovery menu. A window opens, as shown in Figure 5-25.
The member likely waits indefinitely to join. Check with the system administrator and
verify that the CTCs are set up correctly and that you used the correct values. Verify
that you entered the CTCs correctly. Figure 2-3 on page 62 shows a block diagram of
the CTCs that were used in this example.
9. After a minute or two, when z/VM completes the IPL, verify that basic VMSSI awareness is
functional by using the QUERY SSI command. You see the VMSSI Mode listed as Stable,
and any z/VM LPARs for which you performed the IPL are in a state of Joined. If you do
not see these results, troubleshoot your channel-to-channel adapter (CTCA) configuration:
===> query ssi
SSI Name: ITSOSSIA
SSI Mode: Stable
Cross-System Timeouts: Enabled
SSI Persistent Data Record (PDR) device: VV155A on 155A
SLOT SYSTEMID STATE PDR HEARTBEAT RECEIVED HEARTBEAT
1 RDBKZVMG Joined 2020-09-19 09:03:01 2020-09-19 09:03:01
2 RDBKZVMH Joined 2020-00-19 09:03:08 2020-09-19 09:03:08
3 -------- Available
4 -------- Available
10.Run the DISCONNECT command to disconnect from the OPERATOR virtual machine on this
member; then, close the Integrated 3270 Console window:
===> disconnect
Repeat these steps until you complete the IPL on all LPARs in your cluster. After the IPLs are
complete, all of the members of the VMSSI cluster are up and running.
This installation that is described hers is for a Non-SSI z/VM installation (a stand-alone
system).
Before beginning this process, ensure that you completed the steps to load z/VM in memory
as described in 5.4, “Starting the z/VM installation” on page 111 with the z/VM in memory
loaded. Then, continue with this section.
4. Enter the letter X next to both AMENG (or select your language) and 3390 Mod 9 (or the
type of DASD you use), as shown. The common service file pool default name is VMPSFS
and it is recommended that you use this value.
6. You see a summary of your choices and are prompted whether you want to continue.
Carefully review all of the values. If the values are correct, enter Y to answer the question
and then, press Enter.
7. Enter the DASD volumes and addresses in the z/VM INSTALLATION PLANNING PANEL
2, as shown in Figure 5-29.
The processing results of this panel are the message that INSTPLAN EXEC ended
successfully.
8. Press F5. You see a summary of your values, and the following message:
...
HCPINP8392I INSTPLAN EXEC ENDED SUCCESSFULLY.
Important: The devices that are listed are in bold italics to indicate that you must
replace the example values with the values from your planning worksheet for your site.
This convention is used throughout this book.
10.Run the INSTALL command. The DASD is formatted and the z/VM system disks are
copied, as shown in Figure 5-3. This step usually takes more than one hour:
===> install
Important: It is imperative that the INSTALL EXEC succeeds. If it fails, do not proceed.
You must fix the issues and try again.
12.Run the SHUTDOWN command. This command shuts down the last VMSSI member that
IPLed. You see the system shutting down, which ends in a disabled wait with a state code
of 961:
===> shutdown
...
HCPGIR450W CP entered; disabled wait PSW 00020000 00000000 00000000 00000961
You see the system identifier in the lower right return to IBMVMRAM, which is the in-memory
copy of z/VM that was used to begin the installation process.
13.Shut down the in-memory system:
===> shutdown system ibmvmram
16:03:37 SYSTEM SHUTDOWN STARTED
The in-memory copy of z/VM is halted on VMSSI member 1. On the HMC, the LPAR
status changes from Operating to Not Operating instead.
Note: The TCPIP configuration steps are valid for VMSSI z/VM and Non-SSI z/VM
systems.
The IPWIZARD command is on the MAINT 193 disk. You access it on file mode G by using the
ACCESS command so that you pick up IPWIZARD from that minidisk. Complete the following
steps:
1. Access the MAINT 193 disk:
===> access 193 G
2. Invoke IPWIZARD:
===> ipwizard
3. The z/VM TCP/IP Configuration Wizard opens, as shown in Figure 5-30 on page 129:
a. The first field, User ID, must always be TCPIP.
b. Obtain the remaining values for your installation from Table B-8 on page 486. Our
values are shown in Table 2-9 on page 66. Continue by pressing F8.
4. Complete the General Interface Configuration Panel that is shown in Figure 5-31 with the
following information:
– Set the Interface Name to QDIOETH0, which is recommended, as shown.
– The Device Number, which is the starting address of the OSA triplet that the z/VM
TCP/IP stack uses.
– The IP address that must be routed to the OSA card, which becomes the IP address of
the z/VM system.
– If you are behind a firewall or other similar type of device that does not permit ICMP
Unreachable messages (type 3), do not enable the use of Path MTU Discovery
(PMTUD). In all other cases, it must be enabled because PMTUD allows the automatic
discovery of the correct maximum transmission unit (MTU) during routing for maximum
transmission throughput. Check with your network administrator if you are unsure.
– The Interface Type QDIO (layer 2) with modern OSA devices.
When you finish, press F8.
5. In the QDIO Interface Configuration Panel that is shown in Figure 5-32 on page 130, enter
the following information:
– A virtual LAN (VLAN) ID if your network administrator indicated that a VLAN ID is
required.
– The MTU size for an OSA, which is 1492 or 8992 (in this example, 8992):
• If your network can support jumbo frames, the use of 8992 provides better
performance because OSAs are optimized for this MTU.
• If you cannot use the PMTUD feature, the use of 1492 is recommended unless you
know that your network can use jumbo frames.
– In general, a value for the Port Number is no longer necessary.
Press F5 to complete the wizard.
It is recommended that you use four of the eight CTC devices to connect SSI members by
way of each channel path. Generally, eight devices are available in a Fibre Channel
connection (FICON) CTC control unit. It is recommended that only four of the eight devices
are used for performance reasons.
The following example adds three CTCs for each member to each path that was activated
during the installation:
Display the installed CTCs on the first member (ITSOZVM1):
===> q ctc active
CTCA 47E0 ATTACHED TO SYSTEM -ISFC
CTCA 57E0 ATTACHED TO SYSTEM -ISFC
The previous two commands show the four CTCs that were set up during z/VM installation.
From these real device addresses, determine the channel paths that they are on by using the
following commands:
Display the channel paths that are used by the CTCs on ITSOZVM1:
===> q path to 47e0
Device 47E0, Status ONLINE
CHPIDs to Device 4120 (PIM) : 4C
===> q path to 57e0
Device 57E0, Status ONLINE
CHPIDs to Device 57E0 (PIM) : 4D
Display the channel paths that are used by the CTCs on ITSOZVM2:
===> q path to 4120
Device 4120, Status ONLINE
CHPIDs to Device 4120 (PIM) : 4C
===> q path to 5120
Device 5120, Status ONLINE
CHPIDs to Device 5120 (PIM) : 4D
The previous two commands show the channel-path identifiers (CHPIDs) that the CTCs are
on. In this example, they are 4C and 4D. From these CHPIDs, determine the other available
CTC devices by completing the following steps:
1. Display the devices that are used by the channel paths on ITSOZVM1:
===> q chpid 4c
Path 4C online to devices 47E0 47E1 47E2 47E3 4A90 4A91 4A92 4A93
===> q chpid 4d
Path 4D online to devices 57E0 57E1 57E2 57E3 5A90 5A91 5A92 5A93
2. Display the devices that are used by the channel paths on ITSOZVM2:
===> q chpid 4c
Path 4C online to devices 4120 4121 4122 4123 4A90 4A91 4A92 4A93
===> q chpid 4d
Path 4D online to devices 5120 5121 5122 5123 5A90 5A91 5A92 5A93
It is recommended to confirm with your hardware configuration engineer that you can add
three CTCs to each channel path on each z/VM member. They must be added both
dynamically and permanently. Next, run the following commands:
1. Verify that the next three CTCs are available on ITSOZVM1:
===> q 47e1 47e2 47e3
CTCA 47E1 FREE , CTCA 47E2 FREE , CTCA 47E3 FREE
===> q 57e1 57e2 57e3
CTCA 57E1 FREE , CTCA 57E2 FREE , CTCA 57E3 FREE
2. Verify that the next three CTCs are available on ITSOZVM2:
===> q 4121 4122 4123
CTCA 47E1 FREE , CTCA 47E2 FREE , CTCA 47E3 FREE
===> q 5121 5122 5123
CTCA 5121 FREE , CTCA 5122 FREE , CTCA 5123 FREE
This output shows that the CTC devices were added dynamically.
The following examples show the SYSTEM CONFIG file before and after the changes are made.
The SYSTEM CONFIG file looks like the following example before the changes are made:
/**********************************************************************/
/* Activate ISLINK statements */
/**********************************************************************/
The SYSTEM CONFIG file looks like the following example after the changes are made:
/**********************************************************************/
/* Activate ISLINK statements */
/**********************************************************************/
ITSOZVM1: BEGIN
ACTIVATE ISLINK 47E0 47E1 47E2 47E3 NODE ITSOZVM2
ACTIVATE ISLINK 57E0 57E1 57E2 57E3 NODE ITSOZVM2
ITSOZVM1: END
ITSOZVM2: BEGIN
ACTIVATE ISLINK 4120 4121 4122 4123 NODE ITSOZVM1
ACTIVATE ISLINK 5120 5121 5122 5123 NODE ITSOZVM1
ITSOZVM2: END
When the system is restarted, the ISLINKs are active between members.
Important: For all other members in the VMSSI cluster, you must now repeat all of
section 5.7, “Initial TCP/IP configuration” on page 128. When you run IPWIZARD on the
other members, you see that the network information is pre-populated with the values
from the last node it was run on. Be sure to change the values for each node.
All members of the VMSSI cluster are now accessible by network over TCP/IP.
It is recommended to discontinue the use of the Integrated 3270 Console through the
HMC and instead access your new systems with a correct 3270 emulator. For more
information, see , “IBM 3270 emulators” on page 471.
To switch to a 3270 emulator, ensure that you issued LOGOFF from any Integrated 3270
Console sessions that might still be open.
--------------------------------IPL PARAMETERS-----------------------------
fn=SYSTEM ft=CONFIG pdnum=1 pdvol=923E cons=SYSG
-----------------------------------COMMENTS---------------------------------
----------------------------------------------------------------------------
The new z/VM 7.2 is now running with TCIP configured and you are now ready to configure
z/VM.
If you are new to z/VM and plan to install on only one logical partition (LPAR), it is still
recommended that you proceed by using the SSI path. The installation of a single-member
SSI cluster provides you with a path for future expansion to add member nodes later.
If you are going to install to SCSI disk, you cannot install with VMSSI enabled. However,
non-SSI installations can take advantage of the Centralized Service Management (CSM)
capability that was introduced with z/VM 7.2. CSM allows non-SSI installations to manage
service across a set of systems from one central system.
In this book, we do not describe the non-SSI installation in detail; however, we do describe
setting up VMCSM in Chapter 9, “z/VM Centralized Service Management” on page 275.
Important: Order matters. Prevent unnecessary problems and rework by fully completing
all tasks in this volume in the order they are presented. Each chapter relies upon actions
that are taken in the previous chapters. Also, s specifically sequenced to give you the
quickest results.
© Copyright IBM Corp. 2015, 2016, 2021. All rights reserved. 137
This chapter includes the following topics:
6.1, “Configuring z/VM” on page 139
6.2, “Configuring the XEDIT PROFILE” on page 139
6.3, “z/VM parm disks” on page 143
6.4, “System Configuration file” on page 143
6.5, “Editing the z/VM SYSTEM CONFIG file” on page 143
6.6, “Enabling and configuring DirMaint” on page 155
6.7, “Enabling and configuring RACF” on page 155
6.8, “Implementing more network features” on page 180
6.9, “Shutting down and IPLing the SSI cluster again” on page 183
6.10, “Validating and testing your changes” on page 185
6.11, “Adding page volumes and perm (user) volumes” on page 186
6.12, “Enabling z/VM basic system automation” on page 196
6.13, “z/VM User Directory” on page 201
6.14, “z/VM security and hardening” on page 217
6.15, “Backing up and restoring your z/VM system” on page 235
6.16, “Creating an SFS file pool for Linux virtual machines” on page 237
6.17, “Creating identity LNXADMIN for Linux administration” on page 246
6.18, “Monitoring SFS file pool usage” on page 248
The following configuration changes that are on parm disk are read only when you IPL z/VM:
Dynamic system changes (in SYSTEM CONFIG) are made by using Control Program
(CP) commands.
Logo configuration changes (LOGO CONFIG) by using the CP refresh command.
The z/VM User Directory configures virtual machines or user IDs. It is read often by the
system and can be dynamically updated.
In this section, we discuss the SYSTEM CONFIG and USER DIRECTORY files.
If you are unfamiliar with XEDIT, a cheat sheet is available in Appendix B, “Reference, cheat
sheets, blank worksheets, and education” on page 475. This appendix also includes the URL
to the z/VM Library where you can obtain more information.
This section guides you in the configuration of the XEDIT profile for system-wide usage. More
importantly, these steps also provide the understanding to use XEDIT functions to add, move,
and change text. You use XEDIT substantially through the rest of this book and in the
administration of your z/VM environment. The efforts that you spend to customize XEDIT
result in a much higher level of usability, and make editing easier and faster.
The 191 (A) disks for MAINT and MAINT720 have a basic version of PROFILE XEDIT. When
you edit files while you are logged in as either of these user IDs, the values in the profile are
usually in effect. Example 6-1 shows how to view this basic profile.
To configure the default XEDIT profile for use across the entire SSI cluster, complete the
following steps:
1. Log on as MAINT720 on the first SSI member.
2. Back up the existing PROFILE XEDIT:
===> copy profile xedit a profile xediorig a (olddate
3. Update the PROFILE XEDIT file:
===> xedit profile xedit
a. Change the comment line at the top of the file so that the comment line indicates the
name and purpose, and the date and name or ID of the person who last modified it.
This task is a preferred practice.
Make this step a habit for all CMS REXX EXEC files that you edit. Type over the entire
first line to replace it with the following information. Replace YYYY-MM-DD with today’s
date, and replace MYUSERID with something that is unique to yourself. Be sure to include
the /* at the beginning and the */ at the end:
/*** DEFAULT PROFILE XEDIT FOR z/VM -- MOD YYYY-MM-DD MYUSERID ***/
b. One default setting that can be dangerous, especially if you use F12 to retrieve
commands, is that PF12 is set to the FILE (save and quit) subcommand. Most times,
you do not want to save your changes and quit with the stroke of one key. It is
recommended that you instead set PF12 to the ? (retrieve) subcommand, which
effectively retrieves the last command that was issued on the XEDIT command line.
Change the line SET PF12 FILE to:
SET PF12 ?
c. Press Enter to move to the command line (====>) at the bottom of the window.
d. Because our active XEDIT session was started by using the unchanged profile, we
must define PF12 as RETRIEVE for the active session. Enter the subcommands that
are shown to set the definition and then, verify the result:
====> set pf12 ?
====> query pf12
The active definition for PF12 appears at the top of the window, as shown in Figure 6-1.
...
Figure 6-1 Output from XEDIT that displays the active definition for PF12
Tip: If you are reading an electronic copy of this book, you might paste the entire
block of text from the book directly into your 3270 XEDIT session while in INPUT
mode.
k. Press Enter twice to exit out of INPUT mode and return back to the command line.
Enter the subcommand FILE and press Enter again to save your changes, quit XEDIT,
and return to CMS and the ready prompt:
====> file
Ready;
Before you edit your PROFILE XEDIT, it looks similar to the output that is shown in
Example 6-1 on page 139. After you edit it, your PROFILE XEDIT looks similar to
Example 6-2.
Example 6-2 Modified MAINT/MAINTvrm XEDIT profile with example date and user ID shown
===> type profile xedit
/*** DEFAULT PROFILE XEDIT FOR z/VM -- MOD 2015-04-06 PWNOVAK ***/
'SET NUM ON'
'SET NULLS ON'
'SET CASE M I'
4. Complete the following steps to make the modified file available to other virtual machines
by copying it to the MAINT 19E disk with file mode suffix 2:
a. Release the current 19E disk:
===> release 19E
a. Use VMLINK to obtain the MAINT 19E disk read/write as file mode F:
===> vmlink maint 19E < 19E F MR >
b. Copy it to the MAINT 19E disk (F) with file mode suffix 2. (Because the MAINT 19E disk is
commonly accessed with a file mode suffix of 2, files are not seen by other virtual
machines unless they have this file mode suffix.)
===> copy profile xedit A = = F2
c. Save the CMS named saved segment (NSS) with the following commands. Do not be
concerned if the numeric value that you see for the fileid is different on your system
from the example that is shown (different numeric values are normal):
===> access 193 G
===> sampnss cms
HCPNSD440I The Named Saved System (NSS) CMS was successfully defined in
field 0017.
===> ipl 190 parm savesys cms
HCPNSS440I Named Saved System (NSS) CMS was successfully saved in fileid
0017.
5. LOGOFF as MAINT720 from the current member.
6. Repeat Step 4 on all other members in the SSI cluster.
The same XEDIT PROFILE is now accessible to all virtual machines in the SSI cluster.
Note: A copy of PROFILE XEDIT is included in the additional materials that are supplied
with this book. This copy contains all of the depicted changes. If you are familiar with
XEDIT, you might want to use the contents of that file.
The system configuration file is on a partition of a volume that is called minidisk and it is
allocated as PARM. This minidisk is under user ID PMAINT, and it is address is CF0. The file
is called SYSTEM CONFIG by default, although you can change the name in your installation.
Tip: As a best practice, always run a CPSYNTAX check after modifying SYSTEM CONFIG
to check whether errors exist on this file.
The SYSTEM CONFIG file resides on a special CMS-formatted minidisk (CF0) that belongs to the
PMAINT user ID. Minidisks that contain such objects are called “parameter (parm) disks”
because when they are allocated, those disks are given a special record category type called
“PARM”. More than one parm disk can be allocated in a z/VM system for backup and
recovery.
Important: If you are planning to use an External Security Manager (ESM), such as
IBM Resource Access Control Facility for z/VM (RACF/VM), you must not enable Auto
Warm IPL until your ESM is fully configured.
The Clear_TDisk feature causes CP to erase temporary disks fully (that is, overwrite the
entire temporary disk with zeros) after those disks are detached. This feature prevents
another user who might define an identically sized temporary disk from accessing data
that was written by the previous user.
Note: If you are planning to use Temporary Disks (T-Disk), for compliance reasons,
modify the default on SYSTEM CONFIG, which enables the clean up.
The Retrieve feature defines the default and maximum number of retrieve buffers that are
allowed per user on your system. Retrieve buffers create a command history, from which
users can retrieve commands that were issued. Command retrieval often is assigned to a
program function key, such as PF12 (F12).
Note: The assignment is through the CP SET command, SET PF12 RETRIEVE. By
pressing PF12, a command is retrieved and written back into the command area on the
terminal screen. You likely do not need to change these settings.
The Passwords_on_Cmds feature tells CP whether to prompt users for passwords when
the CP AUTOLOG, LINK, or LOGON commands are used.
Note: The z/VM 7.2 default for Password_on_Cmds were changed to NO.
The Disconnect_timeout feature controls whether and when a virtual machine is logged off
after it is forced to disconnect. You turn off this feature so that any virtual machine that was
forced to disconnect is note logged off.
Important: Before any SYSTEM CONFIG change, always make a backup copy on
parm disk. This file is read during the IPL and any error can prevent the completion of
the z/VM IPL.
b. Move the entry to Clear_TDisk from the Disable section to Enable by running the
following actions, shown in Example 6-3:
====> /Clear_TDisk
====> On prefix area, put M (of Move) in this line
====> On prefix area, put F (of After) in the line you want to move it to
Example 6-4 Results of moved line inside SYSTEM CONFIG file (Features)
00150 Features ,
00151 Retrieve ,
00152 Default 20 ,
00153 Maximum 255 ,
00154 MaxUsers noLimit ,
00155 Vdisk Userlim 144000 blocks,
00156 Disconnect_Timeout 15,
Note: Signal ShutdownTime 300 permits any virtual machine that is sent a shutdown
signal (sigkill) 300 seconds to complete the shutdown process before it is then
forced off. Under most circumstances, this value is more than adequate.
ShutdownTime 60 permits any virtual machine that is sent a FORCE (forced log off) 60
seconds to quiesce before the forced log off happens.
f. Modify the comments for the lines that you changed, where suitable. You can use the
text that is shown in Example 6-6 or enter comments of your own.
Example 6-6 Results of changes to the SYSTEM CONFIG file plus updated comments
/**********************************************************************/
/* Features Statement */
/**********************************************************************/
/**********************************************************************/
/* Set Shutdown time periods */
/**********************************************************************/
Tip: If your system is an SSI cluster, CPSYNTAX features a mandatory option that
identifies on which LPAR you are doing the command. For example, our system
identifier is:
System_Identifier LPAR LEPUS28 RDBKZVMG
Some of the SYSTEM CONFIG statements were changed from their default values. For more
information, see z/VM Version 7 Release 2: CP Planning and Administration, SC24-6271.
Your SYSTEM CONFIG file is still open in XEDIT from the tasks that were performed in 6.5.1,
“Modifying features and optimizing parameter settings” on page 144. Complete the following
steps:
1. Jump to the line that contains the string STATUS OF DEVICES and then, move up one line:
====> /status of devices
====> up 1
2. Use the XEDIT block copy function to copy the three lines that make up the heading of the
Status of Devices stanza and paste them underneath as a new heading:
a. In the prefix area of the current line, type CC over the numbers and press Enter. The CC
turns red. Move down two lines and repeat this step.
b. Move to the line after the last statement in the Status of Devices stanza (in our
Example 6-7, the line containing the word Sensed), type P into the prefix area and press
Enter.
The entire heading is now duplicated. Example 6-7 shows the now duplicated heading.
c. Type over the string Status of Devices in the newly copied heading at the bottom with
the string Virtual Network Configuration, as shown in Example 6-8.
Devices ,
Online_at_IPL 0000-FFFF,
Sensed 0000-FFFF
/**********************************************************************/
/* Virtual Network Configuration */
/**********************************************************************/
Example 6-9 Virtual network configuration values for the first member of the SSI cluster
RDBKZVMG: BEGIN
RDEV 2100-210F EQID OSA1SET1 TYPE OSA
RDEV 2120-212F EQID OSA1SET1 TYPE OSA
VMLAN MACPREFIX 02000A
VMLAN LIMIT TRANSIENT 0
DEFINE VSWITCH VSW1 RDEV 2100 2120 ETHERNET
MODIFY VSWITCH VSW1 GRANT TCPIP
DEFINE VSWITCH VSW2 ETHERNET
MODIFY VSWITCH VSW2 GRANT TCPIP
RDBKZVMG: END
Example 6-10 on page 151 shows the entries for both LPARs together with key differences
in bold.
Tip: If you are reading an electronic copy of this book, you can copy the entire block of
text from Example 6-9 or Example 6-10 on page 151 and paste it directly into your 3270
XEDIT session while you are in INPUT mode. If you are manually entering the
information, carefully enter the text from Example 6-9 and then, use the XEDIT block
copy operation to duplicate the entire block of text for each extra LPAR in your cluster.
Note: Ensure that you double-check your work to avoid creating identical MAC
addresses.
– The VMLAN LIMIT TRANSIENT 0 statement prevents dynamic definition of Guest LANs
by class G users that interfere with the ability to relocate.
– The DEFINE VSWITCH statements define a pair of MAC-based Ethernet virtual switches
(VSWITCHES). MAC Ethernet VSWITCHES are sometimes referred to as LAYER 2
VSWITCHES. Modify the two starting addresses of the OSA triplets to those addresses
that you specified in your planning worksheet.
Example 6-10 Virtual network configuration additions to the SYSTEM CONFIG file
/**********************************************************************/
/* Virtual Network Configuration */
/**********************************************************************/
RDBKZVMG: BEGIN
RDEV 2100-210F EQID OSA1SET1 TYPE OSA
RDEV 2120-212F EQID OSA1SET1 TYPE OSA
VMLAN MACPREFIX 02000A
VMLAN LIMIT TRANSIENT 0
DEFINE VSWITCH VSW1 RDEV 2100 2120 CONTROLLER * ETHERNET
MODIFY VSWITCH VSW1 GRANT TCPIP
DEFINE VSWITCH VSW2 CONTROLLER * ETHERNET
MODIFY VSWITCH VSW2 GRANT TCPIP
RDBKZVMG: END
RDBKZVMH: BEGIN
RDEV 2100-210F EQID OSA1SET1 TYPE OSA
RDEV 2120-212F EQID OSA1SET1 TYPE OSA
VMLAN MACPREFIX 02000B
VMLAN LIMIT TRANSIENT 0
DEFINE VSWITCH VSW1 RDEV 2100 2120 CONTROLLER * ETHERNET
MODIFY VSWITCH VSW1 GRANT TCPIP
DEFINE VSWITCH VSW2 CONTROLLER * ETHERNET
MODIFY VSWITCH VSW2 GRANT TCPIP
RDBKZVMH: END
5. Save your changes and quit XEDIT with the FILE subcommand:
====> file
During system IPL, configuration file post-processing routines perform more checking of the
data that is specified in the configuration file. The IPL of a second-level system to check the
configuration file is recommended for a more thorough test and you might find problems that
CPSYNTAX did not.
The SYSTEM CONFIG file is now ready for use. Log off from MAINT720.
3. See the the RSU page for z/VM to determine the latest available RSU:
a. Under the column that is labeled RSU Content, click ZVM720 to see the details of the
latest RSU.
b. At the top of the page, look for the following text:
This file contains APAR/PTFs included on the z/VM Version 6, Release 3
Modification 0, 2001RSU tape.
In this example, 2001RSU is the newest RSU that is available for z/VM 6.3.0.
4. If they do not match, download and apply the latest RSU now before you proceed further.
Instructions to download the latest RSU are in 8.3, “Applying a recommended service
upgrade” on page 259.
5. Subscribe to the Service News and Red Alerts pages:
a. Navigate to the Service News page.
b. Click notify in the left navigation menu for the site and complete the subscription form
to enable automatic email notification for service news, such as the availability date of
a new RSU:
Action: Enroll
Your e-mail address: ...
File: /service/news
c. Navigate to the Red Alerts page.
d. Click notify in the left navigation menu and complete the form to enable automatic
email notification when a critical fix is available:
Action: Enroll
Your e-mail address: ...
File: /service/redalert
Note: For more information about z/VM Service, see Chapter 8, “Servicing z/VM” on
page 255
It is recommended that you enable DirMaint and configure it before enabling and configuring
RACF.
Note: For more information about DirMaint and its configuration, see Chapter 10,
“DirMaint, RACF-connector, and SMAPI” on page 305.
Note: This section also assumes that DirMaint, RACF-connector, and SMAPI were
configured according to the information in Chapter 10, “DirMaint, RACF-connector, and
SMAPI” on page 305.
To configure RACF on a new z/VM 7.2 system, complete the following steps. The first five
steps are performed before RACF is started. Steps 6 and 7 put RACF into production:
1. Creating the RACF RPIDIRCT command file.
2. Customizing SMF.
3. Copying the RACF databases.
4. Setting up the AUTOLOG1 and AUTOLOG2 virtual machines.
5. Enabling RACF.
6. Putting RACF into production on all members.
7. (The step is performed after RACF is in production:) Configuring SMAPI to work with
RACF, as described in Chapter 10, “DirMaint, RACF-connector, and SMAPI” on page 305.
Resource Access Control Facility (RACF) is a security server that is available for z/OS and
z/VM. The command interface is similar on both systems; however, the functionality on z/VM
is limited to the resources that are available to z/VM.
You must activate the management of resources before RACF takes over. For resources,
such as VSWITCHES, the access control is taken over by RACF. Running commands, such
as set vswitch vsw1 grant <<userid>>, does not set anything.
After you activate RACF, if you encounter access problems, it is a preferred practice to review
the operator console. Often, the access issue is reported on the operator console.
To create RPIDIRCT SYSUT1 for later use with RPIDIRCT, complete the following steps:
1. Log on to MAINT on the first SSI member.
2. Link the 7VMRAC20 191 disk read/write and access it as file mode F:
===> link 7VMRAC20 191 1191 mr
===> acc 1191 f
3. Link the 7VMRAC20 505 disk read/write and access it as file mode G:
===> link 7VMRAC20 505 1505 mr
===> acc 1505 g
4. If you are using DirMaint, get the current user directory with passwords with the DIRMAINT
USER WITHPASS command:
===> dirm user withpass
DVHXMT1191I Your USER request has been sent for processing to DIRMAINT
DVHXMT1191I at POKDEV62.
DVHREQ2288I Your USER request for MAINT at * has been accepted.
PROFILE IBMDFLT
...
PROFILE TCPCMSU
...
After several messages, you will see:
********** 3936 Directory records processed *********
*************** RPIDIRCT SYSUT1 CREATED **************
7. Copy the newly created RPIDIRCT SYSUT1 file so that you have a reference:
===> copy rpidirct sysut1 a = sysuorig =
8. In the new RPIDIRCT SYSUT1 file, remove all of the lines with the text VMBATCH. A generic
VMBATCH profile will be created shortly. All lines can be deleted with the ALL subcommand
and the prefix command d* (hidden lines will not be deleted):
===> x rpidirct sysut1
====> all /VMBATCH/
====> top
d*=== * * * Top of File * * *
===== -------------------- 22 line(s) not displayed --------------------
===== RDEFINE VMBATCH $ALLOC$ OWNER($ALLOC$) UACC(NONE)
...
...
====> all
All lines with VMBATCH are now deleted.
Notes:
The first two lines make VMBATCH a generic class.
The third line permits the FTP, Network File System (NFS), and DirMaint satellite
servers to the VMBATCH class. The number of DIRMSAT* entries needs to correspond
to the number of members in the SSI (for example, if you use a four-member SSI,
add DIRMSAT3 and DIRMSAT4). Permitting the servers to the VMBATCH class will
allow them to use the alternate user ID function.
For more information about protecting this function, see the “Protecting Alternate
User IDs” section of the z/VM RACF Security Server Auditor’s Guide, SC24-6212.
The fourth line activates the classes VMBATCH, VMMDISK, VMCMD, VMLAN, and SURROGAT.
10.Move the file to the 7VMRAC20 191 disk (F) by using the following commands:
===> copy rpidirct sysut1 a = = f
===> erase rpidirct sysut1 a
The modified RPIDIRCT SYSUT1 file is now on the 7VMRAC20 191 disk.
To create a PROFILE EXEC for the RACFSMF virtual machine, complete the following steps:
1. Link the RACFSMF 191 disk read/write and access it as file mode H:
===> link racfsmf 191 2191 mr
===> acc 2191 h
2. Copy the sample profile SMFPROF EXEC to the RACFSMF 191 disk (H) as the file PROFILE EXEC:
===> copy smfprof exec g profile = h
3. Edit the PROFILE EXEC and change the value of Smffreq to AUTO and Smfswtch to NO:
===> x profile exec h
====> /Smfdisk
====> =
...
Smfdisk = 192
Smfpct = 80
Smfinfo = 'OPERATOR' /* Default message receiver @VA45455*/
Smffreq = 'AUTO' /* Valid values: DAILY, WEEKLY, MONTHLY, */
/* AUTO @VA45455*/
Smfday = 'MONDAY' /* Valid values: SATURDAY - FRIDAY @VA45455*/
Smfswtch = 'NO' /* Valid values: YES NO @VA45455*/
Note: These changes to the RACFSMF PROFILE EXEC will archive SMF data only when the
SMF disk is full. If your site requires archiving regularly, you can use this EXEC and
xautolog the user at each interval.
For more information, see the chapter, “Processing Audit Records on z/VM”, in z/VM RACF
Security Server Auditor’s Guide, SC24-6305.
The PROFILE EXEC is now configured for the RACFSMF virtual machine.
Note: When RACF is disconnected from CP, users will be unable to log on. To fix the full
SMF disk, you will need to log on through OPERATOR by using its CP password and
IPL CMS. You can copy the SMF records and then clear out the SMF records. Then,
restart RACFVM.
3. Copy the modified SMF CONTROL file to the RACFSMF 191 (H) disk:
===> copy smf control t = = h (rep
4. Link the RACMAINT 191 disk read/write and access it as file mode J:
===> link racmaint 191 4191 mr
===> acc 4191 j
5. Copy the modified SMF CONTROL file to the RACMAINT 191 disk (J) with the REPLACE option:
===> copy smf control t = = j (rep
6. Log off from MAINT.
Important: If your SSI is on LPARs at the first level, you must use real volumes for the
200 and 300 RACF database, they cannot be minidisks. Use the smallest volumes that
you can get because the RACF database does not need many cylinders, even mod-3 is
more than enough in most cases. It is not recommended to use volumes with more than
32,760 cylinders.
The contents of the RACF data sets on the RACFVM 200 and 300 minidisks were copied to the
real devices (at addresses 103B and 113B in this example).
Note: Non-SSI z/VM systems can remain by using minidisks and shared disks.
Now that the 200 and 300 minidisks from one of the SUBCONFIGs of RACFVM were copied to the
DASD volumes that will be shared, these new disks can replace the individual minidisks.
The RACFVM virtual machine now references the two shared DASD volumes.
Note for users who wants to migrate RACF databases from Mod3 to Mod9: You can
use the procedure that is described in this section by copying the disks with DDR or
FlashCopy and updating the new addresses on the RACFVM directory to point to the new
DASD.
The RACF database can now be shared on the volumes at real device addresses 103B and
113B.
The RACF database and backup database now are shared in the SSI cluster.
Therefore, the PROFILE EXEC needs to be copied from AUTOLOG1 to AUTOLOG2, then modified to
start RACFVM.
The AUTOLOG1 virtual machine is now configured. Start RACF (the RACFVM virtual machine).
RACF will then start AUTOLOG2 to complete the bootstrapping of the z/VM system.
Note: If you are running in a non-SSI z/VM system, go directly to step 1b without issuing a
shutdown.
1. Shut down all other members, except the first SSI node. In this example, SSI member 2
was shut down:
===> shutdown
...
a. Log on as MAINT720 on the first SSI member.
b. Issue the following SERVICE command to enable RACF. This step must be performed on
only one member. Several panels scroll by:
===> service racf enable
several msgs after, you will see:
...
VMFSRV1233I The following products have been serviced.
VMFSRV1233I CPSFS RACFSFS
VMFSRV2264I Restoring prior system environment using saved access/minidisk
information
VMFSET2760I VMFSETUP processing started for ENVRESTORE
SERVICEEXEC20201001194312
VMFSET2204I Linking MAINT720 0490 as 0490 with link mode RR
VMFSET2204I Linking MAINT720 0493 as 0493 with link mode RR
VMFSET2204I Linking PMAINT 0551 as 0551 with link mode RR
VMFSET2204I Linking RACFVM 0300 as 0121 with link mode RR
VMFSET2204I Linking RACFVM 0200 as 0120 with link mode RR
VMFSET2760I VMFSETUP processing completed successfully (RC=0)
VMFSRV2760I SERVICE processing completed successfully (RC=0)
RACF is now enabled on the CF2 disk. This disk is now on the release 1 volume in
z/VM 7.2.
2. Shut down the first SSI member:
===> shutdown
...
RACF is now be enabled. Shut down all members and the SSI.
Note: If you are on a non-SSI z/VM system, you shutdown the z/VM system.
Attention: The PUT2PROD command must be run on each member of the SSI. Start with the
first member. Perform all five of the following subsections on the first member. If you are in
an SSI, you perform later only the first and last subsections on the other members:
1. IPLing the member and start RACMAINT.
2. Configuring the initial RACF database.
3. Enabling RACF-connector on DirMaint on the first member.
4. Setting the DirMaint use of the reader with RACF on the first member.
5. Putting RACF into production.
--------------------------------IPLPARAMETERS------------------------------
fn=SYSTEM ft=CONFIG pdnum=1 pdvol=1036
-----------------------------------COMMENTS---------------------------------
----------------------------------------------------------------------------
Note: If you completed the next three sections on the first SSI member, proceed to “Putting
RACF into production” on page 172.
Note: For more information about enabling a RACF-connector, see 10.4, “DirMaint-RACF
Connector” on page 321.
Setting the DirMaint use of the reader with RACF on the first member
Because the VMBATCH definitions were deleted in 6.7.1, “Creating the RACF RPIDIRCT
command file” on page 156, RACF reports errors when DirMaint sends files to the reader. To
address this issue, the CP TRANSFER and TAG commands must not be controlled.
In addition, SMAPI needs to issue commands for other users with the FOR command under
privilege class C. To address this requirement, the CP FOR.C commands need to not be
controlled.
For SSI members other than the first member, perform the steps in the first and last of the five
subsections only:
“IPLing the member and start RACMAINT” on page 167.
“Putting RACF into production” on page 172.
After you perform the PUT2PROD sections on all SSI members, IPL the members one at a time
from the default (RES) volume. Do not specify the NOAUTOLOG parameter. You will see RACF
start on the OPERATOR console.
For more information about SMAPI, see “Systems Management API” on page 324.
Enable RACROUTE
Enable the SMAPI service machines VSMREQI6, VSMREQIN, VSMREQIU, VSMEVSRV, DTCSMAPI,
VSMWORK1, VSMWORK2, and VSMWORK3 to use RACROUTE services with the following commands:
===> RAC SETROPTS CLASSACT(FACILITY)
===> RAC RDEFINE FACILITY ICHCONN UACC(NONE)
ICH10006I RACLISTED PROFILES FOR FACILITY WILL NOT REFLECT THE ADDITION(S)
UNTIL A SETROPTS REFRESH IS ISSUED.
===> RAC PERMIT ICHCONN CLASS(FACILITY) ID(VSMREQI6) ACCESS(UPDATE)
...
===> RAC PERMIT ICHCONN CLASS(FACILITY) ID(VSMREQIN) ACCESS(UPDATE)
...
===> RAC PERMIT ICHCONN CLASS(FACILITY) ID(VSMREQIU) ACCESS(UPDATE)
...
===> RAC PERMIT ICHCONN CLASS(FACILITY) ID(VSMEVSRV) ACCESS(UPDATE)
...
===> RAC PERMIT ICHCONN CLASS(FACILITY) ID(DTCSMAPI) ACCESS(UPDATE)
...
===> RAC PERMIT ICHCONN CLASS(FACILITY) ID(VSMWORK1) ACCESS(UPDATE)
...
===> RAC PERMIT ICHCONN CLASS(FACILITY) ID(VSMWORK2) ACCESS(UPDATE)
...
===> RAC PERMIT ICHCONN CLASS(FACILITY) ID(VSMWORK3) ACCESS(UPDATE)
...
===> RAC SETROPTS RACLIST(FACILITY)
RACF can now allow SMAPI to do its job. It is recommended that you follow the instructions
that are described in 3., “Test SMAPI from Linux by using smaclient.” on page 333 and
10.5.10, “Testing SMAPI from Linux by using smaclient” on page 339.
The function of LOGONBY is similar to the use of SURROGAT class profiles in z/OS. It is a preferred
practice that when a LOGONBY profile is defined for a generic virtual machine, it is no longer
possible to use the standard password to log on.
z/VM ONLINE
You are prompted to change the password at the first log on:
logon sysadmin by edialves
You can issue a QUERY USERID command to see that you are logged on as SYSADMIN with its
privileges.
Note: To access the RACFVM 301 disk, you need RACF AUDITOR privileges.
3. Run the RACFADU EXEC by using the 301 disk as input and the 191 disk as output.
Note: The RACFADU will work only if the output disk (191) is accessed as filemode A.
In this example, the output file is twice the size of your 301 used space.
The main TCP/IP configuration file is the PROFILE TCPIP file and it is on the TCPMAINT 198 disk,
which is accessed as the D disk.
The lines after the file is edited are shown in Example 6-12.
The VSWITCH that was defined earlier as VSW1 in the system configuration file has two
different connections to the network. It is considered highly available. You must now modify
the TCP/IP configuration to use the virtual switch so that its OSA devices are not a single
point of failure.
====> file
4. Make a backup copy of the working PROFILE TCPIP file that was created by the IPWIZARD:
===> copy profile tcpip d = tcpiwrks = (olddate
5. Edit the PROFILE TCPIP file on the TCPMAINT 198 (D) disk. Change the real OSA starting
address (2103 in this example) to the virtual starting address (0600) everywhere in the file:
===> xedit profile tcpip d
====> c/2103/0600/* *
DMSXCG517I 4 occurrence(s) changed on 3 line(s)
====> file
This command instructs TCPIP to use the virtual NIC that starts at the virtual device
address 600.
6. Log off from TCPMAINT.
7. Repeat these steps on all other members in the cluster. Remember, the real OSA
addresses might differ on each node.
Note: Commands that modify directory entries are processed exactly as they are entered.
So, for consistency, it is a preferred practice to enter DirMaint commands in all uppercase
characters, although it is not required.
The z/VM TCP/IP stack comes up on the highly available VSWITCH the next time that you
IPL z/VM.
Member 1 is back up with TCP/IP attached to the highly available VSWITCH and the FTP
server is running.
RDBKZVMH:
VDISK USER LIMIT IS 2097152 BLK
===> ssicmd query vdisk syslim
RDBKZVMG:
VDISK SYSTEM LIMIT IS INFINITE, 0000000 BLK IN USE
RDBKZVMH:
VDISK SYSTEM LIMIT IS INFINITE, 0000000 BLK IN USE
5. Try to start an FTP session to all of the SSI members. You will get a logon prompt.
This test shows that the changes to the SYSTEM CONFIG file and to the FTP server are in effect.
One spool volume for each member is probably adequate for Linux needs. However, more
paging volumes are recommended, especially if you plan to use the z/VM memory
overcommitment feature for your Linux virtual machines.
Although certain volumes are shared, the page and temporary disk volumes are not.
If you used 3390-9, it is recommended that you add at least one additional 3390-9 paging
volume so that you will have a total of two. If you used 3390-3, add at least four additional
3390-3 paging volumes for a total of five. Adequate paging space will give you room to add
more Linux virtual machines. Guidelines for planning paging were covered in 2.7, “Paging” on
page 50.
If only a few volumes are involved, that is fine, but when you must format many volumes, the
process of running CPFMTXA can be time-consuming and tedious, which can lead to errors.
Therefore, a REXX EXEC that is named CPFORMAT is provided in the tar file that is associated
with this book. With it, you can format many volumes with a single command. This EXEC is
shown in Appendix B, “Reference, cheat sheets, blank worksheets, and education” on
page 475. It is a wrapper around CPFMTXA. To use this EXEC, each DASD to be formatted must
first be attached with the virtual device address and the same real device address (by using
ATTACH realDev *).
This EXEC will label the volumes according to the convention that is described in 2.11.1,
“DASD volume labeling convention” on page 58. If you want different volume labels, you can
use the CPFMTXA command and manually specify each volume label, or you can modify the
REXX EXEC. The use of CPFMTXA manually is covered in Chapter 15, “Miscellaneous recipes
and helpful information” on page 439.
If you plan to install a systems management product, be aware of any volume labeling
requirements that you must consider, such as the inclusion of the real device address.
Note: We use the VMPSFS filepool as a staging area because VMPSFS is created at
the VMSSI cluster level. We move items out of this filepool into either the VMSYSU
filepool on each member, or into the LNX filepool that we create later in this chapter.
Consider VMPSFS to be volatile space, subject to overlay during system service.
Note: At this point, if you skipped the administration enrollment process from the
previous step, you see the following message:
550 FTP server does not have administrator authority for this file
pool; directory remains MAINT720.191
ftp>
lcd /ftp/zvm/cookbook/maintvrm
===>
===> mput *
===> quit
7. Check the listing of the files that you just downloaded into SFS:
===> vmfclear # listfile * * M (isodate
FILENAME FILETYPE FM FORMAT LRECL RECS BLOCKS DATE TIME
CALLSM1 EXEC M1 V 75 853 8 2015-04-28 17:43:26
CPFORMAT EXEC M1 V 77 272 3 2015-04-28 17:43:26
SSICMD EXEC M1 V 64 71 1 2015-04-28 17:43:26
VMWW2 VMARC M1 V 8192 106 203 2015-04-28 17:32:29
VMLOGS VMARC M1 V 8192 2 4 2015-04-28 17:32:28
VMSERVE VMARC M1 V 8192 28 52 2015-04-28 17:32:28
VMARC MODULE M1 V 8192 2 4 2015-04-28 17:32:27
VMCRON EXEC M1 V 1165 1 1 2015-04-28 17:33:32
8. Move the VMARC items into the VMARC directory:
===> access VMPSFS:MAINT720.UTILS.VMARC P (forcerw
===> copy * VMARC M = = P (OLDDATE
===> copy VMARC MODULE M = = P (OLDDATE
===> access VMSYSU:MAINT.UTILS.VMARC Q(forcerw
===> copy * VMARC M = = Q (OLDDATE
Important: The VM Product SFS file pool (VMPSFS) is used to hold IBM product
service data. It is a global (clustered) file pool, which is identified to CP as a global
resource for SFS and z/VM Byte File System (BFS) functions. The items that are added
to VMPSFS are a few small tools and utilities that will be accessed exclusively by z/VM
system programmers and administrators.
Do not add user data into this file pool. Instead, use VMSYSU, which is intended to hold
user data.
If you choose to add additional content to this SFS directory in the future, you must use
caution to ensure that you do not fill up the only data storage group, group 2, beyond
around 80%. You can check utilization with the TALLY command on the MAINT 193
minidisk. If the disk is not already accessed, use VMLINK:
===> VMLINK MAINT 193 ( INVOKE TALLY VMPSFS
13.Update the PROFILE EXEC for both MAINT and MAINT720 by adding the following line
underneath the last ACCESS entry, which will cause this SFS directory to be accessed as
file mode M at logon:
'ACCESS 51D D'
'ACCESS 551 E'
'EXEC VMLINK .DIR VMPSFS:MAINT720.UTILS. < . M * > (NON'
'SET FILEPOOL ...
Each SSI member now has access to the CALLSM1, CPFORMAT, and SSICMD EXECs.
Synopsis:
Format one or a range of DASD as page, perm, spool or temp disk space
The label written to each DASD is J<t><xxxx> where:
<t> is type - P (page), M (perm), S (spool) or T (Temp disk)
<xxxx> is the 4 digit address
Syntax is:
<---------------<
>>--CPFORMAT--.-vdev--------.--AS---.-PERM-.---------><
'-vdev1-vdev2-' '-PAGE-'
'-SPOL-'
'-TEMP-'
The following example shows how to attach a 3390-9 volume and use CPFORMAT to format it
as paging space. Refer to the planning worksheets that must be completed in Table B-9 on
page 486. Our values are shown in Table 2-10 on page 67.
Important: Because these volumes are formatted as page, the CPFORMAT EXEC will also
add owner information to the DASD. For this reason, page volumes must be formatted
on the SSI member on which they will be used.
This formatting job might run for several minutes, depending on many factors.
8. Repeat the three previous steps on all other SSI members. In the example environment
that was used for this book, two more page volumes were added on the second z/VM
system in the cluster, RDBKZVMH.
Now, many volumes can be used for minidisks. The labels are prefixed with VM in this
example.
RDBKZVMG: BEGIN
CP_Owned Slot 255 VP155E
RDBKZVMG: END
/**********************************************************************/
/* Page and Tdisk volumes for Member 2 */
/**********************************************************************/
RDBKZVMH: BEGIN
CP_Owned Slot 255 VP1562
RDBKZVMH: END
RDBKZVMG: BEGIN
CP_Owned Slot 253 VP155E
CP_Owned Slot 254 VP1565
RDBKZVMG: END
/**********************************************************************/
/* Page and Tdisk volumes for Member 2 */
/**********************************************************************/
RDBKZVMH: BEGIN
CP_Owned Slot 253 VP1562
CP_Owned Slot 254 VP1566
RDBKZVMH: END
5. Move down to the User_Volume_List section. User volumes (PERM) can be specified
individually with the User_Volume_List statement, or with wildcards by using the
User_Volume_Include statement. If you are using the labeling convention that is enforced
by the CPFORMAT EXEC and no other LPAR will use the same volumes with the same prefix,
you can use wildcards with the User_Volume_Include statement. In Example 6-13, all
volume labels that begin with VM15 will be attached to SYSTEM and be available for the
creation of minidisks.
/**********************************************************************/
/* Shared User Volumes */
/**********************************************************************/
User_Volume_List VM155F
User_Volume_Include VM5*
...
====> file
Important: If other z/VM LPARs might attach volumes with the VM prefix, specifically
list each volume to attach to SYSTEM by using the User_Volume_List statement. This
step will prevent multiple z/VM systems from writing to the same volume. The list looks
like the following list in this example:
User_Volume_List VM1567
User_Volume_List VM1568
User_Volume_List VM1569
User_Volume_List VM156A
User_Volume_List VM156B
...
6. Save your changes with the FILE subcommand. Verify the integrity of the changes with the
CPSYNTAX command:
===> access 193 g
===> cpsyntax system config f (lpar a09
CONFIGURATION FILE PROCESSING COMPLETE -- NO ERRORS ENCOUNTERED.
===> cpsyntax system config f (lpar a0a
CONFIGURATION FILE PROCESSING COMPLETE -- NO ERRORS ENCOUNTERED.
After you confirm that no syntax errors occurred, you can release and detach the PMAINT
CF0:
===> release F (detach
DASD 0120 DETACHED
RDBKZVMH:
EXTENT EXTENT TOTAL PAGES HIGH %
VOLID RDEV START END PAGES IN USE PAGE USED
------ ---- ---------- ---------- ------ ------ ------ ----
VP1562 1562 1 10016 1761K 7182 7674 1%
------ ------ ----
SUMMARY 1761K 7182 1%
USABLE 1761K 7182 1%
You now see the new paging volumes on each of the members. The output shows two paging
volumes on each SSI member that consist of 1761 KB pages each, or approximately 6.9 GB
of page space (one page is 4 KB).
In total, you will have 3522 KB per member, or about 13 GB of page space. This amount is
sufficient for the setup that is described in this book, but you must monitor the use of pages as
an ongoing activity
Note: If you need more functions than are described in this section, see 4.3, “Operations
Manager” on page 88.
The PROFILE EXEC on AUTOLOG1 191 disk must be configured for all members in the SSI.
When a match occurs, the defined action is performed. If no match occurs, no action is
performed. Certain messages are logged. Other messages are acted on automatically. Other
messages are sent to an actual operator’s console that is called the logical operator console
for human intervention.
The major benefit of PROP is that the real system operator sees only important messages,
while all messages are recorded for auditing.
--------------------------------DirMaint AMDISK----------------------------
To add a new minidisk to a user definition, fill in the following:
Minidisk Address ===> 0692 Device Type ===> 3390
Fill in one of the following rows:
Explicit Start ===> Size ===> Volser ===>
AUTOV Size ===> Volser ===>
VBLK Blksize ===> Blocks ===> Volser ===>
AUTOG Size ===> 002 Grpname ===> POOL1
GBLK Blksize ===> Blocks ===> Grpname ===>
AUTOR Size ===> Region ===>
RBLK Blksize ===> Blocks ===> Region ===>
T-DISK Size ===>
TBLK Blksize ===> Blocks ===>
V-DISK Size ===>
VDBS Blksize ===> Blocks ===>
DEVNO Real Device Number ===>
Optionally fill in:
Link Mode ===> R
BLKSIZE ===> LABEL ===> OPE692
PWS Read ===> Write ===> Multi ===>
(passwords)
d. Delete lines 26 - 31 by using the block-delete prefix command DD as shown. Type over
00026 with DD. Then, move the cursor to line 31 and type over 00031 with DD, as
shown in Example 6-16 on page 199. Press Enter to delete the lines.
e. Isolate all lines that contain the string “PROPNODE” and then delete them:
====> ALL/propnode
====> delete *
f. Isolate all lines that contain the string “NCCF” and then delete them:
====> ALL/NCCF
====> delete *
g. Clear the selection filter and save the changes that you made so far:
====> ALL
====> save
h. Move the current line to the line before “SEND ALL OTHER TRAPPED DATA TO THE
LOGICAL OPERATOR” by moving to the bottom and then moving up four lines:
====> bottom
====> up 4
i. Set the case back to MIXED so that XEDIT retains uppercase and lowercase
characters on the lines that you are about to enter. Then, enable INPUT mode:
====> set case mixed
====> input
j. Add these lines. PROP parses this file one line at a time and expects specific
characters at specific columns. You must keep entries in their correct columns and
keep characters in mixed case, as shown in Example 6-17.
Example 6-18 PROFILE EXEC for operator and surrogate operator IDs
/*** OPERATOR/OP1 PROFILE EXEC A -- MOD 2020-09-19 PWNOVAK ***/
ADDRESS COMMAND
'SYNONYM SYN'
'CP TERMINAL MODE VM'
'CP SPOOL CONSOLE TO * START NAME 'USERID()' CONSLOG'
'CP SET RUN ON'
'CP SET PF11 RETRIEVE FORWARD'
'CP SET PF12 RETRIEVE BACKWARD'
'CP SET PF23 RETRIEVE FORWARD'
'CP SET PF24 RETRIEVE BACKWARD'
'ACCESS 692 D'
'IDENTIFY (LIFO'
PARSE UPPER PULL VMUSER . LOCNODE . RSCSNAME
'VMFCLEAR'
SAY '------ z/VM PROGRAMMABLE OPERATOR (PROP) ------------------'
SAY 'OPERATOR CONTROL TRANSFERRING TO PROP FACILITY AT 'LOCNODE
SAY ' '
SAY 'PROP NOW INITIALIZING AND THEN DISCONNECTING THIS TERMINAL.'
The source form of the user directory consists of directory statements that define the CP
volume on which the object directory is created and the characteristics of each virtual
machine that runs on z/VM system.
Figure 6-7 shows an overview of definitions in the z/VM directory for guests with single
configuration and multiple configurations:
Single-configuration z/VM user ID
A single-configuration VM definition consists of a user entry and any included profile entry.
For example, you can specify a single-configuration virtual machine as EDIALVES and log
on to a z/VM system as EDIALVES. In an SSI cluster, the VM can be logged on to only one
SSI member at a time. Your Linux guests are always defined as single users and they can
be relocated from one SSI-member to another using the Live Guest Relocation feature of
SSI.
Note: For more information, see Using z/VM v 6.2 Single System Image (SSI) and Live
Guest Relocation (LGR), SG24-8039.
A PROFILE is easily used: add one line that is an INCLUDE PROFNAME statement as the second
line of any USER, IDENTITY, SUBCONFIG, or PROTODIR entry that uses that PROFILE.
Tip: Avoid directory ambiguity by adhering to a naming standard for your PROFILE entries.
Use LNXP.... for Linux PROFILE entries and use CMSP.... for CMS. You will always easily
identify what is a PROFILE versus a USER, IDENTITY, or PROTOTYPE
We create a profile for all Linux virtual machines that is called LNXPDFLT. We also explain
how to review the PROFILE entries supplied by IBM which ship with z/VM, and any custom
entries you might create.
Important: Do not delete or modify the PROFILE entries that are supplied by IBM. Various
Virtual Service Machines and other z/VM system internals rely on the specific parameters
supplied by IBM for proper operation. Use the instructions in this section to create your own
custom profiles and tailor them to suit your needs.
PROFILE LNXPDFLT
***COMMON LINUX DIRMPROFILE******************************************
COMMAND SET SECUSER OPERATOR
COMMAND SET RUN ON
COMMAND TERM HOLD OFF
COMMAND TERM MORE 001 000
COMMAND SCRE CPO WHI NON
COMMAND SCRE STA GRE REV
COMMAND SET VSWITCH VSW1 GRANT &USERID
COMMAND DEFINE NIC 0600 TYPE QDIO
COMMAND COUPLE 0600 TO SYSTEM VSW1
CPU 00 BASE
CPU 01
DATEFORMAT ISODATE
IPL CMS PARM FILEPOOL LNX AUTOCR
MACHINE ESA 8
IUCV ALLOW
OPTION CHPIDV ONE
CONSOLE 0009 3215 T
SPOOL 000C 2540 READER *
SPOOL 000D 2540 PUNCH A
SPOOL 000E 1403 A
LINK MAINT 0190 0190 RR
LINK MAINT 019D 019D RR
LINK MAINT 019E 019E RR
LINK TCPMAINT 0592 0592 RR
Figure 6-8 Contents of the LNXPDFLT PROFILE that is created
Note: Modifications made to the above entries supplied by IBM are not recommended.
System components may rely on the default values, and changes can result in unexpected
and unwanted results. If you want to use one of these profiles, but want to alter the
contents you should make a copy of the profile with a different name and use that instead.
You can review the contents of a PROFILE by using the DirMaint REVIEW and PEEK
commands:
===> dirmaint for ibmdflt review
DVHXMT1191I Your REVIEW request has been sent for processing to DIRMAINT ...
DVHREQ2288I Your REVIEW request for IBMDFLT at * has been accepted.
RDR FILE 0347 SENT FROM DIRMAINT PUN WAS 0706 RECS 0020 ...
...
===> peek 0347
====> discard
X E D I T 1 File
Figure 6-9 Contents of IBMDFLT PROFILE entry
When your review is complete, discard the file so that it does not occupy spool space
unnecessarily. Peek will close and the file will be discarded:
====> discard
File IBMDFLT DIRECT has been discarded.
Each privilege class, sometimes called CP privilege class, is defined around a particular job
or set of tasks, which creates an area outside of which the user cannot go. It is common for a
user to be assigned to more than one CP privilege class. Users cannot enter commands in
privilege classes to which they are not assigned.
Tip: It is also possible to create an override of privilege classes to meet the enterprise
security policy according to the roles of your installation.
For more information about enhancing security by further restricting the z/VM privileges that
are granted to each Linux guest, see Running Linux Guest in less than CP Privilege Class G,
REDP-3870.
IBM supplies two sample prototypes: one for a for typical CMS virtual machine, and one for a
sample Linux virtual machine. Complete the following steps:
1. To verify that these are present, issue the following commands as MAINT720 on any cluster
member. You need to issue these commands only one time during the initial setup of your
z/VM cluster:
===> DIRMAINT FOR DIRMAINT CMS LISTFILE * PROTODIR *
DVHREQ2288I Your CMS request for DIRMAINT at * has been accepted.
DVHCMS3868I CMS PROTODIR E2
DVHCMS3868I LINUX PROTODIR E2
DVHCMS3868I CMS PROTODIR G2
DVHCMS3868I LINUX PROTODIR G2
If you see the response above, skip Step 2.
2. If you do not see the response that are shown in Step 1, issue the following commands.
After they complete, re-issue the command from Step 1 to verify they are now present:
===> DIRMAINT CMS COPYFILE CMS DATADVH D = PROTODIR E (OLDDATE
===> DIRMAINT CMS COPYFILE LINUX DATADVH D = PROTODIR E (OLDDATE
While you are logged in as MAINT or MAINT720 on any node in the cluster, complete the
following steps:
1. Start a DIRMAINT SEND request for the CMS PROTODIR on file, and then receive the file to your
A disk with the new filename of CMSPROTO for editing:
===> dirmaint send cms protodir
DVHXMT1191I Your SEND request has been sent for processing to DIRMAINT ...
...
RDR FILE 0015 SENT FROM DIRMAINT PUN WAS 3485 RECS ...
...
===> receive 0015 cmsproto = A
FILE CMSPROTO PROTODIR A2 created from CMS PROTODIR E2 received from DIRMAINT
...
2. Edit the file so that it looks like Example 6-19:
===> xedit cmsproto protodir A
Your new prototype directory template is now ready for use. In the future, if you want to modify
this new prototype, follow the steps in the next section.
Tip: It is important that you erase the temporary copies of prototype directory files when
you are finished with them. Although it is tempting to leave them on the A disk, if multiple
people work with them and log on as MAINT from different nodes in the cluster, it is easy to
assume that the local copy is current and overwrite previous changes. By always asking
DirMaint for the latest copy on file and coordinating your efforts with other z/VM system
programmers, you reduce the likelihood that this problem will happen.
While you are logged in as MAINT on any node in the cluster, issue the following dirmaint
command. In this example, the new directory entry that is added is pwnovak with a temporary
password of need2chg:
===> dirmaint add pwnovak like cmsproto pw need2chg
DVHXMT1191I Your ADD request has been sent for processing to DIRMAINT ...
...
DVHREQ2289E Your ADD request for PWNOVAK at * has completed; with RC = 0.
4. Erase the temporary working copies of the protodir from the local A disk:
===> erase subpro* protodir A
Your new subdirectory prototype directory templates are now ready for use.
While you are logged in as MAINT on any node in the cluster, complete the following steps:
1. Start a DIRMAINT SEND request for the default file, then receive the file to your A disk as a
new file for editing by specifying the name:
===> dirmaint send linux protodir
DVHXMT1191I Your SEND request has been sent for processing to DIRMAINT ...
...
RDR FILE 0018 SENT FROM DIRMAINT PUN WAS 3485 RECS ...
...
===> receive 0018 lnxproto = A
2. Edit the file by using the following command so that it looks like Example 6-20:
===> xedit lnxproto protodir A
In this example, the value of 5008 indicates that the new Linux virtual machines that are
created by using this PROTODIR are given a minidisk of 5008 cylinders from POOL1 that
we defined earlier in the DirMaint EXTENT CONTROL file. The value of 5008 cylinders is
one half of a 3390 model 9 DASD.
If you want to give each of your virtual machines a full-pack minidisk by default, you must
change the value to 10016, as shown in Example 6-21. If you do not want to include a
default 0100 minidisk at all, omit this line and use DIRMAINT AMDISK later to generate a
0100 minidisk for each virtual machine that you create.
DIRMAINT AMDISK is described in section 6.17, “Creating identity LNXADMIN for Linux
administration” on page 246 and with greater detail in section 11.4.10, “Adding a minidisk
to a user or identity” on page 367.
3. Send the new PROTODIR to DirMaint for filing:
===> dirmaint file lnxproto protodir A
...
DVHRCV3821I File LNXPROTO PROTODIR A has been received; RC = 0.
DVHXMT1191I Your FILE request ... has completed; with RC = 0.
4. Clear the temporary copy of the protodir from the A disk:
===> erase lnxproto protodir A
or use PROTOLST EXEC that was downloaded, as described in 6.11.2, “Copying the
utilities to Shared File System file pools” on page 186,
Note: You see more than one line for the CMS and LINUX protodirs. This is expected and
is not an error.
Using LNXPROTO as an example, the following command shows you the contents of the
LNXPROTO prototype:
===> dirmaint for dirmaint cms type lnxproto protodir a
DVHXMT1191I Your CMS request has been sent for processing to DIRMAINT ...
...
DVHREQ2288I Your CMS request for DIRMAINT at * has been accepted.
DVHCMS3868I USER LNXPROTO NOLOG
DVHCMS3868I INCLUDE LNXPDFLT
DVHCMS3868I AMDISK 0100 3390 AUTOG 5008 POOL1 MR
DVHREQ2289I Your CMS request for DIRMAINT at * has completed; with RC = 0.
/*** CRONSVM PROFILE EXEC A : CRONSVM 191 -- MOD 2020-09-19 PWNOVAK ***/
'CP SET RUN ON'
'CP SPOOL CONSOLE CLOSE'
'CP MSG OPERATOR LOGON 'USERID()' FOR VMCRON TIMED'
'CP SPOOL CONSOLE TO VMLOGS START NAME' USERID() ]CONSOLE]
'ACCESS 193 U'
'ACCESS 592 X'
'EXEC VMCRON'
When too many EREP records are queued for processing, the following message appears on
the OPERATOR (or LGLOPR) console:
HCPCRC8083I EREP RECORD THRESHOLD HAS BEEN EXCEEDED FOR USERID EREP. CURRENTLY
00048816 RECORDS ARE ENQUEUED.
The VMLOGS VSM invokes a routine that is called SVMREST to attempt to prevent this
situation.
In this section, we describe how to create a virtual service machine that will collect and store
log files that are sent to its virtual spool. It will also invoke SFPURGER and SVMREST. The
installation will use the package from the z/VM downloads page, which is included in the
compressed file that you downloaded earlier into SFS. This package populates a virtual
machine that is named VMLOGS to act as a repository for consoles and any data file that
needs to be accessible for a predetermined number of days.
Logs are spooled to the VMLOGS VSM and automatically received onto the VMLOGS 191
minidisk. Files are kept until a specified maximum age, then automatically purged.
If your system processes data in a regulated industry, the use of an ESM is likely mandatory.
This book covers the basic setup of RACF/VM in , “This output shows that SMAPI is running,
LNXADMIN is correctly authorized to call SMAPI, and the Linux interface smaclient is working.”
on page 340.
In 6.13.2, “Role-based access controls and CP privilege classes” on page 206, we created a
new ID that is named pwnovak. In our example environment, we also created individual IDs
for all of the authors of this book. We now grant the new IDs the LOGONBY privilege for
LGLOPR, MAINT, and MAINT720.
--------------------------------DirMaint LOGONBY----------------------------
// Type your new password and press Enter. Nothing shows up on the window.
// Retype your new password and press Enter. Nothing shows up on the window.
DVHXMT1191I Your PW request has been sent for processing to DIRMAINT ...
Ready;
DVHREQ2288I Your PW request for EDIALVEES at * has been accepted.
DVHREQ2289I Your PW request for EDIALVES at * has completed; with RC = 0.
5. Log on as one of the privileged z/VM IDs by using your ID and by entering the command
that is shown in Figure 6-12 on page 220. Then, press the Enter key. Completing the
USERID and PASSWORD fields will not work, you must go immediately to the COMMAND
field.
RUNNING RDBKZVMG
Figure 6-12 Log on by using LOGONBY
6. The panel clears and in the next panel, you see an acknowledgment that CP is going to
process this log on for MAINT720 BY PWNOVAK. In Figure 6-13, the password for EDIALVES
is now entered at the ENTER PASSWORD prompt.
CP READ RDBKZVMG
7. After you complete and test the passwords successfully, the passwords for OPERATOR,
LGLOPR, MAINT, and MAINT720 must be changed. Change the passwords to a unique
password for each ID. Only two people, such as the z/VM chief systems programmer and
their immediate manager, must know these passwords. Direct log on as any of these IDs
must occur in emergency situations only where LOGONBY is not possible:
===> dirmaint for maint pw
DVHPWC1362R PW command is running.
DVHPWC1362R Enter your new password. It will not be shown. To exit
DVHPWC1362R without changing your password, just press ENTER.
...
Note: The command syntax differs slightly to set a password to LBYONLY, AUTOONLY,
or NOPASS. The following syntax is used to set one of these special reserved
passwords:
===> dirmaint for ... setpw lbyonly
For more information about the latest news, pertinent presentations, papers, Redbooks
documents, publications, links to press articles, and pointers to online discussions, see the
z/VM security page.
On this page, click Notify Me to be automatically notified by email when new information is
available.
The Secure Sockets Layer (SSL) server provides the processing capability that allows
encrypted communication between two TCP/IP connection participants, one of which is a
server or client application on the local z/VM host. Dynamic SSL/Transport Layer Security
(TLS) connections are supported by the following z/VM TCP/IP application servers and
clients, which are updated to accommodate this support:
TCP/IP server
SSL server
FTP server
FTP client
Telnet server (Internal to the TCP/IP server)
Telnet client
Simple Mail Transfer Protocol (SMTP) server
Server certificates and certificate authority (CA) certificates are stored in a certificate (key)
database, which is in the z/VM Byte File System (BFS) and managed independently of the
SSL server. Management is performed by using the GSKKYMAN utility program, which is built
around the IBM Global Security Kit (GSKit). The SSL server also provides an SSLADMIN
command interface for dynamic server operation that allows certificate database
administration and server administration tasks. The setup in this book covers the use of TLS
while explicitly disabling SSL v3 and lower to mitigate the heartbleed vulnerability, which is a
serious vulnerability in the popular OpenSSL cryptographic software library.
Complete the following steps to update the PROFILE and DTCPARMS files:
1. Log on as TCPMAINT.
2. Make a backup copy of the TCP/IP configuration file, PROFILE TCPIP D:
===> copy profile tcpip d = tcpiwork = (olddate
3. Edit the TCP/IP configuration file:
===> xedit profile tcpip d
4. By using the contents of Example 6-26 for reference, make the following changes:
a. Add an SSLSERVERID statement as a new line underneath the LARGEENVELOPEPOOLSIZE
line.
b. On the following line, include an SSLLIMITS statement to specify the total number of
secure connections that are allowed and the connection limit for each SSL server.
c. Above the PORT stanza, create an INFORM stanza to contain the user IDs to notify if any
serious TCP/IP or associated issues are detected.
d. In the PORT stanza, add a semicolon to the beginning of the line for INTCLIENT that uses
port 23.
e. Also in the PORT stanza, add a line underneath the last line for LDAPSRV. Replace the
value ITSOSSIA with the value from the planning worksheet that you chose for your SSI
cluster name:
992 TCP INTCLIEN SECURE ITSOSSIA ; TN3270 IntClient Server (Secure)
f. Just below the PORT stanza, create another stanza for INTERNALCLIENTPARMS as shown.
The INACTIVE statement is optional. The secondary PORT statement is also optional.
These changes cause transport security services to start when TCP/IP is started.
The important lines in this file are shown before the file is edited in Example 6-25, and
after the file is edited in Example 6-26.
Example 6-28 Example DTCPARMS Pool SSL ‘Server’ Entry in SSLPOOL DTCTEMP
00078 * file (such as ENDVM363 DTCPARMS), or in a SYSTEM DTCPARMS file
00079 * -------------------------------------------------------------------
dd 80
00081 * ================================================================
00082 * Secure Socket Layer (SSL) - 'SSL' POOL server definition
00083 * > The included :stack. tag identifies the TCP/IP server with which
00084 * this server pool is associated.
00085 * > The included :vmlink. tag identifies the (common) SFS directory
00086 * that is to be accessed at file mode A by each pool server
00087 * --------------------------------------------------------------
00088 :nick.SSL* :type.server :class.ssl
e. Press Enter to block-delete the lines between the two sets of dd.
f. Jump to the line that contains the string PROFILE TCPIP and move up to the first blank
line above it, which is line 57 in Example 6-29. Enter dd in the prefix area for this line.
Enter another dd on the last line of the file, and then press Enter:
g. ====> /PROFILE TCPIP
h. ====> up 2
b. Make a backup copy of the existing SYSTEM DTCPARMS file by moving your cursor to the
beginning of the SYSTEM DTCPARMS U1 line and typing the following text. You will type
over part of the existing text as shown in Figure 6-15. If you make a mistake while you
are typing, press F2 and start over; do not use backspace or delete:
COPY / = DTCPWRKS = (OLDDATE
c. After you finish typing, press Enter and then, press F2 to refresh the display.
e. Move to the command line at the bottom of the FILELIST panel by pressing F12.
f. Populate SYSTEM DTCPARMS U with the contents from SSLPOOL DTCTEMP A:
i. Move your cursor to the SYSTEM DTCPARMS U1 line and press F11 to open the file in
XEDIT.
ii. Delete all lines in the current file:
====> delete 10
DMSXCG501I 7 line(s) deleted
DMSXSU559W Warning: file is empty
00001 * * * End of File * * *
iii. Import the contents of SSLPOOL DTCTEMP A and then move to the top of the file
and save your changes so far:
====> get SSLPOOL DTCTEMP A
====> top
====> save
iv. Modify the header so that it reflects the file name, purpose, and last person to
modify the file, as shown in Example 6-31.
Example 6-32 Block-delete comments about examples and where to implement them
00023 -------------------- 3 line(s) not displayed ---------
DD 26 * ------------------------------------------------------
00027 * Example SSL DCSS Management Agent DTCPARMS 'Server' En
00028 * ------------------------------------------------------
00029 * Note: The entries that follow must be implemented with
00030 * file (such as RDBKZVMH DTCPARMS), or in a SYSTEM
DD 31 * ------------------------------------------------------
00032 -------------------- 1 line(s) not displayed ---------
00033 * ====================================================
DTCSLP3372I The SSLPOOL processing mode and values cited here will be used
DTCSLP3397I Processing mode ...........: ENROLL
Options in effect..........: TEST
DTCSLP3396I Operands in effect:
SFS file pool name ......: VMSYS
SFS file space owner ID .: TCPMAINT
SSL server pool prefix ..: SSL
TCP/IP server ID ........: TCPIP
SSL server pool count ...: 5
SSL server work directory: VMSYS:TCPMAINT.SSLPOOL_SSL
SSL DCSS agent server....: SSLDCSSM
DTCSLP3399R Continue with action ENROLL?
Enter 0 (No), 1 (Yes), 2 (Exit)
===> 1
DTCSLP3360W Option TEST is in effect; Commands prefaced with '*:>' not employed
...
DTCSLP3021W SSLPOOL processing completed with RC = 4
Ready(00004);
19.Clear your panel and then, run the GSKKYMAN utility. At the top-level menu, select Create
new database and respond to the prompts, as shown in Figure 6-17 on page 231.
===> vmfclear
===> gskkyman
20.Select option 1 to create a key database, and use the default file name of Database.kdb
(note the upper case D).
21.Select a password to use for securing the database. This password can be as complex as
you want, but remember the following information:
– Remember that the password is case-sensitive.
– The number sign (#) character is the end of line indicator; do not use it in your
password.
– Your password must not be trivial.
– Document the password in a secure location, such as an enterprise identity and
access management (IAM) data vault.
22.If a requirement or regulation mandates that cryptography-stored passwords must change
on a timed interval, set an expiration date. If not, press Enter.
23.Press Enter twice to set the record length to the default of 5,000.
24.If you are required to abide by United States Government Federal Information Processing
Standards (FIPS), answer 1 to the FIPS prompt. The typical answer is 0, but check with
your business controls office if you are unsure.
25.After you are notified that the key database is created, press Enter twice to return to the
top-level menu.
Database Menu
29.Issue the following OPENVM PERMIT commands to allow the SSL-TLS server to access the
new key database:
===> openvm permit /etc/gskadm/Database.kdb rw- r-- ---
===> openvm permit /etc/gskadm/Database.rdb rw- r-- ---
===> openvm permit /etc/gskadm/Database.sth rw- r-- ---
30.Confirm that r (read) was added to the “group” permissions for the key database and
password stash files:
===> openvm list /etc/gskadm/ (own
Directory = '/etc/gskadm/'
User ID Group Name Permissions Type Path name component
gskadmin security rw- r-- --- F 'Database.kdb'
gskadmin security rw- --- --- F 'Database.rdb'
gskadmin security rw- r-- --- F 'Database.sth'
31.With the key database now in place, you can start the SSL server to confirm that it can
access this database; but first, we generate a self-signed certificate for testing.
Note: Do not attempt to log on to the SSL server through a secure Telnet connection.
An attempt to log on to the SSL server through a secure Telnet connection will be
rejected with the message:
HCPLGA206E Cannot connect to host virtual machine
For more information, see “TCP/IP and SSL Server Logon Restrictions”, in z/VM
TCP/IP Planning and Customization, SC24-6125.
a. Clear your panel, then run the GSKKYMAN utility. At the top-level menu, select option 2 -
Open database, enter Database.kdb, and then, enter the password in response to the
prompts:
===> vmfclear
===> gskkyman
===> 2
===> Database.kdb
===> P@ssw0rd4zVMgsk!
b. The Key Management Menu appears. Select option 6 - Create a self-signed
certificate:
===> 6
c. At the Select certificate type prompt, choose option 6 - User or server certificate with
2048-bit RSA key:
===> 6
d. At the Select digest type prompt, choose option 3 - SHA-256:
===> 3
e. Respond to the label and subject name prompts by using Figure 6-18 on page 234 as
a guide. Replace the example values with those values that are correct for your
environment. The value for the label must match the value that was used in step 3 on
page 222.
Organization (required):
International Business Machines Corporation
City/Locality (optional):
Endicott
State/Province (optional):
New York
f. Press Enter twice to return to the Key Management Menu and select the following
options:
===> 1 - Manage keys and certificates
===> 1 - ITSOSSIA
(the option that displays the label of the certificate that you generated)
===> 3 - Set key as default
g. Press Enter twice to return to the Key and Certificate Menu and then, select 0 to exit
the GSKKYMAN utility.
33.Grant the LOGONBY privilege for GSKADMIN to the authorized IDs. Then, change the
password for GSKADMIN to LBYONLY:
===> dirmaint for GSKADMIN logonby add spiedie tjwatson lydiap pwnovak
Your LOGONBY request for GSKADMIN at * has completed; with RC = 0.
===> dirmaint for GSKADMIN SETPW LBYONLY
DVHXMT1191I Your SETPW request has been sent for processing to DIRMAINT ...
DVHREQ2289I Your SETPW request for GSKADMIN at * has completed; with RC = 0.
34.Repeat step 32 for TCPMAINT and 6VMTCP30.
35.Repeat the previous steps on all other members of the SSI cluster.
Use the help documentation for your 3270 emulator to obtain the correct details that you will
require to configure your 3270 emulator to connect by using an encrypted connection.
Backing up and restoring data are essential components of data storage management.
Backing up your data on a regular basis helps protect your system against the loss of data if a
major disaster occurs, or when data is accidentally deleted or becomes corrupted.
Planning for full system and incremental backup capabilities is an integral part of the
migration plan for many customers who are migrating workloads to Linux on IBM Z.
Depending on the configuration of the IBM Z environment, customers can select to use a
z/VM specific strategy, Linux specific strategy, or a combination of the two for their backup
plan.
Linux-centric solutions can provide file level backup and recovery for Linux guest systems;
that is, the solution or its client is running in Linux and understands the file system. Again, this
function is useful when you need to recover a file (or small number of files) because of
administrative or operational errors.
By combining Backup and Restore Manager for z/VM and TSM, a comprehensive backup and
recovery solution for the z/VM and Linux on IBM Z can be provided. Disaster-level backup
and recovery is available for z/VM and the Linux guests.
The Linux virtual machines are backed up as part of the z/VM system on which they are
hosted. Equally, the TSM client code is backed up with the Linux virtual machines, which
allows the TSM solution to perform its needed functions when the Linux virtual machine is
again operational. In addition, file level backup and recovery also is available for z/VM and the
Linux guests, which provides easier recovery from operational errors.
IBM offers different and sometimes complementary strategies, such as IBM Backup and
Restore Manager for z/VM and IBM Tivoli® Storage Manager (TSM) for Linux (see
Figure 6-19) that can be part of your backup and restore master plan.
Figure 6-19 Using Backup and Restore Manager with Tivoli Storage Manager.
If you are interested in having a product to backup your system, such as IBM Backup
Restore, see Chapter 8 IBM Backup and Restore Manager for z/VM of Using z/VM v 6.2
Single System Image (SSI) and Live Guest Relocation (LGR), SG24-8039.
If you do not have a tape device, appendixes exist that describe backing up and restoring to
and from DASD. For more information about backup solutions, see this web page.
In this book, the authors implemented a sophisticated way to provide each user with a
writable 191 disk and still share part of the content among all of the guests. In z/VM, the
chosen solution is called a Shared File System (SFS) file pool.
Each file pool is a collection of minidisks that are owned by a particular file pool virtual
machine, which is known as a file pool server. The minidisks are used for storing file pool
repository data, with control data (for example, catalogs, logs, and parameter files) that is
necessary to keep the data definitions and recovery information.
Note: By default, SFS file pools are not enabled for remote access, but remote access can
be enabled, if you want. You can set up a connection by using the Transparent Services
Access Facility (TSAF), the Inter System Facility for Communication (ISFC), or Advanced
Program-to-Program Communication (APPC)/VM Virtual Telecommunications Access
Method (IBM VTAM®) Support (AVS). For more information, see “Setting Up a File Pool for
Remote Use” in IBM z/VM CP Planning and Administration, SC24-6178.
Example 6-33 Sample directory entry for a new SFS server machine
USER LNXSERV1 LBYONLY 64M 128M BG
INCLUDE IBMDFLT
LOGONBY AUTOLOG1 BG FMIRANDA KWERNER PARZIALE PWNOVAK SPIEDIE
ACCOUNT 1 LNXMAINT
IPL CMS
IUCV ALLOW
IUCV *IDENT RESANY GLOBAL
MACH XC
OPTION MAXCONN 2000 NOMDCFS APPLMON ACCT QUICKDSP SVMSTAT
POSIXOPT SETIDS ALLOW
SHARE RELATIVE 1500
XCONFIG ADDRSPACE MAXNUMBER 100 TOTSIZE 8192G SHARE
XCONFIG ACCESSLIST ALSIZE 1022
CONSOLE 0009 3215 T OPERATOR
LINK MAINT 0190 0190 RR
LINK MAINT 0193 0193 RR
LINK MAINT 019D 019D RR
MDISK 0091 3390 0001 0001 VM156A RR
MDISK 0191 3390 0202 0001 VM156A MR
MDISK 0192 3390 0203 0100 VM156A MR
MDISK 0301 3390 0303 0009 VM156A WR
MINIOPT NOMDC
MDISK 0302 3390 0312 0014 VM156A WR
MINIOPT NOMDC
MDISK 0303 3390 0326 0014 VM156A WR
MINIOPT NOMDC
MDISK 0304 3390 0340 0015 VM156A WR
MDISK 0305 3390 0355 0500 VM156A WR
3. After you add all of the lines, issue the subcommand FILE to save the changes and quit
XEDIT:
====> FILE
4. Send the directory entry to DirMaint for processing:
===> dirm add lnxserv1
Allow several minutes for any DirMaint asynchronous processing of LNXSERV1 to complete.
6.16.3 Generating the SFS file pool for Linux guest systems
Now that LNXSERV1 is built, generate the file pool that will run under it. This file pool is
named LNX. Complete the following steps:
1. Log on to LNXSERV1 on the first member. CMS automatically loads, but it displays an error
message:
A(191) device error
The error occurs because the 191 minidisk is not formatted yet. Resolve this error by
formatting and labeling the 191 minidisk:
===> format 191 A
Erase all files?
===> 1
Enter label:
===> LNX191
2. Create a PROFILE EXEC for this server machine, as shown in Figure 6-20:
===> xedit profile exec a
/*** LNXSERV1 PROFILE EXEC : LNXSERV1 191 -- MOD 2015-04-10 PWNOVAK ***/
ADDRESS COMMAND
'CP MSG OPERATOR LOGON 'USERID()' FOR LINUX SFS FILEPOOL LNX:'
'CP SPOOL CONSOLE START'
'CP SPOOL CONSOLE TO OPERATOR EOF'
'CP SET PF11 RETRIEVE BACK'
'CP SET PF12 RETRIEVE'
'ACCESS 193 C'
'CP SET EMSG ON'
'CP SET RUN ON'
'SET AUTOREAD OFF'
'EXEC FILESERV START'
IF DISC() THEN
'CP LOGOFF'
EXIT
The ACCESS command is necessary because several of the files that are needed by the
server on MAINT’s 193 minidisk. Specify SET EMSG ON so that the message number will
be included in the messages that are shown on the server. You can use the message
number to look up messages in z/VM: CMS and REXX/VM Messages and Codes,
GC24-6118.
3. After you create the PROFILE EXEC, file it, then copy it as SETUP EXEC:
====> FILE
====>
X E D I T 1 File
Figure 6-22 POOLDEF defaults with D in the prefix area of lines 9 and 10
8. Modifications are required. Enter D into the prefix area on lines 9 and 10 as shown in
Figure 6-22 and press Enter. After you delete these two lines, save and exit:
====> file
FILESERV GENERATE processing continues by using the control statements that you
specified:
DMS5FD3032I File pool server has terminated
DMSWFV1120I File LNX POOLDEF A created or replaced
DMSWFV1117I FILESERV processing ended at 17:18:11 on 10 Apr 2015
9. Back up the file pool control data:
===> FILESERV BACKUP
DMSWFV1117I FILESERV processing begun at 17:47:15 on 10 Apr 2015
DMSWFV1121I LNXSERV1 DMSPARMS A1 will be used for FILESERV processing
DMSWFV1121I LNX POOLDEF A1 will be used for FILESERV processing
DMS4HA3239I The DDNAME=BACKUP file is being created with the following
DMS4HA3239I timestamp: 04-10-15 17:47:15
DMS4HA3293I 04-10-15 17:47:15 File pool control data backup starting
DMS4GL3294I 04-10-15 17:47:15 File pool control data backup complete
DMS5FD3032I File pool server has terminated
DMSWFV1117I FILESERV processing ended at 17:47:15 on 10 Apr 2015
10.Start the server to access the file pool in multiple user mode:
===> FILESERV START
DMSWFV1117I FILESERV processing begun at 17:47:26 on 10 Apr 2015
DMSWFV1121I LNXSERV1 DMSPARMS A1 will be used for FILESERV processing
DMSWFV1121I LNX POOLDEF A1 will be used for FILESERV processing
DMS5BB3045I Ready for operator communications
11.After you see the “DMS5BB3045I Ready for operator communications” message appear,
disconnect:
===> #CP DISCO
3. Enroll LNXMAINT in the LNX file pool with a limit of 500 4K blocks. This amount is more
than sufficient, but you can adjust it in the future, if required:
===> enroll user LNXMAINT lnx ( blocks 500
4. Access the file pool, which accesses the user directory for LNXMAINT in the LNX file pool:
===> access
Ready;
5. Check to ensure that the file pool directory for LNXMAINT appears as file mode A:
===> query accessed
Mode Stat Files Vdev Label/Directory
A R/W 0 DIR LNX:LNXMAINT.
S R/O 698 190 MNT190
Y/S R/O 1123 19E MNT19E
Ready;
7. Enroll LNXADMIN, which holds all of the contents that are used to punch the Linux kernel
and start the FILESERV GENERATE. We allocate 30,000 blocks initially, which can be
increased later as your environment expands:
===> enroll user lnxadmin lnx ( blocks 30000
8. Start the new profile:
===> profile
The virtual machine that is the Linux administrative system is now defined. Remain logged in
as LNXMAINT and proceed to perform the initial enrollments.
1. (Optional) If you run multiple Linux distributions, or think you might do so in the future,
create directories to be used for separation of different items:
===> create directory lnx:lnxadmin.swapgen
===> create directory lnx:lnxadmin.redhat
===> create directory lnx:lnxadmin.suse
===> create directory lnx:lnxadmin.ubuntu
2. Grant public read authorizations for the LNXADMIN directory and any files inside of it.
PUBLIC means any USER (or IDENTITY) enrolled in the LNX filepool has read-only
access to the LNXADMIN directory; all others have no visibility:
===> grant auth lnx:lnxadmin. to public ( read newread
If you are granting public authorizations for an existing user directory, all of the files in the
directory can be made accessible to enrolled IDs with the following command:
===> grant auth * * lnx:lnxadmin. to public ( read
Note: For suitable security, the only IDs that are enrolled in the LNX filepool should be
Linux virtual servers, admin IDs that are defined in Figure 6-21, and I/T staff supporting
z/VM and Linux virtual servers.
a. If you created directories, grant public read authorizations for them and any files inside:
===> grant auth lnx:lnxadmin.swapgen to public ( read newread
===> grant auth lnx:lnxadmin.redhat to public ( read newread
===> grant auth lnx:lnxadmin.suse to public ( read newread
6.16.6 Adding Linux parm files and REXX EXECs to the LNX file pool
While you are still logged in as LNXMAINT, complete the following steps:
1. Use VMLINK to access the TCP/IP tools so that you can use the z/VM FTP client:
===> vmlink tcpmaint 592
DMSVML2060I TCPMAINT 592 linked as 0120 file mode Z
2. Ensure that you still have the SFS directory for LNXADMIN accessed as file mode D with R/W
(read/write) status:
===> query accessed
Mode Stat Files Vdev Label/Directory
A R/W 1 DIR LNX:LNXMAINT.
D R/W 1 DIR LNX:LNXADMIN.
S R/O 698 190 MNT190
Y/S R/O 1124 19E MNT19E
Z R/O 892 120 TCM592
– Perform a put (push) from the FTP server by initiating a session to z/VM:
===> ftp RDBKZVMG.itso.ibm.com
...
===> lcd D
===> cd /ftp/zvm/cookbook/lnxmaint
===> mget *
===> quit
4. List the files that you downloaded into SFS. The list shows numerous files:
===> vmfclear
===> listfile * * D (isodate
FILENAME FILETYPE FM FORMAT LRECL RECS BLOCKS DATE TIME
GENERIC PRM D1 V 66 7 1 2015-04-20 15:28:54
PROFCKD EXEC D1 V 72 37 1 2015-04-27 15:11:21
PROFFBA EXEC D1 V 72 49 1 2015-04-27 15:11:10
PROFILE EXEC D1 V 72 37 1 2015-04-27 15:09:09
REDHAT EXEC D1 V 26 9 1 2015-04-17 12:43:45
RESCUE EXEC D1 V 26 9 1 2015-04-24 14:53:21
RESCUE PRM D1 V 66 7 1 2015-04-24 14:53:05
SLES12 EXEC D1 V 57 11 1 2015-04-17 12:15:35
SLES12 PARMFILE D1 V 18 2 1 2015-04-25 14:36:02
SWAPGEN EXEC D1 V 72 599 7 2013-12-17 21:52:11
SWAPGEN HELPCMS D1 V 76 279 3 2013-12-23 10:45:36
SWAPGENH PSBIN D1 V 256 1632 88 2013-12-23 10:44:21
SWPUME TEXT D1 F 80 43 1 2013-12-17 21:52:19
SWPUMEA TEXT D1 F 80 47 1 2013-12-17 21:52:19
SWPUMEB TEXT D1 F 80 43 1 2013-12-17 21:52:19
SWPUMEC TEXT D1 V 80 47 1 2013-12-17 21:52:20
SWPUMED TEXT D1 V 80 47 1 2013-12-17 21:52:20
SWPUMEE TEXT D1 F 80 57 2 2013-12-17 21:52:20
SWPUMEF TEXT D1 V 80 47 1 2013-12-17 21:52:20
SWPUMEG TEXT D1 V 80 47 1 2013-12-17 21:52:20
SWPUMEJ TEXT D1 V 80 47 1 2013-12-17 21:52:20
You can also perform this task by using a special invocation of FILELIST that is used for
working with SFS called DIRLIST:
===> DIRLIST D
5. Create ALIASes for the Linux virtual machines. Each Linux virtual machine will see what
appears to be an individual copy of PROFILE EXEC in their SFS directory that is
accessed as file mode A. In reality, it will be a read-only pointer back to LNX:LNXADMIN.
PROFILE EXEC:
===> access lnx:linux1. G (forcerw
===> create alias profile exec D profile exec G
===> release G
An abbreviated version is used for LINUX2:
===> access linux2. G (forcerw
===> create alias profile exec D profile exec G # release G
Note: SFS aliases function in a virtually identical way to symbolic links in UNIX or
Linux. Check aliases by using the CMS command QUERY ALIAS or by pressing PF10
while in FILELIST.
The necessary tasks that are under the LNXMAINT ID are complete. Log off the ID to release
the remaining accessed directories.
To create LNXADMIN, perform the following steps while you are logged on as MAINT or
MAINT720:
1. You used the existing profile TCPCMSU when you defined the LNXMAINT user. Now, you
create LNXADMIN and use the LNXPDFLT profile, which is the default user directory profile for
Linux virtual machines:
==> xedit LNXADMIN DIRECT A
====> input
====> file
2. Send the entry to DirMaint for processing:
===> dirmaint add lnxadmin
DVHREQ2289I Your ADD request for LNXADMIN at * has completed; with RC = 0.
3. Create the sub-configuration entries by using the SUBCON prototypes that were created
earlier in 6.13.2, “Role-based access controls and CP privilege classes” on page 206:
===> dirmaint add LNXADM-1 like SUBPRO-1 build on RDBKZVMG in LNXADMIN
DVHXMT1191I Your ADD request has been sent for processing to DIRMAINT ...
Ready;
DVHREQ2288I Your ADD request for LNXADM-1 at * has been accepted.
...
DVHREQ2289I Your ADD request for LNXADM-1 at * has completed; with RC = 0.
--------------------------------DirMaint AMDISK------------------------------
To add a new minidisk to a user definition, fill in the following:
Minidisk Address ===> 0100 Device Type ===> 3390
Fill in one of the following rows:
Explicit Start ===> Size ===> Volser ===>
AUTOV Size ===> 10016 Volser ===> VM1567
VBLK Blksize ===> Blocks ===> Volser ===>
AUTOG Size ===> Grpname ===>
GBLK Blksize ===> Blocks ===> Grpname ===>
AUTOR Size ===> Region ===>
RBLK Blksize ===> Blocks ===> Region ===>
T-DISK Size ===>
TBLK Blksize ===> Blocks ===>
V-DISK Size ===>
VDBS Blksize ===> Blocks ===>
DEVNO Real Device Number ===>
Optionally fill in:
Link Mode ===> MR
BLKSIZE ===> LABEL ===>
PWS Read ===> LNX4VM Write ===> LNX4VM Multi ===> LNX4VM (passwords)
Figure 6-25 DirMaint Add MiniDisk Panel for LNXADM-1
While Linux systems continue to run, they can be moved across logical partitions (LPARs) on
the same central processor complex (CPC), or cross-CPC, if the SSI is set up that way. This
new function allows for few or even no planned outages.
In this chapter, we provide a brief overview of LGR and information about how to relocate a
Linux guest.
© Copyright IBM Corp. 2015, 2016, 2021. All rights reserved. 251
7.1 LGR considerations
An SSI cluster features the following types of virtual machines:
Single-configuration virtual machine
A virtual machine that is defined by the USER statement can be logged on to any member
of the SSI cluster, but on only one member at a time. Single-configuration virtual machines
are eligible for guest relocation.
Multi-configuration virtual machine
A virtual machine that is defined by the IDENTITY and SUBCONFIG statements can be logged
on concurrently to multiple members of the SSI cluster. The virtual machines have
common attributes but they can also be configured to access different resources.
Multi-configuration virtual machines are not eligible for guest relocation.
There are many considerations for relocating running Linux systems.
This check cannot be bypassed. If it fails, the relocation is terminated. The error message that
is displayed indicates the size of the guest with the available capacity on the destination
system.
Note: The maximum memory size includes any standby and reserved memory that the
guest might have.
If any of these tests fail, the relocation is terminated. The error message that is displayed
indicates the size of the guest with the available capacity on the destination system.
If you are certain that these three checks do not apply to your installation (for instance,
because you have an overabundance of central memory and a less than recommended
amount of paging space), you can choose for CP to skip these three checks by specifying
FORCE STORAGE on the VMRELOCATE command.
We described how to migrate a running Linux system by using the VMRELOCATE command.
The full details are provided to apply the two main types of service:
Recommended service upgrade (RSU), which is analogous to a service pack
Program temporary fix (PTF), which is analogous to a bug fix
The processes to install these types of service are essentially the same.
Awareness is key: Go to the z/VM website and subscribe to notifications for Service News
and Red Alerts. For more information, see 6.5.5, “Service-level validation and subscribing
to service notifications” on page 154.
© Copyright IBM Corp. 2015, 2016, 2021. All rights reserved. 255
8.1 z/VM release schedule
Beginning with z/VM 7.1, a new z/VM release will be delivered on a fixed, 24-month cycle.
Each release contains all previously released New Function APARs, which are functions that
are too disruptive to ship in the service stream, and all fixes shipped on the service stream for
the previous release.
A z/VM release can be ordered for 18 months after the general availability of its follow-on
release. IBM will provide service to a z/VM release until six months after the general
availability of its N+2 release.
This release schedule allows customers to update to the current release and access new
functions, or keep the current version and receive only the corrective fixes. For example, z/VM
6.4 users receive corrective service six months after the general availability of z/VM 7.2. This
schedule gives each z/VM release a life span of 54 months when IBM provides service and
support.
To track the current and planned enhancements for the new release cycle, IBM created a web
page on the z/VM website to list them. At this web page, you can subscribe to receive
updates about new functions or to specific APARs (see Figure 8-1).
RSUs (“stacked” or otherwise) are packages, named vrnn - version, release, and a sequence
number. For example, RSU 6204 is the fourth RSU for z/VM 6.2. You can get the latest RSU
for a release by ordering special program temporary fix (PTF) number UM97vr0, where vr is
the version and release. Inside the RSU is a collection of one or more service levels.
A service level (SL) is a tested subset of all of the available PTFs and is named yynn, where
yy is the year of issue and nn is a sequence number. This sequence number has nothing to
do with the RSU sequence number; therefore, they likely do not match. Within each release, a
single SL is established for the following parts of z/VM:
The base: Control program (CP), Conversational Monitor System (CMS), and so on
TCP/IP
RACF
PerfKit
DIRMAINT
Remote Spooling Communications Subsystem (RSCS)
Hardware Configuration Definition (HCD)
When it is time to deliver a new RSU, the RSU sequence number is incremented and all of the
available service levels for that release are placed in it. At least one of them is new, but the
others are the same as on the previous RSU. Service levels are cumulative. They contain all
of the PTFs that were in the earlier service levels for that release.
Important: When you apply service, you might want to back it up. It is recommended that
an up-to-date backup of your system exists before you start the next tasks.
For more information about applying corrective service to z/VM, see the following manuals:
z/VM Guide for Automated Installation and Service (see Part 4), GC24-6197
z/VM Service Guide, GC24-6232
These manuals are more complete than this chapter. You might consider the use of these
manuals first, rather than this chapter. At least, use them as references.
VMSES/E is a component of z/VM that provides the SERVICE and PUT2PROD EXECs. The
SERVICE EXEC performs the following functions:
Installs an RSU or applies corrective (COR) service for z/VM components, features, or
products.
Displays either the RSU level of the specified component or whether a particular PTF or
authorized program analysis report (APAR) was applied (when used with STATUS).
Creates PTF bitmap files (when used with BITMAP) that contain a list of all PTFs that were
received, applied, or superseded, and all installed products.
When SERVICE is successfully completed, the PUT2PROD EXEC places the z/VM components,
features, or products that are installed on the z/VM system deliverable, and serviced, into
production. For more information, see this web page.
For more information about the latest RSU content, see this web page.
For more information about Red Alerts, which contain information about potential high-impact
items, see this web page.
Next, we summarize applying service and also describe how to obtain service over the
internet by using IBM Shopz.
First, you must determine whether your system needs service by using the QUERY CPLEVEL
command:
==> query cplevel
z/VM Version 7 Release 1.0, service level 1801 (64-bit)
Generated at 09/10/20 17:34:33 EDT
IPL at 09/11/20 16:34:30 EDT
The service level (also called RSU level) is a four-digit field that consists of a pair of two-digit
segments. The first two digits represent the calendar year that the RSU was published, and
the second two digits represent the sequential RSU level within that year. Examples are
1902RSU, which is the second RSU for calendar year 2019, and 2001RSU, which is the first RSU
of calendar year 2020.
With Shopz, you do not need to know the PTF number. If you know that you want the latest
RSU, you can get it directly, based on the version of z/VM that you are running.
Complete the following steps, which are the same steps that are described with some figures
in 8.4, “Applying a program temporary fix” on page 265:
1. Point a web browser to the Shopz website.
2. Click Sign In/Register, which often is in the upper left. Use your user ID and password, if
you have them. If not, click Create IBMid and complete the form to create a user ID and
password. You must have your IBM customer number.
3. Click My orders near the top.
4. The My Orders page opens. Click Create orders, select z/VM - Service. Choose RSU
Recommended Service Upgrade in the drop-down menu. Click Continue.
MAINT720 features a special disk that is used for storing service packages, the 500 disk. This
disk have 1200 cylinders by default, and should have enough space to store both the
compressed and decompressed service files.
In the past, this process was lengthy and detailed. For example, to receive, apply, and build
the CP component, the following steps were needed:
vmfmrdsk zvm cp apply (setup
vmfsetup zvm cp
vmfpsu zvm cp
vmfins install ppf zvm cp (nomemo env {filename} nolink override no
vmfapply ppf zvm cp (setup
vmfbld ppf zvm cp (status
vmfbld ppf zvm cp (serviced
Then, the same steps were needed for many other components. The process is easier now
with the SERVICE ALL command. Alternatively, the previous method is more granular and
better enables a system administrator to know the parts of the service that were applied.
When your system comes back up, it is at the new CP service level.
9. After the system comes back up, start a new 3270 session and log on as MAINT on the first
member.
10.Run the QUERY CPLEVEL command again:
==> query cplevel
z/VM Version 7 Release 2.0, service level 2002 (64-bit)
Generated at 09/12/20 16:50:40 EDT
IPL at 09/17/20 11:09:59 EDT
This information shows that the new CP load module is used and that the service level is
the second RSU in the year 2020.
The APAR was assigned the following PTF numbers for each of the following z/VM releases:
z/VM 6.4 UM35514
z/VM 7.1 UM35515
z/VM 7.2 UM35728
Therefore, for z/VM 7.2, you apply PTF UM35728. The following sections provides an
example of how to apply this PTF.
For places where an internet download cannot be used or a physical media is required, IBM
still can ship service on DVD.
At the bottom of the page, the Applicable component levels section shows that PTF UM35728
is available for z/VM 7.2. Before you get that PTF, ensure that it was not applied by seeing
8.4.2, “Determining whether a PTF was applied” on page 267.
This message shows that PTF UM35728 was not applied. Obtaining and applying this PTF is
described next.
On the My Orders page from Shopz, select Create a new order (see Figure 8-5).
Figure 8-6 Web page that was created for downloading a PTF
To prepare to use the SERVICE command, you must have a minidisk with significant free
space. Use the MAINT720 500 minidisk for this purpose. Complete the following steps:
1. Access the MAINT720 500 disk as file mode C:
==> access 500 c
DMSACC724I 500 replaces C (2CC)
2. Use the SERVICE ALL command and specify the envelope files that you downloaded. Many
windows of output will scroll by and automatically be cleared. Important messages are
saved to the 500 disk. This process can take time. The following example shows the
processing:
==> service all d1041690
...
VMFSUT2760I VMFSUFTB processing completed successfully
VMFSRV2760I SERVICE processing completed successfully
==> service all s1041690
...
VMFSRV1233I The following products have been serviced.
VMFSRV1233I CP
VMFSRV2760I SERVICE processing completed successfully
If you see no number in parentheses after the Ready; prompt, the return code is 0. Any
nonzero return code will be in parentheses. A return code of 0 is ideal. In general, a return
code of 4 is acceptable. It means that only warnings were issued. A return code of 8 or
greater generally means that errors were encountered.
NONE.
In this example, the APARMEMO file was created, but no extra memos are present.
You do not see any new information in the APARMEMO file if you did not perform SERVICE against
the documentation SERVLINK file because the <prodid> MEMO file is in the documentation
SERVLINK file.
IBM 3907; z/VM Version 7 Release 2.0, service level 2001 (64-bit), VM TCP/IP
Lev
el 720; RSU 0000 running TCPIP MODULE E2 dated 06/24/20 at 13:06
TCP/IP Module Load Address: 00BEF000
Two APARs are available for TCPIP. The procedures to download and apply the service are
the same as any PTF: access IBM Software Shopz website, find APARs by number,
download them and apply them.
This chapter describes the z/VM CSM function. We also describe how to plan for, set up, and
use z/VM CSM to manage service across several z/VM systems.
Note: z/VM CSM cannot be used with z/VM SSI. In an SSI cluster, service across the
cluster is managed by VMSES/E in the cluster. It is not possible to integrate z/VM CSM
with z/VM SSI to deliver service from a system in a z/VM SSI cluster, nor is it possible to
use z/VM CSM to deliver service to a z/VM SSI cluster.
z/VM CSM allows maintenance packages to be built, distributed, and applied to up to 55 z/VM
systems from a single service management system. Not only does this simplify the task of
service distribution, but it also makes it much easier to ensure that systems are kept
consistent in service.
For more information about z/VM CSM, see Part 2 of z/VM 7.2 Service Guide, GC24-6325.
When a system is participating in z/VM CSM, a dedicated FTP server is set up specifically for
transporting service levels and the communication between principal and managed systems.
A new command, SERVMGR, is used to manage z/VM CSM. SERVMGR uses VMSES/E
commands to apply service and local modifications, build serviced content, and drive the
transport of z/VM CSM packaged service to managed systems.
z/VM CSM uses Shared File System (SFS) directories to manage service levels for the
managed systems. Management of these directories is handled by SERVMGR.
Note: After a system is added to a z/VM CSM management group, all the SERVICE
commands (except SERVICE ... STATUS) are blocked on that system. Only z/VM CSM
commands can be used to apply service to that system.
4. The built service level is packaged and transported to the managed system or systems by
using the dedicated FTP server on each system. Up to 54 managed systems are
supported. The z/VM CSM service package is made up of separate SERVLINK files for
each z/VM component being serviced.
5. z/VM CSM commands are used to query each managed system for its service processing
state (pending, received, in production, or error).
In addition to the system requirements, some configuration requirements must be met before
z/VM CSM is used. For more information about these requirements, see “Overall system
configuration changes” in Chapter 8 of z/VM 7.2 Service Guide, GC24-6325. They include
changes to the TCP/IP configuration to support the CSMSERVE FTP server, and ensure that the
management user IDs have suitable privilege classes and file pool authority to operate
correctly.
Administrator authority
The MAINTCSM and CSMSERVE user IDs must be configured as permanent administrators
of the VMPSFS file pool. We completed this configuration by adding the IDs to the ADMIN
statement in the DMSPARMS file on the VMSERVP 191 minidisk:
ADMIN CSMSERVE MAINTCSM
The line can be added after the existing ADMIN lines in the file.
Note: For more information about working with file pool servers, see z/VM Version 7
Release 2 CMS File Pool Planning, Administration, and Operation, SC24-6261.
The amount of space that is needed depends on the number of different service levels to be
maintained for distribution by using z/VM CSM. For our example system, we added two 3390
Model 9 disks to the file pool server by completing the following steps:
1. We obtained two new DASD from available free disk space.
2. The new DASD were formatted and labeled (see “Adding page volumes and perm (user)
volumes”, starting from “Formatting DASD for minidisks” on page 191). We labeled the
DASD VMFCS1 and VMFCS2.
3. We defined the DASD to DirMaint by modifying EXTENT CONTROL (see “Customizing the
EXTENT CONTROL file” on page 313).
4. We added the entire space (less cylinder 0) of the new volumes as new minidisks to
VMSERVP. We defined the space as minidisks 312 and 313, by using the same
parameters as the existing file pool disks (link mode WR, read/write passwords specified).
Note: We found that the DIRMAINT operation was affected by directory update
operations on the VMSERVP ID. At first, we used the DIRM AMDISK command to add the
first of the two minidisks to VMSERVP, but DirMaint became unresponsive after that
and we had to recycle the DIRMAINT SVM to add the second minidisk.
5. By using the FILEPOOL MINIDISK VMSERVP command, we added the disks individually to the
running file pool. The output of this command for the first disk is shown in Example 9-1.
After the disk was added, we saw a message that indicated that the DIRMAINT SVM was
logged off the system. We left DIRMAINT logged off while we added the second disk in the
same way. After it was added successfully, we checked the storage group by using QUERY
FILEPOOL, as shown in Example 9-2.
The objective of the use of online file pool operation commands was to eliminate disruption to
file pool users. Because the file pool had to be shut down for the DMSPARMS file update, and the
file pool change appeared to affect DirMaint, this process was not successful.
An alternative process for adding file pool space, which requires the file pool to be shut down,
is described in Chapter 9, “Adding Minidisks in Dedicated Maintenance Mode” of z/VM: CMS
File Pool Planning, Administration, and Operation.
CSMSERVE CONFIG
The configuration file for the VMCSM FTP server is supplied as a sample, which must be
copied. The sample is CSMSERVE SCONFIG, on TCPMAINT 591, and it must be copied to
CSMSERVE CONFIG on TCPMAINT 198. If needed, modify CSMSERVE CONFIG to include
parameters that are required for your site (such as encryption).
If changes are made to CSMSERVE CONFIG, it is recommended not to change the KEEPALIVE
and INACTIVE statements. These settings were made to support the operation of VMCSM,
and are changed only after consulting with IBM Support Center.
For each software release that is maintained by VMCSM, this file must be copied to the CSM
root directory for that release.
Example 9-5 shows the listing of the MAINT720 500 disk after we uploaded the maintenance
envelope (the file had a long name when downloaded from IBM, but we uploaded it as
VMCSM TERSE).
We used the DETERSE command to extract the file (in the FILELIST view next to VMCSM TERSE,
we entered DETERSE / = SERVLINK =). When we refreshed the FILELIST view, we saw the
correctly extracted file, as shown in Example 9-6.
Then, we used the SERVICE command to install the PTF. Example 9-7 shows the result of this
SERVICE run (only the last few messages are shown).
Files were copied to the CMS and VMSES/E disks, and then, the CMS Named Saved
Systems were saved.
VMCSM is now initialized. A new VMPSFS:CSM720 directory was created that contains the CSM
structures for z/VM 7.2.
The customized FTP DATA file now must be copied from the MAINTCSM 191 disk to the newly
created VMPSFS:CSM720 directory. Because SERVMGR accessed VMPSFS:CSM720 as filemode
A, and MAINTCSM 191 is now accessed as filemode Z, the following command to copy the
file is used:
COPYF FTP DATA Z = = A (OLDD
We used the SERVMGR SRVLVL ADD command to create a service level, as shown in
Example 9-11.
The SERVMGR command that we ran selected the service level RSU1 in version 720 and
performed the SERVICE command against that service level by using the parameters ALL
7201RSU1.
The messages up to and including VMFSRV2760I are mostly the same as was observed during
installation when the system performed SERVICE ALL 7201RSU1. More messages after that
point are issued by VMCSM to indicate the actions on our service level.
The VMFVIEW command is available for viewing VMCSM messages in the same way as other
VMSES/E messages can be viewed. After the SERVMGR SRVLVL SERVICE command was used,
we ran VMFVIEW CSM to show the rest of the messages (we pressed PF2 to show all
messages. The output is shown in Example 9-13.
At the bottom of Example 9-13 on page 287, you can see the VMFUTL2205I messages that
show the directory assignments for that stage of the service process. You also can see all of
the standard VMSES/E aliases, such as APPLY, DELTA, LOCALMOD, and BUILDx. This
result shows part of how VMCSM works: it creates an “image” of what an installed system
looks like within directories in VMPSFS, and then applies service to that image in the same
way that service is applied to a live system.
However, before the service level can be used for a system, we also must include the VMCSM
PTF to the service level by using following command:
servmgr srvlvl service 720 rsu1 all vmcsm
We tried the SERVMGR SRVLVL SERVICE 720 RSU1 RESTART command, but SERVMGR passed
the incorrect parameters to SERVICE. Checking the HELP for SERVMGR, we found that
RESTART is an option for the command. We retried with SERVMGR SRVLVL SERVICE 720 RSU1
( RESTART and were successful, as shown in Example 9-15.
Now our service level was successfully created, and we can query information about the
service level. Example 9-16 shows the results of the SERVMGR SRVLVL QUERY command on our
system.
We also defined the CSMSERVE ID to be an administrator of the VMPSFS file pool. For our
first test, we made this definition temporarily by using the following command:
ENROLL ADMINISTRATOR CSMSERVE VMPSFS:
We used the SERVMGR SYSTEM ADD command to set up RDBKZVMC for VMCSM management,
as shown in Example 9-17. The command prompts for a user ID and password to use to
authenticate. A special ID of CSMWORK is defined in the base system for this purpose.
When we first tried this process, we discovered that one of our team used the MAINT720 ID
on the system that we wanted to manage by using VMCSM. If this issue occurs, it is important
to not just log off from the ID at the managed system. If service actions were underway on the
to-be-managed system, those actions might bring the system to a state that is inconsistent
with the maintenance to be managed by using VMCSM.
Note: We found another configuration requirement that at the time of this writing was not
documented in z/VM 7.2 Service Guide, GC24-6325. We found that the SERVMGR SYSTEM
ADD command timed out without completing because the MAINT720 ID was attempting to
issue a command to the CSMSERVE ID by using SMSG and it was not authorized to do so.
On a z/VM 7.2 fresh installation, we saw that MAINT720 was listed in the OBEY section of
PROFILE TCPIP. However, because our candidate system was upgraded from z/VM 7.1, \
no OBEY entry existed for MAINT720.
After MAINT720 was added to the OBEY list in PROFILE TCPIP, the SERVMGR SYSTEM ADD
command completed as expected.
Example 9-18 shows the result of our successful SERVMGR SYSTEM ADD command.
Reviewing the console of the candidate system, we saw that the MAINT720 user ID was
logged on by CSMSERVE and logged off shortly afterward. During that time, VMCSM
commands were run on the candidate system to create VMCSM structures and control files.
After the command completed, we logged on to MAINT720 on the managed system and
reviewed the console files in the reader to observe the VMCSM activity.
The output of the SERVMGR SYStem ADD command in Example 9-18 shows that the command
ended with a warning. SERVMGR reminds us that the RSU1 service level that we assigned the
system to was delivered to the system.
After RDBKZVMC was added as a managed system, we issued some query commands to
check the status. First, we used SERVMGR SYSTEM QUERY to check the status of the systems.
As we saw with the RC=4 when we added RDBKZVMC to VMCSM management, the display
of the RSU1 service level reminds us that the service level was delivered to the applicable
system RDBKZVMC.
The SERVMGR SRVLVL PACKAGE command is used to create the package for a service level. We
created a package for our RSU1 service level, as shown in Example 9-20.
We saw that ENVELOPE and MANIFEST files were created for the components in the package,
and these files were combined with the service content to create SERVLINK files. We were
then ready to send the package to our managed system, as described next.
Note: As we saw earlier when we added the managed system to VMCSM, the MAINT720
ID is logged on by the CSMSERVE user to perform commands. The MAINT720 ID must
not be logged on before running service from the principal system. Also, do not attempt to
log on to MAINT720 while VMCSM actions are performed.
Example 9-21 shows the result of our SERVMGR command to send the RSU1 package to
RDBKZVMC.
Reviewing the console of our managed system, we saw that VMCSM logged on the
MAINT720 ID several times during the SEND action.
If a problem occurs during the package send action, messages are recorded in the $CSMCMG
$MSGLOG file. After any problems are rectified, the SERVMGR SERVLVL SEND command is run
again with the (RESTART option.
We checked the status of the service from VMCSM on our principal system and from
MAINT720 on the managed system. First, we ran the SERVMGR SYSTEM QUERY command
against RDBKZVMC to check the VMCSM system status table, as shown in Example 9-23
(we ran the command twice, the second time with the DETAILS option to see what other
information was now present).
We saw that the Current Service Level for the managed system is now RSU1. We also tried a
display of the service level by using SERVMGR SRVLVL QUERY. The result of this command is
shown in Example 9-24.
Example 9-25 shows the result of running a SERVICE ALL STATUS command by using
MAINT720 on the managed system.
We can see the service and production level designations that correspond to the levels in our
service package, and matches the DETAIL information that we saw in the SERVMGR SYSTEM
QUERY (DETAIL command output that is shown in Example 9-23 on page 298.
© Copyright IBM Corp. 2015, 2016, 2021. All rights reserved. 303
304 Virtualization Cookbook: Vol 1: IBM z/VM 7.2
10
If you want to turn on SMAPI, which is required by specific systems management solutions
(such as IBM Infrastructure Cloud Center [ICIC] or IBM Wave), you must also have a
Directory Maintenance product that was configured as a prerequisite and a RACF connector.
DirMaint is described here, but other vendor products are available, such as CA VM:Secure.
© Copyright IBM Corp. 2015, 2016, 2021. All rights reserved. 305
10.1 IBM Directory Maintenance Facility
Note: IBM Directory Maintenance Facility (DirMaint) is an optional, priced feature. Before
you begin this section, verify that you purchased a license for IBM DirMaint. If you did not,
contact your IBM marketing representative for information about how to obtain a license.
Previous versions of this book described manually managing the user directory. For this
version, the authors chose not to cover the manual method for the following reasons:
Manually administering the user directory is needlessly complex, cumbersome,
time-consuming, and error prone. Your time is better spent boarding new workloads
quickly and optimizing performance versus counting disk cylinders manually and
performing data entry.
The user directory is a fundamentally critical part of z/VM; a corrupted or invalid online
user directory can be disastrous. For example, if you inadvertently overlap minidisk
definitions, it can cause serious and permanent data loss.
If your z/VM system has more than a few virtual machines or belongs to a z/VM SSI
cluster, it is illogical to attempt manual user management when automation exists.
For z/VM SSI cluster works correctly, and relocation behaves as designed, the user
directories on all members of an SSI cluster must always remain synchronized.
However, managing many guest operating systems (virtual images) requires a thorough
understanding of VM concepts and the knowledge and skill to run a complex set of
commands.
When you activate DirMaint, you give control over the z/VM user directory to the DIRMAINT
service virtual machine. After that, the source USER DIRECT file on the PMAINT virtual
machine’s 2CC disk is no longer valid and you must not use the DIRECTXA command. DirMaint
maintains and updates the online user directory. You interact with the DIRMAINT service
machine through commands to change the user directory.
For more information, see Program Directory for Directory Maintenance Facility for z/VM
function level 720 Program Number 5741-A09 for Use with z/VM version 7 release 2,
GI13-4362.
DirMaint is included in a disabled state with z/VM. To enable it, complete the following steps:
1. Log on as MAINT720 on member 1 of the z/VM SSI cluster.
Important: You must use the MAINT720 ID to perform these steps. Do not use MAINT or
any other ID.
2. Verify that the MAINT 51D minidisk is accessed as file mode D and is read/write (R/W):
QUERY ACCESSED
Mode Stat Files Vdev Label/Directory
A R/W 71 191 MNT191
B R/W 134 5E6 MNT5E6
C R/O 19 2CC MNT2CC
D R/W 299 51D MNT51D
E R/W 12 551 PMT551
S R/O 698 190 MNT190
Y/S R/O 1123 19E MNT19E
If MNT51D is not shown at all, or is Read Only (R/O), use VMLINK to correct the situation
and then, reissue the QUERY ACCESSED command to verify results.
3. Enable DirMaint through the VMSES/E SERVICE command. Ensure that the message
VMFSRV2760I is displayed:
===> service dirm enable
... // several windows full of text will quickly go by
VMFSRV1233I The following products have been serviced.
VMFSRV1233I DIRM
VMFSRV2760I SERVICE processing completed successfully.
4. Put DirMaint into production with the PUT2PROD command. Ensure that the message
VMFP2P2760I is displayed:
===> put2prod dirm
VMFP2P2760I PUT2PROD processing started
several messages ...
VMFP2P1233I The following products have been put into production. Recycle the
appropriate servers.
VMFP2P1233I DIRM
several messages ...
VMFP2P2760I PUT2PROD processing completed successfully (RC=0).
5. Optional: Review the changed SYSTEM CONFIG file. The SERVICE and PUT2PROD steps
modified data that is near the end of your SYSTEM CONFIG file, regarding the enablement of
DirMaint.
If you want to see the changes, link to the PMAINT CF0 disk and use the type command to
output the contents of the SYSTEM CONFIG file to observe these lines at the end of the file:
===> vmlink pmaint cf0 (filelist
DMSVML2060I PMAINT CF0 linked as 0120 file mode Z
===> xedit system config z
===> bot
===> u10
PRODUCT PRODID 7VMDIR20 STATE ENABLED DESCRIPTION '09/23/20.12:18:34.MAINT720
Install/service DirMaint using minidisk'
Tip: You can also perform this step in only one command instead of three commands.
Note that the parenthesis part of the command and must be included:
===> vmlink pmaint cf0 (invoke type system config z
6. Log off from MAINT720 on z/VM system. If you are in z/VM SSI cluster, you need to log on
member1.
7. Log on to the next member in the SSI cluster as MAINT720 and put DirMaint into production
on that node by issuing the PUT2PROD DIRM command. Repeat this action for each SSI
member in the cluster.
To take the first major step toward correctly securing your new z/VM system, complete the
following steps to change the default passwords for Service Virtual Machines (SVMs):
1. Log on as MAINT720 on the first member of the SSI cluster.
2. Verify that the MAINT 2CC minidisk is accessed as file mode C and is read/write (R/W):
===> query accessed
Mode Stat Files Vdev Label/Directory
A R/W 71 191 MNT191
B R/W 134 5E6 MNT5E6
C R/W 19 2CC MNT2CC
D R/W 299 51D MNT51D
E R/W 12 551 PMT551
S R/O 698 190 MNT190
Y/S R/O 1123 19E MNT19E
If you find that MNT2CC is not shown, or is Read Only (R/O), use VMLINK to correct the
situation and then reissue QUERY ACCESSED to verify the results:
===> VMLINK MAINT 2CC < 2CC C MR >
DMSVML2060I MAINT 2CC linked MR as 02CC file mode C
3. Open the z/VM user directory for editing:
===> xedit user direct C
4. Change the passwords of 7VMDIR20, DIRMAINT, DIRMSAT, DIRMSATx (where x is 2, 3, or 4,
depending on the number of SSI member nodes), DATAMOVE, and DATAMOVx from their
current value (typically AUTOONLY) to an eight character value of your choice. These IDs are
powerful, so choose non-trivial values.
===> /user 7vmdir20
USER 7vmdir20 <NEWPASWD> 16M 64M EG
===> top
===> /user dirmaint
...
5. Create the primary DirMaint local customization parameters file, CONFIGAA DATADVH L. The
L disk needs to be DIRMAINT 41F, which is the preproduction disk. Add the lines that are
shown in Example 10-1. Press Enter after each line. After you add all of the lines, press
Enter twice to end INPUT mode, and type FILE to save:
===> xedit CONFIGAA datadvh L
===> input
DISK_CLEANUP= YES
PW_INTERVAL_FOR_SET= 90
ONLINE= IMMED
RUNMODE= OPERATIONAL
RACF_RDEFINE_VMBATCH_DEFAULTS=
MESSAGE_LOGGING_FILETYPE= TRANSLOG
MESSAGE_LOG_RETENTION_PERIOD= 3 (MONTHS)
===> file
– DISK_CLEANUP= YES ensures privacy by cleaning up residual data, but also means that
changes will take longer while DirMaint reformats any abandoned minidisk extents.
– PW_INTERVAL_FOR_SET= 90 sets a 90-day password change interval. If you plan to use
an ESM, such as RACF, you need to omit this line entirely because the ESM will handle
this interval.
– ONLINE= IMMED line sets your changes to be made immediately.
– RUNMODE= OPERATIONAL indicates that directory changes need to be made. This run
mode can be set to TESTING and the changes will not be performed yet. If you use
testing mode, ensure that you remember to come back and change to operational
mode when your testing is complete.
– The RACF_RDEFINE_VMBATCH_DEFAULTS= line does not create a VMBATCH-specific
resource entry. Otherwise, DIRMAINT creates a VMBATCH resource for this user ID
with this line as a default. The VMBATCH generic resource class is configured in , “This
output shows that SMAPI is running, LNXADMIN is correctly authorized to call SMAPI,
and the Linux interface smaclient is working.” on page 340. If you are not installing
RACF, you can omit this line.
TIP: Some definitions are required for compliance reasons and it can vary upon your
security policies (for example, the log retention period and disk cleanup settings). You
might also consider other options, such as altering the output line length, as described
in 15.5, “System modifications for wide-screen terminals” on page 449
Create the AUTHFOR CONTROL file on the J disk (DIRMAINT 1DF). Add 8 lines to accommodate
the entries that are shown in Figure 10-2 for all IDs that are required to perform DirMaint
tasks.
===> xedit authfor control j
===> a 8
A command level of 140A allows the authorized user to enter commands by using DirMaint
Release 4 compatibility syntax. A command level of 150A allows the authorized user to enter
commands by using the DirMaint Release 5 full-function syntax. It is recommended to give
access to include records for both 140A and 150A command levels for each target
ID/authorized user pair. Entries that are added to this file do not need to necessarily exist in
the User Directory yet, so do not worry that undefined entries are being added.
If you are working with IBM ICIC (IBM Cloud Infrastructure Center) or IBM Wave (to
graphically manage your system), you can add the user IDs of ICIC, WAVE, and SMAPI.
Many of the DirMaint configuration files are now created. The next important file is the EXTENT
CONTROL file. which is discussed next.
Example 10-2 Example of a pipe to get the size information of each disk
pipe cp q da details 9432 94b2 9532 953e 95b2 9632 96b2 | locate /CYLS =/| cons
9432 CUTYPE = 2107-E8, DEVTYPE = 3390-0E, VOLSER = VMBCM1, CYLS = 10017
94B2 CUTYPE = 2107-E8, DEVTYPE = 3390-0E, VOLSER = VMBRL1, CYLS = 10017
9532 CUTYPE = 2107-E8, DEVTYPE = 3390-0E, VOLSER = VMBRL2, CYLS = 10017
953E CUTYPE = 2107-E8, DEVTYPE = 3390-0E, VOLSER = RS3CM1, CYLS = 10017
95B2 CUTYPE = 2107-E8, DEVTYPE = 3390-0E, VOLSER = VMBRES, CYLS = 10017
9632 CUTYPE = 2107-E8, DEVTYPE = 3390-0E, VOLSER = VMBS01, CYLS = 10017
96B2 CUTYPE = 2107-E8, DEVTYPE = 3390-0E, VOLSER = VMBP01, CYLS = 10017
Important: As you enter your Dev-Type values, you must use two digits for the Type.
The 3390 model 3 regions must be entered as 3390-03, 3390 model 9 regions must be
entered as 3390-09.
The EXTENT CONTROL file, which is read when DirMaint starts, is now configured.
Note: For more information about all DirMaint files, see Appendix H of z/VM Version 7
Release 2 Directory Maintenance Facility Tailoring and Administration Guide, SC24-6283.
3. If it is not accessed as shown in Example 10-4, access the user directory source file
(USER DIRECT) that is on PMAINT 2CC MDisk by using the VMLINK command. The read
password is the value that you set all passwords to, or if you did not change them, it is
READ:
===> vmlink pmaint 2CC <2CC C>
DMSVML2060I MAINT 2CC linked as 0120 file mode C
Hint: The VMLINK command links the MDisk with another MDisk address. You must
access it with the filemode (in our case, C). Therefore, you must issue filelist * * c
to access the content of this MDisk.
q disk
LABEL VDEV M STAT CYL TYPE BLKSZ FILES BLKS USED-(%) BLKS LEFT BLK TOTAL
MNT191 191 A R/W 200 3390 4096 22 90-01 35910 36000
MNT5E6 5E6 B R/W 20 3390 4096 140 1547-43 2053 3600
5. Copy the USER DIRECT file from MAINT 2CC (file mode C) to DIRMAINT 1DF (file mode Z R/W)
as the file USER INPUT, which causes the current user directory to be loaded into DirMaint
when it starts for the first time, as shown in Example 10-6.
filelist USER * *
MAINT720 FILELIST A0 V 169 Trunc=169 Size=3 Line=1 Col=1 Alt=0
Cmd Filename Filetype Fm Format Lrecl Records Blocks Date Time
USER INPUT Z1 F 80 3847 76 9/23/20 18:01:25
USER DISKMAP A1 F 100 327 8 9/15/20 20:22:21
USER DIRECT C1 F 80 3847 76 9/09/20 11:33:46
USER DISKMAP C1 F 100 327 8 9/08/20 17:56:46
Important: After performing this step, do not use the USER DIRECT file on PMAINT’s 2CC. To
remind you that you must not use the file, you might rename it to USER DIR_ORIG on the
same 2CC MDisk.
Note: Watch for errors. Look for the message that suggests that the DirMaint directory
is initialized by using the file USER INPUT, which was copied from USER DIRECT earlier.
3. Turn off the secondary user setting so MAINT will no longer see the DIRMAINT console
messages:
===> set secuser dirmaint off
DIRMAINT: HCPCFX6769I Your SECUSER terminated by MAINT.
HCPCFX6769I SECUSER of DIRMAINT terminated.
DirMaint is now running. It read the USER INPUT, CONFIGAAA DATADVH, AUTHFOR CONTROL, and
EXTENT CONTROL configuration files.
If you want, you can check the DIRMAINT and DIRMSAT# virtual service machines (VSMs)
across all member nodes by using the following commands:
and so on, if you have more z/VM lpars with DIRMSAT2 and DIRMSAT3.
Important: From this point forward, you must not attempt to directly (manually) edit any
copies of USER DIRECT nor attempt to use the DIRECTXA command. After a directory is
initialized, direct editing introduces checksum errors, possibly for every entry if default
serialization is allowed to occur.
Tip: You can enter rdrlist at the CMS ready prompt to view all of the files that are
currently spooled to the reader. By moving your cursor to any line and pressing PF11,
you can invoke PEEK for that file.
4. While you are still inside PEEK, when you are finished looking at the review file, issue the
command DISCARD to exit out of PEEK and then remove the file from the reader:
===> DISCARD
File MAINT DIRECT has been discarded
5. Query DirMaint for the listing of DASD groups that were defined in EXTENT CONTROL:
===> dirmaint DASD QUERY GROUP *
6. Query the current STORAGE values that were set for DIRMAINT:
===> dirmaint for dirmaint storage ?
...
DVHSTO3207I DIRMAINT currently has a maxstorage value of 256M and a
DVHSTO3207I default storage value of 128M.
DVHREQ2289I Your STORAGE request for DIRMAINT at * has completed; with RC = 0.
7. Test for user and device locks, then test the status of the DATAMOVE worker machines:
===> dirmaint status locked both
DVHXMT1191I Your STATUS request has been sent for processing to DIRMAINT ...
Ready;
DVHREQ2288I Your STATUS request for MAINT at * has been accepted.
DVHSTT3416I There are no User locks currently active.
DVHSTT3416I There are no device locks currently active.
DVHREQ2289I Your STATUS request for MAINT at * has completed; with RC = 0.
DirMaint itself provides a level of security through its command set authorizations. These can
be tailored to suit the using installation's needs. However, for critical data files, extra security
measures must be implemented. This process can be done by using an External Security
Manager (ESM), such as Resource Access Control Facility (RACF).
An ESM controls who can have access, and what kind of access they can have to specific
data files and disks. If an ESM is implemented at your installation, DirMaint must be given the
appropriate access to the disks and files you want it to manage.
You need RACF or another ESM installed before implementing what is described in this
chapter. To enable and configure RACF, see 6.7, “Enabling and configuring RACF” on
page 155.
If RACF is installed on your system as the ESM, several entries in the CONFIG DATADVH file
set defaults for the DirMaint RACF connector support, which provides automatic
communication with RACF.
Note: These recommendations are optional and whether you follow them depends on the
level of security that your installation requires.
Note: To create a configuration file or update them on MDisk DIRMAINT 1DF, you must
have it as read/write and DIRMAINT is not up and running. To avoid this issue, work on
your MDisk A and create the files there. Then, send the file to DirMaint as described in this
section.
===> file
Your new configuration file was created successfully on DIRMAINT 1DF mdisk.
When DirMaint is up
Create the same DirMaint configuration file, CONFIGRC DATADVH A, on your MDisk A. Then,
send them to DIRMAINT. This process is done because the MDisk 1DF is accessed as
read/write by DirMaint and cannot be linked as read/write at the same time. Add the following
lines:
===> x configrc datadvh a
===> a 10
(include the same lines listed before)
===> file
Your new configuration file was created successfully on DIRMAINT 1DF MDisk.
This example shows DirMaint working with RACF when it is creating virtual machines.
Note: This session is optional. Following this session only if you need Systems
Management API (SMAPI).
SMAPI simplifies the task of managing many virtual images running under a single z/VM
LPAR. It is a standard, platform-independent client interface that reduces the amount of
required z/VM-specific programming skills.
The z/VM SMAPI is the access point for any external tool to manage the z/VM running on
IBMZ platform. It supports management of lifecycle and configuration of various platform
resources, such as Guest, CPU, memory, virtual switches, storage, and more.
Some IBM products use the SMAPI to perform various tasks on the z/VM system. Therefore,
it is necessary to make sure that SMAPI is configured and running before you configure any
cloud piece that interacts with z/VM. The exact configuration steps for SMAPI might differ
from the following section based on the version and release level of z/VM.
z/VM ships a set of servers that provide local system management APIs (see Figure 10-3).
These servers consist of request servers that accept local connections, receive the data, and
then call one of a set of worker servers to process the request. These servers are known
collectively as SMAPI. The worker servers can interact with the z/VM hypervisor (CP) or with
a directory manager. A directory manager is required for this environment.
Note: SMAPI is a method for management software to make calls to z/VM for various
operations. It is used by such products as IBM Wave and IBM Cloud Infrastructure Center,
and is part of the stack of APIs that provides OpenStack operations on z/VM.
SAMPI includes a basic set of interfaces that can be used to perform the following tasks:
Create virtual images in various operating environments:
– IBM z/VM
– IBM z/OS
– IBM z/VSE
Note: Other functions not listed here. For more information, see z/VM: z/VM 7.2 Systems
Management Application Programming Manual.
Enabling RACROUTE
Enable the SMAPI service machines VSMREQI6, VSMREQIN, VSMREQIU, VSMEVSRV, DTCSMAPI,
VSMWORK1, VSMWORK2, and VSMWORK3 to use RACROUTE services with the following commands:
===> RAC SETROPTS CLASSACT(FACILITY)
===> RAC RDEFINE FACILITY ICHCONN UACC(NONE)
ICH10006I RACLISTED PROFILES FOR FACILITY WILL NOT REFLECT THE ADDITION(S)
UNTIL
A SETROPTS REFRESH IS ISSUED.
===> RAC PERMIT ICHCONN CLASS(FACILITY) ID(VSMREQI6) ACCESS(UPDATE)
...
===> RAC PERMIT ICHCONN CLASS(FACILITY) ID(VSMREQIN) ACCESS(UPDATE)
...
===> RAC PERMIT ICHCONN CLASS(FACILITY) ID(VSMREQIU) ACCESS(UPDATE)
...
===> RAC PERMIT ICHCONN CLASS(FACILITY) ID(VSMEVSRV) ACCESS(UPDATE)
...
===> RAC PERMIT ICHCONN CLASS(FACILITY) ID(DTCSMAPI) ACCESS(UPDATE)
...
===> RAC PERMIT ICHCONN CLASS(FACILITY) ID(VSMWORK1) ACCESS(UPDATE)
...
===> RAC PERMIT ICHCONN CLASS(FACILITY) ID(VSMWORK2) ACCESS(UPDATE)
...
===> RAC PERMIT ICHCONN CLASS(FACILITY) ID(VSMWORK3) ACCESS(UPDATE)
...
===> RAC SETROPTS RACLIST(FACILITY)
SMAPIRAC EXEC
You can put all of the RACF definitions that are listed in Example 10-6 in an exec that is called
SMAPIRAC (as shown in Example 10-8) to run all RACF commands at once.
RACF can now allow SMAPI to do its job. It is recommended that you follow the instructions in
“Test SMAPI from Linux by using smaclient.” on page 333, and 10.5.10, “Testing SMAPI from
Linux by using smaclient” on page 339.
The SFS directories are defined on SFS file pools. The authorization and ownership for the
SFS directories are done by using enroll SFS commands. You can set AUDIT parameter on
DSMPARMS file for auditing purpose.
Note: For more information about managing and auditing the VMSYS or VMPSFS file
pools, see z/VM: CMS File Pool Planning, Administration, and Operation, SC24-6261.
All commands that are shown in this chapter regarding SFS ENROLL and GRANT are
performed automatically during z/VM installation. They are shown here for verification and
testing purposes.
Also, if you are adding a worker or request server, you can use the appropriate commands
from these lists as a guide for enrolling your new server in the correct file pool and then grant
SFS authorizations.
Note: You can run the steps that are shown in Example 10-9 or create an EXEC, as
described in “SMAPISFS EXEC” on page 331.
SMAPISFS EXEC
You can create an EXEC similar to the example that is shown in Example 10-11 to run
multiple commands to enroll multiple users or servers in a file pool and create an SFS type
file space.
Tip: A directory manager is required that can be IBM z/VM DirMaint or another vendor
product.
z/VM DirMaint 7.2 or later is required to support the new socket-based environment that
consists of one or more request servers and two or more worker servers. If using different
directory manager, some exit replacement is needed.
3. Add the SMAPI user IDs in the AUTHFOR CONTROL file. As DirMaint is up and running after
all steps are completed, you must request a copy of this file from DirMaing by running the
following command:
===> dirm send AUTHFOR CONTROL
This file is sent by DirMaint to your reader; then, run the following command to receive this
file to your 191 MDisk accessed as A:
===> Readerlist or RL
4. Position the cursor over the line of AUTHFOR CONTROL is and issue PF9 to receive it.
Then, issue filelist to xedit it and include the SMAPI user IDs that have authorization to
issue DirMaint commands: VSMGUARD, VSMWORK1, VSMWORK2, and VSMWORK3:
===> x authfor control a
===> a 10
ALL VSMGUARD * 140A ADGHOPS
ALL VSMGUARD * 150A ADGHOPS
ALL VSMWORK1 * 140A ADGHOPS
ALL VSMWORK1 * 150A ADGHOPS
ALL VSMWORK2 * 140A ADGHOPS
ALL VSMWORK2 * 150A ADGHOPS
ALL VSMWORK3 * 140A ADGHOPS
ALL VSMWORK3 * 150A ADGHOPS
===> file
5. Send the files you create to DirMaint and reload the file:
===> dirm file CONFIGSM DATADVH
===> dirm file AUTHFOR CONTROL
===> dirm rldd
DirMaint configuration files for SMAPI were created and activated. After DirMaint (or another
directory maintenance product) is configured, SMAPI can be enabled and configured. To set
up SMAPI, perform the following tasks:
1. Define SMAPI on RACF.
2. Test SMAPI from the Conversational Monitor System (CMS).
3. Test SMAPI from Linux by using smaclient.
Note: It is important to duplicate the line because lines must be 195 characters wide.
00001 DO.NOT.REMOVE
DO.NOT.REMOVE
00002 MAINT ALL
00003 VSMPROXY ALL
" 004 ZVMLXAPP ALL
6. Press Enter and the line is duplicated. Replace the user ID with LNXADMIN and save the
file:
00001 DO.NOT.REMOVE
DO.NOT.RE
MOVE
00002 MAINT ALL
00003 VSMPROXY ALL
00004 ZVMLXAPP ALL
00005 LNXADMIN ALL
This change allows the LNXADMIN virtual machine to invoke SMAPI calls.
Note: If you downloaded the execs from the FTP serve, you can use SSICMD as shown
here or use CP commands.
1. Query the virtual machines that are running by using the SSICMD EXEC and the QUERY NAMES
command to query all active virtual machines on all members or use the CP command Q N
AT ALL:
===> ssicmd q n
RDBKZVMH:
DIRMSAT2 - SSI
FTPSERVE - DSC , LNXADMIN - DSC , TCPIP - DSC , DIRMAINT - DSC
DTCVSW2 - DSC , DTCVSW1 - DSC , VMSERVP - DSC , VMSERVR - DSC
VMSERVU - DSC , VMSERVS - DSC , OPERSYMP - DSC , DISKACNT - DSC
EREP - DSC , OPERATOR - DSC , MAINT -L0004
VSM - TCPIP
RDBKZVMG:
VMSERVP - SSI , DIRMAINT - SSI
FTPSERVE - DSC , LNXADMIN - DSC , TCPIP - DSC , DIRMSAT2 - DSC
DTCVSW2 - DSC , DTCVSW1 - DSC , VMSERVR - DSC , VMSERVU - DSC
VMSERVS - DSC , OPERSYMP - DSC , DISKACNT - DSC , EREP - DSC
OPERATOR - DSC
VSM - TCPIP
===> q n at all
RDBKZVMH : TCPIP - DSC , DTCVSW4 - DSC , DTCVSW3 - DSC , DTCVSW2 - DSC
RDBKZVMH : DTCVSW1 - DSC , VMSERVR - DSC , VMSERVU - DSC , VMSERVS - DSC
RDBKZVMH : OPERSYMP - DSC , DISKACNT - DSC , EREP - DSC , OPERATOR - DSC
2. If you are sure that you are in a position to shut down, shut down and re-IPL the SSI
cluster:
===> ssicmd shutdown reipl
or
===> cp shutdown reipl
SYSTEM SHUTDOWN STARTED
HCPSHU960I System shutdown may be delayed for up to 630 seconds
VMSERVP : DMS5BC3108I Shutdown Signal received. STOP processing started
VMSERVU : DMS5BC3108I Shutdown Signal received. STOP processing started
...
3. When the SSI cluster comes back up, log on as MAINT to the first SSI member.
4. Query the virtual machines by running with the SSICMD EXEC as a reference (the SMAPI
virtual machines are shown in bold):
===> ssicmd q n
or
===> cp q n at all
RDBKZVMH:
DIRMSAT2 - SSI
VSMWORK2 - DSC , VSMWORK1 - DSC , FTPSERVE - DSC , VSMGUARD - DSC
LNXADMIN - DSC , TCPIP - DSC , DIRMAINT - DSC , DTCVSW2 - DSC
DTCVSW1 - DSC , VMSERVP - DSC , VMSERVR - DSC , VMSERVU - DSC
VMSERVS - DSC , OPERSYMP - DSC , DISKACNT - DSC , EREP - DSC
OPERATOR - DSC , LOHCOST - DSC , VSMEVSRV - DSC , VSMPROXY - DSC
VSMREQIU - DSC , VSMREQI6 - DSC , VSMREQIN - DSC , DTCSMAPI - DSC
PERSMAPI - DSC , VSMWORK3 - DSC , MAINT -L0004
VSM - TCPIP
RDBKZVMG:
DIRMAINT - SSI , VMSERVP - SSI
LOHCOST - DSC , VSMEVSRV - DSC , VSMPROXY - DSC , VSMREQIU - DSC
VSMREQI6 - DSC , VSMREQIN - DSC , DTCSMAPI - DSC , PERSMAPI - DSC
VSMWORK3 - DSC , VSMWORK2 - DSC , VSMWORK1 - DSC , FTPSERVE - DSC
VSMGUARD - DSC , LNXADMIN - DSC , TCPIP - DSC , DIRMSAT2 - DSC
DTCVSW2 - DSC , DTCVSW1 - DSC , VMSERVR - DSC , VMSERVU - DSC
VMSERVS - DSC , OPERSYMP - DSC , DISKACNT - DSC , EREP - DSC
OPERATOR - DSC
VSM - TCPIP
If the REXX EXEC CALLSM1 was not copied, you need to copy it to complete this section.
calling send()
receiving requestId, buffLen = 4
returned from recv() rc,retvalue =0,4
Request id:= 3756453462
Request id: 3756453462 Return code:0 Reason code:0 possible outdata len:2792
<COMMAND_DEFINE_CPU=>
<COMMAND_SET_CPUAFFINITY=>
<COMMAND_SET_SHARE=>
<COMMAND_SET_VCONFIG=>
<CONSOLE=VDEV=0009 DEVTYPE=3215 CLASS=T>
...
<VMRELOCATE=>
This output shows that SMAPI is running, LNXADMIN is correctly authorized to call SMAPI, and
the Linux interface smaclient is working.
Tip: The USER DIRECT file is a CMS file that contains the configuration values and the
definition settings for each virtual machine (known as z/VM user ID). It acts as a catalog of
user IDs that can log on to z/VM, including Linux servers.
A virtual machine definition is a grouping of directory statements that begin with the term
USER or IDENTITY as shown in Example 10-13. For more information, a description of
virtual machine types, and the USER and IDENTITY statements, see Chapter 1 of z/VM
Getting Started with Linux on System z, SC24-6194.
A HELP menu is available in z/VM to clarify any commands that you want to issue. This
function shows different levels of information that is useful and can help the z/VM
administrator to better understand the commands.
To see the DirMaint commands, position the cursor over an option and press Enter.
For more information, see 11.4, “Common DirMaint tasks” on page 362.
© Copyright IBM Corp. 2015, 2016, 2021. All rights reserved. 345
11.1 Planning a Linux virtual machine
Every server needs the following minimal set of items to operate:
CPU
Memory (the mainframe term is storage; the Linux term is typically RAM)
Disk
Network
z/VM has several different options to provide this set of items, which is typically a mix of
physical and virtual hardware. Your selections influence the cost and behavior of the server
that is generated. The following sections show the differences among the available hardware
types and cover procedures to implement or configure each type. The Linux virtual machine
definitions are out for scope of this chapter.
All CKD disks are identified by a 4-digit hexadecimal number within a logical partition (LPAR).
Table 11-1 on page 347 shows the standard 3390 DASD models.
Note: The Model-27 DASD and the Model-54 DASD are not multiples of Model-9. The
actual Model-54 size is debated, but it helps to know that Model-54 came with DS8000.
Model-54 is configured with DS8000 as 3390-A. Model-27 is considered half of the size of
a Model-54.
Although use cases exist for directly dedicating DASD to an individual virtual machine, the
preferred method is to add a full-pack minidisk to the virtual machine instead. To attach a
DASD to a z/VM virtual machine directly, use the DIRMAINT command, as shown in
Example 11-1. DirMaint automatically places the entry at the correct location in the directory
entry for you.
Example 11-1 Dedicate DASD number 1570 with virtual address 0705
===> dirmaint foruser linux2 dedicate 0705 1570
DVHXMT1191I Your DEDICATE request has been sent for processing to
DVHXMT1191I DIRMAINT at ITSOZVM1.
Ready; T=0.01/0.01 13:03:47
DVHREQ2288I Your DEDICATE request for LINUX2 at * has been accepted.
DVHBIU3450I The source for directory entry LINUX2 has been updated.
DVHBIU3424I The next ONLINE will take place immediately.
DVHDRC3451I The next ONLINE will take place via delta object directory.
DVHRLA3891I Your DSATCTL request has been relayed for processing.
DVHBIU3428I Changes made to directory entry LINUX2 have been placed online.
DVHREQ2289I Your DEDICATE request for LINUX2 at * has completed; with RC = 0.
To manually dedicate the same DASD without requiring the virtual machine to log on again,
use the following command:
===> ATTACH 1570 TO LINUX2 AS 0705
The ATTACH command is only temporary. The directory change by using DirMaint is still
necessary to attach the dedicated DASD to the virtual machine persistently.
If the DASD subsystem supports the creation of multiple aliases to the same device
(HyperPAV), it is possible to use a real volume’s alias devices to run more than one virtual
machine I/O at a time on the volume. This capability helps to prevent I/O operations from
blocking one another, which can result in virtual machine I/O operations with reduced
response time, which in turn allows the workload on virtual machines to run more quickly. For
more information about HyperPAV, see 11.2.5, “HyperPAV” on page 358.
Figure 11-1 Connection overview between disk storage subsystem and virtual machines
Each adapter can provide many disks, which are also called logical unit numbers (LUNs).
The exact number depends on the storage system that is used.
When you use N_Port ID Virtualization (NPIV) as recommended in this book, the Fibre
Channel switches must support the NPIV protocol.
Fibre Channel disks can be created with enormous volume sizes, which are exponentially
larger than any single disk that is available today.
Because Fibre Channel uses Small Computer System Interface (SCSI) commands over
fiber-optic cable, it also uses SCSI command queuing, which results in multiple
commands that are processed at the same time.
Fibre Channel storage systems are available from many vendors in many price ranges.
Because the Linux OS that is running inside of the virtual machine must manage the
adapters, it also must manage availability. Configuring dual adapters with multipathing by
using dual fabrics is considered mandatory by the authors of this book.
The setup of the disks in the disk storage subsystem and the zoning of the adapters
involve many worldwide port numbers (WWPNs). Meticulous attention to detail is critical to
a successful outcome and special care must be taken.
For IBM Z, any supported FCP adapter, such as FICON Express or FICON Express2, can
be used for this purpose.
To create an EQID dynamically, run the SET RDEVICE command on each single system image
(SSI) LPAR where Linux needs to relocate. Complete the following steps:
1. Log on as MAINT.
2. Vary devices offline:
===> vary off b801-b802 ba01-ba02
BA01 varied offline
BA02 varied offline
BB01 varied offline
BB02 varied offline
4 device(s) specified; 4 device(s) successfully varied offline
3. Use SET RDEVICE to create EQIDs dynamically:
===> set rdev b801 eqid fcpid01 type fcp
HCPZRP6722I Characteristics of device B801 were set as requested.
1 RDEV(s) specified; 1 RDEV(s) changed; 0 RDEV(s) created
===> set rdev b901 eqid fcpid01 type fcp
HCPZRP6722I Characteristics of device B901 were set as requested.
1 RDEV(s) specified; 1 RDEV(s) changed; 0 RDEV(s) created
===> set rdev b802 eqid fcpid02 type fcp
HCPZRP6722I Characteristics of device B802 were set as requested.
1 RDEV(s) specified; 1 RDEV(s) changed; 0 RDEV(s) created
===> set rdev b902 eqid fcpid02 type fcp
HCPZRP6722I Characteristics of device B902 were set as requested.
1 RDEV(s) specified; 1 RDEV(s) changed; 0 RDEV(s) created
4. Check the result with the QUERY EQID command:
===> query eqid fcpid01
Devices for FCPID01:
B801 B901
===> query eqid fcpid02
Devices for FCPID02:
B802 B902
5. Vary the devices online with the VARY ON command:
===> vary on b801-b802 b901-b902
B801 varied online
B802 varied online
B901 varied online
B902 varied online
4 device(s) specified; 4 device(s) successfully varied online
6. Repeat these steps on the other nodes of the SSI.
Fibre Channel adapters must always be dedicated as pairs that are connected to two fabrics.
To dedicate the devices B802 and B902 to virtual addresses FC00 and FD00, use the DirMaint
DEDICATE command as shown in Example 11-2 on page 351.
That way, the mapping of the real device that is mapped to FC00 and FD00 in Linux is
controlled by z/VM. All of the Linux virtual machines see the virtual adapters FC00 and FD00
only, and they are easier to manage.
To manually dedicate that same pair of FCPs without requiring the virtual machine to log on
again, use the following commands:
===> ATTACH B802 TO LINUX3 AS FC00
===> ATTACH B902 TO LINUX3 AS FD00
As a convention, always keep the range of B8xx dedicated as FC00, and B9xx as FD00,
which simplifies the management of the virtual machines.
After the devices are attached, you can check the WWPN of the adapter with the command:
===> QUERY B800 B900
These WWPNs (together with the WWPN of the adapters on the storage system) must be
configured in their own Fibre Channel zone on the Fibre Channel switch.
To perform the online configuration without restarting z/VM, complete the following steps:
1. Create a small REXX script that enables the EDEV:
===> XEDIT SETEDEV EXEC A
2. Insert the lines that are shown in Example 11-4 into the newly created SETEDEV EXEC A
file.
6. Repeat all of the previous steps on all of the other nodes of the SSI.
7. Check the paths for the EDEV with the command:
===> QUERY EDEV 3000 DETAILS
The output of QUERY EDEV 3000 DETAILS looks like output that is shown in Example 11-6.
During the re-IPL of z/VM, many messages scroll by, including that the original EQID is
replaced by an automatic value. This message is expected. It shows that the devices were
detected correctly.
All of the configured EDEVs are now ready to use. To use them, handle them as rdev that is
available on this z/VM LPAR. The commands to DEDICATE a disk are identical to the
commands of configuring CKD DASD.
For more information and download instructions, see this web page.
11.2.4 Minidisks
In every z/VM system, minidisks are a widely used method to split full DASD disks into
smaller volumes, which are also called minidisks. This method can be used with both real
CKD DASDs and EDEVs.
Minidisks characteristics
In addition to the smaller size, consider the following important information about minidisks:
Minidisks can be shared between several z/VM virtual machines inside the same z/VM.
They are widely used to provide small disks to each Linux virtual machine on the system,
which is preferable when every virtual machine must have its own read/write CMS disk.
DirMaint provides the means to reasonably organize all of the necessary minidisks.
Minidisks can be used to provide virtual HYPERPAV alias devices that are distributed over
the available HYPERPAV alias devices. Therefore, more HYPERPAV alias devices can be
set up than are physically configured in the environment.
When you use HYPERPAV, only full-pack minidisks, including cylinder 0, can be used. To
prevent abuse, you can attach the real DASD with the DEVNO statement at the MDISK
definition instead of using a volume ID (volid). To further improve system security with this
specific type of minidisks, do not enable minidisks for users in SYSTEM CONFIG. Enable
minidisks for users only in PROFILE EXEC of AUTOLOG1.
z/VM provides the means to enable caching on minidisks.
If no directory maintenance program, such as DirMaint, is used, be careful to not overlap
different minidisks.
To create a list of all available space within the different minidisk regions, run the following
command:
When you follow the basic label syntax that was introduced, you can see the volumes that are
planned for a specific purpose, even in the resulting report. The report is sent to the reader.
The procedure to receive the files was explained earlier in this chapter.
Multiple “holes” are within single volumes. An entry for each of these holes is in the report.
To add the volume VV1222 as a full-pack minidisk to the user LNXADMIN on node 2 of the
SSI, the volume must be added to the sub-configuration (subconfig) of that user. In our case,
we add it with the virtual device number 201:
===> dirm for LNXADM-2 AMDisk 201 3390 AUTOV 3338 VV1222 MR
This command adds a full-pack minidisk that uses an entire Mod 9 to LINUX3.
11.2.5 HyperPAV
HyperPAV is not a disk device. It is a special device that allows CKD DASD and CKD
minidisks to run more than one I/O operation at a time. For disks that are based on FCP, this
function is not useful because FCP disks use SCSI command queuing instead.
HyperPAV characteristics
HyperPAV in z/VM for Linux virtual machine can be used in several ways:
HyperPAV with dedicated DASD
The Linux system is responsible for managing and serializing I/O requests across the
subchannels.
HyperPAV with minidisks
The Linux system is not aware of HyperPAV. The Linux subsystem sees the minidisk as a
regular DASD and Linux can send only one I/O request at a time to the device. HyperPAV
is beneficial only when several minidisks are defined on the same real device or when
several virtual machines access the same minidisk at the same time. All of those I/O
requests come to z/VM, which handles them and uses HyperPAV aliases, as needed.
HyperPAV minidisks without operating system exploitation
A non-exploiting operating system in a virtual machine is either not configured to use
HyperPAV or it cannot use HyperPAV. In this case, z/VM can use HyperPAV on behalf of a
non-exploiting virtual machine when several virtual machines share the full-pack minidisk
by using multiple LINKs.
HyperPAV minidisks with operating system exploitation
An exploiting operating system in a virtual machine can control HyperPAV features. This
operating system understands how to control and use virtual HyperPAV aliases. Base
devices must be defined as full-pack minidisks to the virtual machine. Virtual alias devices
are then defined by using the DEFINE HYPERPAVALIAS command.
Example 11-7 Directory entry for using HyperPAV with dedicated DASD
===> dirmaint foruser linux2 dedicate 01FE 15FE
DVHXMT1191I Your DEDICATE request has been sent for processing to DIRMAINT ...
DVHREQ2288I Your DEDICATE request for LINUX2 at * has been accepted.
DVHBIU3450I The source for directory entry LINUX2 has been updated.
DVHBIU3424I The next ONLINE will take place immediately.
DVHDRC3451I The next ONLINE will take place via delta object directory.
DVHRLA3891I Your DSATCTL request has been relayed for processing.
DVHBIU3428I Changes made to directory entry LINUX2 have been placed online.
DVHREQ2289I Your DEDICATE request for LINUX2 at * has completed; with RC = 0.
After you dedicate a real HyperPAV alias to a single virtual machine, this specific alias device
cannot be shared within this z/VM instance anymore.
When the virtual machine is logged on, the disks are defined:
...
00: NIC 0AD0 is created; devices 0AD0-0AD2 defined
00: NIC 0AD0 is connected to VSWITCH SYSTEM VSW1
00: DASD 01FA DEFINED
00: DASD 01FB DEFINED
00: DASD 01FC DEFINED
00: DASD 01FD DEFINED
00: DASD 01FE DEFINED
00: DASD 01FF DEFINED
...
# lsdasd
Bus-ID Status Name Device Type BlkSz Size Blocks
==============================================================================
0.0.0100 active dasda 94:0 ECKD 4096 3521MB 901440
0.0.0301 active dasdb 94:4 FBA 512 512MB 1048576
0.0.0300 active dasdc 94:8 FBA 512 256MB 524288
0.0.0101 active dasdd 94:12 ECKD 4096 3521MB 901440
Follow the procedure for adding new disks according to your distribution (edit /etc/dasd.conf
for RHEL (or use the dasd_configure command in SLES) as described in 13.1, “Adding disk
space to Linux virtual machines” on page 398.
No other configuration is needed. From now on, whenever /dev/dasdd is used, Linux uses the
base device and alias devices to distribute the workload. No multipathing is needed for
HyperPAV to work in an exploiting Linux.
If another device, which comes from the same logical control unit as device 102 in the
previous example, is added, it also uses the same virtual HyperPAV devices. If a real device
from a different logical control unit is added, it needs a new set of virtual HyperPAV aliases to
be added.
Consider the following information when you define virtual HyperPAV aliases:
The base device must be defined as a full-pack minidisk, including cylinder 0.
Because the base device is defined as a full-pack minidisk, Linux has control of cylinder 0,
also. Therefore, dasdfmt overwrites the volume serial with 0xyyyy where yyyy is the virtual
device number. To solve this issue, use minidisk assignment by device number.
The number of virtual HyperPAV aliases that is defined in one virtual machine for one
logical control unit cannot be higher that the number of real aliases in that logical control
unit’s pool of aliases. It does not matter whether all virtual HyperPAV aliases in the virtual
machine are defined to one base device or whether they are spread among several
devices, they all act as one pool of aliases for a specific logical control unit.
For example, assume that a logical control unit exists with 20 real devices and 20 aliases
in a HyperPAV pool. We want to define four Linux images (each image with five real
devices). To configure each Linux for the maximum throughput, we define each Linux with
20 virtual HyperPAV aliases. They can be defined to one real device or spread among all
real devices because the results are the same. A total of 20 aliases exist for five devices in
a virtual machine:
USER LINUX3...
...
COMMAND DEFINE HYPERPAVALIAS 1EC FOR BASE 100
...
COMMAND DEFINE HYPERPAVALIAS 1FF FOR BASE 100
MDISK 100 3390 0 END VOL001 MR
...
MDISK 104 3390 0 END VOL005 MR
Although you achieve the same 20 aliases for five devices with the following definition, the
former output is easier to read:
USER LINUX6...
...
For more information about HyperPAV in z/VM, see z/VM CP Planning and Administration,
SC24-6178.
As 10-gigabit Ethernet (10 GiE) becomes more prevalent, the small number of possible use
cases for this scenario dwindled even further. An exceptionally small number of cases exist in
which a direct-attached OSA is necessary when the VSWITCH uses 10 GiE uplinks.
Example 11-8 shows a sample entry in the user directory for the triple 2104, 2105, and 2103
that maps to 0AD0, 0AD1, and 0AD2. This mapping results in the physical OSA ports
2104-2013 being dedicated specifically to the user LINUX3 and appearing as virtual OSA
ports 0AD0-0AD3.
This mapping also can be accomplished by using the following DirMaint commands:
DIRMAINT FOR LINUX3 DEDICATE 0AD0 2104
DIRMAINT FOR LINUX3 DEDICATE 0AD1 2105
DIRMAINT FOR LINUX3 DEDICATE 0AD2 2103
Example 11-9 shows an entry in the user directory for the triple 5500, 5501, and 5502 that
maps to only the same device addresses.
Example 11-9 User directory entry for numbering devices for HiperSockets
USER LINUX3 LNX4VM 768M 1G G
...
DEDICATE 5500 5500
DEDICATE 5501 5501
DEDICATE 5502 5502
You must perform numerous ongoing tasks for your z/VM systems, such as adding minidisks,
working with directory entries, and modifying parameters. The details that are needed to
accomplish many of the common tasks are provided. Also, tips are provided to facilitate these
tasks.
Several standard tasks need to be performed frequently on z/VM. We provide assistance for
these common tasks.
--------------------------------DirMaint QUERY-------------------------------
Typically, users are added into z/VM by using PROTOTYPEs when DirMaint is in use. The
creation of prototypes was explained in section 6.13.2, “Role-based access controls and CP
privilege classes” on page 206.
Wait a few minutes for asynchronous processing to complete, then proceed with the
clonedisk operation, if you want. For this example to work correctly, both the source and
target IDs, LINUX5 and LINUX3 in this case, must be logged off.
===> dirmaint for linux5 clonedisk 0100 linux3 0100
DVHXMT1191I Your CLONEDISK request has been sent for processing to DIRMAINT ...
Ready;
DVHREQ2288I Your CLONEDISK request for LINUX5 at * has been accepted.
DVHSCU3541I Work unit 30183646 has been built and queued for processing.
DVHSHN3541I Processing work unit 30183646 as MAINT630 from ENDVM363,
DVHSHN3541I notifying MAINT630 at ENDVM363, request 453 for LINUX5 SSI
DVHSHN3541I node *; to: CLONEDISK 0100 LINUX3 0100
DVHBIU3450I The source for directory entry DATAMOVE has been updated.
DVHBIU3424I The next ONLINE will take place immediately.
...
DVHBIU3428I Changes made to directory entry LINUX5 have been placed online.
DVHREQ2289I Your CLONEDISK request for LINUX5 at * has completed; with RC = 0.
DVHSHN3430I CLONEDISK operation for LINUX5 address 0100 has finished ...
After this command completes, remember to enroll the user in the file pool and generate the
ALIASES, as described in section 6.16.5, “Enrolling the Linux virtual machines as USERS” on
page 243.
If you want to also ensure that the abandoned minidisk extents are scrubbed clean, use this
command instead:
===> dirmaint for <userid> purge (clean
Before you cancel a work unit that appears to be stuck, use the DirMaint commands to reload
the code and data first and allow several minutes for them to complete. If this action does not
resolve the issue, complete the following steps:
1. Check for active work units:
===> dirm status workunit all
DVHXMT1191I Your STATUS request has been sent for processing to DIRMAINT
DVHXMT1191I at ITSOZVM1 via DIRMSAT2.
Ready; T=0.01/0.01 11:01:46
DVHREQ2288I Your STATUS request for MAINT at *
DVHREQ2288I has been accepted.
DVHSTT3419I The following active Work Unit
DVHSTT3419I Control Files currently exist:
DVHSTT3419I 13153849
DVHREQ2289I Your STATUS request for MAINT at *
DVHREQ2289I has completed; with RC = 0.
2. Display more information about the work unit in question:
===> dirm status workunit 13153849
DVHXMT1191I Your STATUS request has been sent for processing to DIRMAINT
DVHXMT1191I at ITSOZVM1 via DIRMSAT2.
Ready; T=0.01/0.01 11:02:11
DVHREQ2288I Your STATUS request for MAINT at *
DVHREQ2288I has been accepted.
....
DVHSTT3419I 13153849 was created by the command:
DVHSTT3419I AMDISK 0200 3390 AUTOV 500 VV1560 MR
DVHSTT3419I LABEL DAT100
....
DVHSTT3419I NTRIED UNLOCK 0200 DATAMOV2 NOMSG
DVHREQ2289I Your STATUS request for MAINT at *
DVHREQ2289I has completed; with RC = 0.
3. Cancel and roll back the specified work unit:
===> dirm workunit 13153849 cancel
4. Clean up the datamove:
===> dirm for datamove cleanup cancel
To check the currently assigned domains for a virtual machine, run the following command:
===> dirm for linux4 crypto ?
DVHXMT1191I Your CRYPTO request has been sent for processing to DIRMAINT
DVHXMT1191I at ITSOZVM1 via DIRMSAT2.
Ready; T=0.01/0.01 14:57:26
DVHREQ2288I Your CRYPTO request for LINUX4 at * has
DVHREQ2288I been accepted.
DVHCRT3337I The current CRYPTO statement is as
DVHCRT3337I follows in the LINUX4 directory entry:
DVHCRT3337I CRYPTO DOMAIN 6 APDEDICATED 0 2
For more information about z/VM performance and monitoring, see Chapter 11, “Monitoring
performance and capacity”, in Getting Started with Linux on System z, SC24-6096.
Many z/VM monitoring tools, such as CA VM:Monitor, IBM z/VM Performance Toolkit, IBM
Tivoli OMEGAMON® XE for z/VM and Linux, and products from IBM Velocity Software, are
available. IBM z/VM Performance Toolkit also is described in this chapter.
© Copyright IBM Corp. 2015, 2016, 2021. All rights reserved. 371
12.1 Using basic z/VM commands
z/VM features many commands to monitor the state of the system. CP INDICATE is the most
commonly used, but other commands can also monitor the state of the system. For more
information, see this web page.
INDICATE LOAD
If no parameter is specified, INDICATE LOAD is the default option. Two versions are available,
depending on whether the issuing virtual machine has privilege class G or class E. Class G
users can use the INDICATE command to display recent contention for system resources,
environment characteristics, and measurements of resources that are used by their virtual
machine.
The output from virtual machines with class E privilege (for example, MAINT or OPERATOR) is
shown. The lines are numbered for clarity with a description that follows the output:
===> ind load
1 AVGPROC-000% 04
2 MDC READS-000068/SEC WRITES-000001/SEC HIT RATIO-099%
3 PAGING-0/SE
4 Q0-00001(00000) DORMANT-00012
5 Q1-00000(00000) E1-00000(00000)
6 Q2-00001(00000) EXPAN-001 E2-00000(00000)
7 Q3-00001(00000) EXPAN-001 E3-00000(00000)
8
9 PROC 0000-000% CP VM PROC 0001-000% CP VL
10 PROC 0002-000% IFL VM PROC 0003-000% IFL VL
11
12 LIMITED-00000
The INDICATE LOAD command gives a snapshot of current system performance. Except for the
counts of virtual machines in various queues and the limited list, the values that you see here
are a smoothed average over the past 4 minutes. z/VM performance analysts tend to focus on
the following areas:
AVGPROC on line 1 gives the overall processor utilization, which is 38% in this example. The
number that follows it is the number of online processors, 04 in this example. The
individual processor utilization is shown on lines 9 and 10. Glance at these numbers to see
whether they are balanced. An imbalance is acceptable in certain situations, such as low
utilization scenarios or cases where enough users are not ready to run virtual processors
to keep the physical processors busy.
One of the processors is a Master processor. All of the other processors are Alternate
processors. Imbalance can result from performing these functions. Another imbalance
comes from vertical CPU management.
This class E command displays the virtual processors that are associated with a specific
virtual machine (that can have multiple virtual processors), the queue (dispatch list, eligible
list, or limit list) that they are in, and their states. This view is a snapshot in time. Again, you
want to check this output to ensure that no virtual machines are in the eligible list. The normal
virtual processors in the dispatch list are Qx (x=1, 2, or 3). The eligible list is marked as Ex .
The third column in the example also gives the state of the virtual processor, which can be
helpful to get an idea of how the virtual processors might be constrained. Virtual processors
that are running in the snapshot period are marked with an RNN where NN is the processor
number they are on. An R without a number means that the virtual processor is ready to run,
but no processor is available.
Note: The virtual machine that issues the INDICATE command will always be one of the
running machines.
Other states are documented in the help for IND Q EXP. You do not need to be concerned about
the other columns unless detailed analysis is required or if IBM support requests it. Also,
always remember that this output is only a snapshot in time. Repeating this command over
time gives you a more accurate picture of your z/VM system. A single snapshot cannot be
regarded as indicative.
Note: Example 12-1 demonstrates the use of the INDICATE ACTIVE command and its
results.
CP INDICATE QUEUES
Use the INDICATE QUEUES command to display the user IDs and their associated dispatching
queue. If users have a virtual multiprocessor, you might see more than one entry of a single
user.
Note: The output of the CP INDICATE QUEUES command provides the following information:
List of virtual machines in priority order.
If this command frequently shows users in the E1, E2, and E3 list, you likely have a
constraint in your system resources.
The third column explains why a virtual machine is in a wait state:
– Rnn: Current RUNUSER on the specified real processor, where nn is the processor
ID
– IO: Waiting for I/O
– PS: PSW wait (enabled wait state)
– PG: Waiting for paging
CP INDICATE I/O
Use the INDICATE I/O command to identify the virtual machines that are in an I/O wait state
and the real I/O device number on which they are waiting. Repeat this command several
times to see the pattern.
Note: This command shows the virtual machine definition as USERID, STOR, and other
characteristics. It also shows the amount of pages in real and expanded storage. If you
want to see whether this user ID is running, run this command several times to see the
amount of resources changing or if the number of I/Os is increasing.
CP INDICATE PAGING
Run the INDICATE PAGING command to display:
A list of the virtual machines in page wait status
The number of pages this user ID has in the expanded storage and auxiliary storage
(DASD)
cp query srm
The cp query srm command (see Example 12-2) displays system-wide parameters that are
used by the scheduler to set the priority of system resource access. These parameters define
the size of the time slice and the access to the resources for different user classes as seen by
the scheduler. Each of these parameters has a default setting that is suitable for most
environments.
The CP SET SRM command is useful if you must control users’ use of resources that depend on
the class of user. Use this command carefully and monitor usage because eligible lists can
occur if not used properly.
The System Resource Manager (srm) parameters that are contained in this display includes
the following information:
iabias: Interactive bias, used to favor short transactions
ldubuf: Controls z/VM’s tolerance for guests that induce paging
storbuf: Can be used to encourage z/VM to overcommit main memory
dispatching minor timeslice: Controls the length of time that a single user holds onto a
processor
CP QUERY ALLOC
Use QUERY ALLOC to display the number of cylinders or pages that are allocated, in use, and
available for DASD volumes that are attached to the system. Use Q ALLOC PAGE for detailed
information about paging space or Q ALLOC SPOOL for detailed information about spool space.
You can define it dynamically, but if the system restarts, this definition is lost. For the definition
to be permanently set up, you must define on SYSTEM CONFIG file, in the PARM disk of z/VM.
Note: Do not mix different types of DASD or different models of DASD because doing so
can affect the algorithms and the system performance.
CP Q SHARE
Use the Q SHARE ‘userid’ to display the given percentage of the system available resources
can use. This percentage can be set as ABSOLUTE or RELATIVE percentage. As default, the
RELATIVE percentage of each user ID is 100.
Note: A virtual machine receives its portion of any resource (processors, real storage, and
so on) according to its SHARE setting.
CP QUERY QUICKDSP
Use the Q QUICKDSP ‘userid’ to display whether this option is ON or OFF for that specific user
ID. If it is ON, that user ID is be moved in the eligible list so it can be dispatched without
waiting on the queues.
Other query commands that might be useful when investigating performance issues are listed
in Table 12-1.
CACHE Use QUERY CACHE to display caching status for all storage subsystems that
support caching when investigating I/O-related problems.
CHPIDS Use QUERY CHPIDS to display all 256 of the machine’s channel paths and their
physical status. I/O performance problems can occur if CHPIDs are offline or not
available.
CPLOAD Use QUERY CPLOAD to display information regarding the last CP IPL. The
information that is displayed includes the location of the CP module that was last
used, the location of the parm disk, and how CP was started.
CPOWNED Use QUERY CPOWNED to display the list of CP-owned DASD volumes. If
paging or spooling problems occur, this list can be checked to ensure that all
required volumes are available.
FRAMES Use QUERY FRAMES to display the status of host real storage. It might be
necessary to use this command if you are getting users in the eligible list when
you need to check storage utilization.
PENDING Use QUERY PENDING command to display the device commands that you
entered and optionally, that others entered for which the associated
asynchronous function is not yet completed. Can be useful when investigating
hung users or I/O problems.
QIOASSIST Use QUERY QIOASSIST to determine the status of the queue-I/O assist for a
virtual machine. Might be used when investigating I/O or networking problems.
RESERVED Use QUERY RESERVED to display the number of reserved real storage frames.
Use SET RESERVED to reserve pages of storage for a user. It is useful if tuning
users in storage resulted in constraining the system.
SRM User QUERY SRM to display the settings of the System Resource Manager,
including IABIAS, LDUBUF, STORBUF, and so on.
STOR Use QUERY STORAGE or QUERY STORE to display the size of real storage.
SYSTEM Use QUERY SYSTEM to display current user access to a system DASD volume.
CP Set commands
Several CP Set commands are available that can be used to change some performance
characteristics of the entire system or of a single user.
Each of these parameters has a default setting that is suitable for most environments. The
following System Resource Manager (srm) parameters are included in this display:
iabias: Interactive bias, used to favor short transactions.
ldubuf: Controls z/VM’s tolerance for guests that induce paging.
storbuf: Can be used to encourage z/VM to overcommit main memory.
dispatching minor timeslice: Controls the length of time that a single user holds onto a
processor.
maxwss: Sets the maximum working set that any normal user is allocated. It is specified as
a percentage of the system’s pageable real storage.
limithard: Sets the enforcement of hard limiting of scheduled system resources. This
setting affects only users with absolute maximum shares that are defined by using the SET
SHARE command or the SHARE directory statement.
Some useful cp set commands and their descriptions are listed in Table 12-2.
MDC Use the SET MDC command from a Class B user to:
Change minidisk cache settings for the entire system, for a real device, or for an
active minidisk.
Purge the cache of data from a real device or an active minidisk.
Change a user's ability to insert data into the cache.
This command can be useful when little minidisk activity exists and you want to
release some storage.
QIOASSIST Use SET QIOASSIST to control the queue-I/O assist (QDIO performance assist for
V=V guests) for a virtual machine. This interpretive-execution assist applies to
devices that use the Queued Direct I/O (QDIO) architecture, HiperSockets devices,
and FCP devices.
RESERVED Use SET RESERVED to establish the number of real storage frames that are
available to a specific virtual machine. This might be useful if you are attempting to
tune specific guests in a storage-constrained environment.
Getting help
To get help on the system, use the HELP command. Sometimes, it is difficult to find help for the
exact command for which you are looking. The following HELP commands are useful:
===> help // for basic help
===> help menus // for menu of all z/VM help menus
===> help cp menu // for a menu of all CP commands
===> help cpquery // for a menu of all CP QUERY command
===> help cpset // for a menu of all CP SET commands
Note: The results of this command are based on the CP Class your user ID has based on
the role. If you are a System Admin, you might have classes A, B, and C and see the z/VM
amount of storage (memory). However, if you have only class G, it shows the user ID
virtual storage only.
To determine the CMS level of your system, use the following QUERY CMSLEVEL command:
===> q cmslevel
q cmslevel
z/CMS Level 30, Service Level 0000
Finally, the QUERY VIRTUAL ALL command can be useful when looking at the virtual resources
of the user ID to which you are logged on. The following short forms of these commands are
available without any of the associated output:
===> q da
===> q da free
===> q osa
===> q osa free
===> q v all
Note: You can always use HELP to check the syntax of the commands when logged onto
CMS.
For more information about how to set up and use the IBM Performance Toolkit, see the
following sections:
12.2.1, “Configuring IBM Performance Toolkit for VM”
12.2.5, “Using the IBM Performance Toolkit for VM” on page 387
Complete the following steps to turn it on (configure the product only if you ordered it):
1. Query the priced products that are enabled by using the QUERY PRODUCT command:
===> q product
Product State Description
IBMVMSSI Enabled IBM z/VM Single System Image Feature
7VMDIR20 Disabled 00/00/00.00:00:00.$BASEDDR DIRECTORY MAINTENANCE FACILITY
(Dir
Maint)
7VMPTK20 Disabled 00/00/00.00:00:00.$BASEDDR PERFORMANCE TOOLKIT FOR VM
7VMRAC20 Disabled 00/00/00.00:00:00.$BASEDDR RACF Security Server
7VMRSC20 Disabled 00/00/00.00:00:00.$BASEDDR RSCS Networking
2. To enable IBM Performance Toolkit for VM, log on as MAINT720 and enter the following
command:
===> service perftk enable
VMFSRV2760I SERVICE processing started
...
VMFSRV1233I The following products have been serviced.
VMFSRV1233I PERFTKSFS
VMFSRV2264I Restoring prior system environment using saved access/minidisk
information
VMFSET2760I VMFSETUP processing started for ENVRESTORE
SERVICEEXEC20201012073613
VMFSET2760I VMFSETUP processing completed successfully (RC=0)
VMFSRV2760I SERVICE processing completed successfully (RC=0)
You see a few panes of messages scroll by and finally the success messages appear.
Performance Toolkit is enabled for the current z/VM session.
This process modifies the SYSTEM CONFIG file by appending a line to the end. Verify that
this line was added by using the following commands:
===> vmlink pmaint cf0
The Performance Toolkit is now enabled. You can also verify it by running the QUERY PRODUCT
command again.
You can change the default TCPMAINT user ID in the USER DIRECT file.
After the product is enabled, the TCP/IP profile must be modified to enable web access to the
Performance Toolkit. The following example sets the port to 80, which is the default for a web
browser:
1. Log on to TCPMAINT. Edit the TCPIP configuration file - the default name is PROFILE TCPIP
and search for the string reserve ports (where z/VM TCP/IP ports are reserved):
===> x profile tcpip d
====> /port
2. Add the following line under the PORT entries:
...
PORT
20 TCP FTPSERVE NOAUTOLOG ; FTP Server
21 TCP FTPSERVE ; FTP Server
23 TCP INTCLIEN ; TELNET Server
; 25 TCP SMTP ; SMTP Server
80 TCP PERFSVM ; Performance Toolkit
; 111 TCP PORTMAP ; Portmap Server
; 111 UDP PORTMAP ; Portmap Server
; 143 TCP IMAP ; IMAP Server
...
Save your changes by issuing the file command.
3. Make permanent configuration changes to TCP/IP by editing the PROFILE TCPIP file on
the TCPIP configuration disk, TCPMAINT 198. You also can make TCP/IP changes
dynamically.
To make a configuration change to TCP/IP while it is running, the following options are
available:
– The NETSTAT OBEY command allows a simple command to be entered (such as a START
or STOP of a device).
Note: Rather than create a separate file, you can update TCP/IP by using the PROFILE
TCPIP file as the obey file. You receive several error messages for options that are
defined or unchanged, but the updated settings are applied as requested. This method
is recommended for more experienced operators only.
4. Run the NETSTAT CLIENTS command to verify your configuration. You want to see that the
service that is named PERFSVM is a client. PERFSVM is shown after a few windows of output:
===> netstat clients
...
Client: PERFSVM Authorization: {none}
Notes Handled: none
Last Touched: 0.00:00:52
Vmcf error count: 0
If you are configuring central monitoring in a single system image (SSI) cluster, it is enough to
configure the web server only in one of the members. Central monitoring enables one
member to monitor the other members of the SSI cluster.
You can change the default PERFSVM user ID in the USER DIRECT file.
The PERFSVM virtual machine is the Performance Toolkit service machine. Complete the
following steps to configure it:
1. Log on to PERFSVM. If you successfully enabled the product, enter a Performance Toolkit
session and see the following text at the top of the pane:
FCX001 Performance Toolkit for VM Autoscroll 12
FCXBAS500I Performance Toolkit for VM FL720 (64-bit)
FCXBAS100I HMA storage 2048M.2048M is being used for temporary work area
...
07:55:24 HCPMOF6229E Monitor event collection is already active.
07:55:24 HCPMOG6229E Monitor sample collection is already active.
2. Press F12 twice to get to a Conversational Monitor System (CMS) prompt.
3. Copy the default configuration files, which are on PERFSVM’s D disk, to your A disk:
===> copy * * d = = a
4. The main configuration file is FCONX $PROFILE. Edit that file and search for the string
VMCF:
===> x fconx $profile
====> /VMCF
This search takes you to line 149 where the next eight lines are comments that start with
an asterisk (*). Complete the following changes:
– Uncomment the second, fourth, sixth, and eighth lines by changing *C to FC.
– Change maxconn from 10 to 100 on the fourth line so that you can raise the
connections limit.
– Change port 81 to 80 on the fourth line so that you can use a browser interface without
needing to specify port 81 on the URL (with a :81 suffix).
The modified lines look similar to the lines that are shown in Example 12-3. Save your
changes by using the FILE command.
If you are configuring central monitoring in an SSI cluster, enable the four FC commands
on only one member, which serves as a web server. On the other members, allow only the
first FC statement (FC MONCOLL VMCF ON).
Note: If you do not plan to IPL before you try Performance Toolkit, run all CP MONITOR
commands that you just added to the PROFILE EXEC file so that CP starts to collect
performance data.
3. Enter any valid user ID and password and click Submit (in this example, PERFSVM was
used).
The Central Monitoring System Load Overview appears with your system identifiers
(Node-ID) on the left side.
4. Click your system identifier and the Initial Performance Data Selection Menu window
appears, as shown in Figure 12-3 on page 388.
From this window, you can drill down into many different types of reports.
Several of the more useful report windows to drill down into are listed:
The CLOSE 480 statement tells MONWRITE to close the output file every 8 hours (480 minutes),
starting from midnight. It means, regardless of when it starts recording, that it will close the
file at 08:00, at 16:00, and at 24:00. The file name will clearly show the date and time when
the recording started.
To collect MONWRITE data automatically, start the MONWRITE virtual machine when you IPL z/VM.
Add a line to the PROFILE EXEC of the AUTOLOG1 191 disk (or AUTOLOG2 191 if an external
security manager, such as RACF, is running):
===> x profile exec
...
"CP XAUTOLOG MONWRITE" /* Start the MONWRITE VM */
...
The MONWRITE’s A-disk is shipped as 300 cylinders, which is small. Depending on the monitor
interval activity of the system and the number of samples/events, it can fill quickly. When the
disk is full, MONWRITE will not be able to write anymore.
Another possibility is to use a utility that archives old files and cleans up the space
automatically. MONCLEAN is an example of this type of utility.
Because the PERFSVM virtual machine is used to show the current performance data, it is
better to use a different virtual machine to perform MONSCAN. The following example uses the
MAINT user ID.
To monitor Linux performance data at this level, a data gatherer process must be running
within each Linux guest that you want to monitor. Different ways of gathering this data are
available. Many commercial and non-commercial solutions exist for long-term monitoring,
also.
This book cannot cover all of the requirements for long-term monitoring (low CPU
consumption, data storage, and so on). This chapter shows how to monitor Linux
performance for short periods, especially when you are troubleshooting performance
problems.
To monitor Linux performance data directly from the kernel, the following statements must be
true:
The APPLMON option must be set in the user directory.
Applmon data monitoring must be built into the kernel.
The first requirement typically is true because the OPTION APPLMON was set for the Linux virtual
machines in earlier sections. For the second requirement, this feature is built into both Red
Hat Enterprise Linux (RHEL) Server and SUSE Linux Enterprise Server (SLES).
Built-in kernel monitoring is now turned on. You might want to leave only the monitoring on for
specific periods of time. While Linux monitoring data is captured, the Performance Toolkit’s
minidisk space can fill up quickly.
Then, type S over the period on the left side of the submenu window in the row that
corresponds to the report that you want to see. You will see a new report window with the
Linux guest systems memory overview, as shown in Figure 12-8.
You can also use a web interface to view the same data.
© Copyright IBM Corp. 2015, 2016, 2021. All rights reserved. 397
13.1 Adding disk space to Linux virtual machines
This section describes how to add disk space to a Linux virtual machine. This disk space
might come from different types of disks. The types of disk are described in 2.4, “Disk
planning” on page 43.
Important: If you add minidisks to the user directory for a specific virtual machine, they
can be attached to a running Linux system without “bouncing” it.
For example, if you added a minidisk at virtual address 0704, you can use the following
commands to link to the disk and then, enable it:
$ sudo vmcp link '* 0704 0704 mr'
$ sudo chccwdev -e 0704
13.1.1 Making new minidisks or count key data DASD available in Linux
After making the required changes in the z/VM user directory to add a new minidisk or
full-volume DASD to a Linux virtual server, the steps in this section describe the required
tasks in Linux to bring those volumes online and incorporate them into the Linux system.
In our example environment, we added new volumes by using the addresses 0.0.0702,
0.0.0703, and 0.0.0704.
Complete the following steps to make the new disks available for use:
1. Make the disks visible by using the cio_ignore -r command. The device numbers are
removed from the I/O device blacklist, which makes it visible to Linux for enumeration and
use:
# cio_ignore -r 0702
# cio_ignore -r 0703
# cio_ignore -r 0704
2. Depending on your operating system, complete the following steps:
– If you use Red Hat Enterprise Linux Server 8 (RHEL):
i. Enable the disks by using the chccwdev -e command:
# chccwdev -e 0702 103 104
Setting device 0.0.0702 online
Done
Setting device 0.0.0703 online
Done
Setting device 0.0.0704 online
Done
ii. Make a backup of /etc/dasd.conf, and then, add minidisks 0702, 103, and 104 to it:
# cd /etc
# cp dasd.conf dasd.conf.orig
# vi dasd.conf
0.0.0901
0.0.0900
0.0.0701
0.0.0700
0.0.00702
0.0.0703
If you are creating a logical volume, see 13.2.1, “Creating a logical volume and file system” on
page 404. If you are extending an existing logical volume, see 13.3, “Extending a logical
volume” on page 408.
The new DASD is now partitioned, and it is configured to be active at start time.
If you are creating a logical volume, see 13.2.1, “Creating a logical volume and file system” on
page 404. If you are extending an existing logical volume, skip ahead to 13.3, “Extending a
logical volume” on page 408.
This section assumes that no previous zFCP was available. The planning according to this
manual creates two FCP adapters at the addresses 0.0.fc00 and 0.0.fd00. The necessary
setup for z/VM is described in detail in 11.2.2, “Direct-attached Fibre Channel” on page 348.
Follow these steps:
1. Start a Secure Shell (SSH) session to the target system.
2. Check that two devices are available with the CP QUERY FCP command:
# vmcp q v fcp
FCP FC00 ON FCP B801 CHPID 70 SUBCHANNEL = 0001
FC00 TOKEN = 00000007F62EA280
FC00 DEVTYPE FCP VIRTUAL CHPID FF FCP REAL CHPID 70
FC00 QDIO ACTIVE QIOASSIST ACTIVE QEBSM
FC00
FC00 INP + 01 IOCNT = 00001346 ADP = 128 PROG = 000 UNAVAIL = 000
FC00 BYTES = 0000000000000000
FC00 OUT + 01 IOCNT = 00001464 ADP = 000 PROG = 128 UNAVAIL = 000
FC00 BYTES = 00000000005711FE
FC00 DATA ROUTER ACTIVE
WWPN C05076DD90000404
FCP FD00 ON FCP B901 CHPID 71 SUBCHANNEL = 0002
FD00 TOKEN = 00000007F62EA380
FD00 DEVTYPE FCP VIRTUAL CHPID 71 FCP REAL CHPID 71
FD00 QDIO ACTIVE QIOASSIST ACTIVE QEBSM
FD00
FD00 INP + 01 IOCNT = 00001338 ADP = 128 PROG = 000 UNAVAIL = 000
FD00 BYTES = 0000000000000000
FD00 OUT + 01 IOCNT = 00001428 ADP = 000 PROG = 128 UNAVAIL = 000
FD00 BYTES = 000000000052EF86
FD00 DATA ROUTER ACTIVE
WWPN C05076DD90000A64
3. Make the disk visible with the cio_ignore command:
# cio_ignore -r fc00
# cio_ignore -r fd00
The following sections describe a logical volume with additional DASD on a Linux guest. Use
the following overall steps in adding a logical volume.
If you are on RHEL 6.4, ext4 is the recommended file system. Create an ext4 file system on
the new logical volume by using the mkfs.ext4 command:
# mkfs.ext4 /dev/homevg/homelv
...
This filesystem will be automatically checked every 26 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
If you are on SLES, xfs is the recommended file system for data. Use the following command
to make the file system:
# mkfs.xfs /dev/homevg/homelv
...
The file system that was created from the logical volume is now ready to be mounted.
A 3390-9 was added as minidisk 106 in section 13.1, “Adding disk space to Linux virtual
machines” on page 398.
Important: You can attach minidisks to a running Linux system without rebooting the Linux
system. For example, if you added a minidisk at virtual address 106, from a root SSH
session, use the vmcp link * 106 106 mr command to link to the minidisk. Then, use the
chccwdev -e 106 command to enable it.
In this example, two physical volumes, /dev/dasde1 and /dev/dasdf1, exist. Data is populated
on the first volume, and later moved to the second volume. This movement is performed while
the file system is online.
Moving data from one physical volume to another physical volume without taking the file
system offline was demonstrated.
© Copyright IBM Corp. 2015, 2016, 2021. All rights reserved. 415
14.1 Setting up a private interconnect
Having networked communications between different hosts that belong to a certain group can
be beneficial. For example, certain legal databases must communicate to machines that scan
documents for legal issues. Or, a web server and a certain back-end machine might need to
communicate with each other without interference from other machines. Before live
relocation, it was sufficient to merely set up a VSWITCH without an external interface to
accomplish these tasks.
However, when you try to run this interconnect between hosts that run on a cross-central
processor complex (CPC) SSI cluster, the private interconnect must be able to connect the
network on the guests regardless of which CPC the guest is running on.
Before DNA, a VSWITCH was defined for user-based (the default) or port-based access
control. In user-based mode, a guest is permitted or denied to connect to a VSWITCH, and all
ports that are connected to a VSWITCH feature the same access characteristics (such as
ACCESS or TRUNK mode, and VLAN memberships). In port-based mode, a guest is granted
access to connect to specific port numbers on a VSWITCH, and those ports might include
different configured access characteristics.
When DNA is enabled, all VSWITCHes operate like the previous port-based mode. A port
definition that corresponds to the access that us implied through the NICDEF directory entry
is automatically defined for a guest when that virtual NIC connects to the VSWITCH.
DNA is the default operation mode for VSWITCHes on a system where the APAR is installed.
Therefore, setting up an interconnect network can now be done by creating:
A VSWITCH (the old way)
A VLAN on an existing VSWITCH (the new “DNA-enabled” way)
To attach the guests to the interconnect VLAN, they must have more virtual NICs defined. The
extra NIC must have the VLAN keyword added, which specifies the VLAN ID of the
interconnect VLAN. For example, the following example shows two NICs on a guest, one for
normal network traffic and one for interconnect:
NICDEF 600 TYPE QDIO LAN SYSTEM MAINVSW
NICDEF 620 TYPE QDIO LAN SYSTEM MAINVSW VLAN 120
In this example, the VSWITCH was defined with VLAN DEFAULT 100, which assigns all
network interfaces that are not specified with a VLAN ID to VLAN 100. The second interface
specifies VLAN 120, which is the interconnect VLAN.
VM LPAR A02 and z/OS LPAR A12 can access the HiperSockets CHPID F0, and it is an IQD
type.
# lsqeth
Device name : enccw0.0.e000
-------------------------------------------------------------------------
card_type : HiperSockets
cdev0 : 0.0.e000
cdev1 : 0.0.e001
cdev2 : 0.0.e002
chpid : F0
online : 1
portname : no portname required
portno : 0
route4 : no
route6 : no
state : UP (LAN ONLINE)
priority_queueing : always queue 2
fake_broadcast : 0
buffer_count : 128
layer2 : 0
isolation : none
sniffer : 0
The initial support for VSwitch Link Aggregation required that the OSA ports were used only
by a single z/VM VSWITCH and were not shared with another system (even a Linux guest in
the same LPAR attaching to the OSA directly).
Later, the Multi-VSwitch Link Aggregation capability was introduced. This support, also known
as Global VSwitch, allows a port group to be defined as shared between z/VM VSwitches,
even across multiple LPARs.
Inxadmin Inxadmin
0604 0604
2106. 2146.
P01 P01
Vswprv1 Priv01 Priv01 Vswprv1
vSwitch portgroup portgroup vSwitch
2126. 2166.
P01 P01
Note: Port number 1, not port number 0, was used for this connection.
3. Define the virtual switch by using the priv01 port group on all members of the SSI
(ITSOZVM1 and ITSOZVM2 in this example):
===> define vswitch vswprv1 rdev none ethernet vlan aware group priv01 gvrp
To allow exclusive-mode link aggregation to scale over many z/VM systems, an IVL Domain is
a group of up to 16 z/VM systems that can share link aggregation ports. Connectivity for IVL
Domains is implemented over an Ethernet-based IVL Network, which is defined by using IVL
VSwitches and OSA ports.
Up to 16 z/VM systems can be part of an IVL Domain, and an IVL Network can support many
IVL Domains. Up to eight Domains are supported without the use of VLANs on the IVL
Network; up to eight Domains per IVL VLAN are supported with VLANs on the IVL Network).
The ports used for the IVL Network must be separate from the link aggregation ports.
However, because the IVL Network does not carry much traffic, OSA ports that are used for
non-link-aggregated connections can be used for the IVL Network. However, it is highly
recommended that the IVL Network be a separate VLAN from other network traffic.
The process that is used to create a Global VSwitch includes the overall tasks:
Allocate ports for use by the IVL Network and the Global VSwitch.
Define the IVL VSwitch on each of the z/VM systems (making sure to use the suitable
Domain and VLAN definitions as required).
Verify connectivity across the IVL Network.
Define the Port Group by using the LACP ACTive SHAred option.
Define the VSwitch by using the GLOBAL option.
Because the traffic requirement of the IVL Network is modest, OSA-Express 1000BaseT or
Gigabit Ethernet cards can be used (even if the Global VSwitch uses 10 Gigabit cards).
In our example, we used the default domain “A” and no VLAN support in the IVL VSwitch (our
network switch provided VLAN isolation for us).
On the second system, we repeated the operation with the values for RDEV reversed. This
configuration improves resilience by having each system use a different OSA port for its
primary IVL Network connection. Example 14-2 shows the creation of the IVL VSwitch on the
second system.
We also saw a message on the first system console to indicate that the second system was
discovered by the first:
HCPSWU3175I System RDBKZVMC has been added to IVL Domain A.
This display shows the “IVL Port” section, which confirms it is an IVL VSwitch. The Multicast
MAC Address that is listed ends in 01, which is the address that is assigned to IVL Domain A.
More information about the status of the IVL is shown by running the QUERY VMLAN command.
Example 14-4 shows the VMLAN details from our first system.
Example 14-6 shows the commands that we issued on the first system to create the shared
port group. First, we defined the group as a shared port group; then, we added the two OSA
ports to the group.
Example 14-6 Using SET PORT GROUP commands to define a shared port group
set port group grpglbl lacp active shared
Port group GRPGLBL is created
Ready; T=0.01/0.01 07:05:26
set port group grpglbl join 1910 1930
Port group GRPGLBL is updated
Ready;
To verify that the IVL Domain was functioning correctly, we ran a QUERY PORT GROUP command
on the second system. When running the QUERY PORT GROUP command without parameters,
we saw the response No active groups found. This message is expected because the port
group does not become active until it is connected to a VSwitch.
Displaying inactive port groups can be done by using the ALL INActive parameter on the
QUERY PORT GROUP command, or by displaying the group by name.
We used the display-by-name method to show the group. As shown in Example 14-7, we saw
that the group was defined on the second system automatically through the IVL.
We saw the same output when we issued the command on the first system.
Over the course of a few seconds, the LACP negotiation starts with the network switch over
the first port in the port group. This process is indicated by the first pair of HCPSWU2830I and
HCPSWU2855I messages, followed by HCPSWU3165I when the LACP negotiation completes.
Later (in our case it was about 20 - 30 seconds) the second port in the group is added and the
second pair of HCPSWU2830I and HCPSWU2855I messages appears.
We performed a display of the new VSwitch by using QUERY VSWITCH DETAILS. Example 14-9
shows the output of this command.
The VSwitch details display shows some information about the port group. The members of
the Global VSwitch at the bottom of the display. Because only RDBKZVMC (the first system)
has the Global VSwitch defined, it is the only system listed.
We ran a display of the port group to see if any other information was displayed there. The
output of QUERY PORT GROUP VSWGLBL was much the same as we saw in the VSwitch display,
but adding DETAILS to the query displayed much LACP information (see Example 14-10).
At the end of this details display, we can see that the status RDBKZVMC (the system we
created the VSwitch on) is Connected, while the status of RDBKZVMF (the second system) is
Inactive. This result occurs because the Global VSwitch is not yet created on the second
system.
As we saw with the first system, the VSwitch is defined and becomes active after a short
period. We issued Q VSWITCH DETAILS on RDBKZVMF. The results are shown in
Example 14-12.
Example 14-12 QUERY VSWITCH DETAILS for the Global VSwitch on the second system
q vswitch vswglbl details
VSWITCH RDBKZVMF.VSWGLBL Type: QDIO Connected: 0 Maxconn: INFINITE
PERSISTENT RESTRICTED ETHERNET Accounting: OFF
USERBASED GLOBAL
VLAN Unaware
MAC address: 02-06-50-00-00-0B MAC Protection: Unspecified
IPTimeout: 5 QueueStorage: 8
Isolation Status: OFF VEPA Status: OFF
Uplink Port:
State: Ready PriQueuing: OFF
PMTUD setting: EXTERNAL PMTUD value: 9000 Trace Pages: 8
Group: GRPGLBL.0 Active LACP Mode: Active Shared
RDEV: 1930.P00 VDEV: 0603 Controller: DTCVSW3 ACTIVE
Adapter ID: 3907000BB4B7.010C
Uplink Port Connection:
MAC address: 02-06-50-00-00-0C
RX Packets: 50 Discarded: 0 Errors: 0
TX Packets: 4 Discarded: 0 Errors: 0
RX Bytes: 6200 TX Bytes: 496
Device: 0603 Unit: 000 Role: DATA Port: 2049
Partner Switch Capabilities: No_Reflective_Relay
LAG Port Controller: Standby
RDEV: 1910.P00 VDEV: 0603 Controller: DTCVSW4 ACTIVE
Adapter ID: 3907000BB4B7.0174
Uplink Port Connection:
MAC address: 02-06-50-00-00-0D
Example 14-13 QUERY PORT GROUP DETAILS display on the second system
q port group grpglbl details
Group: GRPGLBL.0 Active LACP Mode: Active Shared
VSWITCH RDBKZVMF.VSWGLBL ifIndex: 2112
Load Balancing: Collaborative Interval: 300
GROUP Information:
PORT Information - Total Frames per Interval:
Local Local Total
Device Status Previous Current Previous
------ ------- ------------ ------------ -----------------------
1930 Active 32 11 42
1910 Active 27 17 37
------------------------------------------------------------------
Total Port Group Frames: 79
At the bottom of the display we can see that both systems that are defined to the port group
are now showing a status of Connected, which is what we expect now that the Global VSwitch
is defined on both systems.
Also, the MAC addresses in the ACTOR fields did not change, even though RDBKZVMC is no
longer attached to the VSwitch. Instead of changing the MAC addresses, which is disruptive
to LACP, the new controlling system (in this case RDBKZVMF) takes over the MAC addresses
of RDBKZVMC’s VSwitch to allow LACP to continue. This process happens internally in the
port group because the MAC addresses do not appear in a QUERY VSWITCH DETAILS listing.
Various techniques are available for link aggregation in the networking world. Terms, such as
Etherchannel and port trunk are used to describe different techniques that are used by
various switch and operating system vendors to describe their link aggregation methods.
These techniques are often proprietary and incompatible with each other.
Example 14-15 shows an example where a port group (in the example, it is an exclusive port
group, but the same situation exists for a shared port group) is not functioning because LACP
is unavailable. This issue occurs is because the network switch does not support LACP, or the
switch ports the z/VM port group is attached to are not configured for LACP.
The port group GLBLGRP was defined with LACP, and the VSwitch VSWGLBL was then defined by
using the group. The error reason “LACP not enabled on partner” is shown against both of the
OSA ports in the group.
Only an exclusive-mode port group can operate without LACP, and in that configuration, traffic
for the group is distributed between the ports in the group without being managed by a control
protocol. Depending on the operating characteristics of the network switch, this configuration
might result in traffic not being handled optimally. Some modern network equipment can
operate poorly and even experience traffic loss when traffic appears across different ports
unexpectedly.
You now have a functioning network interface that uses port groups.
Users who worked with Linux (or UNIX) for several years might be used to older commands
that are bundled with the net-tools package, most of which are deprecated.
The iproute2 suite replaced the net-tools package. If you are still relying on the deprecated
commands, begin moving to the new iproute2 version as soon as you can. Some commonly
used commands are listed in Table 14-1. Many of the modern commands can be abbreviated;
the full command is shown with parenthesis around the optional full-length version.
For more information about iproute2, see the following web pages:
The Linux Foundation wiki
IPROUTE2 Utility Suite How to
For more information about the deprecated net-tools package, see this web page.
© Copyright IBM Corp. 2015, 2016, 2021. All rights reserved. 439
15.1 Installing a package from the IBM VM Download Library
The IBM VM Download Library is a clearinghouse or repository for tools, documentation, and
other interesting VM topics. The repository is served by a z/VM web server that runs on
Conversational Monitor System (CMS).
The IBM z/VM platform development team in Endicott set up the library so that IBM
employees, IBM Business Partners, and customer can submit content and so that anyone can
download content. The library contains many items, which you are encouraged to explore.
IBM provides the library content on an “as-is” basis. IBM might not review all of the library
content so you must use your discretion to determine whether a package is appropriate for
your environment. If you want to download a package, this section provides the information
about downloading. As you become more experienced with the z/VM platform, you might
create tools and utilities yourself, which you are encouraged to share.
Note: Before you download anything from the VM Download Library, you must read the
license agreement for downloads to ensure that you can comply with the terms.
In section 6.7, “Enabling and configuring RACF” on page 155, the VMARC was placed at
VMPSFS:VMWW2. Complete the following steps:
1. Log on as either MAINT or MAINT720 on the first node in the cluster.
2. Access VMPSFS:VMWW2 as W read/write and VMPSFS:MAINT720.UTILS.VMARC as V:
===> access vmpsfs:vmww2. W (forcerw
===> access vmpsfs:MAINT720.utils.vmarc V
3. Run the VMWW2 VMARC file through this pipeline:
===> pipe < vmww2 vmarc W | fblock 80 00 | > vmww2 vmarc W f 80
Ready;
4. Unpack the contents:
===> VMARC unpack vmww2 W = = W
5. You can now use these grant commands to grant access to the browser for all virtual
machines:
===> grant auth vmpsfs:vmww2. to public ( read newread
===> grant auth * * vmpsfs:vmww2. to public ( read
Alternatively, you can substitute individual users in place of public:
===> grant auth vmpsfs:vmww2. to FMIRANDA ( read newread
Important: We did not put this data into a Shared File System (SFS) directory under MAINT
or MAINT720 because you must not access the web from a master system management
virtual machine, such as MAINT or MAINT720. Use your own class G user ID.
6. You can now use Charlotte by issuing this command from any virtual machine to which
you granted authorization:
===> VMLINK .DIR VMPSFS:VMWW2. < . Z-A * > (INVOKE WW2
Example 15-1 Using QDIR to query a user and their associated profile
Ready; T=0.01/0.01 00:43:53
QDIR PWNOVAK
If you still use the old method of spooling consoles, it is critically important that you have a
method to make sure they do not become infinitely large. One way to manage this issue is by
installing the code for CONCLOSE into the VMCRON virtual machine.
TOOLSRUN allows coordinated set-updates by multiple people to a single disk. The authority
to update is based on the permissions granted to you.
For more information about this EXEC, see this web page.
In managing EDEVs, their FCP CHIPIDs, and the SAN controllers hosting the LUNs, it is
sometimes wanted to take a component out of service. For example, to apply service to a
node of a V7000 SAN storage controller, it is first necessary to take the node out of the
configuration. This amounts to removing all EDEV paths that lead to any of the WWPNs of the
node. Once the paths are removed from the EDEVs, the V7000 node can be serviced. After
the service is complete, it is desirable to put back the removed paths:
The EDEVPATH tool lets a class B user control the paths of the system’s EDEVs
en masse. The following functions are provided:
All of the paths that share a trait, such as a specific FCP CHPID, can be removed from the
EDEVs’ path configurations. The paths removed are recorded in a log file.
All of the paths that are removed by an invocation of the “remove” function can be
returned. This process is done by reading the log file and undoing the logged removals.
A snapshot of the system's EDEVs’ path configurations can be collected.
The package consists of an exec and a NAMES file. The exec’s command line implements the
remove, restore, and snapshot functions. The NAMES file holds lists of WWPNs, each list
representing a SAN storage controller node. To remove all paths that lead to a specific node,
define the node’s WWPN list in the NAMES file and then, use the “remove” function, which
targets the nicknamed list of WWPNs.
All of the steps in this section must be performed while logged in as MAINT720.
Note regarding FILELIST: When you are working in FILELIST and entering command text
by typing over a line, if you make a mistake while you are typing, press F2 to refresh the
window and start over. Do not use backspace or delete.
2. Create a copy of LOGO CONFIG from the file by moving your cursor to the beginning of the
LOGO CONFIG line, entering the following text, and then, pressing Enter. You type over part
of the existing text, as shown in Example 15-3.
COPY / LOGO-1 = = (OLDDATE)
4. Edit the original text by moving your cursor to the beginning of the line displaying LOGO
CONFIG and entering the command XEDIT, or pressing F11:
COPY / = = = (OLDDATE
5. Make sure that you see your new LOGO file, that the format is F to indicate Fixed length,
and LRECL is 78.
6. (Optional) Update the ONLINE message for the cluster or system by completing the
following steps:
a. Create a file named ZVMCLOUD ONLINE from the existing ONMESS SAMPLE file by moving
your cursor to the beginning of the ONMESS SAMPLE line, entering the following text, and
then, pressing Enter. You type over part of the existing text, as shown in Example 15-7.
b. After pressing Enter, press F2 to refresh your display. It should look similar to
Example 15-8.
c. Move your cursor to the beginning of the line displaying ZVMCLOUD ONLINE and
press F11 to open the file in XEDIT.
In our example environment, we changed the contents of the file as shown in
Example 15-9.
Example 15-10
MAINT720 FILELIST A0 V 169 Trunc=169 Size=2 Line=1 Col=1 Alt=0
Cmd Filename Filetype Fm Format Lrecl Records Blocks Date Time
SYSTEM CONFIG Z1 F 80 368 8 2020-10-05 11:36:03
LOGO CONFIG Z1 V 69 63 1 2020-06-24 09:14:16
11.Because the contents of all the following files are identical, we do not need to make
backups of all of them; however, you might want to do so:
– MINIMUM LOGO
– DEFAULT LOGO
– SNA LOGO
– LDEV LOGO
– LOCAL LOGO
12.Make a backup copy of the SYSTEM DTCPARMS file by moving your cursor to the beginning of
the SYSTEM DTCPARMS U1 line and entering the following text (you type over part of the
existing text). If you make a mistake while you are typing, press F2 and start over; do not
use Backspace or Delete keys:
COPY / = DTCPWRKS = (OLDDATE
To set the ID back to a functional status, or resume the ID, the RACF/VM command RAC
ALTUSER is issued to modify an attribute:
===> RAC ALTUSER LNCG4050 RESUME
Ready; T=0.01/0.01 13:49:52
Finally, verify that the status of the attribute changed by again issuing the RACF LISTUSER
command, as shown in Example 15-12. Notice that the line that includes ATTRIBUTES=REVOKED
was removed.
You find that a larger size allows you to be much more productive, and can display much more
information. It also provides the opportunity to use more advanced tools, such as Fullscreen
CMS.
Fullscreen CMS
For more information about Fullscreen CMS, see this web page.
DirMaint modifications
Example 15-13 shows a snippet from a CONFIGAA DATADVH file that was used to override
DirMaint defaults, which makes the output lines longer to eliminate wrapping. This change
overrides the 52 or 73 character line length. DirMaint displays output lines of 127 characters
before wrapping them. For a 160-column screen, 127 characters works well.
The output from a command with longer lines showing all of the wrapping is shown in
Example 15-14.
The output from the same command after having made the change to override the line length
is shown in Example 15-15.
To override the line length on a system that is set up and running, you must determine which
DirMaint override files are in place. If you used this book to setup your z/VM system, it is likely
that you have only the single configuration override, as described in 10.2.2, “Configuring
DirMaint” on page 311.
However, it often is the case that multiple configuration files are shown, the one with the
highest number is the one that you modify. Therefore, if the output that is shown in
Example 15-16 listed a CONFIGAA and CONFIG99, the values that are set in CONFIG99
override anything that was set in the default configuration file, CONFIG DATADVH, and any
lower priority override files, such as CONFIGAA DATADVH.
The output that is shown in Example 15-16 makes it clear that CONFIGAA is the only
configuration override file that is used.
Make note of the line that begins with RDR FILE, which indicates the reader file number that
was sent. You need this number to retrieve the file from the reader, as shown in
Example 15-17. You must replace the example value 0276 with the correct value for your
system.
In the situation where an old copy of CONFIGAA DATADVH was left behind on the MAINT720
A-Disk, you see output that is similar to the output that is shown in Example 15-18. In general,
it is considered bad practice to leave old copies of any directory configuration files lingering
on the MAINT720 A-Disk.
As the paper mentions, this scenario might not be necessary or wanted for all Linux virtual
servers:
The guidelines in this paper allow you to run Linux virtual machines in a safer way. This
does not necessarily mean that you are required to implement all recommendations, or
that you must run all Linux virtual machines that way. If you are confident enough that for
some Linux servers the risks are less, then you may decide to lower the fences for those
Linux virtual machines. As always, you must make the tradeoff between security, flexibility,
and ease of use.
On workstations that are Linux or UNIX based (or derivatives thereof, including MacOS X),
the potential solution uses the SSH configuration file. This file is in the home directory for your
login shell account under the.ssh subdirectory.
If you are unsure what the home directory for your account is, run the env command to display
all of the environment variables set for your login shell, as shown in the following two
examples.
In both examples, the login shell in use is bash, which is the Bourne Again (modernized)
derivative of the Bourne shell, sh.
You can run the following command at a command-line prompt to see whether your ID and
HOME directory are set up in your environment variables:
echo “My account is ‘$ID’ and the home directory for it is ‘$HOME’...”
If you discover that the subdirectory ~/.ssh (also referenced via $HOME/.ssh) does not exist,
create it as shown in the following example:
===> mkdir -p $HOME/.ssh
The IBM Washington Systems Center published the WSC Whitepaper (document ID
WP102730), which is available at this IBM Support web page, that provides more information
about this issue, which includes the following abstract text:
This document describes a process that enables you to share one installation of
WebSphere Application Server among many Linux guests running under z/VM. This is an
update to the previous versions of this document, which covered WebSphere v8.0.x. As a
platform for Linux, one of the strengths of IBM Z is the ability to centrally manage many
Linux images. But as the number of Linux images grows, some of the typical problems of
large server farms emerge. Software installed on the Linux images must be serviced or
updated, and there is no way to do this other than servicing each image as if it were a
stand-alone server. IBM Z has the ability to share file systems as VM minidisks so there
ought to be a way to install WebSphere once and use that installation for many other Linux
images. This was previously impractical, because the installed WebSphere program files
(which are read/only) and the user data files (which are read/write) were not identified and
were intermixed in the same directories. WebSphere Version 6 introduced the concept of
“Profiles”, which are created by the manage profiles command or graphically with the
pmt.sh tool. Profiles must be created for all installations of WebSphere V6 and above, and
contain all the user-writable files (logs, installed applications, etc.) for WebSphere. All the
profiles on a single server share the same WebSphere binaries from the WebSphere
installation directory, so service can be applied to WebSphere and apply to all the profiles.
So, with WebSphere V8.5.5.xthe WebSphere binaries are separate from the user data
files in the same way as V6, V7 and V8. We can use this separation to allow profiles to
share the WebSphere binaries not only on the same server, but across many servers.The
methods and procedures for sharing the WebSphere binaries in V8.5.5.xdiffer little from
V8. See the following section on what is different for those administrators that are already
familiar with the sharing concepts in V8 of this paper.
Although this document covers a specific version of WebSphere Application Server, the
methodologies that are described are substantially similar for newer versions of WebSphere
Application Server.
Part 4 Appendixes
This part consists of the following appendixes:
Appendix A, “Configuring a workstation to deploy and administer z/VM” on page 461
Appendix B, “Reference, cheat sheets, blank worksheets, and education” on page 475
Appendix C, “Additional material” on page 489
© Copyright IBM Corp. 2015, 2016, 2021. All rights reserved. 459
460 Virtualization Cookbook: Vol 1: IBM z/VM 7.2
A
© Copyright IBM Corp. 2015, 2016, 2021. All rights reserved. 461
Basic requirements
The following types of clients are required for you to successfully access z/VM and Linux from
your workstation to complete the tasks that are described in this book:
A 3270 terminal emulator with TLS support
A TTY terminal emulator with SSH support
A remote graphical display client with support for the Virtual Network Computing (VNC)
protocol
Many options are available to provide these three clients. The operating system that is
running on your workstation determines which options are available to you. Several programs
or products to consider are described for each of the these requirements.
Note: The programs or products that are included in this appendix are not endorsed, nor is
their fitness for intended purpose warranted in any way by the authors or publishers of this
book.
Linux
We recommend the use of x3270 or c3270 to provide this function. Both of these programs,
and several other related programs that are part of the overall x3270 suite, are available in the
official repositories for Alpine, CentOS, ClefOS, Debian, OpenSUSE, RHEL, SLES, and
Ubuntu.
MacOS
We recommend the use of x3270 or c3270 to provide this function. Both of these programs,
and several other related programs that are part of the overall x3270 suite, are available by
way of MacPorts and Homebrew. If you cannot use MacPorts or Homebrew, the installation
code can be found at the x3270 web page.
TTY clients
From a Linux workstation, you need the following programs, tools, or utilities:
A Secure Shell (SSH) client: Any Linux terminal client can perform this function.
A Virtual Network Computing (VNC) client: remmina or vncviewer are both equally
recommended.
A 3270 emulator: x3270 or c3270 are recommended.
From a Windows workstation, you need the following programs, tools, or utilities:
A Secure Shell (SSH) client: PuTTY is recommended.
A Virtual Network Computing (VNC) client: RealVNC is recommended.
A 3270 emulator: Many choices are available.
At this web page, click the putty.exe link for your architecture. Save the file in a directory path,
such as C:\WINNT. PuTTY is a stand-alone executable file. (No installation is needed other
than copying the file.) You might also want to create a shortcut on your desktop or taskbar.
6. On the right side, under Preferred SSH protocol version, click 2 only.
8. Select Use background colour to erase screen, which results in a better job of painting
the window for applications that use block graphics.
11.Click Default Settings in the Saved Sessions pane. Then, click Save. All future sessions
that you define inherit the preferences that you set.
To save a session for each virtual machine, complete the following steps:
1. In the Host Name (or IP address) field, enter the TCP/IP address or Domain Name
System (DNS) name.
2. Under the Saved Sessions text area, choose a name that you can remember. In this
example, the name LINUX00 (controller) is used.
3. Click Save, and you see the name added to the Saved Sessions list.
Whenever you start PuTTY, double-click any saved session name, and an SSH session to
the Linux system that you want is started.
The PuTTY program from Windows, being Open Source, was built on Linux and macOS.
Although the author of PuTTY does not build macOS or Linux binaries, they are obtainable, or
you can build PuTTY from source.
On macOS, the MacPorts system provides a PuTTY build. The use of PuTTY on a
non-Windows system might be convenient if you must use Windows and other systems and
want to have a consistent interface across all.
Important: Although no specific download site exists for the RealVNC viewer for Microsoft
Windows 7 or 8, instructions for both are available at this web page.
The tool TightVNC might be an option for the Windows operating systems. For more
information, see this web page.
TightVNC 2.0.4 supports all client and server versions of Microsoft Windows starting at
Windows 2000, up to Windows 7.
You can also use Finder to start a VNC session by using Screen Sharing, by choosing Go →
Connect to Server or pressing Command-K. In the window that opens, enter a VNC URL
that uses the following format:
vnc://<ipaddress_or_hostname>:<port_number>
Some alternative VNC viewers also are available. For example, RealVNC provides its VNC
client for macOS.
Linux
Linux distributions provide several ways to obtain a VNC viewer. For example, on Red Hat
Enterprise Linux, the tigervnc package provides the popular TigerVNC client. For the
GNOME desktop environment, the Vinagre and Remmina programs also are available.
Microsoft Windows
Many commercial products are available, including the following common products:
Micro Focus Attachmate Extra!
OpenText (formerly Hummingbird) HostExplorer
IBM Personal Communications
Rocket BlueZone/Passport PC to Host
Quick3270
wc3270 (Windows version of c3270, free/libre Open Source software)
Apple macOS
The following commercial and free options are available:
EmTec ZOC
Mocha TN3270 (available via macOS App Store, free trial version also available)
x3270 suite (x3270, c3270)
x3270 is available by building the package from source or a software packaging system, such
as MacPorts or Homebrew. You must ensure that XQuartz is installed so that x3270 can run
because it is an X11 program.
To get the x3270 program on macOS by using Homebrew, use a command-line option to
build the brew from source the includes the --with-x11 option.
Another option on macOS before Catalina (10.15) is the tn3270 X program from Brown
University. This native Mac OSX program provides 3270 emulation, but it is a 32-bit
application. Apple removed support for 32-bit applications in macOS Catalina, and the
maintainers of the program said that they do not have resources to port the program to 64-bit.
Linux
The x3270 suite is the main option for 3270 emulation on Linux. Most distributions provide an
x3270 package; for example, the package x3270-x11 provides the x3270 program and
x3270-text provides c3270 on Red Hat and Fedora.
Mobile applications
Mobile device users can also get 3270 emulation programs. Various options are available,
such as Mocha TN3270 and Glink 3270 on iOS, iPadOS, and Android.
Web-to-host platforms
Several systems can provide 3270 access by using a web browser. These systems remove
the requirement to have a program installed on a workstation. They also permit access by
using Java applets or HTML5-style rendering in a browser. Most of these systems also
support the transformation of 3270-style data into more “web-native” formats. These products
and systems include the following examples:
Rocket BlueZone/Passport Web to Host
h3270 (Open Source)
Customizing your 3270 emulator on the front end can save time later.
© Copyright IBM Corp. 2015, 2016, 2021. All rights reserved. 475
Related books and publications
The following publications can be used as information sources:
z/VM installation guide
You want to have a copy of z/VM 7.2.0 Installation Guide, GC24-6292, to use as reference.
Documentation for Linux on IBM Z and LinuxONE is available at this web page.
z/VM Internet Library
Online documentation is at this web page.
The following useful publications are available at this web page:
– z/VM CP Messages and Codes
– z/VM TCP/IP Messages and Codes
– z/VM CP Commands and Utilities Reference
– z/VM CP Planning and Administration
– z/VM Getting Started with Linux on System z
– z/VM TCP/IP Planning and Customization
– z/VM Performance Toolkit Guide, SC24-6156
– z/VM Performance Toolkit Reference, SC24-6157
z/VM configuration and performance information from Dr. Brian Wade:
– CPU Utilization in an SMT World
– Topics in LPAR Performance
Linux on IBM Z and LinuxONE Troubleshooting Guide, SC34-2612
z/Architecture Principles of Operation, SA22-7832
The authoritative source of detailed information for the how and why IBM Z and LinuxONE
systems work; often referred to as The Z POp.
IBM DeveloperWorks guides
– How to Improve Performance with PAV (Kernel 2.6.35), SC33-8414
– How to use FC-attached SCSI devices with Linux on z Systems (Kernel 4.0),
SC33-8413
– How to Set up a Terminal Server Environment, SC34-2596
– Linux Channel Bonding Best Practices and Recommendations
Linux390 reference documentation on IBM DeveloperWorks
The following documents are available at this web page:
– Kernel Messages (Kernel 4.19), SC34-2599
– Pervasive Encryption for Data Volumes, SC34-2782
– Getting Started with Pervasive Disk Encryption, SC34-2783
– libica Programmer’s Reference, SC34-2602
– Secure Key Solution with the Common Cryptographic Architecture Application
Programmer's Guide, SC33-8294
– Exploiting Enterprise PKCS #11 using openCryptoki, SC34-2713
Linux distribution-specific materials: SUSE Linux Enterprise Server 12 on IBM z Systems
Online resources
The following websites and URLs are also relevant as further information sources:
The z/VM customer presentation library page:
http://www.ibm.com/vm/library/presentations/
The Linux for z Systems and S/390 portal:
http://linuxvm.org
The IBMVM list server:
http://listserv.uark.edu/archives/ibmvm.html
The linux-390 list server:
http://www2.marist.edu/htbin/wlvindex?linux-390
Red Hat Enterprise Linux Server no-charge evaluation download for IBM z Systems:
http://www.redhat.com/en/technologies/linux-platforms/enterprise-linux
SUSE Linux Enterprise Server no-charge evaluation download for IBM z Systems:
https://www.suse.com/products/server/download/systemz.html
z/VM publications:
http://www.vm.ibm.com/pubs/
z/VM performance tips:
http://www.vm.ibm.com/perf/tips/
z/VM VDISK for Linux swap performance tips:
http://www.ibm.com/vm/perf/tips/lxswpvdk.html
SYSTEM CONFIG PMAINT CF0 This file is the operating system’s main configuration file. It
defines the system name, control program (CP) volumes, user
volumes, and other settings.
USER DIRECT MAINT 2CC This file is the initial z/VM user directory. All virtual machines
that are known to the system are defined here. If a directory
maintenance product is in use, this file is no longer
authoritative.
PROFILE TCPIP TCPMAINT 198 This file defines the resources for the primary z/VM TCP/IP
stack, including the TCP/IP address, Open Systems Adapter
(OSA) resources, subnet mask, and gateway. It is initially
created by the IPWIZARD tool as PROFILE TCPIP.
SYSTEM DTCPARMS TCPMAINT 198 This file is created to define the TCP/IP stacks on the system.
It is initially created by the IPWIZARD tool.
TCPIP DATA TCPMAINT 592 This file defines the Domain Name System (DNS) server, the
domain name, and other settings. It is initially created by the
IPWIZARD tool.
PROFILE EXEC AUTOLOG1 191 This file is a REXX EXEC that is run when the system starts. It
is analogous to the /etc/inittab file in Linux.
Line commands
Do not include the angle brackets (< >) in your commands:
a Add a line.
a<n> Add <n> lines.
c/<old>/<new>/<n> <m>
Search for string <old> and replace it with <new> for <n> lines below
the current line and <m> times on each line. An asterisk (*) can be
used for <n> and <m>.
/<string> Search for ‘string’ from the current line.
-/<string> Search backwards for ‘string’.
all /<string>/ Show all occurrences of ‘string’ and hide other lines.
bottom Move to the bottom of the file.
top Move to the top of the file.
down <n> Move down ‘n’ lines.
up <n> Move up ‘n’ lines.
file Save the current file and exit XEDIT.
ffile Save the current file and exit but do not warn of overwrite.
save Save the current file but do not exit.
quit Exit XEDIT if no changes were made.
qquit Exit XEIDT even if changes were not saved.
left <n> Shift ‘n’ characters to the left.
right <n> Shift ‘n’ characters to the right.
get <file> Copy file and insert past the current line.
input Enable INPUT mode to insert multiple lines of text, beginning at the
current line.
:<n> Move to line ‘n’.
? Display the last command.
= Execute the last command.
x <file> Edit ‘file’ and put it into the XEDIT “ring”.
x Move to the next file in the ring.
You may also want to refer to “Online resources” on page 477, for a more expansive XEDIT
summary option.
A vi cheat sheet
The following list is a small subset of vi commands that are most commonly used. The vi
editor has three modes:
Input mode: The Insert key, i, o (add a line below), O (add a line above), and other
commands put you in this mode where you can type text into the file. When you are in this
mode, you see the text --INSERT-- in the last line.
Command mode: The Esc key takes you out of input mode and into command mode. You
can issue the following commands:
i Brings you back to input mode.
dd Deletes a line and puts it in the buffer.
<n>dd Delete <n> lines.
x Delete a character.
dw Delete a word.
p Add the buffer past the current location.
P Add the buffer before the current location.
o Add a line and go into insert mode.
/string Search for string.
n Execute the last command again (This function can be powerful).
jkl; Cursor movement.
A Add text at the end of the line.
<nn>G Go to line <nn>.
G Go to the last line in the file.
yy Yank a line (copy into buffer).
<n>yy Yank n lines.
Tip:
Print out these pages that comprise the planning worksheet so you can physically write on
them to complete each section. We recommend that you use simplex mode (printing only
on one side of each piece of paper). You will have an easier time completing the sheets
when you do not have to flip back and forth as much. In addition, if you choose to then scan
your completed sheets for reference/archive purposes, this can greatly simplify that task as
well.
IBM Shop Z
If you are ordering z/VM by using Shop Z, as described in section 5.1, “Obtaining z/VM
through electronic download” on page 98, use Table B-2 to record the values that you will use.
Shop Z home page: http://www.ibm.com/software/shopzseries
User ID
Order number
Order name
Date/Time
HMC user ID
Product install target F (SFS filepool) Leave set to the default value of F for all
M (minidisk)
Language AMENG Select AMENG (American English)
UCENG
DASD model 3390 10016 3390 10016 is a reference to 3390 Model-9. If
you are installing to a larger disk size, overtype
3390 _________ 10016 with the cylinder count for the disks you
will use.
Automatic configuration NO
INSTPLAN worksheet 3
Complete Table B-6 to record the volume labels and real device addresses that are required
in the Installation Volume Definition INSTPLAN panel.
INSTPLAN worksheet 4
Complete the worksheet in Table B-7 to record the common volume and channel-to-channel
(CTC) addresses that are required in the INSTPLAN panel. This panel is shown at the end of
5.6.1, “Copying in-memory z/VM system to DASD” on page 124.
If only two members exist in the SSI, you need to specify only two pairs of CTCs (from
member 1 to member 2, and vice versa).
Interface name
OSA starting device number Start of OSA triplet for z/VM TCP/IP stack.
Primary OSA device for virtual Specify the first real device number and the
switch next two device numbers will also be used.
TCP/IP address
User/password
NFS-exported installation
directory
Use the worksheet in Table B-11 to document your Linux on z Systems resources.
© Copyright IBM Corp. 2015, 2016, 2021. All rights reserved. 489
Locating the web material
The web material that is associated with this book is available on the Internet. You can obtain
this material at the following URL:
http://ibm.com/vm/pubs/redbooks/sg248147
The additional web materials that accompany this book are in the following file:
File name Description
SG248147.tgz Code samples in compressed tar format
Within the tar file, the directory SG248147/ contains the following subdirectories and files:
disclaimer.txt Legal disclaimer
README.txt Description file
rhel64/ Directory with files for RHEL 6.4
rhel64/clone-1.0-11.s390x.rpmRHEL 6.4 clone RPM
sles11sp3/ Directory with files for SLES 11 SP3
sles11sp3/clone.sh SLES 11 SP3 clone script
sles11sp3/linux5.xmlAutoYaST profile
sles11sp3/boot.cloneInit script for new clones
sles11sp3/jeos.tgz Files that are associated with kiwi
vm/ Directory with files for z/VM
vm/lnxmaint/ Directory with files for LNXMAINT 192
vm/lnxmaint/rhel64.execEXEC to start an RHEL 6.4 installation
vm/lnxmaint/sample.parm-rh6Sample RHEL 6.4 parameter file
vm/lnxmaint/sample.conf-rh6Sample RHEL 6.4 configuration file
vm/lnxmaint/sample.parm-s11Sample SLES 11 SP3 parameter file
vm/lnxmaint/profile.execSample PROFILE EXEC for Linux IDs
vm/lnxmaint/sles11s3.execEXEC to start an SLES 11 SP3 installation
vm/lnxmaint/swapgen.execEXEC to define VDISK swap spaces
vm/maint/ Directory with files for MAINT 191
vm/maint/callsm1.execEXEC to test Systems Management API (SMAPI)
vm/maint/cpformat.execEXEC to format multiple DASD volumes
vm/maint/ssicmd.execEXEC to run a command on all single system
image (SSI) members
CPFORMAT EXEC
The following code is for the EXEC that formats multiple DASD using CPFMTXA. It is described
in 6.12, “Enabling z/VM basic system automation” on page 196.
/*************************************************************/
/* */
/* This program is provided on an "AS IS" basis, without */
/* warranties or conditions of any kind, either express or */
/* implied including, without limitation, any warranties */
/* or conditions of title, non-infringement, */
/* merchantability or fitness for a particular purpose. */
/* Neither recipient nor any contributors shall have any */
/* liability for any direct, indirect, incidental, */
/* special, exemplary, or consequential damages (including */
/* without limitation lost profits), however caused and on */
/* any theory of liability, whether in contract, strict */
/* liability, or tort (including negligence or otherwise) */
/* arising in any way out of the use or distribution of */
/* the program or the exercise of any rights granted */
/* hereunder, even if advised of the possibility of such */
/* damages. */
/* */
/*************************************************************/
/* */
/* Purpose: */
/* CP format one, a range or multiple ranges of DASD. */
/* and label these DASDs. */
/* */
/* Inputs: */
/* dasds - address(es) of the DASD to format. */
/* type - type of formatting to be done: PERM, PAGE, SPOL */
/* or TEMP. */
/* */
/* Output: */
/* Virtual DASD that is CP formatted and labeled. */
/* */
/* Return codes: */
/* 0 - success */
/* 1 - help was asked for or given */
/*+------------------------------------------------------------------+*/
help:
Procedure Expose firstchar
/*+------------------------------------------------------------------+*/
Parse Source . . fn .
Say
Say 'Synopsis:'
Say
Say ' Format and label DASD as page, perm, spool or temp disk space'
Say ' The label written to each DASD is' firstchar || '<t><xxxx> where:'
Say ' <t> is type - P (page), M (perm), S (spool) or T (Temp disk)'
Say ' <xxxx> is the 4 digit address'
Say
Say 'Syntax is:'
Say " <---------------< "
Say " >>--CPFORMAT--.-vdev--------.--AS---.-PERM-.---------><"
Say " '-vdev1-vdev2-' '-PAGE-'"
Say " '-SPOL-'"
Say " '-TEMP-'"
Say
Exit 1
/*+------------------------------------------------------------------+*/
areYouSure:
Procedure
/*| Warn the user of possible data loss and ask if it is okay to |*/
/*| format the DASD. |*/
/*| parm 1: format type for the virtual DASD |*/
/*| retVal: first character of response. continue if 'Y'. |*/
/*+------------------------------------------------------------------+*/
getLabelPrefix:
Procedure expose firstchar
/*| Return the second character of the virtual DASD label |*/
/*| parm 1: format type for the virtual DASD |*/
/*+------------------------------------------------------------------+*/
Arg type .
firstchar. = 0
firstchar.PERM = 'M'
firstchar.PAGE = 'P'
firstchar.SPOL = 'S'
firstchar.TEMP = 'T'
If firstchar.type = 0 Then Do
/* Incorrect formatting type specified. Provide help and quit. */
Say 'Error: "AS" must be present, type must be PERM, PAGE, SPOL or TEMP'
Call help
End
Return firstchar.type
/*+------------------------------------------------------------------+*/
parseDASD:
Procedure Expose dasdList.
/*| parse all dasd into an array verifying all are attached |*/
/*| parm 1: dasds - the list of dasd passed in |*/
/*| retVal: number of DASD in dasdList |*/
/*+------------------------------------------------------------------+*/
Arg dasds
numDasd = 0
dropheader = ''
Say
Say 'Format the following DASD:'
Do While dasds <> ''
Parse Upper Var dasds dasd dasds
dashPos = 'POS'('-',dasd)
If dashPos = 0 Then Do
/* There is a singleton DASD specified. */
/* start and end of range are the same. */
startrange = dasd
endrange = dasd
End
/* process the range of DASD */
Else Parse Var dasd startrange '-' endrange
Do i = 'X2D'(startrange) To 'X2D'(endrange)
numDasd = numDasd + 1
dasdList.numDasd = 'D2X'(i)
'PIPE CP QUERY MDISK' dasdList.numDasd 'LOCATION',
dropheader,
/*+------------------------------------------------------------------+*/
doFormat:
Procedure Expose dasdList. formatted
/*| Format all DASD specified using CPFMTXA |*/
/*| parm 1: labelPrefix - the two character label prefix |*/
/*| parm 2: numDasd - number of DASD in the array dasdList |*/
/*| parm 3: type - the type of DASD format |*/
/*| retVal: 0 = success |*/
/*+------------------------------------------------------------------+*/
Arg labelPrefix numDasd type
/* Save the current settings for MORE */
Parse Value 'DIAG'('08','CP QUERY TERM') With ' MORE' morevalues ','
'CP TERM MORE 1 1' /* Make MORE brief */
/*+------------------------------------------------------------------+*/
doReport:
Procedure Expose dasds formatted
/*| Report on the newly labelled DASD |*/
/*| parm 1: formatSuccess - 0=all is well, non-0= a format failed |*/
/*| retVal: 0 = success |*/
/*+------------------------------------------------------------------+*/
Arg formatSuccess
If formatSuccess <> 0 Then
Say 'Error was encountered! retVal from CPFMTXA =' formatSuccess
If formatted = '' Then
Say 'No DASD were successfully formatted'
Else
Say 'DASD successfully formatted:' formatted
'CP DETACH' dasds
'CP ATTACH' dasds '*'
Say
Say 'DASD status after:'
'CP QUERY MDISK' dasds 'LOCATION'
Return 0 /* from doReport */
/*+------------------------------------------------------------------+*/
formatOne:
Procedure
/*| Format a DASD via DDR |*/
/*| parm 1: disk - the vaddr to be formatted |*/
/*| parm 2: type - PERM, PAGE, SPOL or TEMP |*/
/*| parm 3: label - the six character label |*/
/*+------------------------------------------------------------------+*/
Arg disk type label
Queue 'FORMAT'
Queue disk
Queue '0 END'
Queue label
Queue 'YES'
Queue type '0 END'
Queue 'END'
/*+------------------------------------------------------------------+*/
AddOwnerInfo:
Procedure
/*| Tag PAGE, SPOL and TDSK volumes with SSI |*/
/*| parm 1: disk - the vaddr to be formatted |*/
/*| parm 2: type - PERM, PAGE, SPOL or TEMP |*/
/*| parm 3: label - the six character label |*/
/*+------------------------------------------------------------------+*/
Arg disk label SSIname systemID
Queue 'OWNER'
Queue disk
Queue label
Queue SSIname
Queue systemID
'EXEC CPFMTXA'
retVal = rc
Return retVal /* from addOwnerInfo */
SSICMD EXEC
The following code is for the EXEC that issues control program (CP) commands on all joined
members of a single system image (SSI) cluster. It is recommended to be on the MAINT 191
disk.
/*************************************************************/
/* */
/* This program is provided on an "AS IS" basis, without */
/* warranties or conditions of any kind, either express or */
/* implied including, without limitation, any warranties */
/* or conditions of title, non-infringement, */
/* merchantability or fitness for a particular purpose. */
/* Neither recipient nor any contributors shall have any */
/* liability for any direct, indirect, incidental, */
/* special, exemplary, or consequential damages (including */
/* without limitation lost profits), however caused and on */
/* any theory of liability, whether in contract, strict */
/* liability, or tort (including negligence or otherwise) */
/* arising in any way out of the use or distribution of */
/* the program or the exercise of any rights granted */
/* hereunder, even if advised of the possibility of such */
/* damages. */
/* */
/*************************************************************/
/* */
/* Purpose: */
/* Issue a command on all members of a cluster using the */
/* response from QUERY SSI to find the member names. */
/* */
/* Inputs: */
/* cmd - the CP command to issue on each member. */
/* */
help:
/* Provide syntax information to the user */
Say 'SSICMD cmd'
Say
Say 'cmd is a command to be issued on each of the members'
Say ' in the SSI cluster using the AT command.'
Exit
RHEL64 EXEC
This section lists the code for the RHEL64 EXEC that starts an RHEL 6.4 installation. It is
recommended to be on the LNXMAINT 192 disk.
/*************************************************************/
/* Punch a RHEL 6.4 install system to reader and IPL it */
/* Input files: RHEL64 KERNEL, <ID> PARM-RH6, RHEL64 INITRD */
/*************************************************************/
Address 'COMMAND'
'CP SPOOL PUN *'
'CP CLOSE RDR'
'CP PURGE RDR ALL'
'PUNCH RHEL64 KERNEL * (NOHEADER'
'PUNCH' 'USERID'() 'PARM-RH6 * (NOHEADER'
'PUNCH RHEL64 INITRD * (NOHEADER'
'CP CHANGE RDR ALL KEEP'
'CP IPL 00C CLEAR'
Exit
SLES11S3 EXEC
This section lists the code for the sles11s3 EXEC that starts a SLES 11 SP3 installation. It is
recommended to be on the LNXMAINT 192 disk.
/* Punch a SLES 11 SP3 install system to reader and IPL it */
/*************************************************************/
Address 'COMMAND'
'CP SPOOL PUN *'
'CP CLOSE RDR'
'CP PURGE RDR ALL'
'PUNCH SLES11S3 KERNEL * (NOHEADER'
'PUNCH' 'USERID'() 'PARM-S11 * (NOHEADER'
'PUNCH SLES11S3 INITRD * (NOHEADER'
'CP CHANGE RDR ALL KEEP'
'CP IPL 00C CLEAR'
Exit
Sample files
This section lists the sample files that are described in the book.
#+--------------------------------------------------------------------------+
function help
# give help
#+--------------------------------------------------------------------------+
{
echo "Usage: clone [-v] sourceID targetID [rootMinidisk [minidisk1
minidisk2..]]"
echo " Switches"
echo " -v Verbose output"
echo " Required"
echo " sourceID the z/VM user id you want to clone from"
echo " targetID the z/VM user id you want to clone to"
#+--------------------------------------------------------------------------+
function cp_cmd
# echo a CP command and invoke it via cp_cmd
# Arg1-n: the z/VM command to issue
# Return: the z/VM command's return code
#+--------------------------------------------------------------------------+
{
[ -n "$VERBOSE" ] && echo "Invoking CP command: $@"
out=$(vmcp $@ 2>&1)
rc=$?
#+--------------------------------------------------------------------------+
function copy_key
# If the host has a id_dsa.pub file then append that to the clone's
# authorized_keys file.
#+--------------------------------------------------------------------------+
{
if [ -e /root/.ssh/id_dsa.pub ] ; then
[ ! -d /mnt/clone/root/.ssh/ ] && mkdir -p /mnt/clone/root/.ssh/
echo "# LNXINST" >> /mnt/clone/root/.ssh/authorized_keys
cat /root/.ssh/id_dsa.pub >> /mnt/clone/root/.ssh/authorized_keys
chmod 600 /mnt/clone/root/.ssh/authorized_keys
fi
}
#+--------------------------------------------------------------------------+
function abort
# Exit the script and clean up
#+--------------------------------------------------------------------------+
{
umount_cloned_image
set_offline $CLONE_LINK
set_offline $MASTER_LINK
unlink_one $CLONE_LINK
unlink_one $MASTER_LINK
exit $1
}
# If there are still command line arguments then the user must have specified
DASD
# on the command line. Unset whatever we have in DASD (from the config files)
and
# set DASD equal to the rest of the arguments.
[ $# -gt 0 ] && DASD="$@" && unset DASD_ROOT
# Loop through all of the values that we require and double check that they have
# values. If they don't then we will prompt the user to fill them in.
for v in HOSTNAME IPADDR DNS GATEWAY NETMASK MTU SUBCHANNELS SEARCHDNS NETTYPE
DASD
do
if [ -z "$(eval echo \$$v)" ]; then
[ "$PROMPT" != "y" ] && echo "Error: missing required value for $v" && exit 1
[ -z "$first" ] && echo "Please enter $target_linux_id's value for: " &&
first=1
echo -n "$v: "
read in
eval $(echo $v=\"$in\")
export $v
echo "$v=$in" >> /etc/clone/${target_linux_id}.conf
fi
done
# Grab just the hostname with out any DNS suffixes from the FQDN
target_host=$(echo $target_fqhost | awk -F. '{print $1}')
}
#+--------------------------------------------------------------------------+
function dd_copy
# Use the dd command to copy one disk to another
# Arg 1: Source minidisk - assumed to be online
# Arg 2: Target minidisk - must be brought online and dasdfmt'd
#+--------------------------------------------------------------------------+
{
ret_val=0
source_mdisk=$1
target_mdisk=$2
wait_for_device /dev/$target_dev_node
ret_val=$?
return $ret_val
}
#+--------------------------------------------------------------------------+
function link_one
# This will link one minidisk from another user id as the target minidisk
# address on the current z/VM user id with a link mode indicated by the
# 4th argument.
#
# Arg1: Source z/VM ID
# Arg2: Source minidisk virtual address
# Arg3: Target minidisk virtual address
# Arg4: Link mode (rr/w)
#+--------------------------------------------------------------------------+
{
source_id=$1
source_mdisk=$2
target_mdisk=$3
link_mode=$4
#+--------------------------------------------------------------------------+
function unlink_one
# This will unlink a minidisk from the current z/VM user id.
# Arg1: The target minidisk to unlink
#+--------------------------------------------------------------------------+
{
cp_cmd DETACH $1
return $?
}
#+--------------------------------------------------------------------------+
function copy_one
# Try to use z/VM FLASHCOPY to copy one disk to another. If that fails,
#+--------------------------------------------------------------------------+
function copy_disks
# Call copy_one to copy each disk passed in as an argument.
# Arg1-n: The minidisk address to copy
#+--------------------------------------------------------------------------+
{
[ -n "$VERBOSE" ] && echo "Copying minidisks..."
while [ $# -gt 0 ]; do
link_one $source_linux_id $1 $MASTER_LINK RR
link_one $target_linux_id $1 $CLONE_LINK W
copy_one $MASTER_LINK $CLONE_LINK
[ $? -eq 0 ] && echo "$1 disk copied ..."
unlink_one $MASTER_LINK
unlink_one $CLONE_LINK
shift
done
}
#+--------------------------------------------------------------------------+
function link_disks
# Call link_one to link each disk passed in as an argument.
# Arg1-n: The minidisk address to link
#+--------------------------------------------------------------------------+
{
[ -n "$VERBOSE" ] && echo "Linking minidisks for LVM..."
while [ $# -gt 0 ]; do
link_one $target_linux_id $1 400$# W
set_online 400$#
[ $? -eq 0 ] && echo "$1 disk linked ..."
shift
done
}
#+--------------------------------------------------------------------------+
function ask_are_you_sure
# Ask "Are you sure?" - if not, then exit
#+--------------------------------------------------------------------------+
{
echo ""
echo "This will copy disks from $source_linux_id to $target_linux_id"
echo "Host name will be: $HOSTNAME"
echo "IP address will be: $IPADDR"
echo -n "Do you want to continue? (y/n): "
read ans
if [ $ans != "y" ]; then
abort 1
fi
}
#+--------------------------------------------------------------------------+
function check_logged_off
# Verify the user ID exists and is logged off
# Arg1: The user id to query if it is logged on or not
#+--------------------------------------------------------------------------+
{
cp_cmd QUERY $1
case $? in
0) # user ID is logged on or disconnected
echo "$1 user ID must be logged off"
exit 2
;;
3) # user ID does not exist
echo "$1 user ID does not exist"
exit 3
;;
45) # user ID is logged off - this is correct
;;
*) # unexpected
echo "$1 user ID must exist and be logged off"
exit 4
esac
}
sed -i \
-e "s/HOSTNAME=.*/HOSTNAME=$HOSTNAME/g"\
-e "s/GATEWAY=.*/GATEWAY=$GATEWAY/g"\
$CLONE_MNT_PT/etc/sysconfig/network
sed -i \
-e "s/IPADDR=.*/IPADDR=$IPADDR/g"\
-e "s/MTU=.*/MTU=$MTU/g"\
-e "s/NETMASK=.*/NETMASK=$NETMASK/g"\
-e "s/SUBCHANNELS=.*/SUBCHANNELS=$SUBCHANNELS/g"\
-e "s/NETTYPE=.*/NETTYPE=$NETTYPE/g"\
$CLONE_MNT_PT/etc/sysconfig/network-scripts/ifcfg-eth0
copy_key
}
#+--------------------------------------------------------------------------+
function set_offline
# This will set offline the target minidisk.
# Arg1 - Minidisk virtual address to set offline
#+--------------------------------------------------------------------------+
{
target_mdisk=$(echo $1 | tr 'A-Z' 'a-z')
chccwdev -d 0.0.$target_mdisk > /dev/null 2>&1
rc=$?
#if [ $rc -ne 0 ]; then
# echo "Error: chccwdev -d 0.0.$1 failed with $rc - ignoring"
#fi
return $rc
}
#+--------------------------------------------------------------------------+
function mount_cloned_image
# This will mount the cloned root filesystem. It will pair a minidisk
# address to a device file and then mount the first partition.
# Arg1: The minidisk address to mount
#+--------------------------------------------------------------------------+
{
target_mdisk=$1
wait_for_device /dev/${target_dev_node}1
[ $? -ne 0 ] && echo "Error: timed out waiting for /dev/${target_dev_node}1" &&
abort 1
#+--------------------------------------------------------------------------+
function mount_cloned_image_lvm
# This will mount the cloned root filesystem. It will pair a minidisk
# address to a device file and then mount the first partition.
# Arg1: The minidisk address to mount
#+--------------------------------------------------------------------------+
{
target_mdisk=$1
#+--------------------------------------------------------------------------+
function umount_cloned_image
# Unmount the cloned root filesystem
#+--------------------------------------------------------------------------+
{
/bin/umount $CLONE_MNT_PT >/dev/null 2>&1
return $?
}
#+--------------------------------------------------------------------------+
function check_for_conf
# Check that the configuration file exists for the ID that we are cloning to.
#+--------------------------------------------------------------------------+
{
if [ ! -f /etc/clone/${target_linux_id}.conf -a "$PROMPT" != "y" ]; then
echo "Error: /etc/clone/${target_linux_id}.conf not found. Exiting"
exit
fi
}
#+--------------------------------------------------------------------------+
function check_for_vmcp
# Check that the vmcp module is loaded and the vmcp binary is installed.
#+--------------------------------------------------------------------------+
{
# Check that vmcp exists and is executable
[ ! -x /sbin/vmcp ] && echo "Error: can't find /sbin/vmcp" && exit
wait_for_device /dev/vmcp
[ $? -ne 0 ] && echo "Error: timed out waiting for /dev/vmcp" && exit
}
#+--------------------------------------------------------------------------+
function wait_for_device
# Sleep until a certain file exists
# Arg1: The path of the file to sleep on.
#+--------------------------------------------------------------------------+
{
device=$1
sleep 2
for t in $(seq 1 20)
do
[ -e $device ] && return 0
sleep 1
done
return 1
}
#+--------------------------------------------------------------------------+
function autolog
# Issue an XAUTOLOG command to bring up the new cloned image.
#+--------------------------------------------------------------------------+
{
cp_cmd XAUTOLOG $target_linux_id
rc=$?
if [ $? != 0 ]; then
echo "xautolog $target_linux_id failed with $rc"
return 0
fi
echo "Booting $target_linux_id"
}
#+--------------------------------------------------------------------------+
# main()
# If one comnand line option was provided show the help message
if [ $# -lt 2 ]; then
echo "Error: incorrect number of arguments"
help
fi
# Check the blacklist, which prevents using the master image as a target.
if [ -f /etc/clone/blacklist.conf ]; then
. /etc/clone/blacklist.conf
BlackList=$(echo ${BLACKLIST} | tr "[:upper:]" "[:lower:]")
for Target in ${BlackList}
do
if [ "${Target}" == "${target_linux_id}" ]; then
echo "${target_linux_id} is blacklisted! Exiting!"
exit
fi
done
fi
# Check that the master and clone z/VM IDs are logged off.
check_logged_off $source_linux_id
check_logged_off $target_linux_id
#+--------------------------------------------------------------------------+
function help()
# give help
#+--------------------------------------------------------------------------+
{
echo "Usage: clone [options] from <sourceID> to <targetID>"
echo ""
echo " Clone Linux from sourceID 100 and 101 minidisks to targetID"
echo " options:"
echo " -v or --verbose: verbose"
echo ""
echo "Example: clone.sh from s11gold to linux01"
exit 1
}
#+--------------------------------------------------------------------------+
function processArguments()
# Parse command line arguments
# Args: The arguments passed in to the script
#+--------------------------------------------------------------------------+
{
verbose="off"
sourceID="none"
targetID="none"
while (( "$#" )); do
case $1 in
-v|--verbose)
verbose="on"
;;
from)
shift
sourceID=`echo $1 | tr '[a-z]' '[A-Z]'` # fold source ID to upper case
;;
to)
shift
targetID=`echo $1 | tr '[a-z]' '[A-Z]'` # fold target ID to upper case
;;
esac
shift
done
if [ $sourceID = "none" ]; then # source user ID was not passed
echo "Error: Source Linux user ID not supplied"
help
fi
if [ $targetID = "none" ]; then # target user ID was not passed
echo "Error: Target Linux user ID not supplied"
help
fi
#+--------------------------------------------------------------------------+
function CPcmd()
# echo a CP command and invoke it via the vmcp module/command
# Arg1-n: the command to issue
# Return: the command's return code
#+--------------------------------------------------------------------------+
{
echo "Invoking CP command: $@"
# parse output to get return code: awk -F# splits line at '#' with rc at end
output=`vmcp $@ 2>&1`
echo "$output"
retVal=0
retVal=`echo $output | grep "Error: non-zero CP response" | awk -F# '{print
$2}'`
return $retVal
}
#+--------------------------------------------------------------------------+
function checkID()
# Verify user ID exists and is logged off
# Arg 1: The user ID to check
#+--------------------------------------------------------------------------+
{
userID=$1
echo "Checking that $userID exists and is not logged on ..."
CPcmd QUERY $userID
rc=$?
case $rc in
0) # user ID is logged on or disconnected
echo "$userID user ID must be logged off"
exit 2
;;
3) # user ID does not exist
echo "$userID user ID does not exist"
exit 3
;;
45) # user ID is logged off - this is correct
;;
*) # unexpected
echo "Return code of $rc unexpected from QUERY $userID"
echo "User ID must exist and be logged off"
exit 4
esac
}
#+--------------------------------------------------------------------------+
function prepareIPaddr()
# Set the variable "newIPaddr" by adding a backslash before any "."s
# Arg 1: The IP address to be modified
#+--------------------------------------------------------------------------+
{
newIPaddr=`echo $1 | sed -e 's:\.:\\\.:g'`
}
#+--------------------------------------------------------------------------+
function copyDisk()
# Use FLASHCOPY to copy a disk, if it fails, fall back to dasdfmt then dd
# Arg 1: Source vaddr
# Arg 2: Target vaddr
#+--------------------------------------------------------------------------+
{
source=$1
target=$2
echo ""
echo "FLASHCOPYing $source to $target ..."
CPcmd FLASHCOPY $source 0 end to $target 0 end
if [ $? != 0 ]; then
echo "FLASHCOPY failed, falling back to dasdfmt and dd ..."
chccwdev -e $source
if [ $? != 0 ]; then exit 7; fi
chccwdev -e $target
if [ $? != 0 ]; then exit 8; fi
sleep 1
srcDev=/dev/$(egrep ^0.0.$source /proc/dasd/devices | awk '{ print $7 }')
if [ "$?" != 0 ]; then exit 5; fi
tgtDev=/dev/$(egrep ^0.0.$target /proc/dasd/devices | awk '{ print $7 }')
if [ "$?" != 0 ]; then exit 6; fi
echo "dasdfmt-ing $tgtDev ..."
dasdfmt -y -b 4096 -f $tgtDev
if [ "$?" != 0 ]; then exit 9; fi
echo "dd-ing $srcDev to $tgtDev ..."
dd bs=1M if=$srcDev of=$tgtDev oflag=sync
if [ "$?" != 0 ]; then exit 10; fi
sync
echo "disabling and re-enabling $target ..."
chccwdev -d $target
if [ $? != 0 ]; then exit 11; fi
chccwdev -e $target
if [ $? != 0 ]; then exit 12; fi
sync
#+--------------------------------------------------------------------------+
function askAreYouSure()
# Ask "Are you sure?" - if not, then exit
#+--------------------------------------------------------------------------+
{
echo ""
echo "WARNING!!: Minidisks 100 and 101 will be copied to $targetID"
echo "Network data is retrieved from $targetID PARM-S11 on 191 disk"
echo "during the first boot of $targetID"
echo -n "Are you sure you want to overwrite these disks (y/n): "
read ans
if [ $ans != "y" ]; then
echo "Aborting clone per user input"
exit 16
fi
}
#+--------------------------------------------------------------------------+
function copySystem()
# For each of two minidisks 100 and 101:
# -) Link disk
# -) Enable disk
# -) Copy disk
#+--------------------------------------------------------------------------+
{
echo "Linking source and target 100 disks ..."
CPcmd detach 1100
CPcmd link $sourceID 100 1100 rr
if [ $? != 0 ]; then exit 17; fi
CPcmd detach 2100
CPcmd link $targetID 100 2100 mr
if [ $? != 0 ]; then exit 18; fi
echo "Copying 100 disks ..."
copyDisk 1100 2100
echo "Take 1100 Offline...."
chccwdev -d 1100
CPcmd det 1100
CPcmd det 2100
# main()
processArguments $@ # process arguments passed by user
if [ $verbose = "on" ]; then set -vx; fi # turn on debug
checkID $sourceID # user ID must exist and be logged off
checkID $targetID # user ID must exist and be logged off
# getNetworkInfo # get info from parm files
askAreYouSure # confirm disks will be overwritten
copySystem # copy source disks to target
# modifyClone # modify newly copied system
echo "sleeping 10 seconds"
sleep 10
CPcmd XAUTOLOG $targetID # bring new clone to life
if [ $verbose = "on" ]; then set +vx; fi # turn off debug
echo "Successfully cloned $sourceID to $targetID"
exit 0
. /etc/rc.status
rc_reset
#+--------------------------------------------------------------------------+
function CPcmd()
# echo a CP command and invoke it via the vmcp module/command
# Arg1-n: the command to issue
#+--------------------------------------------------------------------------+
function prepareVaddr()
# Prepare an address by folding to lower case and prepending leading zeros
# to make it 4 digits
# Arg 1: The vaddr to be modified
# Return:
# The new value is written to the global variable newVaddr
#+--------------------------------------------------------------------------+
{
newVaddr=`echo $1 | tr '[A-Z]' '[a-z]'` # fold to lower case
let leadingZeros=4-${#1} # determine number of zeros to add
let i=0
while [ $i -lt $leadingZeros ]; do
newVaddr="0$newVaddr"
i=$[$i+1]
done
}
#+--------------------------------------------------------------------------+
function getUserid()
# Read current userid with vmcp q userid
#+--------------------------------------------------------------------------+
{
modprobe vmcp
UserID=$(CPcmd q userid | awk '{print $1}')
echo $UserID
}
#+--------------------------------------------------------------------------+
function getNetworkInfo()
# Bring 191 minidisk online to check for my parameter files
#+--------------------------------------------------------------------------+
{
# recycle 191 to pick up latest changes
chccwdev -d 191
chccwdev -e 191
rc=$?
if [ $rc != 0 ]; then # unable to enable 191 disk
echo "unable to enable 191, rc from chccwdev = $rc"
exit 13
fi
udevadm settle
#+--------------------------------------------------------------------------+
function createNetworkConfig()
# - remove existing network configuration if it exists
# - create new network configuration from information in CMS parmfile
# - update HOSTNAME, hosts, and resolv.conf
case "$1" in
start)
# update system configuration
userid=$(getUserid)
getNetworkInfo $userid
createNetworkConfig
cleanupSSH
chkconfig boot.clone off
rc_exit
The publications that are listed in this section are considered particularly suitable for a more
detailed discussion of the topics that are covered in this book.
IBM Redbooks
The following IBM Redbooks publications provide more information about the topic in this
document. Note that most publications that are referenced in this list are available in softcopy
only:
The Virtualization Cookbook for IBM z Systems Volume 2: Red Hat Enterprise Linux 7.1
Servers, SG24-8303
The Virtualization Cookbook for IBM z Systems Volume 3: SUSE Linux Enterprise Server
12, SG24-8890
The Virtualization Cookbook for IBM z Systems Volume 4: Ubuntu Server 16.04,
SG24-8354
Virtualization Cookbook for IBM Z Volume 5: KVM, SG24-8463
Fibre Channel Protocol for Linux and z/VM on IBM System z, SG24-7266
Security on z/VM, SG24-7471
Running Linux Guest in less than CP Privilege Class G, REDP-3870
Sharing and maintaining Linux under z/VM, REDP-4322
Linux on IBM System z: Performance Measurement and Tuning, SG24-6926
Accounting and Monitoring for z/VM Linux guest machines, REDP-3818
Systems Management APIs for z/VM, REDP-3882
An Introduction to z/VM Single System Image (SSI) and Live Guest Relocation (LGR),
SG24-8006
IBM Wave for z/VM Installation, Implementation, and Exploitation, SG24-8192
Introduction to the New Mainframe: z/VM Basics, SG24-7316
z/VM and Linux on IBM System z, SG24-7492
Using z/VM for Test and Development Environments: A Roundup, SG24-7355
Printing with Linux on zSeries Using CUPS and Samba, REDP-3864
Linux on IBM eServer zSeries and S/390: Performance Toolkit for VM, SG24-6059
Linux on IBM eServer zSeries and S/390: Application Development, SG24-6807
You can search for, view, download, or order these documents and other Redbooks,
Redpapers, Web Docs, draft and additional materials, at the following website:
ibm.com/redbooks
Online resources
The following websites are also relevant as further information sources:
z/VM:
– Installation:
http://www.ibm.com/vm/install
– Publications:
http://www.ibm.com/vm/pubs
– Technical library:
http://www.ibm.com/vm/library
– Security:
http://www.ibm.com/vm/security
– Performance:
http://www.ibm.com/vm/perf
– Performance tips:
http://www.ibm.com/vm/perf/tips
IBM Services
ibm.com/services
Join today
Visit the RFE Community on the DeveloperWorks section of ibm.com:
http://ibm.com/developerworks/rfe
SG24-8147-02
ISBN 0738459720
Printed in U.S.A.
ibm.com/redbooks