iSCSI Path Redundancy Model
Failover Behavior
iSCSI/dm-multipath Failover Sequence
Failover Timing
iSCSI Failover Parameters
| Parameter | Default | Recommended | Description |
|---|---|---|---|
replacement_timeout
|
120s | 20s | Time before failing over to alternate path |
fast_io_fail_tmo
|
5s | 5s | Time before marking path as failed |
no_path_retry
|
fail | queue | Behavior when all paths fail |
polling_interval
|
5s | 5s | Path checking frequency |
Configure timeouts in /etc/iscsi/iscsid.conf:
# Aggressive failover (faster, may cause false positives in busy networks)
node.session.timeo.replacement_timeout = 20
# Conservative failover (slower, more tolerant of network glitches)
node.session.timeo.replacement_timeout = 60
Path States
dm-multipath Path Groups
Failback Behavior
Automatic failback (default for active/active arrays):
-
When failed path recovers, I/O is automatically rebalanced
-
No manual intervention required
Manual failback (for active/passive arrays):
# Check current path states
multipathd show paths
# Force path check
multipathd reconfigure
# Manually switch path group
multipathd switchgroup <multipath_device> <group_number>
Cluster Configuration with Pacemaker
Install cluster packages:
# Install Pacemaker and Corosync
sudo zypper install -y pacemaker corosync crmsh fence-agents
# Enable cluster services
sudo systemctl enable --now pacemaker
sudo systemctl enable --now corosync
# Check cluster status
sudo crm status
Using YaST for Cluster Configuration
Configure cluster with YaST:
# Install YaST cluster module
sudo zypper install -y yast2-cluster
# Launch YaST cluster configuration
sudo yast cluster
# Follow GUI to configure:
# 1. Cluster name
# 2. Node membership
# 3. Communication settings
# 4. Resources
Shared Storage Resources
Configure iSCSI LVM as cluster resource:
# Create LVM volume group on multipath device
sudo vgcreate vg_iscsi /dev/mapper/mpatha
# Create logical volume
sudo lvcreate -L 100G -n lv_data vg_iscsi
# Create filesystem
sudo mkfs.xfs /dev/vg_iscsi/lv_data
# Add to cluster as resource using crm
sudo crm configure primitive fs_data Filesystem \
params device="/dev/vg_iscsi/lv_data" directory="/mnt/data" fstype="xfs" \
op monitor interval="20s"
# Verify
sudo crm status