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>
Using Pacemaker/Corosync:
# Install cluster packages
sudo dnf install -y pcs pacemaker corosync fence-agents-all
# Enable and start pcsd
sudo systemctl enable --now pcsd
# Set hacluster password (on all nodes)
sudo passwd hacluster
# Authenticate nodes (run on one node)
sudo pcs host auth node1 node2 node3 -u hacluster
# Create cluster
sudo pcs cluster setup mycluster node1 node2 node3
# Start cluster
sudo pcs cluster start --all
sudo pcs cluster enable --all
# Verify cluster status
sudo pcs status
Fencing Configuration
Configure STONITH (fencing):
# Disable STONITH for testing (NOT for production)
sudo pcs property set stonith-enabled=false
# For production, configure appropriate fence agent
# Example: IPMI fencing
sudo pcs stonith create fence_node1 fence_ipmilan \
pcmk_host_list="node1" \
ipaddr="10.0.0.101" \
login="admin" \
passwd="password" \
lanplus=1
# Verify fencing
sudo pcs stonith status
Shared Storage Resources
Configure iSCSI LVM as cluster resource:
# Create LVM volume group on multipath device
sudo vgcreate --clustered y 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
sudo pcs resource create fs_data Filesystem \
device="/dev/vg_iscsi/lv_data" \
directory="/mnt/data" \
fstype="xfs" \
--group storage_group
# Verify
sudo pcs resource status