zPET - IBM Z and z/OS Platform Evaluation and Test - Group home

z/OS V2R2 zFS 64-bit Kernel Executing in the z/OS UNIX (OMVS) Address Space

  

In z/OS V2R2, zFS caches were moved above the 2 GB bar into 64-bit storage. This alleviated some storage constraints and allowed zFS to be able to execute in the OMVS address space, which is used by z/OS UNIX. In z/OS V2R2, you can choose to execute zFS in a colony or in the z/OS UNIX address space.

 

In our sysplex, we configured some z/OS V2R2 LPARs to execute zFS in the z/OS UNIX address space. The following are the modifications we implemented. Note that there may be other ways to implement this ability.

 

If zFS is executed in the OMVS address space it is not started via its own PROC. When zFS parameters are provided via the IOEZPRM DD statement, this DD statement will have to reside in the OMVS PROC. Another method that can be used is to provide the zFS parameters using the parmlib search and the IOEPRMxx members. This parmlib search requires the PARM('PRM=xx,xx,xx') specification on the BPXPRMxx member FILESYSTYPE statement for TYPE(ZFS).

 

We chose to use the parmlib search method using the system symbol &SYSCLONE, which will resolve to IOEPRM and two characters identifying the system, and 01 resolving to IOEPRM01, which will be used as a base default parameter member. A set of common zFS parameters were placed in parmlib member IOEPRM01, and any system specific parameters or overrides of the common set were placed in parmlib member IOEPRMxx (xx=&SYSCLONE resolved).

 

In order to tell z/OS UNIX to start zFS in the OMVS address space, you have to remove any ASNAME() parameter on the FILESYSTYPE statement in the parmlib BPXPRMxx member used to start zFS.

 

One way we accomplished this was to provide the ‘PRM=()’ parameter and comment out the ASNAME parameter in the parmlib BPXPRM00 member. The following is an example of the statement.

/* V2R2 - for zFS in OMVS, remove the ASNAME */

  FILESYSTYPE TYPE(ZFS) ENTRYPOINT(IOEFSCM)

  PARM('PRM=(&SYSCLONE.,01)')

/* ASNAME(ZFS,'SUB=MSTR') */

 

To ensure the statements in parmlib member BPXPRM00 were valid, we issued the syntax checker on the system.

SETOMVS SYNTAXCHECK=(00)                             

 BPXO039I SETOMVS SYNTAXCHECK COMMAND SUCCESSFUL.

 

Note: On some LPARs we started OMVS with parameters like ‘OMVS=(xx,00)’, where xx would be the last two characters of a BPXPRMxx parmlib member. For systems where we wanted zFS in the OMVS address space, the BPXPRMxx member would contain the FILESYSTYPE TYPE(ZFS) statement without the ASNAME() parameter, thus will override the FILESYSTYPE TYPE(ZFS) statement with the ASNAME() parameter in BPXPRM00. This way we did not have to make modifications to the BPXPRM00 member each time we IPLed to either start zFS in OMVS (without the ASNAME() parameter) or in a colony (with the ASNAME() parameter).

 

When the system was IPLed, and OMVS and zFS were initialized, a zFS message displayed indicating the address space id (ASID) it is executing in. In the case where zFS is started in the OMVS address space it is the same ASID as the OMVS address space. It also indicated that the parmlib search is being used for zFS parameters. The following is an example.

 

IOEZ00559I zFS kernel: Initializing z/OS   zFS

Version 02.02.00 Service Level FA49051 - HZFS420.

Created on Thu Oct 8 10:52:03 EDT 2015.

Address space asid x12

IOEZ00374I No IOEZPRM DD specified in OMVS proc. Parmlib search being

used.

 

You can use the OMVS display PFS command to display that zFS is executing in the OMVS address space. In the display notice that the ASID for OMVS is the same as the zFS ASID indicated at initialization time. Also, the ZFS line in the display does not include an entry in the ASNAME field. This display also indicates any parameters used for the physical file systems (PFS). The following is an example of the display.

 

D OMVS,PFS

BPXO068I 15.01.25 DISPLAY OMVS

OMVS    0012 ACTIVE            OMVS=(ZO,00,Z1)

PFS CONFIGURATION INFORMATION

 PFS TYPE  ENTRY     ASNAME   DESC     ST   START/EXIT TIME

 AUTOMNT  BPXTAMD             LOCAL    A    2015/10/20 03.42.20

 NFS      GFSCINIT  NFSOECLI REMOTE   A    2015/10/20 03.42.19

 CINET    BPXTCINT            SOCKETS  A    2015/10/20 03.42.19

 UDS      BPXTUINT            SOCKETS  A    2015/10/20 03.42.19

 TFS      BPXTFS    TFS      LOCAL    A    2015/10/20 03.42.19

 HFS      GFUAINIT            LOCAL    A    2015/10/20 03.42.18

 ZFS      IOEFSCM             LOCAL    A    2015/10/20 03.42.14

 

 PFS TYPE DOMAIN       MAXSOCK OPNSOCK HIGHUSED

 CINET   AF_INET6       64000     768      857

          AF_INET        64000     468      475

 UDS     AF_UNIX        10000     138      140

 

 SUBTYPES OF COMMON INET

 PFS NAME  ENTRY     START/EXIT TIME      STATUS FLAGS

 TCPIP     EZBPFINI  2015/10/20 03.43.23  ACT    CD

  TCPIP34   EZBPFINI                        INACT

 TCPDOM1   EZBPFINI                        INACT

 TCPDOM2   EZBPFINI                        INACT

 TCPDOM3   EZBPFINI                        INACT

 

 PFS TYPE    FILESYSTYPE PARAMETER INFORMATION

 NFS         INITD,biod(6)

 HFS         SYNCDEFAULT(60) FIXED(256) VIRTUAL(2560)

              CURRENT VALUES: FIXED(256) VIRTUAL(2560)

 ZFS         PRM=(Z1,01)

 

 PFS TYPE STATUS INFORMATION

 AUTOMNT TIME=2015/10/20 13:32:25 SYSTEM=Z4      USER=OMVSKERN

          POLICY=/etc/auto.master

 TFS     GLOBAL SETTINGS: fsfull(99,5) ea 0 em 0

 

Since zFS is executing inside the OMVS address space, you have to communicate with zFS via OMVS. The commands need to be entered via a modify OMVS command. To accommodate this, the MODIFY OMVS command has a ‘PFS=’ parameter.

Note: On z/OS V2R2, you can use the new MODIFY OMVS ‘PFS=’ parameter to communicate to a zFS that is started in a colony, also.

 

The following is an example using the new parameter, ‘PFS=ZFS’.

 

F OMVS,PFS=ZFS,QUERY,LEVEL

IOEZ00639I zFS kernel: z/OS   zFS

Version 02.02.00 Service Level FA49051 - HZFS420.

Created on Thu Oct 8 10:52:03 EDT 2015.

sysplex(filesys,rwshare) interface(4)

IOEZ00025I zFS kernel: MODIFY command - QUERY,LEVEL completed successfully.

 

On z/OS V2R2, if you try to execute a zFS modify command when zFS is executing in the OMVS address space, you will receive a message like the following.

 

F ZFS,QUERY,LEVEL

IEE341I ZFS              NOT ACTIVE

 

Any automation or operator commands used to communicate with zFS while it is executing in the OMVS address space will have to be modified to accommodate the new format.

 

We automate commands to zFS upon certain times, events, or messages. Automation was modified to check for the z/OS release of the system. If the release is z/OS V2R2, then it issued the command via ‘F OMVS,PFS=ZFS,…’. If the release was prior to z/OS V2R2 (e.g. z/OS V2R1), then the command was issued using the ‘F ZFS,….’ Format.

Author: Alfred Lease