Skip to content

Managing storage interfaces

Storage interfaces represent the network ports on a storage system that serve storage resources (iSCSI LUNs, NVMe-oF namespaces, Fibre Channel volumes, etc.) to servers. MetalSoft discovers these interfaces automatically when you register a storage system, and you can view and configure them via the Admin UI or API.

Each storage interface has the following properties:

PropertyDescription
nameThe interface name as reported by the storage system
nodeIdsThe storage node(s) on which this interface is located
protocolsThe storage protocols supported by this interface (iscsi, nvme_tcp, scsi_fc, nvme_fc)
isUplinkWhether this interface is an uplink — MetalSoft provisions uplink interfaces on network devices (switches) during deployment
useForDeploysWhether MetalSoft should use this interface when deploying storage resources to servers
networkEquipmentInterfaceIdThe switch port (network equipment interface) this storage port is connected to
linkedNetworkDeviceInformationRead-only details about the linked network device and interface
  1. Navigate to Storage and select a storage pool
  2. Click on the storage system
  3. Go to the Interfaces tab to see all discovered interfaces
Terminal window
# List all interfaces for a storage system
curl "https://<your-server>/api/v2/storages/{storageId}/interfaces"
# Get a specific interface
curl "https://<your-server>/api/v2/storages/{storageId}/interfaces/{interfaceId}"

Each interface in the response includes the linkedNetworkDeviceInformation object with:

  • networkDeviceId and networkDeviceName — the switch this interface is connected to
  • networkDeviceInterfaceId and networkDeviceInterfaceName — the specific switch port

You can update three settings on a storage interface:

Mark an interface as an uplink to have MetalSoft provision the corresponding port on the network device (switch) during deployment. This is necessary for storage interfaces that connect through managed switches.

Terminal window
curl -X PATCH "https://<your-server>/api/v2/storages/{storageId}/interfaces/{interfaceId}" \
-H "Content-Type: application/json" \
-d '{
"isUplink": true
}'

Control which interface the system uses when deploying storage resources (LUNs, volumes, etc.) to servers. If you mark multiple interfaces for deploys, MetalSoft chooses one at random. If you do not explicitly mark an interface, the system picks one automatically.

Terminal window
curl -X PATCH "https://<your-server>/api/v2/storages/{storageId}/interfaces/{interfaceId}" \
-H "Content-Type: application/json" \
-d '{
"useForDeploys": true
}'

Associate a storage interface with a specific switch port. This tells MetalSoft which network equipment interface the storage port is physically connected to, enabling correct VLAN and zone provisioning.

Terminal window
curl -X PATCH "https://<your-server>/api/v2/storages/{storageId}/interfaces/{interfaceId}" \
-H "Content-Type: application/json" \
-d '{
"networkEquipmentInterfaceId": 42
}'

You can update all three settings in a single request:

Terminal window
curl -X PATCH "https://<your-server>/api/v2/storages/{storageId}/interfaces/{interfaceId}" \
-H "Content-Type: application/json" \
-d '{
"isUplink": true,
"useForDeploys": true,
"networkEquipmentInterfaceId": 42
}'

Storage interfaces support the following protocols:

ProtocolDescription
iscsiiSCSI over TCP/IP
nvme_tcpNVMe over TCP (NVMe-oF)
scsi_fcSCSI over Fibre Channel
nvme_fcNVMe over Fibre Channel

A single interface can support multiple protocols. MetalSoft discovers the protocol list automatically from the storage system, and you cannot modify it via the API.

Storage interfaces are also visible on the parent storage object. When you retrieve a storage system, the response includes the interfaces array:

Terminal window
curl "https://<your-server>/api/v2/storages/{storageId}"