ELI5: NVME Namespaces

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

TLN

Active Member
Feb 26, 2016
523
84
28
34
Hi all

In the process of building new little All-in-one server and wanted to utilized NVME Namespaces. It will be ESXi-based, but I'd like to keep Windows and Linux installed for troubleshooting just in case. I thought that with Namespaces I could've work around some limitations, for example ESXi uses all the space on system drive: I don't wanna use USB Stick, nor I have M.2 slot on my mobo.

I've tried a few things today, will likely proceed tomorrow, but have some questions so far:
1. Does Windows 10 support Namespaces?
I split my drive into four namespaces, and was not able to install windows in 2nd. (1st is for ESXi).
2. How do I calculate space? I created four namespaces and maxed out (at least I thought) available size for last one: it was throwing an error when I tried to create namespace 1 block bigger.
Now in nvme id-ctrl it still shows:
tnvmcap : 3200631791616
unvmcap : 5176123392
^it seems that cap is in bytes.
I cannot create namespace bigger then last one, but it still shows unused bytes on the drive?

3. I see some options for different format: 512+0, 512+8, 4096+0, 4096+8. Another option is protection. I'm using single PCIe card. Is there any best practices? Protection sounds good, but I'm afraid I won't utilize because of all requirements.

4. Namespace block size? I couldn't find native block size of device itself, but strangely, what I have namespace formatted in 4096-0 format I wasn't able to install ESXi in that namespace until I formatted it via ESXi (installed on flash drive).

I've done a few installations and seems like I'm moving into right direction. Want to get a full understanding of tech here.