Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

The July 19, 2012 ServeTheHome tutorial sets up an InfiniBand SCSI RDMA Protocol (SRP) target on Ubuntu 12.04 using SCST, its scstadmin utility, and the ib_srpt driver. The procedure below follows that legacy stack; it is not evidence that its source, packages, drivers, or hardware combinations remain available or compatible with current Ubuntu releases.

An SRP target exports block storage as LUNs for an InfiniBand initiator to discover and use. The target-side recipe assumes a working InfiniBand fabric and subnet manager, a built and loaded target stack, configured backing storage, and a defined initiator access policy. It is not simply an install-and-go package operation.

Before you begin: understand the legacy setup

The title-matched procedure is for Ubuntu 12.04 and uses SCST. Paolozzi’s 2012 tutorial says SCST was chosen because, at that time, it supported more older InfiniBand hardware than LIO. That is a historical assessment, not a current comparison or guarantee for any adapter, firmware, kernel, or PCIe configuration.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The tutorial reports testing with two Mellanox MHEA28-XTC dual-port 10Gbps HCAs. It describes the steps as somewhat generic, but that test setup does not establish compatibility with other hardware. It also provides no characterized SRP throughput result; the HCA’s 10Gbps description is not an SRP benchmark.

#1 Best Overall
Mellanox ConnectX-5 Ex 25Gb/s Dual SFP28 Ethernet Card, PCIe 3.0 x8, RDMA Direct Access, InfiniBand Compatible, Ultra Low Latency Server Network Card
  • The 25Gb dual-port SFP+ network card is based on the Mellanox ConnectX-5 Ex controller, which provide the highest performing and most flexible interconnect solution.
  • Technical Support:PXE、 RDMA、UEFI、SR-IOV、1588 PTP、Jumbo Frames(9.5KB)
  • Windows 10/11、Windows Server 2016/2019/2022、Deepin 15.11/20/20.6/20.9、VMware ESXi 6.5/6.7、Ubuntu 18.04.5/20.04.1、Ubuntu 22.04.2/22.04.3、RHEL/CentOS 7.6/7.9/8.2/8.3、ZTE New Fulcrum 3.2.2/5.0.5、SUSE 12.5/15.4、FreeBSD 13.2、NeoKylin 7.6、OpenKylin 0.7.5、Mikrotik、iKuai route、Galaxy Kylin v10、Zhongke Fangde desktop OS、Zhongke Fangde server OS、Tongxin UOS 20、Emind OS
  • install the operating system with its driver CD, or download it from the official website. Includes low-profile and full-height stands to support standard and ultra-thin computers/servers.
  • Enjoy 24/7 customer service, 30-day free returns, 1-year free warranty, and lifetime technical support for your peace of mind.
  • A functioning InfiniBand fabric and a subnet manager are prerequisites. For its point-to-point example, the tutorial runs OpenSM on the target; a switch can run the subnet manager instead.
  • The target needs a storage backing device, an SRP target driver, and an access configuration that maps LUNs to an initiator or group.
  • The Ubuntu Wiki page that discusses SCST and SRP is for Ubuntu Lucid (10.04), not Precise (12.04). Its general safety and discovery notes are useful context, but its package directions are not a substitute for this recipe.
  • The original tutorial uses old source-service and PPA references. Their presence in a 2012 guide does not establish that they are still live installation sources.

1. Establish the InfiniBand fabric and choose test storage

First confirm that the target and initiator are attached to a working fabric and that a subnet manager is active. The tutorial uses OpenSM on the target for a point-to-point link and notes that a switch can provide the service. The Ubuntu Wiki suggests checking fabric status with tools such as ibstat, ibhosts, ibswitches, and iblinkinfo.

For a disposable demonstration, the tutorial creates a 10 GB tmpfs mounted at /tmp/RAM, then an 8 GB zero-filled file named vdisk0. These are examples, not persistent storage: data in tmpfs is volatile, and the file consumes space in that temporary filesystem. The tutorial’s first two virtual-disk preparation steps are optional if you already have an appropriate backing device.

