LINUXOR.SK ... open source notes ...

Linux Storage - mpp.conf

category: solutionz · date: 2010-09-30 · updated: 2026-10-03 · author: LALA

Linux Storage Solution · Config document · referenced from RDAC multipath driver basics

noteThe S2ToS3Key value is a placeholder of the right shape, not the key of the real system. Everything else is the file as it was found after the driver was installed; nothing in it was changed by hand.

The configuration file of the IBM/LSI RDAC (MPP) multipath driver on mppsrv01. As I understand it the driver reads it when its modules load, so a change here needs a new initrd (mppUpdate, which the package readme asks for after any change to the file) and a reboot; a few of its variables can also be changed at run time with mppUtil -o. My notes keep the file as the installation left it and point to man RDAC for the description of each directive; that man page is not in the notes.

ItemValue
File/etc/mpp.conf
Hostmppsrv01, Red Hat Enterprise Linux AS 4, kernel 2.6.9-89.0.9.ELsmp
Owner and modenot recorded in the notes
Read bythe driver modules at load time, through the MPP initrd, as I understand it; the notes do not say
Activated withmppUpdate (rebuilds the initrd), then a reboot
Changed at run time withmppUtil -o <Variable>=<value> for the six variables mppUtil -o lists
Driver versionRDAC 09.03.0B05.0331, built from rdac-LINUX-09.03.0B05.0331-source.tar.gz

The file

ini
virtualDiskProductId=VirtualDisk
DebugLevel=0x0
NotReadyWaitTime=270
BusyWaitTime=270
QuiescenceWaitTime=270
InquiryWaitTime=60
MaxLunsPerArray=256
MaxPathsPerController=4
ScanInterval=60
InquiryInterval=1
MaxArrayModules=30
ErrorLevel=3
SelectionTimeoutRetryCount=0
UaRetryCount=10
RetryCount=10
SynchTimeout=170
FailOverQuiescenceTime=20
FailoverTimeout=120
FailBackToCurrentAllowed=1
ControllerIoWaitTime=300
ArrayIoWaitTime=600
DisableLUNRebalance=0
SelectiveTransferMaxTransferAttempts=5
SelectiveTransferMinIOWaitTime=3
IdlePathCheckingInterval=60
RecheckFailedPathWaitTime=30
FailedPathCheckingInterval=60
ArrayFailoverWaitTime=300
PrintSenseBuffer=0
ClassicModeFailover=0
AVTModeFailover=0
LunFailoverDelay=3
LoadBalancePolicy=1
ImmediateVirtLunCreate=0
BusResetTimeout=150
AllowHBAsgDevs=0
S2ToS3Key=0123456789abcdef

The notes do not describe the directives one by one; they say "see man RDAC". What I can say about the file comes from the other outputs in the notes, and the rest is my reading of the names.

DirectiveWhat the notes show about it
virtualDiskProductId=VirtualDiskthe product string the virtual HBA gives its disks; the virtual host appears as host2 in mppBusRescan output
MaxLunsPerArray=256matches the maxLun256 cell in the .wwn files under /var/mpp
MaxPathsPerController=4matches the four path columns per controller (CAP 0–CAP 3, CBP 0–CBP 3) in the .wwn files; this host used two of the four
MaxArrayModules=30the limit on arrays ("array modules" in the driver's words); this host saw one or two
ErrorLevel=3shown by mppUtil -o as current and default 0x3, range 0x0–0x5; the notes set it to 0x2 as an example
DebugLevel=0x0shown by mppUtil -o; mppUtil -d 0x80200008 turns synchronous I/O debug messages on, mppUtil -d 0x0 off
LoadBalancePolicy=1shown by mppUtil -o as 0x1, range 0x0–0x2; mppUtil -g 0 reports it as LBPolicy: LeastQueueDepth
DisableLUNRebalance=0shown by mppUtil -o, range 0x0–0x4
ClassicModeFailover=0, AVTModeFailover=0the failover mode switches; mppUtil -g 0 reports FailoverMethod: C and AVTEnabled: Y, which the notes do not comment on
BusResetTimeout=150shown by mppUtil -o as current 0x96 (150) with default 0x0 and maximum 0x12c (300); the only variable whose current value differs from its default
S2ToS3Key=…a key value; the notes do not say what it is for, and the value here is a placeholder

The wait, retry and interval directives (NotReadyWaitTime down to ArrayFailoverWaitTime) are, as I read their names, the timings of the failover state machine in seconds; the notes say nothing about them and none of them was changed. The variables mppUtil -o can change at run time are the six that command lists (DebugLevel, ErrorLevel, DisableLUNRebalance, LoadBalancePolicy, ClassicModeFailover, BusResetTimeout); as I understand it, the others take effect only through a new initrd and a reboot. The command examples are a Config document of their own: mppUtil commands.

Checked against NetApp SANtricity 12.10 and multipath-tools 0.15.1

As builtToday
/etc/mpp.conf of RDAC 09.03.0B05.0331, read through the MPP initrdThe driver is gone. NetApp, who took over the Engenio arrays from LSI in 2011, discontinued RDAC with SANtricity OS 11.25; the last builds were 09.03.0B05.0439 for Red Hat Enterprise Linux 4 and 09.03.0C05.0642 for Red Hat Enterprise Linux 5 and 6, and no package exists for Red Hat Enterprise Linux 7 or SLES 12
a change needs mppUpdate and a rebootThe package readme of the same build says so in as many words: changes to /etc/mpp.conf or /var/mpp/devicemapping need mppUpdate "to re-build RAMdisk image"
failover and load-balancing policy set here (LoadBalancePolicy, FailoverTimeout, …)Done by DM-Multipath with the kernel handler scsi_dh_rdac and the built-in hardware table of multipath-tools: for vendor IBM, product ^1818 (the DS5000 family) group_by_prio, prio rdac, path_checker rdac, features "2 pg_init_retries 50", failback immediate, no_path_retry 30. NetApp's current Linux guide says to leave /etc/multipath.conf blank and use the defaults
AVTModeFailover=0, host type LNXCL on the arrayThe host type for Linux is now "Linux DM-MP (Kernel 3.10 or later)"; in 2015 the old Linux host type with AVT on was renamed LNXAVT and a new Linux type with AVT off took its place

None of the directives above has a counterpart to copy: the whole layer this file configured was replaced by DM-Multipath, and the array side is a different product line today.

← solutionz