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.
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
- 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.
- 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. - Build and install the
scst,scstadm, andsrptcomponents 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. - Edit
/etc/init.d/scstso its module list includesib_srpt, then register the init script withupdate-rc.d scst defaults. - Add
ib_umadto/etc/modulesso 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
- 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.
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.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallOutdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware match5. 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
- 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.
Quick Recap
| 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.