2. Build and load the Ubuntu 12.04 SCST target stack

The 2012 tutorial says Ubuntu did not provide a binary SCST package for its setup, so it builds the suite locally from source. It builds and installs the scst, scstadm, and srpt components. The exact source-service references are historical; do not assume they can be used as current download locations.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Install the build tools used by the tutorial, including build-essential, and obtain a SCST source tree appropriate to the tutorial’s Ubuntu 12.04 environment.
  2. Build and install the scst, scstadm, and srpt components from that tree. The tutorial’s method depends on a compatible source, kernel, and module build; a successful source build on another release is not established by this procedure.
  3. Edit /etc/init.d/scst so its module list includes ib_srpt, then register the init script with update-rc.d scst defaults.
  4. Add ib_umad to /etc/modules so it is loaded at boot, then load the target modules:
modprobe scst_vdisk
modprobe ib_umad
modprobe ib_srpt

Check that SCST sees the expected handlers and driver:

Rank #2
NVIDIA ConnectX-7 NDR 400G InfiniBand Adapter Card - PCI Express 5.0 x16-400 Gbit/s Data Transfer Rate - 1 Port(s) - Optical Fiber - HHHL Bracket Height - OSFP - Standup
  • Host Interface: PCI Express 5.0 x16
  • Total Number of Ports: 1
  • Expansion Slot Type: OSFP
  • Media Type Supported: Optical Fiber
  • Maximum Data Transfer Rate: 400 Gbit/s
scstadmin -list_handler
scstadmin -list_driver

The tutorial’s expected SRP driver is ib_srpt. If it does not appear, distinguish a module build or load problem from an initiator discovery problem: the target-side check is to load ib_srpt and inspect the driver list. The tutorial’s comments mention conflicting module versions as one possible cause, but that is an anecdotal troubleshooting lead rather than a universal fix.

3. Configure a storage backend

SCST needs a backing device before it can export a LUN. The tutorial demonstrates a virtual file and a block device. For either choice, verify the exact backing path before exposing it: the initiator receives block-level access, so a mistaken device selection can put data at risk.

SCST handler Tutorial example Use and caution
vdisk_fileio Virtual device RAMTest, backed by /tmp/RAM/vdisk0 Useful for the tutorial’s disposable file-backed demonstration; the example resides on volatile tmpfs.
vdisk_blockio Virtual device SSDTest, backed by /dev/md0 The tutorial describes this handler for a physical disk, partition, mdadm device, or LVM volume. Its /dev/md0 was an mdadm RAID 0 made from two Crucial C300 SSDs; that is historical test hardware, not a recommendation.

Use the matching handler to open the chosen backing object in SCST. The tutorial’s file-backed example uses filename=/tmp/RAM/vdisk0; its block-backed example uses filename=/dev/md0. Those paths are examples only. Back up important data and confirm the device identity and intended contents before configuring a real block device.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

4. Create the SRP target, access group, and LUN mappings

The tutorial creates a group under the ib_srpt driver and target ib_srpt_target_0, then maps LUN 0 and LUN 1 to that group. These mappings are the point at which the configured backends become storage presented to the initiator.

It also adds an initiator identity formed from target and initiator node GUIDs. For a tightly limited single-connection example, the tutorial allows the wildcard identifier *. Do not treat that wildcard as a secure default: use the specific initiator identity for the intended host or hosts and restrict access according to your environment. The separate Ubuntu Wiki explicitly says its Lucid-era SCST notes omit security options and warns that its example should not be considered acceptable for secure environments.

After configuring the target, write the generated SCST configuration to /etc/scst.conf, validate it, and apply it:

scstadmin -check_config
service scst reload

The tutorial offers rebooting as an alternative to reloading the service. Do not proceed to initiator-side use unless the configuration check succeeds and the target driver and intended LUN mappings are present.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

