Steps for tracing on zFS
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 65535 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.