… you can also use multiple nvme name spaces it’s like a partition but it’s a hardware partition so you can get a couple of cheap two terabyte nvme drives and let’s say make 512 gigs or a terabyte of the nvme one name space and use a mirror of those for your metadata and then use the rest of the nvme for you know a raid z mirror for your virtual machine storage or your docker container storage or whatever you want to do…"
– TrueNAS: Full Setup Guide for Setting Up Portainer, Containers and Tailscale #Ultimatehomeserver - YouTube
Has anyone actually done this? That is, create namespaces on an NVMe drive to use as “available disks” to use in ZFS pools – like, make namespace devices to be cache, log, or special metadata devices, and/or devices for a data vDev?
Is there any limiting factor when doing this? Like do all NVMe that support namespaces have whatever is needed under the hood (queues, caches, ability to flush writes, etc.) under the hood for ZFS devices to work as well in this circumstance as if on a total drive?
I’d imagine an OS kernel supporting ZFS would typically typically support NVMe/namespaces/etc. – so compatibility isn’t an issue for a data drive, but what about boot devices?
Can a namespace device be used for an EFI partition? Would that depend upon if the UEFI of your machine supported NVMe namespaces, or would just any UEFI which can find a EFI partition on an NVMe drive be able to find it on a namespaced NVMe drive (because that’s part of the spec, or whatever).
What about Windows? Does Windows see NVMe namespaces as separate devices? If so, just as data drives, or could a NVMe namespace be used as the Windows install/boot device?
How about compatibility with SED, self-encryption drive, functionality (e.g., Opal, Enterprise, IEEE 1667). I think the SED specs include some number (16 maybe) “Locking Ranges” that can be defined on a drive to encrypt, so that ranges of the disk space can be hardware encrypted, rather than the whole disk (and different users can have different access to those ranges).
Do NVMe namespaces perhaps work compatibly with SED locking ranges, where you can just define the encryption to go along with the namespace divisions?
Thanks for any thoughts, pointers to things to research.