Dynamic NID Configuration Details

Dynamic NID Configuration in Lustre LNet allows runtime management of Network Identifiers (NIDs) without restarting services, supporting multi-rail, failover, and routing. NIDs identify nodes (e.g., 192.168.1.2@tcp0). This feature, enhanced in Lustre 2.17.0 (released 2025), simplifies online LNet interface configuration (LU-18815). Information is based on the Lustre Operations Manual (updated 2025), release notes, and JIRA (e.g., LU-17431 for dynamic nodemaps). For full details, see Lustre Manual.

NID Basics

Dynamic Configuration with lnetctl (2.7+)

CommandExampleDescription
lnetctl net addlnetctl net add --net tcp2 --if eth0,eth1 --peer_timeout 180Add network with multiple interfaces (non-unique names in 2.10+).
lnetctl peer addlnetctl peer add --prim_nid 10.10.10.2@tcp --nid 10.10.3.3@tcp1,10.4.4.5@tcp2Add peer with multi-rail NIDs (2.10+).
lnetctl route addlnetctl route add --net tcp2 --gateway 192.168.205.130@tcp1 --hop 2 --prio 1Add dynamic route; supports asymmetrical (2.13+).
lnetctl set routinglnetctl set routing 1Enable routing.
lnetctl importlnetctl import config.yamlBatch import from YAML (2.11+).
lnetctl net showlnetctl net show --verboseShow networks with details.

Dynamic Peer Discovery (2.11+)

# Enable discovery
lnetctl set discovery 1

# Discover peer
lnetctl discover PEER_NID

# Clear peer
lctl clear_peer NID

Automatic via pings; manual configs override with warnings on mismatches.

LNet Health and Multi-Rail (2.10+)

Failover and NID Replacement

# Set failover
mkfs.lustre --servicenode=NID1:NID2@tcp

# Replace NIDs (2.11+)
lctl replace_nids fsname-OSTxxxx NID1,NID2@tcp

# Deactivate OST (2.16+)
lctl del_ost --target fsname-OSTxxxx

C-API for Programmatic Control

FunctionIOCTLDescription
lustre_lnet_config_netIOC_LIBCFS_ADD_NETAdd network interface.
lustre_lnet_del_netIOC_LIBCFS_DEL_NETDelete network.
lustre_lnet_show_netIOC_LIBCFS_GET_NETShow network config.
lustre_lnet_config_route-Add route.

Return: 0 success, -EINVAL invalid argument, -ENOMEM memory issues.

Integration with Nodemaps (2.17+)

# Add fileset
lctl nodemap_fileset_add --name NODMAP --fileset /dir --alt --ro

# Modify
lctl nodemap_fileset_modify --name NODMAP --fileset /dir --rw

Best Practices

For updates, check JIRA (e.g., LU-18815) or LUG presentations (2025 on 2.17+).