Multipath IO Configuration

From OSNEXUS Online Documentation Site
Jump to: navigation, search

QuantaStor supports round-robin style active/active multipathing using Microsoft's MPIO and via Linux using the device-mapper multipath (dmmp) driver. Active/active multipath support not only boosts performance, it also gives you the benefit of automatic path failover when a network connection is lost to one of your NICs on the host (initiator side) or the storage system (target side).

iSCSI Multipathing should be configured using IP's on different network subnets/vlans to ensure proper communication of the paths. Using the same subnet with multiple IP's will not provide a proper multipathing config. QuantaStor will present out iSCSI communication on any iSCSI enabled interface by default, there is no additional configuration required inside QuantaStor to enable path(s) for iSCSI Multipathing other than configuring the network interface with an appropriate IP address and subnet.

e.g. the below example networking configuration would provide two network paths between the QuantaStor and the Host connecting to the QuantaStor.

QuantaStor server IP configuration

10.0.1.121/24
10.0.2.121/24


Host Client IP Configuration

10.0.1.125/24
10.0.2.125/24

Once the Network configuration is correct, the appropriate Multipathing configuration will need to be performed on the Host Client side, the rest of this section details how to configure Multipathing for the most popular client operating systems.

For Microsoft MPIO configuration you'll need to add the QuantaStor vendor / model information so that Microsoft's default DSM (device specific module) can detect QuantaStor volumes and automatically enable multipathing for them thereby combining multiple paths to your QuantaStor Storage System in a single device as seen in the Windows Disk Manager.

For Linux, you'll need to first install dmmp for your Linux distribution, and then modify the /etc/multipath.conf file to include an additional stanza so that the system properly identifies the QuantaStor devices and uses the correct multi-path device identification and path management rules.

Note: QuantaStor supports SCSI-3 Persistent Reservations so you can use it with Microsoft's Failover Clustering / Hyper-V and other cluster solutions that require SCSI-2 or SCSI-3 reservations.

Configuring Microsoft MPIO

The first step in configuring MPIO on Windows Server is to navigate to MPIO properties. (Note that desktop versions of Windows such as XP, Vista, and Windows 7/8 do not support MPIO, you must be using Windows Server 2003/2008/2012) The easiest way to get to the MPIO configuration screen is to type MPIO in the Start menu search bar. It can also be found in the Control Panel under "MPIO".

The string you will want to add for QuantaStor is "OSNEXUS QUANTASTOR      ".

Once you're at the MPIO dialog, select the "MPIO Devices" tab and then click the "Add" button. The string you will need to add for QuantaStor is exactly:

OSNEXUS QUANTASTOR      
       ^          ^^^^^^

Note that the '^' characters are provided here so that you can see where the spaces are. Note also that these are all capital letters, with one space between the words, and exactly six trailing spaces after QUANTASTOR. If you don't have exactly (6) trailing spaces then the MPIO driver won't recognize the QuantaStor devices and you'll end up with multiple instances of the same disk in Windows Disk Manager.


VMWare Special Note

In the case that VMWare is used, no changes to multipathing are required. VMWare works with iSCSI and FC multipathing by default.

Configuring Linux Device-Mapper Multipath (DMMP)

After you have device mapper installed on your Linux distribution, you'll need to login to your system as root and then add this section to your /etc/multipath.conf file for CentOS:

        device {
                vendor                  "OSNEXUS"
                product                 "QUANTASTOR"
                getuid_callout          "/sbin/scsi_id -g -u -s /block/%n"
                path_grouping_policy    multibus
                failback                immediate
                path_selector           "round-robin 0"
                rr_weight               uniform
                rr_min_io               100
                path_checker            tur
        }

On Ubuntu/Debian the 'getuid_callout' part is a little different so use this version for Ubuntu:

        device {
                vendor                  "OSNEXUS"
                product                 "QUANTASTOR"
                getuid_callout "/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/%n"
                path_grouping_policy    multibus
                failback                immediate
                path_selector           "round-robin 0"
                rr_weight               uniform
                rr_min_io               100
                path_checker            tur
        }

In the case that a Fibre Channel card is in use, ALUA will need to be enabled. The multipath device entry will have these properties:

        device {
                vendor "OSNEXUS"
                product "QUANTASTOR"
                getuid_callout "/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/%n"
                prio alua
                hardware_handler "1 alua"
                path_grouping_policy group_by_prio
                failback immediate
                no_path_retry 10
                rr_min_io 100
                path_checker tur
                rr_weight uniform
        }

Please Note: Starting with the 0.5 release of the linux multipath tools, an additional property "(ID_SCSI_VPD|ID_WWN|ID_SERIAL)" definition needs to be added to the definitions in the blacklist_exceptions portion of the multipath.conf file.

blacklist_exceptions {
    property "(ID_SCSI_VPD|ID_WWN|ID_SERIAL)"
    device {
        vendor "OSNEXUS"
        product "QUANTASTOR"

    }
}

Once the file is updated you'll want to restart the multipath service like so:

service multipathd restart

Once you have it all configured and you're logging into the iSCSI target / storage volume with your iSCSI initiator you'll want to run 'multipath -l' to list the paths and you should see something like this:

14f534e455855530038323061623737393365306365643738dm-2 OSNEXUS,QUANTASTOR
[size=512M][features=0][hwhandler=0]
\_ round-robin 0 [prio=0][active]
 \_ 120:0:0:0 sdg 8:96  [active][undef]
 \_ 119:0:0:0 sdf 8:80  [active][undef]
14f534e455855530038323061623737393735393231656332dm-1 OSNEXUS,QUANTASTOR
[size=4.0G][features=0][hwhandler=0]
\_ round-robin 0 [prio=0][active]
 \_ 118:0:0:0 sde 8:64  [active][undef]
 \_ 117:0:0:0 sdc 8:32  [active][undef]

Remember, you'll need to make sure that you mount your filesystems using the correct unique device ID under /dev/mapper/ so that the multipath driver is utilized. If you mount your filesystem from /dev/sdXX you'll have completely bypassed the multi-path driver and will not get the performance an fail-over capabilities.