 |
Index for Section 4 |
|
 |
Alphabetical listing for E |
|
emx_data.c(4)
NAME
emx_data.c - Configuration file for the emx device driver
SYNOPSIS
/sys/data/emx_data.c
DESCRIPTION
Refer to emx(7) for a general overview of the emx device driver.
This file is used to manipulate manipulate the emx driver's Fibre Channel
(FC) world wide name to Target Id mappings for each adapter. Device
deletion and/or replacement will commonly require modifications to the
Target Id mappings. In a cluster, in order to achieve symmetrical
configurations, an operator will likely need to modify the Target Id
mappings.
Note
This file should be modified with extreme caution.
Target ID Mappings
The table governing the Target Id mappings consists of a series of records,
each containing the following elements:
instance
This identifies the emx adapter instance whose mapping is to be modified.
For example: 0 (zero) refers to emx0.
cam_tgt_id
This field contains the CAM Target Id that is to represent the device
when seen on the indicated adapter instance (for example, when seen on
emx0).
port_name/node_name
The FC world wide names that identify the device.
Note that the 16bit FC Port Name and Node Name values are byte-swapped
due to endian-ness of the machine (for example, 0x0050 is actually byte
values 50 followed by 00). Thus, when comparing with values with those
reported by the HSG80, the following node names are equivalent:
from HSG80: 5000-1fe1-0000-0770
from emx.info: { ... 0x0050, 0xe11f, 0x0000, 0x7007 },
For example, the following entry indicates that the device with the world
wide portname/nodename of 5000-1fe1-0000-0cb1/5000-1fe1-0000-0cb0, is to
be assigned Target Id 3 on the scsi bus attached to emx0:
{ 0, 3, 0x0050, 0xe11f, 0x0000, 0xb10c, 0x0050, 0xe11f, 0x0000, 0xb00c },
Modifying Target ID Mappings
In order to manipulate the Target Id mappings, you must generate an
appropriate EMX_FCPID_RECORD record entry to reflect the desired mapping.
This procedure requires some care as world wide names are long alphanumeric
strings, are difficult to obtain, and difficult to enter. To aid in this,
at the time the emx driver assigns a Target Id mapping, it writes a text
version of the mappings to the file /etc/emx.info. The values written in
this file are formatted such that they can be cut and pasted into the
emx_data.c table. Thus, the operator only needs to find the record
reflecting the existing Target Id mapping relative to the adapter, copy the
entry into emx_data.c, and modify only the cam_tgt_id field to reflect the
desired mapping.
For example, to change the Target Id of the device entry above to Target Id
5, the following EMX_FCPID_RECORD would be added to the table:
{ 0, 5, 0x0050, 0xe11f, 0x0000, 0xb10c, 0x0050, 0xe11f, 0x0000, 0xb00c },
To support the deletion of Target id mappings, a negative cam_tgt_id value
is used to delete the mapping for the indicated device.
For example, to delete the mapping for the device entries above, the would
be added to the table:
{ 0, -1, 0x0050, 0xe11f, 0x0000, 0xb10c, 0x0050, 0xe11f, 0x0000, 0xb00c },
Making the Mappings Take Effect
Once the desired values are specified in emx_data.c, generate a new kernel
(see doconfig(8)). The kernel generation process will compile the modified
emx_data.c file into the resulting kernel. You must reboot the system on
the new kernel to cause the change in mappings to occur.
As the updated mappings will subsequently be written to the emx drivers on
disk data file (/etc/emx.db and /etc/emx.db.bak), there is no need to
continue to specify the desired mappings in emx_data.c. The entries in
emx_data.c can be removed, a new kernel generated, and all subsequent boots
will inherit the values from the on-disk files.
Note
If the values are left in, they are an integral part of the
kernel they are compiled into. This is useful if the on disk data
files were to be lost or corrupted. However, this may be a
significant problem if the resulting kernel (containing the
emx_data.c table entries)) is copied to a different system.
Internal Processing
Internally, when the emx driver processes the fcpid table, the following
changes take place:
· If the cam_tgt_id field value matches an entry in the existing Target
Id mappings, the existing Target Id mapping is deleted.
· If the device indicated by the world wide names already exists in the
Target Id mappings for the adapter instance, the existing entry for
the device is deleted.
· If the cam_tgt_id field is not negative, the fcpid table entry is then
added to the mapping table.
· After all table entries are process and the root filesystem is
writable, the updated Target Id mappings are written to disk.
Clusters and Symmetry
TruClusters for the V4.0X releases commonly require symmetrical
configurations. For FC, in addition to needing each adapter configured into
the system symmetrically, the Target Id mappings on each cluster member
also need to be symmetrically assigned. If the emx adapters are
symmetrically configured such that all members have emx0 attached to the
same FC switch, emx1 to the same FC switch, etc then a single emx_data.c
file can be generated. The operator can configure the emx_data.c file on a
single cluster member and copy the resulting file (as well as the
/etc/emx.db and /etc/emx.db.bak files) to the other members in the cluster.
FILES
/etc/emx.db
The binary file containing the persistent CAM Target Id to Fibre
Channel N*_Ports mappings for each emx adapter.
/etc/emx.db.ba
A backup copy of the /etc/emx.db file.
/etc/emx.info
Text file representing the contents of the /etc/emx.db file. This is a
readable form of the persistent CAM Target Id to Fibre Channel N*_Ports
mappings for each emx adapter.
Note
This file does not reflect current connectivity, as devices
may not be present, but their Target Id mappings will
continue to persist.
RELATED INFORMATION
SCSI(7), rz(7), disklabel(8), doconfig(8).
See Also
emx(7).