The Intel® Modular Server (IMS) integrates storage, computing, and networking to one system to simplify complex IT environments. It is a 6u chassis that can be configured with up to 6 compute nodes and includes an integrated SAS SAN.

Background:

By default, XenServer’s multipath driver doesn’t have a specific configuration for the IMS integrated SAS array, and rather uses a generic configuration. This configuration does not properly identify the path states, and therefore doesn’t multipath properly.

Before the procedure below is applied, the following is the result of getting status using mpathutil:

[root@xs01 ~]# mpathutil status
2226d000155267016 dm-0  Intel,Multi-Flex
[size=300G][features=0       ][hwhandler=0        ][rw        ]
\_ round-robin 0 [prio=0][enabled]
 \_ 0:0:0:1 sdb 8:16  [failed][faulty]
\_ round-robin 0 [prio=0][enabled]
 \_ 0:0:1:1 sdd 8:48  [active][ready]

After the procedure below is applied, the following is the result of getting status using mpathutil:

[root@xs01 ~]# mpathutil status
2226d000155267016 dm-0  Intel,Multi-Flex
[size=300G][features=1 queue_if_no_path][hwhandler=1 alua   ][rw        ]
\_ round-robin 0 [prio=50][enabled]
 \_ 0:0:1:1 sdd 8:48  [active][ready]
\_ round-robin 0 [prio=1][enabled]
 \_ 0:0:0:1 sdb 8:16  [active][ready]

Notes:

  • The following configuration was employed on XenServer 5.6, but should be relevant to XenServer 5.6 FP1 as well. The configuration resolves the issue and had positive effect, but was not rigorously tested.
  • This article does not go into detail on how to use the Linux command line to manipulate text files. Please refer to Linux documentation for further information.
  • On XenServer 5.6, the multipath.conf “file” is a symbolic link to multipath-enabled.conf when multipathing is enabled, and to multipath-disabled.conf when multipathing is disabled. When following the steps below on 5.6, make sure multipathing is enabled prior to completing the steps, or modify the multipath-enabled.conf instead of multipath.conf.

Procedure:

The following should be completed on each XenServer host:

  • Evacuate VMs from the host, either by migration (Maintenance Mode) or shutdown
  • Connect to the CLI of the host, either through the console tab in XenCenter or through an SSH client (OpenSSH, Putty, etc.)
  • cd to /etc
  • Backup the multipath.conf file
  • Edit multipath.conf, adding the following “device” entry to the “devices” tree:
    multipath.conf
    device {
            vendor                  <span class="code-quote">"Intel"</span>
            product                 <span class="code-quote">"Multi-Flex"</span>
            path_grouping_policy    <span class="code-quote">"group_by_prio"</span>
            getuid_callout          <span class="code-quote">"/sbin/scsi_id -g -u -s /block/%n"</span>
            prio_callout            <span class="code-quote">"/sbin/mpath_prio_intel /dev/%n"</span>
            path_checker            tur
            path_selector           <span class="code-quote">"round-robin 0"</span>
            hardware_handler        <span class="code-quote">"1 alua"</span>
            failback                immediate
            rr_weight               uniform
            rr_min_io               100
            no_path_retry           queue
            features                <span class="code-quote">"1 queue_if_no_path"</span>
    }
  • Reboot the XenServer host