Forum Discussion
ketanbaitule
Jun 23, 2026Copper Contributor
Multiple Namespace Detection in Windows NVMe Over TCP Initiator
We are evaluating the Windows NVMe Initiator and have observed an issue with namespace handling. Our NVMe subsystem contains multiple namespaces. When we connect to the subsystem over TCP and establ...
Jamony
Jul 05, 2026MCT
Hi, I’d test with unique subsystem names, updated target firmware, and the latest Windows build available to you. If Windows still exposes only the first namespace, it may be a current initiator limitation or a bug in how the namespaces are being mapped. The most helpful thing to provide Microsoft would be your target config, connection commands, and screenshots of what Windows sees
ketanbaitule
Jul 08, 2026Copper Contributor
Hi, Here are the steps we used and initiator and target config:
Windows Initiator:
- Windows VM
- 8 CPU socket
- 2 Cores
- 1 Thread
- 16 GB RAM
Connection Command:
In the above, we can see the disk loaded(Disk 2):
If I connect another one,
Notice I couldn't see my next disk.
Target Configuration:
- 2 Linux VM
- Ubuntu
- Shared Disk:
- /dev/loop0 (5 GB) Visible
- /dev/nvme0n1 (1.5 TB) Not Visible
The following script to create target config:
// Create subsystem
SUBSYS="nqn.2026-06.dev.ketan:sub1"
sudo mkdir -p /sys/kernel/config/nvmet/subsystems/$SUBSYS
echo 1 | sudo tee /sys/kernel/config/nvmet/subsystems/$SUBSYS/attr_allow_any_host > /dev/null
// Adding Port and Link
sudo mkdir -p /sys/kernel/config/nvmet/ports/1
echo "ipv4" | sudo tee /sys/kernel/config/nvmet/ports/1/addr_adrfam > /dev/null
echo "tcp" | sudo tee /sys/kernel/config/nvmet/ports/1/addr_trtype > /dev/null
echo "10.51.240.60" | sudo tee /sys/kernel/config/nvmet/ports/1/addr_traddr > /dev/null
echo "4420" | sudo tee /sys/kernel/config/nvmet/ports/1/addr_trsvcid > /dev/null
sudo ln -s /sys/kernel/config/nvmet/subsystems/$SUBSYS /sys/kernel/config/nvmet/ports/1/subsystems/$SUBSYS
// Adding 1 namespace:
DEV="/dev/loop0"
sudo mkdir -p /sys/kernel/config/nvmet/subsystems/$SUBSYS/namespaces/1
echo -n $DEV | sudo tee /sys/kernel/config/nvmet/subsystems/$SUBSYS/namespaces/1/device_path > /dev/null
echo 1 | sudo tee /sys/kernel/config/nvmet/subsystems/$SUBSYS/namespaces/1/enable > /dev/null