If you are re-creating a problem and need to collect a zFS trace,
use the following steps:
- Allocate the trace output data set as a PDSE, RECFM=VB, LRECL=133
with a primary allocation of at least 50 cylinders and a secondary
allocation of 30 cylinders.
- Define the zFS trace output data set to zFS by either using the
IOEFSPRM trace_dsn option, or dynamically by using the zfsadm
config -trace_dsn command.
If you use the IOEFSPRM option,
zFS must be stopped and then restarted to pick up the change, unless
you also dynamically activate the trace output data set with the zfsadm
config -trace_dsn command.
- When you are ready to re-create the problem, reset
the zFS trace table using the MODIFY ZFS,TRACE,RESET command.
- Re-create the problem.
- Enter the MODIFY ZFS,TRACE,PRINT command. This formats
and prints the trace table to the PDSE defined on the trace_dsn option.
- Capture the ZFSKNTnn member from the trace output data
set, (for example, copy it to a sequential data set) so that it can
be sent to IBM® service.
A separate trace output data set is required for each member of
a sysplex.
- Ensure that you set up the trace data sets so that each system
in the sysplex can write to its own trace output data set concurrently.
This requires separate IOEFSPRM files or the use of system symbols
in the trace_dsn name or the use of an IOEPRMxx
parmlib member. For more information, see Using zFS in a shared file system environment.
- Allocate the data set as a PDSE, RECFM=VB, LRECL=133 with a primary
allocation of at least 50 cylinders and a secondary allocation of
30 cylinders. Each trace output is created as a new member with a
name of ZFSKNTnn, where nn starts
at 01 and increments for each trace output until zFS is restarted.
After restart, when the next trace output is sent to the trace output
data set, ZFSKNT01 is overlaid. You should not be accessing the trace
output data set while a trace is being sent to the trace output data
set. The space that is used by a particular trace depends on how large
the trace_table_size is and how recently the trace
was reset. For example, a 32-MB trace_table_size can
generate a trace output member of 100 cylinders of 3390. It is important
that the trace output data set be large enough to hold the trace output.
If it runs out of room while sending the trace to the trace output
data set, the complete trace will not be captured.
Note: You can
have a trace_table_size up to 2048 MB, but to print
the trace to a PDSE you must limit its size to 750 MB.
IBM service might require
you to trace more events. Additional trace information can be obtained
using the following methods:
- Add events to trace by specifying the ioedebug statements
in a data set that is read when zFS is started (or restarted). The
data set name is specified in the IOEFSPRM debug_settings_dsn option.
It is a PDS member with an LRECL of at least 80. IBM specifies the exact statements needed in
the data set.
- Dynamically add the events to trace by entering the MODIFY ZFS,IOEDEBUG
command. IBM specifies the exact
statements needed.
- If you were not able to capture the trace, but you have a zFS
dump, IBM service can obtain
the trace from the dump. To obtain a dump, you can issue a MODIFY
ZFS command. See Understanding zFS dumps for additional
information.
The
zFS trace table is above the 2-GB bar to avoid consuming space in
the zFS address space, which is below the bar.