Solaris Reference Manual for SMCC-Specific Software
  Suchtext Nur in diesem Buch
Dieses Buch im PDF-Format herunterladen

NAME

rdriver - configuration file for Redundant Disk Array Controller driver

DESCRIPTION

The Redundant Disk Array Controller(RDAC) driver is a layered driver that is positioned logically above the SCSI disk driver and, in cooperation with certain daemon processes, is responsible for management of redundant paths to the disk array. This driver provides such capabilities as I/O path load balancing and transparent failover in the event of a path failure.
The configuration file for rdriver(rdriver.conf) is used to specify which of the possible paths to an array logical unit (or "LUN") is considered the "home" path for that unit. The significance of the home path is that it typically corresponds to the true physical path of the logical unit; however, in situations where the logical unit has moved to the alternate controller, it still constitutes the path name by which the OS and applications refer to the unit. Thus, in a controller pair (c1t1d0s0, c2t3d0s0), the home path for LUN 5 may be c1t1d5s0, but in exceptional situations, the true physical path of the LUN may be c2t3d5s0. In this case, the LUN would continue to be accessed by its home path name of c1t1d5s0. This behavior assures device name consistency in the face of LUN movement between controllers. (Note that RAID Manager will always indicate the true physical path for a logical unit.)
The rdriver.conf file is generated automatically when RAID Manager is installed; on every subsequent reconfiguration boot (boot -r) and only on reconfiguration boots, the file is regenerated so as to make the /dev device names line up with the true physical location of the LUNs. The automatic generation of rdriver.conf is desirable because it spares the user from the tedious task of understanding and entering the rdriver properties manually for each logical unit. Once a system administrator has settled on stable LUN-to-controller assignments for all of the system's RAID moddules, he will probably want to disable the auto-regeneration of rdriver.conf since any subsequent LUN movements should be short-term (as in just long enough to repair a failed I/O path component). This disabling is accomplished by inserting for example, a line into rdriver.conf containing the string "#!noauto_config" beginning in column one. With this string present, reconfiguration boots no longer affect rdriver.conf, and manual edits can be made without the concern that they will be overwritten.

PROPERTIES

Below are the properties that may be specified in the rdriver.conf file for each logical unit:
name
The name of the RDAC driver; must be "rdriver"
module
The number of the RAID module to which this LUN belongs (e.g., if the module name is "RAID Module 02", then this property would be specified as "module=2"
lun
the number of the logical unit; this propety is just the standard "lun" property used by all drivers in the scsi class.
target
the ID of the SCSI target which is the "home" controller for the LUN. Immediately after rdriver.conf auto-generation, the home controller will agree with the true physical location, but, as discussed above, detaching and re-attaching the LUN on the other controller will not cause a change in the LUN path name
- a "boot -r" is necessary for that to occur, and even then the name change does not occur if the string "#!noauto_config" is present in the .conf file.
parent
This is just the standard "parent" property that may be specified for any loadable driver. This should not be changed from the value it receives when the rdriver.conf file is auto-generated.
nex
This property is identical in setting and meaning to the "parent" property and is present because the parent property is not made available to the driver. (The driver needs this information for binding of newly-created LUNs to the proper path.)
unbound This property is not necessary for LUNs that actually exist. For non-existent
LUNs, it should be present and set to 1. "Unbound" (non-existent) LUNs actually have properties for both possible paths to the LUN; then when the LUN is created, its binding is established so that its home path is the same as the true physical path.

USAGE GUIDELINES

Although essential to the correct operation of the RDAC driver, the need for enduser/administrator involvement in the maintenance of rdriver.conf is intended to be minimal. A typical scenario involving creation of LUNs and rdriver.conf setup would be as follows:
  1. Create the logical units on your RAID modules as you want them.

  2. Distribute the LUNs between controller pairs as you want them.

  3. Once the LUNs are created and distributed, shut down the system and perform a reconfiguration boot (boot -r). This will result in a new rdriver.conf file being built in accordance with the current configuration.

  4. Inspect the rdriver.conf file and the /dev path names that got created by the reconfiguration boot. If you are happy with them and want this rdriver.conf preserved through any subsequent reconfiguration boots, insert the line "#!noauto_config" into the .conf file.

Note that there is no provision for the rdriver.conf auto-generation process to leave some entries in the file alone while updating others; the file is either left unmodified, or completely rebuilt. If something like an incremental revision of the file is desired (e.g., in the case of adding a new RAID module), the user will need to either verify that all LUN distributions for all modules are as they should be before the reconfiguration boot, or save the current rdriver.conf, generate the new one, then manually merge the old and the new.

EXAMPLES

Here is a sample rdriver.conf file:
name="rdriver" module=1 lun=0 parent="/pseudo/rdnexus@1"; name="rdriver" module=1 lun=1 parent="/pseudo/rdnexus@2"; name="rdriver" module=1 lun=2 parent="/pseudo/rdnexus@1"; name="rdriver" module=1 lun=3
parent="/pseudo/rdnexus@2"; name="rdriver" module=1 lun=4 parent="/pseudo/rdnexus@1"; name="rdriver" module=1 lun=5 parent="/pseudo/rdnexus@2"; name="rdriver" module=1 lun=6 parent="/pseudo/rdnexus@1"
nex="pseudo/rdnesux@1" unbound=1;
name="rdriver" module=1 lun=6 parent="/pseudo/rdnexus@2" nex="pseudo/rdnesux@2" unbound=1;
name="rdriver" module=1 lun=7 parent="/pseudo/rdnexus@1" nex="pseudo/rdnesux@1" unbound=1;
name="rdriver" module=1 lun=7 parent="/pseudo/rdnexus@2" nex="pseudo/rdnesux@2" unbound=1;
This .conf file defines LUNs on the module "RAID Module 01". LUNs 0 through 5 are existing LUNs and are distributed between the two controllers on an odd/even basis. LUNs 6 and 7 are non-existent ("unbound") and have two entries each because they could potentially be created on either path.

SEE ALSO

arraymon(1M), lad(1M), nvutil(1M), parityck(1M), raidutil(1M), rdac(7), rdacutil(1M), rdaemon(1M), rm6(1M), rmevent(4), rmparams(4), rmscript(1M)