Skip to content

Instantly share code, notes, and snippets.

@DvdGiessen
Last active March 9, 2024 12:10
Show Gist options
  • Save DvdGiessen/90165ca84ee4999219b72b9c5e1a5c3e to your computer and use it in GitHub Desktop.
Save DvdGiessen/90165ca84ee4999219b72b9c5e1a5c3e to your computer and use it in GitHub Desktop.
iSCSI between SmartOS and Linux
#!/bin/bash
# Ensure disks are connected
[[ -e /dev/rdsk/c0t50014EE20CF94363d0 ]] || exit
[[ -e /dev/rdsk/c0t50014EE2B34C02BBd0 ]] || exit
[[ -e /dev/rdsk/c0t50014EE2B3AEA7EDd0 ]] || exit
# Enable SCSI target mode framework and iSCSI target
svcadm enable -r svc:/system/stmf:default
svcadm enable -r svc:/network/iscsi/target:default
#/dev/rdsk/c0t50014EE20CF94363d0
#Serial Number: WD-WCC5D1SZYZZD
#/dev/rdsk/c0t50014EE2B34C02BBd0
#Serial Number: WD-WCC130682435
#/dev/rdsk/c0t50014EE2B3AEA7EDd0
#Serial Number: WD-WCC131106000
# Ensure directory for SCSI meta files exists
mkdir -p /var/run/iscsi-meta
for GUID in 600144F038CD430000006446C8060001 600144F038CD430000006446C86D0002 600144F038CD430000006446C9150003 ; do
if [[ ! -f "/var/run/iscsi-meta/$GUID" ]] ; then
mkfile 64k "/var/run/iscsi-meta/$GUID"
chmod 644 "/var/run/iscsi-meta/$GUID"
fi
done
# Create logical units for each of our disks
stmfadm create-lu -p wcd=true -p guid=600144F038CD430000006446C8060001 -p meta=/var/run/iscsi-meta/600144F038CD430000006446C8060001 -p alias=WD-WCC5D1SZYZZD /dev/rdsk/c0t50014EE20CF94363d0
stmfadm create-lu -p wcd=true -p guid=600144F038CD430000006446C86D0002 -p meta=/var/run/iscsi-meta/600144F038CD430000006446C86D0002 -p alias=WD-WCC130682435 /dev/rdsk/c0t50014EE2B34C02BBd0
stmfadm create-lu -p wcd=true -p guid=600144F038CD430000006446C9150003 -p meta=/var/run/iscsi-meta/600144F038CD430000006446C9150003 -p alias=WD-WCC131106000 /dev/rdsk/c0t50014EE2B3AEA7EDd0
# Add a view to each LU
stmfadm add-view 600144F038CD430000006446C8060001
stmfadm add-view 600144F038CD430000006446C86D0002
stmfadm add-view 600144F038CD430000006446C9150003
# Create a target portal group, essentially making an TCP endpoint on this IP
itadm create-tpg fiberlink 10.255.255.2
# Create a target within this group
itadm create-target -n iqn.2023-04.nl.dvdgiessen:blackserver -t fiberlink

To connect all iSCSI targets on Linux:

sudo systemctl start iscsid.service && sudo iscsiadm --mode discovery --portal 10.255.255.2 --type sendtargets && sudo iscsiadm --mode node --loginall=all

To disconnect them again:

sudo iscsiadm --mode node --logoutall=all
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment