iSCSI Target Setup
This guide covers setting up iSCSI targets using the Linux-IO (LIO) target subsystem (targetcli) or iscsiman to expose shared block storage backends to PiVirt clusters.
Prerequisites
Section titled “Prerequisites”# Install LIO toolsapt-get install -y targetcli-fb
# Load kernel modulesmodprobe target_core_modmodprobe target_core_filemodprobe target_core_blockCreate Target
Section titled “Create Target”Using pvcli
Section titled “Using pvcli”# Create targetpvcli storage target create \ --iqn iqn.2024-01.hu.pilab:vm-storage \ --alias "VM Storage Pool" \ --portal 0.0.0.0:3260
# Add LUNpvcli storage target lun add \ --target iqn.2024-01.hu.pilab:vm-storage \ --lun 1 \ --device /dev/pivirtd-vg/vm-disk-01Using targetcli
Section titled “Using targetcli”# Enter targetclitargetcli
# Create backstore/backstores/block create name=disk01 dev=/dev/pivirtd-vg/vm-disk-01
# Create target/iscsi create iqn.2024-01.hu.pilab:vm-storage
# Create TPG/iscsi/iqn.2024-01.hu.pilab:vm-storage/tpg1 create
# Create LUN/iscsi/iqn.2024-01.hu.pilab:vm-storage/tpg1/luns create /backstores/block/disk01
# Create portal/iscsi/iqn.2024-01.hu.pilab:vm-storage/tpg1/portals create 0.0.0.0 3260
# Set CHAP authentication/iscsi/iqn.2024-01.hu.pilab:vm-storage/tpg1/set attribute authentication=1/iscsi/iqn.2024-01.hu.pilab:vm-storage/tpg1/set auth userid=iscsi-user/iscsi/iqn.2024-01.hu.pilab:vm-storage/tpg1/set auth password=iscsi-password
# Save configurationsaveconfigexitConfigure Authentication
Section titled “Configure Authentication”CHAP Authentication
Section titled “CHAP Authentication”target: auth: method: "chap" incoming_user: "iscsi-user" incoming_password_ref: "vault:secret/data/iscsi/chap#incoming" outgoing_user: "iscsi-target" outgoing_password_ref: "vault:secret/data/iscsi/chap#outgoing"ACL Configuration
Section titled “ACL Configuration”# Create initiator ACL/iscsi/iqn.2024-01.hu.pilab:vm-storage/tpg1/acls create iqn.2024-01.hu.pilab:initiator-01
# Set CHAP for initiator/iscsi/iqn.2024-01.hu.pilab:vm-storage/tpg1/acls/iqn.2024-01.hu.pilab:initiator-01 set auth userid=initiator-user/iscsi/iqn.2024-01.hu.pilab:vm-storage/tpg1/acls/iqn.2024-01.hu.pilab:initiator-01 set auth password=initiator-passwordALUA Configuration
Section titled “ALUA Configuration”# Enable ALUA/iscsi/iqn.2024-01.hu.pilab:vm-storage/tpg1 set attribute alua_support=1
# Create ALUA group/iscsi/iqn.2024-01.hu.pilab:vm-storage/tpg1/alua create name=default_alua
# Set ALUA state/iscsi/iqn.2024-01.hu.pilab:vm-storage/tpg1/alua/default_alua set alua_access_state=0Monitoring
Section titled “Monitoring”Check Target Status
Section titled “Check Target Status”# List targetstargetcli ls
# Check LIO statuscat /sys/kernel/config/target/iscsi/iqn.2024-01.hu.pilab:vm-storage/tpgt_1/enableCheck Sessions
Section titled “Check Sessions”# List active sessionstargetcli ls /iscsi/iqn.2024-01.hu.pilab:vm-storage/tpg1/aclsTroubleshooting
Section titled “Troubleshooting”Target Not Visible
Section titled “Target Not Visible”# Check target servicesystemctl status target
# Check firewallnft list ruleset | grep 3260
# Check LIO configtargetcli lsAuthentication Failed
Section titled “Authentication Failed”# Verify CHAP credentialscat /etc/target/saveconfig.json | grep -A5 auth
# Check initiator configcat /etc/iscsi/iscsid.conf | grep -i chap