Home Linux Best Practices for Configuring Multipath with Fiber Channel Storage in Ubuntu

Best Practices for Configuring Multipath with Fiber Channel Storage in Ubuntu

by Lakindu Jayasena
201 views 15 mins read
Best Practices for Configuring Multipath with Fiber Channel Storage

Configuring multipath with Fibre Channel (FC) storage is essential for ensuring high availability, redundancy, and performance in your large-scale on-premises data center environments. When utilizing Linux as an initiator for fiber channel access to the PowerVault ME5 series Storage Array, this guide outlines best practices for configuring and optimizing multipath with Fibre Channel storage on widely used Ubuntu-based systems.

Brief About Fiber Channel

Fibre Channel (FC) is a high-speed network technology primarily used to connect computer servers to storage area networks (SANs). It’s designed for fast, reliable, and low-latency data transfer, typically in data centers and enterprise environments.

Components of a Fibre Channel Environment

  • HBAs (Host Bus Adapters) – Fibre Channel “NICs” in servers.
  • FC Switches – Like Ethernet switches but dedicated to FC traffic (e.g., Brocade, Cisco MDS).
  • SAN Storage Arrays – High-performance storage that supports FC (e.g., Dell ME5, NetApp, HPE 3PAR).
FC Network Components

What is WWPN?

WWPN (World Wide Port Name) is a unique identifier assigned to each Fibre Channel (FC) port on a device. It is a 64-bit hexadecimal number assigned by the manufacturer and is similar to a MAC address in Ethernet networking. Every Fibre Channel device, including your Host Bus Adapter (HBA), FC switch, and SAN, has a WWPN for each FC port.

How to Find WWPNs?

In the Linux systems, you can enter the following command to find the FC HBA WWPNs.

cat /sys/class/fc_host/host*/port_name

In your FC SAN, you can find it inside the Controller port details.

Configure Fibre Channel Zoning

Why Do We Need Zoning?

Zoning is a security and performance feature in Fibre Channel networks. It defines which devices (servers, storage, etc.) can communicate with each other. Most of the FC switches support zoning features out of the box. There are some key benefits you can gain when configuring zones on your FC switch.

  • Security: Prevents unauthorized access between devices.
  • Isolation: Reduces the risk of one device interfering with others.
  • Performance: Reduces FC switch workload by limiting unnecessary traffic.
  • Multipathing Support: Ensures correct paths for failover and load balancing.

The recommended zoning approach is to create a dedicated zone for each Fibre Channel (FC) HBA port on your server. Each SAN controller FC port should also be zoned separately. Each zone should contain exactly one HBA port WWPN and one SAN controller port WWPN.

Example Zoning Configuration:

Zone NameServer HBA WWPNSAN Controller FC WWPN
ZONE_Server01_A0xx:xx:xx:xx:xx:xx:xx:01yy:yy:yy:yy:yy:yy:yy:01
ZONE_Server01_B0xx:xx:xx:xx:xx:xx:xx:02yy:yy:yy:yy:yy:yy:yy:02

Each zone allows only one-to-one communication, ensuring optimized and secure SAN access.

Create Aliases for WWPNs

Log in to your Fibre Channel (FC) switch via the web UI and navigate to Zoning → Zone Aliases. In this section, you can create zone aliases for each FC interface by adding their respective WWPNs. In this example, I will add the two FC ports from the server’s HBA and the FC ports from the SAN controllers.

Create Zones

Now, let’s create zones. Each zone should include one server HBA FC port and one SAN controller FC port.

Likewise, create zones for other interface/s.

Add Zones to a Configuration

In FC switches, zones define which initiator (server HBA) can talk to which target (storage controller port). However, zones alone do nothing until they are added to a configuration and activated.

Let’s activate the created zones by creating a zone configuration.

Configure SAN Storage

Once you have created a storage pool by initializing the required RAID configuration on your Dell FC SAN, you can begin creating volumes from that storage pool. For this demonstration, I will create a 200GB storage pool.

Navigate to ProvisioningVolumesCreate Volume

Select your storage pool, assign a suitable name to the volume, specify the desired volume size, and then click ‘Add Volume’.

In the next step, you need to choose the option to create a new host (if you don’t have a host or a host group).

