Adding DASD VolumesUpdated for Hercules 2.17.1
In order to create new DASD volumes on your MVS system, you need to complete three tasks:
Creating the DASD imageTo create the DASD image, you will need to execute the dasdinit program in a console window (or DOS window under Windows/??). The dasdinit executable is included in the Hercules distribution package. The command format is:
The -a parameter instructs dasdinit to create alternate tracks in the DASD image. Alternate tracks on physical devices are used for error recovery when bad tracks are encountered during I/O operations. Although alternate tracks are not utilized under Hercules' emulation, certain MVS utilities and programs will not function properly, if at all, without the presence of the alternate tracks. The <filename> parameter provides the name of the file on the host operating system (Linux, Windows/??, etc) in which the DASD image will be written. Note that dasdinit will not overwrite an existing file, so the name specified must not refer to an existing file. A convention used by some is to use the volume serial number as the name of the file and the address at which the DASD is attached as the extension, for example:
Another convention is to use the volume serial number as the name of the file and the DASD type as the extension, for example:
Whatever naming convention you choose to use for the host operating system file is up to you. The <devtype> parameter specifies the type of DASD image: 2314, 3330, 3350, etc. Hercules version 2.17.1 is the first version in which I have been able to use dasdinit to create 3330-11 images and utilize them under MVS. Note that there is a quirk to getting this to work: you specify 3330-1 to dasdinit for the 808 cylinder 3330 DASD image (3330 as a <devtype> will builld the 404 cylinder image); and in MVS JCL you specify UNIT=3330-1 on the DD statement to access the 808 cylinder DASD (again plain UNIT=3330 tells MVS you are accessing the 404 cylinder DASD). If you are putting an entry in VATLST00, you also use 3330-1 for the 808 cylinder DASD. If you use the D U,DASD command on the operator console, the 808 cylinder DASD will be displayed with a UNIT number of 3331, but MVS is the only one who gets to refer to the larger capacity 3330s in this manner. The <volser> parameter specifies the volume serial number written to the DASD image and provides the means for MVS to uniquely identify each volume from other DASD volumes. There must not be multiple DASD volumes visible to MVS with the same volume serial number. Since the initialization process (task three in the list above) will rewrite the volume serial number, I usually specify SCRTCH or 111111 as the volume serial number to dasdinit, and then assign the volume serial number that I plan to use for the volume during the initialization on the MVS system. An extensive table of DASD
geometry information, which includes the number of data and alternate cylinders,
is available in message
#2833. A second source of geometry information is the table available
from the files section in disk-sizes.txt).
Beginning with version 2.17 of Hercules, it is not really necessary to know the
number of cylinders present in each of the DASD types, but these tables are
available if you would like to know how much storage is available for each of
the types. Attach the DASD image to HerculesIn order to attach an emulated device to Hercules while it is running, you will need to be in the text console display because there is no equivalent command in the graphical display. The command syntax is:
The <address> parameter specifies the hardware address at which the device is to be attached and consists of the Channel and Unit Address (cuu). The address you use will depend upon the configuration that was specified during System Generation and must be an available address generated for the type of device you are attempting to attach (ie, if the device you are attempting to attach is a 3330 DASD, the address you use must have been generated for a 3330 DASD). The <devtype> parameter specifies the type of DASD image: 2314, 3330, 3350, etc. It doesn't seem to matter to Hercules whether the DASD image specified with <devtype> 3330 is the 3330-1 or 3330-11 (404 and 808 cylinders respectively) as MVS does just fine with a plain old 3330 specified here. The <filename> parameter provides the name of the file on the host operating system in which the DASD image is contained (where it was written by dasdinit). Note that if you are using a directory structure to organize your DASD files in a subdirectory beneath the directory where Hercules was started, you will need to include a path designation. Since my DASD image files are contained in the 'dasd' subdirectory under the directory where I start Hercules, my filenames are in the form of:
The separator characters in the path name may be either a forward slash (/) or a backward slash (\). Since I use both Windows/?? and Linux, I typically use the forward slash to maintain compatibility. In order to permanently add an emulated DASD volume to Hercules, you will need to add a line to your Hercules configuration file referencing the volume. The syntax of this line is:
Because the DASD needs to be initialized before it can be used
by MVS, I prefer to dynamically add a DASD device, initialize it, and then make
the addition of the device to the configuration file. This avoids any
problems that might be caused by MVS attempting to access an uninitialized DASD
volume during IPL. Initialize the DASD image for use by MVSAlthough the dasdinit program creates the DASD image, MVS requires additional information that is not written by dasdinit, specifically a Volume Table of Contents (VTOC) needs to be written to the image. To accomplish that, you need to use one of the two DASD initialization utilities - IEHDASDR or ICKDSF. It is also possible to use the stand alone disk initialization program - IBCDASDI - and if you look at my MVS installation instructions you will find a Hercules' configuration file and job control statements for this program. Although I cannot say why, I have never been successful using ICKDSF to initialize 3330 volumes. (The messages issued indicate that ICKDSF erroneously recognizes the 3330-1 image as a 3330-11.) Conversely, I have never been able to get IEHDASDR to successfully initialize 3350 volumes. (IEHDASDR always reports a wrong length record error reading the 3350 image.) So my instructions are for using IEHDASDR to initialize a 3330 DASD image and for using ICKDSF to initialize a 3350 and 3380 DASD images. IEHDASDR will not initialize 3380 volumes. None of the MVS utilites may be used to initialize 3390 DASD volumes; you must use the dasdload utility (included with Hercules) to create 3390 volumes for use under MVS. In order to use either MVS utility, the volume to be initialized must be offline. If you have dynamically added the volume to Hercules while MVS is already running under Hercules, the volume is 'offline' by default. However, if you added the volume to the configuration file and IPLed MVS, you will need to vary the device offline. On the MVS console, enter these two commands:
The <address> parameter specifies the address of the DASD
device to be placed in offline status. The second command starts a
cataloged procedure which runs IEFBR14 to allow MVS to process the vary command
and place the volume offline Using IEHDASDR to initialize a 3330 volumeThe JCL to initialize a 3330 volume using IEHDASDR is:
The TODD=<address> in the control card specifies the address at which the DASD image to be initialized is attached to Hercules. The VTOC=1 specifies the track at which the VTOC is to begin. On physical disks, it was common practice to locate the VTOC in the middle of the volume for performance considerations. But under Hercules it is acceptable to place the VTOC at track 1. Note that track 0 is reserved for the volume serial number and so must not be used as the VTOC beginning address. The EXTENT=<tracks> specifies how many tracks to allocate to the VTOC. I typically allocate an entire cylinder to the VTOC, which is more than adequate and may actually be overkill. The NEWVOLID=<volser> specifies the volume serial number to be written to the pack. The JCL should be modified to meet your requirements and submitted to MVS. You will be asked to confirm that you actually want to initialize the volume at the address specified:
The reply of 'U' allows the initialization to proceed. At the conclusion of the process, a message is issued displaying the serial number that was written to the volume:
After the volume is initialized, it must be placed online before MVS will be able to utilize the volume. On the MVS console issue the commands:
The <address> parameter specifies the address of the DASD device to be placed in online status. The <volser> parameter specifies the volume serial number of the volume. The <useclass> parameter should specify STORAGE, PUBLIC, or PRIVATE. A description of these use attributes is included below under Storage Use Classes. If this is to be a permanent addition to your configuration, you
should add the volume to the VATLST member in SYS1.PARMLIB. The procedure
to accomplish this is discussed below under Adding a DASD
Volume to the VATLST. Using ICKDSF to initialize a 3350 (or 3380) volumeThe JCL to initialize a 3350 or 3380 volume using ICKDSF is:
The <address> parameter in the control card specifies the address at which the DASD image to be initialized is attached to Hercules. The <volser> parameter specifies the volume serial number to be written to the pack. The <extent> sub-parameter specifies how many tracks to allocate to the VTOC. I typically allocate an entire cylinder to the VTOC, which is more than adequate and may actually be overkill. The other positional sub-parameters in the VTOC parameter specify the cylinder and head, respectively, where the VTOC is to start. On physical disks, it was common practice to locate the VTOC in the middle of the volume for performance considerations. But under Hercules it is acceptable to place the VTOC at track 1. Note that track 0 is reserved for the volume serial number and so must not be used as the VTOC beginning address. The JCL should be modified to meet your requirements and submitted to MVS. You will be asked to confirm that you actually want to initialize the volume at the address specified:
The reply of 'U' allows the initialization to proceed. There will be a number of informational messages printed in the SYSPRINT output during the executing of ICKDSF. The most important thing to verify is that the return code for the job is 0000. After the volume is initialized, it must be placed online before MVS will be able to utilize the volume. On the MVS console issue the command:
The <address> parameter specifies the address of the DASD device to be placed in online status. The <volser> parameter specifies the volume serial number of the volume. The <useclass> parameter should specify STORAGE, PUBLIC, or PRIVATE. A description of these use attributes is included below under Storage Use Classes. If this is to be a permanent addition to your configuration, you
should add the volume to the VATLST member in SYS1.PARMLIB. The procedure
to accomplish this is discussed below. Adding a DASD Volume to the VATLSTThe VATLST00 member of SYS1.PARMLIB controls the mounting of DASD volumes at IPL. Each line of this member contains the information pertaining to a single DASD volume. You will need to add an entry (a line containing five parameters) for each DASD volume you add to your system. If you have TSO installed on your system, you can easily edit this member to make the addition. If you do not have TSO installed, you will have to use the MVS utility IEBUPDTE to make the changes. I will describe the process to use if TSO is not installed as that is the more difficult process. First you need to find out the current contents of VATLST00 and for that you can use the IEBPTPCH utility:
For my system, this produces the following output:
Note that the numbers in columns 73 through 80 are sequence numbers. The parameters specified for each volume are:
In order to add a new 3350 work volume to the VATLST00 entries shown above using IEBUPDTE, the following job would be used:
The sequence number of the card to be added (columns 73 through 80) is 00000031, which directs IEBUPDTE to place this new line following the lines already present in the VATLST00 member. At the next IPL after submission of this job, MVS will look for
a 3350 volume with the volume serial number WORK03 and the volume will be made
available as a STORAGE volume. Storage Use ClassesA DASD volume is always mounted with one of the following use attributes:
I hope that you have found my instructions useful. If you have questions that I can answer to help expand upon my explanations and examples shown here, please don't hesitate to send them to me:
This page was last updated on February 18, 2008 . |