5. Discover and connect from the initiator

Target configuration alone does not create an initiator session. On the initiator, the Ubuntu Wiki’s general guidance is to ensure ib_srp is loaded, then use ibsrpdm -c to check whether target information is discoverable. Ubuntu’s Trusty ibsrpdm(1) manual describes ibsrpdm as listing SRP targets and producing output suitable for the initiator’s /sys/class/infiniband_srp/.../add_target interface.

Rank #4
GLOTRENDS 100Gb QSFP28 NIC, ConnectX-4 VPI, EDR InfiniBand / 100GbE
  • DUAL-PROTOCOL 100G: ConnectX-4 VPI (MCX456A-ECAT) runs EDR InfiniBand 100Gb/s or 100GbE per QSFP28 port with 100G/50G/40G/25G/10G auto-negotiation — one card serves IB and Ethernet fabrics.
  • PCIe 3.0 x16, FULL BANDWIDTH: Dual ports sustain line-rate 100Gb/s each for HPC, AI training nodes and high-throughput storage fabrics.
  • RDMA WITHOUT CPU COPIES: Native InfiniBand RDMA plus RoCE accelerate MPI, NVMe-oF and distributed storage; hardware offloads cut latency and free CPU cycles.
  • HEAVY VIRTUALIZATION: SR-IOV with up to 127 VFs per port (254 per card) plus VXLAN/GENEVE/NVGRE overlay offload for multi-tenant clouds and dense VM hosts.
  • DATA CENTER FEATURES: PXE/UEFI boot, NC-SI management, DCB, jumbo frames; Linux (MLNX_OFED), Windows (WinOF) and VMware ESXi support; brackets for any chassis.

Ubuntu’s Trusty srp_daemon(1) manual describes per-port discovery, rescans after fabric events, allow/deny rules, and optional execution of connections. These references explain initiator-side concepts; they do not establish that the Trusty tool versions or options are identical to those available on Ubuntu 12.04. If discovery returns no target, first check fabric status and subnet-manager operation, then verify the target-side module and access configuration.

Keep shared-storage access safe

Exporting a block device does not make its filesystem safe for simultaneous use by multiple machines. Do not mount an ordinary filesystem such as ext4 read/write from multiple initiators on the same LUN. Shared writes require a parallel-write-safe cluster filesystem or another coordination design appropriate to the workload.

SCST and LIO are different target paths

LIO is another Linux SCSI target implementation, but it is not the implementation used by the Ubuntu 12.04 tutorial. The LIO documentation describes a targetcli/ConfigFS workflow; those commands should not be mixed into the SCST sequence above.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Quick Recap

Bestseller No. 1
Bestseller No. 2
NVIDIA ConnectX-7 NDR 400G InfiniBand Adapter Card - PCI Express 5.0 x16-400 Gbit/s Data Transfer Rate - 1 Port(s) - Optical Fiber - HHHL Bracket Height - OSFP - Standup
NVIDIA ConnectX-7 NDR 400G InfiniBand Adapter Card - PCI Express 5.0 x16-400 Gbit/s Data Transfer Rate - 1 Port(s) - Optical Fiber - HHHL Bracket Height - OSFP - Standup
Host Interface: PCI Express 5.0 x16; Total Number of Ports: 1; Expansion Slot Type: OSFP; Media Type Supported: Optical Fiber
$1,650.00
Question SCST in the 2012 Ubuntu 12.04 tutorial LIO alternative
Configuration model scstadmin and /etc/scst.conf targetcli and ConfigFS workflow
SRP target and LUN management SCST’s ib_srpt driver, groups, and LUN mappings Target, backstore, LUN, and initiator ACL configuration
Compatibility on the exact legacy stack The tutorial reports its own Mellanox HCA test setup; it does not establish universal hardware or current-release compatibility. Not established for this tutorial’s exact Ubuntu 12.04 and HCA combination.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.