iSCSI Initiator Setup
This guide covers configuring open-iscsi initiators on PiVirt hypervisor nodes to automatically discover, authenticate, and connect to remote iSCSI SAN targets.
Prerequisites
Section titled “Prerequisites”# Install open-iscsiapt-get install -y open-iscsi
# Load kernel modulesmodprobe iscsi_tcpmodprobe iscsi_ibft
# Start iscsid servicesystemctl enable --now iscsidDiscover Targets
Section titled “Discover Targets”SendTargets Discovery
Section titled “SendTargets Discovery”# Discover targets on portaliscsiadm -m discovery -t sendtargets -p 10.0.1.10:3260
# Output example:# 10.0.1.10:3260,1 iqn.2024-01.hu.pilab:iscsiman.target-01Using pvcli
Section titled “Using pvcli”# Discover targetspvcli storage initiator discover --portal 10.0.1.10:3260Login to Target
Section titled “Login to Target”Manual Login
Section titled “Manual Login”# Login to targetiscsiadm -m node -T iqn.2024-01.hu.pilab:iscsiman.target-01 -p 10.0.1.10:3260 -l
# Output:# Logging in to [iface: default, target: iqn.2024-01.hu.pilab:iscsiman.target-01, portal: 10.0.1.10,3260]# Login to [iface: default, target: iqn.2024-01.hu.pilab:iscsiman.target-01, portal: 10.0.1.10,3260] successful.Using pvcli
Section titled “Using pvcli”# Login to targetpvcli storage initiator login \ --target iqn.2024-01.hu.pilab:iscsiman.target-01 \ --portal 10.0.1.10:3260Configure CHAP Authentication
Section titled “Configure CHAP Authentication”Configure CHAP
Section titled “Configure CHAP”# Edit iscsid.confcat > /etc/iscsi/iscsid.conf <<EOF# CHAP authenticationnode.session.auth.authmethod = CHAPnode.session.auth.username = iscsi-usernode.session.auth.password = iscsi-password
# Discovery CHAP (if required)discovery.sendtargets.auth.authmethod = CHAPdiscovery.sendtargets.auth.username = iscsi-userdiscovery.sendtargets.auth.password = iscsi-passwordEOF
# Restart iscsidsystemctl restart iscsidUsing pvcli
Section titled “Using pvcli”# Configure CHAPpvcli storage initiator configure \ --target iqn.2024-01.hu.pilab:iscsiman.target-01 \ --chap-user iscsi-user \ --chap-password iscsi-passwordConfigure Auto-Login
Section titled “Configure Auto-Login”Enable Auto-Login
Section titled “Enable Auto-Login”# Set node startup to automaticiscsiadm -m node -T iqn.2024-01.hu.pilab:iscsiman.target-01 -p 10.0.1.10:3260 --op update -n node.startup -v automatic
# Verifyiscsiadm -m node -T iqn.2024-01.hu.pilab:iscsiman.target-01 -p 10.0.1.10:3260 | grep startupVerify Connection
Section titled “Verify Connection”Check Sessions
Section titled “Check Sessions”# List active sessionsiscsiadm -m session -P 3
# Output example:# Target: iqn.2024-01.hu.pilab:iscsiman.target-01# Current Portal: 10.0.1.10:3260,1# Persistent Portal: 10.0.1.10:3260,1# **********# Interface:# **********# Iface Name: default# Iface Transport: tcp# Iface Initiatorname: iqn.1993-08.org.debian:01:abcdef123456# **********# Portal:# **********# Portal: 10.0.1.10:3260# Portal Group: 1# **********# Target:# **********# Target: iqn.2024-01.hu.pilab:iscsiman.target-01# LUN: 0# LUN: 1Check Block Devices
Section titled “Check Block Devices”# List iSCSI deviceslsblk | grep sd
# Check device detailslsblk -d -o name,model,serial,wwn /dev/sdbLogout from Target
Section titled “Logout from Target”Manual Logout
Section titled “Manual Logout”# Logout from targetiscsiadm -m node -T iqn.2024-01.hu.pilab:iscsiman.target-01 -p 10.0.1.10:3260 -uUsing pvcli
Section titled “Using pvcli”# Logout from targetpvcli storage initiator logout \ --target iqn.2024-01.hu.pilab:iscsiman.target-01Rescan for New LUNs
Section titled “Rescan for New LUNs”Rescan Sessions
Section titled “Rescan Sessions”# Rescan all sessionsiscsiadm -m session --rescanUsing pvcli
Section titled “Using pvcli”# Rescan sessionspvcli storage initiator rescanConfigure Multipath
Section titled “Configure Multipath”Install multipath-tools
Section titled “Install multipath-tools”apt-get install -y multipath-toolsConfigure multipath
Section titled “Configure multipath”# Create multipath configurationcat > /etc/multipath.conf <<EOFdefaults { user_friendly_names yes find_multipaths smart path_checker tur path_grouping_policy group_by_prio prio alua failback immediate}
devices { device { vendor "LIO-ORG" product "*" path_checker tur hardware_handler "1 alua" }}EOF
# Restart multipathdsystemctl restart multipathdVerify Multipath
Section titled “Verify Multipath”# Check multipath devicesmultipath -ll
# Output example:# mpatha (360050764008181c60000000000000001) dm-0 LIO-ORG,iscsiman.target-01# size=100G features='0' hwhandler='1 alua' wp=rw# |-+- policy='service-time 0' prio=50 status=active# | `- 6:0:0:0 sdb 8:16 active ready running# `-+- policy='service-time 0' prio=10 status=enabled# `- 7:0:0:0 sdc 8:32 active ready runningMonitoring
Section titled “Monitoring”Check Session Status
Section titled “Check Session Status”# Check session statusiscsiadm -m session -P 1
# Check connection statusiscsiadm -m session -P 3 | grep -A5 "Portal"Check Performance
Section titled “Check Performance”# Check I/O statsiostat -x /dev/sdb 1
# Check throughputfio --name=iscsi-test --ioengine=libaio --iodepth=16 \ --rw=randread --bs=4k --direct=1 --size=1G \ --filename=/dev/sdbTroubleshooting
Section titled “Troubleshooting”Login Failed
Section titled “Login Failed”# Check iscsid statussystemctl status iscsid
# Check CHAP credentialscat /etc/iscsi/iscsid.conf | grep -i chap
# Check target accessibilitync -zv 10.0.1.10 3260Connection Lost
Section titled “Connection Lost”# Check network connectivityping 10.0.1.10
# Check iscsid logsjournalctl -u iscsid -f
# Reconnectiscsiadm -m node -T iqn.2024-01.hu.pilab:iscsiman.target-01 -p 10.0.1.10:3260 -lMultipath Issues
Section titled “Multipath Issues”# Check multipath statusmultipath -ll
# Check multipathd logsjournalctl -u multipathd -f
# Restart multipathdsystemctl restart multipathd