My device-mapper-multipath device names changed on reboot, why is this?
Article ID: 5544 - Created on: Dec 30, 2007 6:00 PM - Last Modified: Jul 15, 2009 3:58 PM
Release found: Red Hat Enterprise Linux 4 & 5.
Problem: When user-friendly names are used with device-mapper-multipath, device names or configurations do not remain persistent across reboots when the /var directory is configured as a separate file system.
Solution: If /var is configured as a separate file system, device-mapper-multipath must be configured to store its bindings database file in an alternate location on the root file system.
For information on configuring device-mapper-multipath to avoid these problems, refer to the following kbase article:
Are any special steps required when configuring multipath storage on a system where /var is a separate file system?
Article ID: 17650 - Created on: Jul 14, 2009 12:26 PM - Last Modified: Jul 15, 2009 12:54 PM
Release found: Red Hat Enterprise Linux 4 & 5.
Problem: When using the user_friendly_names feature the device-mapper-multipath package stores a persistent database of device name to WWID mappings in the /var file system. This is problematic for systems that have been configured to mount a separate file system on the /var directory since the database will not be available during booting until this file system has been mounted.
This may lead to inconsistent device naming, configuration, and in some circumstances data corruption. This is due to devices being mis-identified during the boot process.
To avoid these problems it is required to relocate the bindings file database to a path within the root file system.
Solution: To relocate the bindings file on a system using multipath and having a separate /var file system, perform the following steps:
1. On systems that have been configured with a separate /var file system the following configuration directive should be added to the defaults section of the mulitpath.conf configuration file:
bindings_file /path/to/bindings/file
The exact path chosen for the bindings file is unimportant but it is a common convention to store it in the /etc directory in a subdirectory named "multipath", for example:
## Use user friendly names, instead of using WWIDs as names.
defaults {
user_friendly_names yes
bindings_file /etc/multipath/bindings
}
Use of a location within the /etc directory ensures that the bindings database is always available since this directory is required to be part of the root file system.
Note: use of the bindings_file directive to specify a database path within the root file system is mandatory for systems configured with a separate /var file system.
2. Copy the existing bindings database to the new location
If multipath has already been configured on the system and device aliases have already been stored in the database, the existing bindings file should be copied to the new location (if using a different path for the bindings file the following command should be changed appropriately):
cp /var/lib/multipath/bindings /etc/multipath/bindings
If no devices have yet been configured in the database this step will have no effect.
3. Flush and reconfigure all multipath devices or reboot
To ensure that the system is using the new configuration either reboot the system or flush (remove) and re-configure all multipath devices:
multipath -F
multipath
Note: multipath devices that are in-use by file systems, applications or other running processes or kernel subsystems cannot be flushed.
More information:
For more information regarding this problem refer to the following Red Hat Enterprise Linux bugzilla entry: