Settings for a multipath boot disk environment

Dynamic Link Manager (for Linux®) User Guide

Version
9.0.x
Audience
anonymous
Part Number
MK-92DLM113-64
ft:lastEdition
2025-11-06

To install HDLM in a boot disk environment that uses a SCSI device, and set up the environment:

This subsection describes how to perform a new installation of HDLM in a single-path boot disk environment that uses a SCSI device and how to configure a multipath boot disk environment.

Note that if the settings are incorrect, the OS might not start. For details about what action to take if the OS cannot be started from an HDLM device, see BOOT_PERFORMING_AN_UPGRADE_INSTALLATION_OF_HDLM=GUID-068BB27C-E7E0-41F4-8C4C-55E8865333AE=2=EN=.html.

The name of the boot loader configuration file used in these procedures differs depending on the boot loader and OS. The following table lists the names of the boot loader configuration files.

Table. Names of boot loader configuration files

Boot loader

Configuration file name

GRUB2

BIOS

Red Hat Enterprise Linux 7

Red Hat Enterprise Linux 8

Red Hat Enterprise Linux 9

SUSE LINUX Enterprise Server 12

SUSE LINUX Enterprise Server 15

/boot/grub2/grub.cfg

UEFI

Red Hat Enterprise Linux 7

Red Hat Enterprise Linux 8

/boot/efi/EFI/redhat/grub.cfg

Red Hat Enterprise Linux 9

/boot/grub2/grub.cfg

  1. Log in to Linux as a user with root permissions.

  2. Install HDLM.

    See PERFORMING_A_NEW_INSTALLATION_OF_HDLM=GUID-B0AB134E-B3E9-4110-ACC0-9D650B07E889=3=EN=.html#GUID-B0AB134E-B3E9-4110-ACC0-9D650B07E889, and then create an HDLM device by performing step 2 to 12.

  3. Check whether LVM is used in the boot disk environment.

    Execute the mount command to check the name of the devices mounted on the root partition (/). If LVM is used, device names that contain the VG name and LV name appear. The following shows an example of executing the command.

    • If LVM is used:

      # mount
      /dev/mapper/vg00-lv00 on / type ext3 (rw)
              :
      #
    • If LVM is not used:

      # mount
      /dev/sda9 on / type ext3 (rw)
              :
      #
  4. If LVM is used in the boot disk environment, edit the /etc/lvm/lvm.conf file so that the LVM2 recognizes the HDLM device, not the SCSI device.

    The following shows examples of editing the /etc/lvm/lvm.conf file.

    • For Red Hat Enterprise Linux 9 or Oracle Linux 9:

      Before:

      devices {
                                    :
              # global_filter = [ "a/.*/" ]
              global_filter = [ "r|sddlm[a-p][a-p].*|", "a|/dev/sd|" ]
                                    :
              # types = [ "fd", 16 ]
                                    :
              md_component_detection = 1
                                    :
              allow_changes_with_duplicate_pvs = 0
                                    :
              multipath_component_detection=1
                                    :
              use_devicesfile=1
                                    :
      
      }

      After:

      devices {
                                    :
              # global_filter = [ "a/.*/" ]
              # global_filter = [ "r|sddlm[a-p][a-p].*|", "a|/dev/sd|" ]
              global_filter = [ "a|sddlm[a-p][a-p].*|", "r|/dev/sd|" ]
                                    :
              # types = [ "fd", 16 ]
              types = [ "sddlmfdrv", 16 ]
                                    :
              # md_component_detection = 1
              md_component_detection=0
                                    :
              # allow_changes_with_duplicate_pvs = 0
              allow_changes_with_duplicate_pvs = 1
                                    :
              # multipath_component_detection=1
              multipath_component_detection=0
                                    :
              # use_devicesfile=1
              use_devicesfile=0
                                    :
      
      }

      Comment out the existing global_filter, types, md_component_detection, allow_changes_with_duplicate_pvs, multipath_component_detection, and use_devicesfile lines, and then add the underlined parts.

      Record the original values, because they are necessary when restoring the SCSI device configuration.

    • For Red Hat Enterprise Linux 8, Oracle Linux 8 or SUSE LINUX Enterprise Server 15 SP2 or later:

      For Red Hat Enterprise Linux 8.8 or later, Oracle Linux 8.8 or later, or SUSE LINUX Enterprise Server 15 SP5 or later, set the value of multipath_component_detection to 0. For details, see NOTES_ON_USING_LVM2=GUID-91F95B7F-B4F1-4A73-A110-536AD5C219CC=5=EN=.html#GUID-91F95B7F-B4F1-4A73-A110-536AD5C219CC.

      Before:

      # This section allows you to configure which block devices should
      # be used by the LVM system.
              devices {
                                    :
              global_filter = [ "a/.*/" ]
                                    :
              # types = [ "fd", 16 ]
                                    :
              md_component_detection = 1
                                    :
              allow_changes_with_duplicate_pvs = 0
                                    :
      }

      After:

      # This section allows you to configure which block devices should
      # be used by the LVM system.
      devices {
                                    :
              # global_filter = [ "a/.*/" ]
              global_filter = [ "a|sddlm[a-p][a-p].*|", "r|/dev/sd|" ]
                                    :
              # types = [ "fd", 16 ]
              types = [ "sddlmfdrv", 16 ]
                                    :
              # md_component_detection = 1
              md_component_detection=0
                                    :
              # allow_changes_with_duplicate_pvs = 0
              allow_changes_with_duplicate_pvs = 1
                                    :
      }

      Comment out the existing global_filter, types and md_component_detection lines, and then add the underlined parts.

      Record the original values, because they are necessary when removing HDLM.

    • For SUSE LINUX Enterprise Server 12, SUSE LINUX Enterprise Server 15 SP1 or earlier, Red Hat Enterprise Linux 7 or Oracle Linux 7:

      Specify 1 for allow_changes_with_duplicate_pvs. For details, see NOTES_ON_USING_LVM2=GUID-91F95B7F-B4F1-4A73-A110-536AD5C219CC=5=EN=.html.

      If you want to use use_lvmetad=0 for operation, specify filter, not global_filter.

      Before:

      # This section allows you to configure which block devices should
      # be used by the LVM system.
      devices {    
                                    :
      
               filter = [ "a/.*/" ]
                                    :
      
               write_cache_state = 1
                                    :
      
              # types = [ "fd", 16 ]
                                    :
      
              md_component_detection = 1
                                    :
      
      }

      After:

      # This section allows you to configure which block devices should
      # be used by the LVM system.
      devices {    
                                    :
      
              # filter = [ "a/.*/" ]
                  filter = [ "a|sddlm[a-p][a-p].*|", "r|/dev/sd|" ]
                                    :
      
              # write_cache_state = 1
                  write_cache_state = 0
                                    :
      
              # types = [ "fd", 16 ]
                  types = [ "sddlmfdrv", 16 ]
                                    :
      
              # md_component_detection = 1
                  md_component_detection=0
                                    :
      }

      Comment out the existing filter, write_cache_state, types and md_component_detection lines, and then add the underlined parts.

      Record the original values, because they are necessary when removing HDLM.

    After editing the file, execute the following command.

    # /sbin/vgscan

    If the following files exist, delete them:

    • /etc/lvm/.cache

    • /etc/lvm/cache/.cache

  5. Back up the /etc/fstab file.

  6. In the next step, you will edit the /etc/fstab file so that an HDLM device is mounted on each mount point. To do this, follow the procedure below to check the HDLM device name that corresponds to each item.

    1. Check the HDLM device name from the SCSI device name.

      Execute the HDLM configuration definition utility (dlmcfgmgr) and specify the -v parameter to check the HDLM devices that corresponds to the SCSI devices.

      # /sbin/dlmcfgmgr -v
      HDevName      Management  Device    Host    Channel Target  Lun
      /dev/sddlmaa  configured  /dev/sda     0          0      0    0
      KAPL10302-I /sbin/dlmcfgmgr completed normally.

      The HDLM device name is displayed in the HDevName column and the SCSI device name is displayed in the Device column.

    2. From the LABEL specification, check the HDLM device name from LABEL.

      Execute the OS command findfs LABEL={LABEL-value}, and check the device name that corresponds to LABEL. If a SCSI device name is displayed, change it to the corresponding HDLM device name based on the results of a.. If a logical volume name (/dev/{VG}/{LV}, /dev/mapper/{VG}-{LV}) is displayed, change LABEL to the logical volume name. (Note that, if a logical volume name is displayed for SUSE Linux Enterprise Server 12, SUSE LINUX Enterprise Server 15, Red Hat Enterprise Linux 7, Red Hat Enterprise Linux 8, Red Hat Enterprise Linux 9, Oracle Linux 7, Oracle Linux 8, or Oracle Linux 9, you do not need to change LABEL.)

      # /sbin/findfs LABEL=/
      /dev/sddlmaa2
      #
      Note

      Depending on the environment you are using, you might not be able to obtain information even if you specify the LABEL of a swap in the findfs command. In such a case, execute /bin/cat /proc/swaps and check which device is used by the swap. In addition, if you know the LABEL of the swap, record it, because it is necessary when uninstalling HDLM.

    3. From the UUID specification, check the HDLM device name from UUID.

      Execute the OS command findfs UUID={UUID-value} to check the device name that corresponds to UUID. If a SCSI device name is displayed, change it to the corresponding HDLM device name based on the result of a.. If a logical volume name (/dev/{VG}/{LV}, /dev/mapper/{VG}-{LV}) is displayed, change UUID to the logical volume name. (Note that, if a logical volume name is displayed for SUSE Linux Enterprise Server 12, SUSE LINUX Enterprise Server 15, Red Hat Enterprise Linux 7, Red Hat Enterprise Linux 8, Red Hat Enterprise Linux 9, Oracle Linux 7, or Oracle Linux 8, you do not need to change UUID.)

      # /sbin/findfs UUID=b74637c2-59bb-4bca-94f0-94a96325b73f
      /dev/sddlmaa2
      #
    4. From the specification of a device name (udev name) that starts with /dev/disk, check the HDLM device name that corresponds to the device name (udev name) that starts with the /dev/disk directory.

      Execute the OS command readlink -f {udev-name} to check the device name that corresponds to the udev name. If a SCSI device name is displayed, change it to the corresponding HDLM device name based on the result of a..

      # /usr/bin/readlink -f /dev/disk/by-id/scsi-360060e801025333005112b6300000036-part2
      /dev/sddlmaa2
      #
    5. For logical volumes, the names of the devices to be mounted (/dev/{VG}/{LV} and /dev/mapper/{VG}-{LV}) are not within the scope of this change.

  7. Edit the /etc/fstab file.

    Change the mount points for the HDLM management-target devices from the SCSI device to the HDLM device:

    Comment out the existing SCSI device specification by placing a hash mark (#) at the beginning of each line, and then add the HDLM device specification as shown below, based on the correspondence between the SCSI device and the HDLM device as checked in a. of step 6.

    # vi /etc/fstab
    /dev/VolGroup00/LogVol00 / ext3     defaults        1 1
    #LABEL=/boot            /boot ext3     defaults        1 2
    /dev/sddlmaa1              /boot ext3     defaults        1 2
    none                     /dev/pts devpts   gid=5,mode=620  0 0
                                :
                                :

    Note that, in the HDLM boot disk environment, the following format restrictions, depending on the OS, apply to the device names that can be specified for the mount point of the root partition (/).

    Table. Device name format that can be specified for the root partition (/) in the /etc/fstab file

    OS

    HDLM boot disk environment

    Without LVM

    With LVM

    Red Hat Enterprise Linux 7

    Red Hat Enterprise Linux 8

    Red Hat Enterprise Linux 9

    Oracle Linux 7

    Oracle Linux 8

    /dev/{HDLM device}

    /dev/mapper/{VG}-{LV}

    SUSE LINUX Enterprise Server 12

    SUSE LINUX Enterprise Server 15

    UUID={UUID-value} or /dev/{VG}/{LV}

  8. Execute the swapoff command to disable a swap device.

    An example of executing the command to disable all swap devices is as follows:

    # /sbin/swapoff -a

    In an environment where all of the following conditions are met, if you perform the step while a swap device is enabled, the host might take a while to stop.

    Make sure to disable the swap, and then perform the step.

    • Either of the following OSs is used:

      • Red Hat Enterprise Linux 7

      • Red Hat Enterprise Linux 8

      • Red Hat Enterprise Linux 9

      • Oracle Linux 7

      • Oracle Linux 8

      • Oracle Linux 9

      • SUSE LINUX Enterprise Server 12

      • SUSE LINUX Enterprise Server 15

    • The HDLM management-target device is enabled as a swap device.

  9. Create an initial RAM disk image file for HDLM.

    The format of the initial RAM disk image file name to be specified in the parameter is shown below. If a file having the same name as the initial RAM disk image file to be created already exists, back up the existing file under a different name.

    Table. Names of initial RAM disk image files for HDLM

    OS

    File name

    Red Hat Enterprise Linux 7

    Red Hat Enterprise Linux 8

    Red Hat Enterprise Linux 9

    Oracle Linux 7

    Oracle Linux 8

    Oracle Linux 9

    initramfs-{kernel-version#}.img

    SUSE LINUX Enterprise Server 12

    SUSE LINUX Enterprise Server 15

    initrd-{kernel-version#}

    #

    This is the output result of the uname -r command.

    From the following, perform the procedure.

    1. Change hdlm_dracut=n defined in the /etc/opt/DynamicLinkManager/hdlm.conf file to hdlm_dracut=y.

    2. Execute the dracut command.

      The following shows an example of executing the command:

      # /usr/bin/dracut /boot/initramfs-4.18.0-305.el8.x86_64.img `uname -r`
  10. Back up the boot loader configuration file.

    Check that resume is not specified for the kernel parameter for the OS start process.

    1. Check the kernel parameter for the OS start process.

      # /usr/bin/cat /proc/cmdline
      BOOT_IMAGE=/boot/vmlinuz-3.12.28-4-default \
      root=UUID=c12fce35-4de5-4674-8b3b-2a2e45007b61 \
      resume=/dev/system/swap splash=silent quiet crashkernel=214M-:107M showopts
      #

      If resume is specified, re-create the boot loader configuration file for which resume is not specified by performing the steps below. If resume is not specified, then this procedure is unnecessary, and you can go to step 11.

    2. Delete resume from the /etc/default/grub file.

      Before:

      GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/system/swap splash=silent quiet crashkernel=214M-:107M showopts"

      After:

      GRUB_CMDLINE_LINUX_DEFAULT="splash=silent quiet crashkernel=214M-:107M showopts"

      If resume is specified for the GRUB_CMDLINE_LINUX key, delete resume in the same way.

    3. Re-create grub.cfg by using the grub2-mkconfig command, and then proceed to step 11.

      The following shows an example of executing the command.

      • For Red Hat Enterprise Linux 9.4 or later:

        Specify the option --update-bls-cmdline, and then run the command.

        # grub2-mkconfig -o /boot/grub2/grub.cfg --update-bls-cmdlin
      • For OSs other than the above:

        # grub2-mkconfig -o /boot/grub2/grub.cfg
  11. Shut down the host.

    Execute the following command to shut down the host:

    # shutdown -h now
  12. Add a path to the LU (system disk) and then change the configuration from a single-path configuration to a multi-path configuration.

  13. Start the host.

  14. Check that the HDLM boot disk environment is configured.

    See /proc/mounts to check the devices mounted on the root (/). Then execute the following command to output the root information and check the devices that are output.

    # /bin/cat /proc/mounts | /bin/grep -w / | /bin/grep -v rootfs

    Check as follows, depending on the devices that are output.

    • If /dev/{HDLM-device} is output:

      The HDLM boot disk environment is used.

    • If another device is output:

      1. Execute the /usr/bin/readlink -f {output-device} command.

        The full path of the file is output.

      2. Execute the /bin/ls -l {output-device} command.

        In a general file, the major and minor values are displayed where the file size is displayed.

      3. Execute the following command with the major value specified for the argument:

        # /bin/cat /proc/devices | /bin/grep -w {major}
        • If sddlmfdrv is output, the HDLM boot disk environment is used.

        • If device-mapper is output:

          Execute /sbin/dmsetup ls --tree to check the major and minor values of the device associated with the major and minor values displayed in b..

          Display example:

          # /sbin/dmsetup ls --tree
          system-usr (252:3)
            |- (251:2)
          system-var (252:4)
            |- (251:2)
          system-swap (252:1)
            |- (251:2)
          system-root (252:0)
            |- (251:2)
          system-tmp (252:2)
            |- (251:2)
          #

          If the major and minor values in b. are 252 and 0 respectively, then, in the example above, the corresponding device is (251:2), which has major and minor values of 251 and 2 respectively.

          Execute the following command with the major value specified for the argument:

          /bin/cat /proc/devices | /bin/grep -w {major}

          If sddlmfdrv is output, the HDLM boot disk environment is used.

          If sddlmfdrv is not output, the HDLM boot disk environment is not used.

        • If another device is output:

          The HDLM boot disk environment is not used.