Well, NVMe can be understood at a conceptual level by all persistent geeks. Technically, it gets technical untechnically quickly, like in a Flash.
Not going to be too concerned, yet. Planning on a very, very simple system, one M.2 (NVMe PCIe lane), one namespace ("drive" like sda).
Here's what is on my beginner's mind:
One M.2. I believe the controller is co-resident on that M.2? The host controller is what? the PCIe machinery (hardware + software)?
Whatever ... The way I read this (which, with high probability, could likely be wrong), the following is possible:
One M.2 plugged into your PCIe slot.
Instead of thinking about ONE "drive" like sda, the M.2 could be set up with two namespaces, corresponding to, like, sda and sdb:
One controller: nvme0 and then this:
/dev/nvme0n1 and /dev/nvme0n2
... and each of those could be "partitioned" like /dev/nvme0n1px and /dev/nvme0n2px.
If, somehow there were two controllers (would that happen with two physical M.2 cards?), nvme0 and nvme1 could each access each other's namespaces (and "partitions"). And/or, each controller could also have some private namespaces/partitions to access.
I don't know what advantages exist here, or how one would divide up one M.2 into two namespaces ("drives" like sda and sdb). (Multiple clients/customers?) But I'm sure there must be a way.
Food for thought, input always welcome! At my age now, I really can't afford to spend too much time making my NVM setups complicated!
Not going to be too concerned, yet. Planning on a very, very simple system, one M.2 (NVMe PCIe lane), one namespace ("drive" like sda).
Here's what is on my beginner's mind:
One M.2. I believe the controller is co-resident on that M.2? The host controller is what? the PCIe machinery (hardware + software)?
Whatever ... The way I read this (which, with high probability, could likely be wrong), the following is possible:
One M.2 plugged into your PCIe slot.
Instead of thinking about ONE "drive" like sda, the M.2 could be set up with two namespaces, corresponding to, like, sda and sdb:
One controller: nvme0 and then this:
/dev/nvme0n1 and /dev/nvme0n2
... and each of those could be "partitioned" like /dev/nvme0n1px and /dev/nvme0n2px.
If, somehow there were two controllers (would that happen with two physical M.2 cards?), nvme0 and nvme1 could each access each other's namespaces (and "partitions"). And/or, each controller could also have some private namespaces/partitions to access.
I don't know what advantages exist here, or how one would divide up one M.2 into two namespaces ("drives" like sda and sdb). (Multiple clients/customers?) But I'm sure there must be a way.
Food for thought, input always welcome! At my age now, I really can't afford to spend too much time making my NVM setups complicated!





Of course it must be true that we can divide up an M.2 into several namespaces. We think of the M.2 as a "drive," based on our past habits, like a thumb drive is a drive. And "the namespace" is that drive, like sda. The trend is toward bigger and faster devices, like the M.2, like maybe 100 TB. So we can no longer think of a device like M.2 as a drive. The M.2 can be used for many namespaces (what we used to think of as a "drive"). In this silly-thinking sense, that M.2 can be many, many "drives"--sda ... sdx (I don't know what the NVMe specs call for as a limit, if there is a limit, to the number of such namespaces). And each name space can be further "divided up" (like into what we would call partitions), etc.
Comment