Prepare an environment containing only exercise resources
The guide requires a disposable Linux VM with a RAM root and no pre-existing data disks. The experiment creates its own resources: a 64-MiB file, one TGT target, two loopback portals and one DM Multipath map. The preparation marker does not replace other controls; the script also refuses pre-existing data devices and storage daemons. The recorded run used Alpine 3.24.2, kernel 6.18.52-0-virt, Open-iSCSI 2.1.12, multipath-tools 0.13.0 and TGT 1.0.97. Consult the lab README to reproduce preparation. Do not alter the precondition to run on a working machine. Before running the guide, predict resource and path counts at each stage.
Separate discovery, records and sessions
The experiment discovers each authorized portal separately. Discovery returns the target and creates local access information, but the next check still finds no sessions. In the executed version, iscsiadm -m session returns 21 in this state and no SCSI disks are presented. The first device appears only after login; a second login adds another path. If the second portal responds No records found, check its node and portal configuration before investigating capacity or filesystems. In daily work, a ticket saying only storage ready is insufficient. Record the confirmed stage, expected identity, observed command and what the next shift should verify. An active session also does not establish that the application mounted or used the intended volume.
Relate paths, identity and capacity
Both presented devices have the same LUN identity. In this lab, the map uses WWID 360000000000000000e00000000470001. Capacity reads return 67108864 bytes per path and the same value for the map. This is 64 MiB; the target’s decimal summary may show approximately 67 MB. There are not two 64-MiB volumes to add. The map aggregates access to a single resource. Before every I/O operation, the guide confirms map identity, size and path identities. The sdX names are local observations that can change. In inventory for a technical PM, present capacity per unique resource and redundancy per path, avoiding a duplicated capacity forecast.
Validate intent and effective configuration
The lab deliberately includes invalid configuration without starting I/O under it. A path_checker option placed in the multipath section produced an invalid keyword warning although multipath -t exited with zero. The guide retains that diagnostic, corrects scope and checks configuration again. This observation teaches reading stderr and effective configuration rather than using exit status alone as approval. Final configuration limits inclusion to the lab WWID, uses find_multipaths strict and no_path_retry fail, and places path_checker in defaults. These are choices for this exercise, not universal array policy. The RHEL reference helps interpret concepts, but execution belongs to the identified Alpine environment. Before applying policy elsewhere, confirm version, support and application requirements.
# Read-only inspection INSIDE the prepared disposable guest.
iscsiadm -m session -P 3
multipath -ll
blockdev --getsize64 /dev/mapper/dr_san_lab
# Expected map capacity: 67108864 bytes, not twice this value.
# Complete guarded lab: content/labs/san-runtime/run.py
# Preparation and replay: content/labs/san-runtime/README.txtTwo loopback portals present the same 64-MiB LUN. Discovery, session and map are distinct observable stages.
Common pitfalls
Adding path capacity, trusting an alias, ignoring parser warnings or running the guide on a machine already holding data disks.
Related topics: Linux Administration · Production Support L3 · High Availability
Follow discovery, login, identity, map and I/O. Record evidence for each stage and the implementation’s concrete scope.
Reference: Open-iSCSI discovery, node records and sessions · BigSavant SAN 2026-09; selected RHEL 9, ONTAP 9 and iSCSI behavior