This chapter describes how to create your TMF configuration file and how to edit your FLEXlm license file. It also provides information on the configuration file statements.
The TMF configuration file, tmf.config in the /etc/config directory, must be updated to configure TMF before TMF is started. You should set the parameters in your TMF configuration file to values that suit your system. TMF uses these values to decide what to do in various situations.
You can update the file with any text editor. The basic information that you need for this task is contained in this chapter. For a description of the parameters, see the tmf.config(5) man page. During initial system startup, refer to Appendix B, “tmf.config Man Page”.
To become familiar with the TMF configuration elements, review the file in Example 2-1. The following subsections highlight how you configure the statements within the TMF configuration file.
Example 2-1. TMF Configuration File
This TMF configuration file contains five statements: LOADER, DEVICE_GROUP,
AUTOCONFIG, which is composed of DEVICE statements, and OPTIONS
#
#
#
# TAPE MANAGEMENT FACILITY CONFIGURATION FILE
#
#
#
LOADER
name = operator ,
type = OPERATOR ,
status = UP ,
mode = ATTENDED ,
message_path_to_loader = MSGDAEMON ,
server = IRIX ,
scratch_volume_label_type = (AL,NL,SL) ,
queue_time = 0 ,
verify_non_label_vsn = YES ,
message_route_masks = (IRIX) ,
loader_ring_status = ALERT
LOADER
name = wolfy ,
type = STKACS ,
status = DOWN ,
mode = ATTENDED ,
message_path_to_loader = NETWORK ,
server = wolfcreek ,
scratch_volume_label_type = NONE ,
queue_time = 15 ,
verify_non_label_vsn = NO ,
message_route_masks = (IRIX) ,
loader_ring_status = IGNORE
LOADER
name = panther ,
type = STKACS ,
status = DOWN ,
mode = ATTENDED ,
message_path_to_loader = NETWORK ,
server = stk9710 ,
scratch_volume_label_type = NONE ,
queue_time = 15 ,
verify_non_label_vsn = NO ,
message_route_masks = (IRIX) ,
loader_ring_status = IGNORE
LOADER
name = esys ,
type = EMASS ,
status = DOWN ,
mode = ATTENDED ,
message_path_to_loader = NETWORK ,
server = esisun ,
scratch_volume_label_type = NONE ,
queue_time = 15 ,
verify_non_label_vsn = NO ,
message_route_masks = (IRIX) ,
loader_ring_status = IGNORE
LOADER
name = tmfov ,
type = OPENVAULT ,
server = armadillo ,
status = down ,
mode = ATTENDED ,
message_path_to_loader = NETWORK ,
ov_tmf_application_name = tmf,
scratch_volume_label_type = NONE ,
queue_time = 15 ,
verify_non_label_vsn = NO ,
message_route_masks = (IRIX) ,
loader_ring_status = IGNORE
DEVICE_GROUP
name = CART
avr = YES
DEVICE_GROUP
name = DLT
DEVICE_GROUP
name = EMASS
DEVICE_GROUP
name = STK9490
AUTOCONFIG
{
DEVICE
name = t1 ,
device_group_name = CART ,
file = /hw/tape/tps3d1 ,
status = DOWN ,
loader = wolfy ,
vendor_address = (0,0,1,1)
DEVICE
name = t4 ,
device_group_name = CART ,
file = /hw/tape/tps3d4 ,
status = DOWN ,
loader = wolfy ,
vendor_address = (0,0,1,0)
DEVICE
name = dlt2 ,
device_group_name = DLT ,
file = /hw/tape/tps5d2 ,
status = DOWN ,
loader = panther ,
vendor_address = (1,0,2,0)
DEVICE
name = dlt3 ,
device_group_name = DLT ,
file = /hw/tape/tps5d3 ,
status = DOWN ,
loader = panther ,
vendor_address = (1,0,2,1)
DEVICE
name = ed0 ,
device_group_name = EMASS ,
file = /hw/tape/tps10d0 ,
status = DOWN ,
loader = esys ,
vendor_address = (1)
DEVICE
name = s9490s4 ,
device_group_name = STK9490 ,
file = /hw/tape/tps22d4 ,
status = down ,
vendor_address = (0,0,1,0),
loader = tmfov
DEVICE
name = s9490s1 ,
device_group_name = STK9490 ,
file = /hw/tape/tps22d1 ,
status = down ,
vendor_address = (0,0,1,1),
loader = tmfov
}
OPTIONS
ask_label_switch = YES ,
ask_vsn = YES ,
blocksize = 32768 ,
blp_ring_status = UNRESTRICTED ,
check_expiration_date = YES ,
check_file_id = YES ,
check_protection = YES ,
check_vsn = YES ,
device_group_name = CART ,
fes_daemon_frontend_id = "mvs" ,
fes_daemon_socket_port_number = 1167 ,
file_status = OLD ,
label_type = AL ,
loader_device_assignment_order = ROUND_ROBIN ,
max_number_of_tape_users = 100 ,
number_of_autoloader_retries = 10 ,
operator_message_destination = (IRIX) ,
operator_message_frontend_id = "" ,
overcommit_max = 20
retention_period_days = 0 ,
ring_status = (IN,OUT) ,
scratch_volume_retries = 0 ,
scratch_volume_vsn = ?????? ,
servicing_frontend_id = "" ,
servicing_frontend_mandatory = NO ,
system_code = SGI/IRIX ,
tmf_major = 261 ,
trace_file_group_id = 3 ,
trace_file_mode = 0640 ,
trace_file_owner = 0 ,
trace_directory = /var/spool/tmf/trace ,
trace_file_size = 409600 ,
trace_state = ON ,
trace_save_directory = /var/spool/tmf/trace_save ,
user_exit_mask = UEX_STOP ,
verify_scratch_vsn = NO |
The TMF configuration file in Example 2-1, contains five LOADER statements; these represent the five loaders that are available on this IRIX system. Each LOADER statement is composed of the parameters needed to describe a specified loader. For example, the first LOADER statement has 11 parameters:
LOADER
name = operator ,
type = OPERATOR ,
status = UP ,
mode = ATTENDED ,
message_path_to_loader = MSGDAEMON ,
server = IRIX ,
scratch_volume_label_type = (AL,NL,SL) ,
queue_time = 0 ,
verify_non_label_vsn = YES ,
message_route_masks = (IRIX) ,
loader_ring_status = ALERT
|
The name of the loader is operator, the type is OPERATOR, the status is UP, and the mode is ATTENDED.
The message path to the servicing loader is MSGDAEMON; the server name is IRIX.
The loader will process ANSI (AL), nonlabeled (NL), and IBM (SL) scratch requests. The system will queue a request and wait for the best loader to become available for up to 24 hours.
Nonlabeled VSNs must be verified. message_route_masks is IRIX, which means that mount request messages are routed to the message daemon. The loader is alerted to the ring status whenever a tape is mounted.
It may be necessary to specify an alternate network name for LOADER statements that represent NETWORK libraries. If a NETWORK library is not connected to the host primary network, the path must be specified with the return_host parameter so that the library can return responses to TMF. This parameter is only used if it is set; there is no default.
The file in Example 2-1, contains four DEVICE_GROUP statements, one for each of the system's device groups:
DEVICE_GROUP
name = CART
avr = YES
DEVICE_GROUP
name = DLT
DEVICE_GROUP
name = EMASS
DEVICE_GROUP
name = STK9490
|
The AUTOCONFIG statement in Example 2-1, is made up of seven DEVICE statements, one for each device in the system:
AUTOCONFIG
{
DEVICE
name = t1 ,
device_group_name = CART ,
file = /hw/tape/tps3d1 ,
status = DOWN ,
loader = wolfy ,
vendor_address = (0,0,1,1)
DEVICE
name = t4 ,
device_group_name = CART ,
file = /hw/tape/tps3d4 ,
status = DOWN ,
loader = wolfy ,
vendor_address = (0,0,1,0)
DEVICE
name = dlt2 ,
device_group_name = DLT ,
file = /hw/tape/tps5d2 ,
status = DOWN ,
loader = panther ,
vendor_address = (1,0,2,0)
DEVICE
name = dlt3 ,
device_group_name = DLT ,
file = /hw/tape/tps5d3 ,
status = DOWN ,
loader = panther ,
vendor_address = (1,0,2,1)
DEVICE
name = ed0 ,
device_group_name = EMASS ,
file = /hw/tape/tps10d0 ,
status = DOWN ,
loader = esys ,
vendor_address = (1)
DEVICE
name = s9490s4 ,
device_group_name = STK9490 ,
file = /hw/tape/tps22d4 ,
status = down ,
vendor_address = (0,0,1,0),
loader = tmfov
DEVICE
name = s9490s1 ,
device_group_name = STK9490 ,
file = /hw/tape/tps22d1 ,
status = down ,
vendor_address = (0,0,1,1),
loader = tmfov
|
The DEVICE statement identifies the tape devices that are available on the system on which TMF is running. In the first DEVICE statement in the AUTOCONFIG statement, shown in the Example 2-1, the device is t1.
{
DEVICE
name = t1 ,
device_group_name = CART ,
file = /hw/tape/tps3d1 ,
status = DOWN ,
loader = wolfy ,
vendor_address = (0,0,1,1)
|
This device is a member of the CART device group, which is specified by the first DEVICE_GROUP statement (see Section 2.1.2).
The path name to the device specific file is /hw/tape/tps3d1. The initial status of the device is DOWN. The vendor address of the drive in the library is (0,0,1,1).
The loader name is wolfy, and it is defined in the second LOADER statement in Example 2-1.
The OPTIONS statement shows the values that TMF uses for the options. For a description of each option, see the tmf.config(5) man page.
In the file in Example 2-1, the defaults are used for all options except the following:
check_protection = YES , fes_daemon_frontend_id = "mvs" , scratch_volume_retries = 0 , user_exit_mask = UEX_STOP , verify_scratch_vsn = NO |
YES for check_protection means the protection flag on the header is checked. fes_daemon_frontend_id specifies mvs for the front-end identifier of the TCP daemon. Because scratch_volume_retries is set to 0, users are not allowed to retry scratch volume mount requests. TMF stops and enables one or more user exits for the site since UEX_STOP is the value for user_exit_mask. Because the value for verify_scratch_vsn is NO, users do not send the operator a message requesting verification whenever they want to use a scratch tape.
During the process of installing the TMF product, a FLEXlm license is e-mailed or sent to you. The license takes the form of a FLEXlm feature line, for example:
FEATURE tmf craylmd 1.000 05-AUG-1998 0 A0B0A0D111E018A1A2F8 "" 333983 |
This line needs to be added to the FLEXlm license.dat file on the TMF system. You can edit the license.dat file using vi(1) or another editor. The file is located in the following directory:
/var/flexlm/license.dat |
The TMF configuration file consists of comments (optional) and statements:
A comment begins with the number sign character (#) and continues to the end of line.
A statement consists of a name followed by a list of parameters.
There are, at least, four statements in a TMF configuration file; and one of which also consists of statements. Within the file, the statements must be in the following order:
LOADER statements (one per loader)
DEVICE_GROUP statements (one per device group)
AUTOCONFIG statement (one per system)
The AUTOCONFIG statement consists of DEVICE statements.
DEVICE statements (one per device)
DEVICE statements define devices that TMF will control and that are automatically configured during the system boot.
OPTIONS statement (one per system)
The following syntax rules apply to the TMF statements:
The statement name and its parameters are separated by one or more white spaces (blank, tab, or newline characters).
Adjacent parameters are separated by a comma.
The end of the parameter list is indicated by the absence of a comma.
Adjacent statements are separated by one or more white spaces.
The following syntax rules apply to keyword parameters:
The keyword is separated from its value by the equal sign (=).
The value of a keyword may consist of keywords, numbers, character strings, and lists of keywords, numbers, and character strings.
If the value of a keyword is a list, then the list is enclosed within left and right parentheses. Adjacent elements of a list are separated by a comma. If the list consists of one element, you do not have to enclose it in parentheses. The elements of a list may be lists.
Numbers may be specified in decimal, octal, and hexadecimal formats. These formats are the same as those used in the C programming language:
| Decimal | The first digit is not 0 (for example, 1372). | |
| Octal | The first digit is 0 (for example, 0563). | |
| Hexadecimal | The first 2 characters are either 0x or 0X (for example, 0xf2). |
Character strings are series of characters. If any one of the special characters (white space, ", #, =, {, }, (, ), ', \) is needed in the string, then the string must be enclosed in a pair of double quotation marks, ("). Within a pair of double quotation marks, the sequence of characters \ x, where x is any character, will be replaced by x. This is the only way a " and a \ may be specified in a quoted string.
You can code the names of statements and keywords in a mixture of uppercase and lowercase letters. The values specified by the user are case sensitive. The following mean the same thing:
Name = A name = A. |
The following are different:
name = A name = a. |