Skip to content

Managing Storage Interfaces

Storage interfaces represent the network ports on a storage system that are used to serve storage resources (iSCSI LUNs, NVMe-oF namespaces, Fibre Channel volumes, etc.) to servers. MetalSoft discovers these interfaces automatically when a storage system is registered, and they can be viewed and configured 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 — uplink interfaces are provisioned on network devices (switches) during deployment
useForDeploysWhether this interface should be used 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 multiple interfaces are marked for deploys, one is chosen at random. If no interface is explicitly marked, 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
}'

All three settings can be updated 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. The protocol list is discovered automatically from the storage system and cannot be modified via the API.

Storage interfaces are also visible on the parent storage object. When retrieving a storage system, the interfaces array is included in the response:

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