Now, you need to add your Dell servers using their WWPNs. You can change the initiator ID nickname as required.

Once all the above steps are completed, the created volume will be assigned to its corresponding host.

The next step is to configure Multipath I/O (MPIO) on your servers. This ensures failover and load balancing between the two Fibre Channel paths.

Verify SAN Connectivity in Linux

First, verify that your Fibre Channel host adapters are detected on your Linux server:

ls /sys/class/fc_host/

Retrieve details of the HBA ports on the server:

for host in /sys/class/fc_host/host*; do
    echo "HBA: $(basename $host)";
    echo "WWPN: $(cat $host/port_name)";
    echo "WWNN: $(cat $host/node_name)";
    echo "Port State: $(cat $host/port_state)";
done

Scan for new FC LUNs:

for host in /sys/class/scsi_host/host*; do
  echo "- - -" > $host/scan
done

Now, check the block devices by running the lsblk command. You will see that the newly created volume appears as two separate disks sdb and sdc due to the multiple paths.

What is Multipathing?

Multipathing is the technique of using multiple physical paths between the host (your Ubuntu server) and storage devices (e.g., SAN or FC storage arrays). It provides failover and load balancing, ensuring continuous data access even if one path fails.

Let’s Install multipath tools if it is not already installed:

sudo apt install multipath-tools

#Makesure that multipathd service is enabled and running.
sudo systemctl enable multipathd
sudo systemctl start multipathd
sudo systemctl status multipathd

After installing the multipath tools, confirm that all paths are active.

multipath -ll

If you are unable to see any output of the multipath -ll command, just force Multipath Scan (if needed)

sudo multipath -F   # flush old maps
sudo multipath -v4  # force re-detection with high verbosity

Tuning Multipath Configuration for Best Performance

The /etc/multipath.conf file is the main configuration file for the Device Mapper Multipath service on Linux (used for multipathing SAN storage). It controls how the system detects, manages, and balances multiple paths to the same block device.

Configure Multipath Load Balancing Policies

Multipath I/O (MPIO) supports different load-balancing policies to optimize performance and redundancy. The best policy depends on your storage system and use case.

Types of Multipath Load Balancing Policies

PolicyDescription
round-robinDistributes I/O evenly across all available paths (✅ Best for performance)
failoverUses only one active path; others remain on standby (✅ Best for HA)
load balancingUses hardware controller’s load-balancing algorithm (e.g., ALUA)
priority-basedSelects paths based on priorities set by the SAN

Dell ME5 Series storage arrays support ALUA (Asymmetric Logical Unit Access), where one controller path is active-optimized and the other is on standby. To maximize performance and ensure optimal use of both Fibre Channel ports, a round-robin path selection policy is ideal for best performance.

Edit /etc/multipath.conf and set:

#Sets general behavior for all devices
defaults {
    user_friendly_names yes
    find_multipaths yes
    polling_interval 5
    no_path_retry fail
    fast_io_fail_tmo 5
    dev_loss_tmo 10
}

#Used to exclude specific devices from multipathing.
blacklist {
    devnode "^sda"    # Don't multipath the local system disk
}

#Used to define how to handle specific storage hardware (by vendor/product).
devices {
    device {
        vendor "DELL"
        product "ME5"
        path_grouping_policy    group_by_prio
        path_selector           "round-robin 0"
        failback                immediate
        rr_weight               uniform
        no_path_retry           queue
        hardware_handler        "1 alua"
        prio                    alua
    }
}

multipaths {
    multipath {
        wwid "3600c098000afceb90000026701000000"
        alias ME5XXX_VOL01
    }
}

Note: Adjust vendor and product values based on your actual storage.

Restart multipath service:

sudo systemctl restart multipathd

Then enter the multipath -ll command to see the active paths with configured names and policies.

Conclusion

Whether you’re managing a small SAN setup or a large-scale data center, these best practices will help you get the most out of your Linux and Fibre Channel-based storage environment.

Multipath with Fibre Channel storage is essential for achieving high availability, improved performance, and storage redundancy in enterprise environments. Following the best practices outlined here ensures that your Linux server environment can handle path failures gracefully, balance I/O effectively, and avoid data access issues.

Related Articles

Leave a Comment

* By using this form you agree with the storage and handling of your data by this website.