[sf-lug] NVMe, M.2 form factor & subtypes, SATA vs. PCIe, SLC vs. TLC NAND

Rick Moen rick at linuxmafia.com
Sun Sep 17 17:16:38 PDT 2023


This was my then-current effort to catch up on the state of the art in
storage drive and related connector technology, two years ago.  Will
probably still be useful.  Point is, though, _things change_, and it's
unwise to buy new stuff without understanding the landscape and checking
compatibility between things you buy.

Short version:  You want NVMe support in new SSDs and motherboards,
want to start to phase out 1st & 2nd generation SATA and mSATA, and
avoid SSDs built from TLC (or, worse, QLC) NAND chips like the plague.
IMO.  And make sure any new motherboards' M.2 sockets are M-keyed (so
they can talk to fast PCIe x4 devices).

This 2019 article is a good overview:
https://www.pcworld.com/article/432532/everything-you-need-to-know-about-nvme.html
Likewise, this from 2017:
https://www.howtogeek.com/320421/what-is-the-m.2-expansion-slot/
And:
https://en.wikipedia.org/wiki/M.2

----- Forwarded message from Rick Moen <rick at linuxmafia.com> -----

Date: Tue, 25 May 2021 11:13:34 -0700
From: Rick Moen <rick at linuxmafia.com>
To: golugtech at diypython.us
Subject: Re: [Golugtech] 500 GB Western Digital M2-2280 is $54.99
Organization: If you lived here, you'd be $HOME already.

Quoting Steve Litt (slitt at troubleshooters.com):

[citing
https://www.newegg.com/western-digital-blue-500gb/p/N82E16820250091?item=N82E16820250091 ]

> At Newegg right this instant, the 500 GB Western Digital M2-2280 is on
> sale for $54.99. 

Cite promo code "93XRC28" to get that final $5 discount to $54.99.  Add
sales tax where applicable.  Free shipping.  In 12 hours from now, the 
regular price of $79.99 will be restored.

> If you don't do a lot of dual booting, 500G is *plenty* for the root
> partition, assuming you keep all your data on mounted partitions. 

Any SSD is much better than no SSD.  And of course Newegg's sale price
is attractive -- your point.


A few cautions to note:

(1) There are currently three different physical subtypes of M.2
edge-connectors, with different "keyings" (the notches on the device's
edge connector) called subtypes B, M, and B+M.  

B keying indicates a device interface for one of:  PCIe x2, SATA, USB 2.0,
   USB 3.0, HSIC, SSIC, Audio, UIM, I2C

M keying indicates a device interface for:  PCIe x4, SATA 


_So_, if your motherboard's M.2 socket is of type B, then it can
accept _either_ a B-keyed card or a B+M-keyed card (that has both
notches).  If on the other hand the motherboard M.2 socket is B-type, 
then it can accept either B or B+M.

There are other keyings defined in the M.2 spec, but they're currently
unused for SSDs.


(2) Check physical clearance.  (You mention this issue, but I'm going to
elaborate.)  M.2-compatible cards come in sundry widths (e.g., 12mm,
16mm, 22mm, 30mm) and lengths (e.g., 30mm, 40mm, 42m, 60mm, 80mm,
110mm), and if your new purchase doesn't fit the space, you'll be a sad
panda.  The mm or width and of length are conventionally cited as a
single WWLL number:  What you most often see are sizes 2240, 2260, 2280.
Those specs are all 22mm wide, and respectively 40, 60, and 80mm long.



(3) SSDs on M.2 can use one of two different communications protocols,
and this makes a significant difference in performance:  SATA vs. PCI
Express (PCIe).  The latter is less bottlenecked on throughput.

Native bandwith of SATA (version 3.0) is 6Gbps.  Current implementations
of PCI Express on M.2 (PCIe Gen2 x2) achieve 10Gbps throughput, hence
better raw performance, or, if you will, futureproofing.  Of course, 
better/faster tends to cost more.


(4) The type of NAND storage used makes a big difference in device life.
SLC NAND is good for about 100,000 read-write cycles before failure.
MLC NAND is good for about 10,000 read-write cycles before failure.
3D TLC NAND is good for about 5,000 read-write cycles before failure.

So, for example, the WD Blue 500 GB device on sale at Newegg (model
WDS500G2B0B) is technology achieves higher storage for the dollar, but
at a serious expense in drive life.  So, it might fail in three years of
strenous use.  Oddly enough, WDC's warranty term is 3 years.  So, check
the warranty:  You may be needing it.

On the other matters mentioned:

This one's SATA 3.0, not PCIe.  So, relatively slow.

It's "2280" size, so 22mm width, 80mm length.

The picture shows the keying to be B+M, so it'll fit in any motherboard
M.2 socket.


Personally, I'd want to pay a little more and _avoid 3D TLC NAND_ for much
greater service life, but going cheap is a valid choice as long as you
know it'll fail a lot sooner.


----- End forwarded message -----
----- Forwarded message from Rick Moen <rick at linuxmafia.com> -----

Date: Tue, 25 May 2021 13:53:31 -0700
From: Rick Moen <rick at linuxmafia.com>
To: golugtech at diypython.us
Subject: 500 GB WDC M.2 2280 _NVMe_ is $64.99 (was: 500 GB Western Digital
	M2-2280 is $54.99)
Organization: If you lived here, you'd be $HOME already.

Quoting Alex Finkel (alex.finkel at gmail.com):

> I agree and for not much more money ($70), you can get the an NVMe
> drive with the same capacity: 
> https://www.newegg.com/western-digital-black-sn750-nvme-500gb/p/N82E16820250109

I note from the picture that this stick has an M.2 edge-connector with
subtype M keying, hence will require a motherboard that has a subtype-M
socket, rather than a subtype-E one.  (Again, check compatibility before
buying.)

This particularly unit shares with the earlier WDC unit reliance on 
cheaper, denser-packed, shorter-service-life 3D TLC NAND storage.
On the plus side, unlike the SATA-type stick's 3-year warranty, this one
has a 5-year warranty.

I note the product page's caution that it may be desirable, depending on
application (but mostly for desktop machines), to use the variant with
attached _heatsink_, costing a bit more.  Intuition suggests that if
you're not sure, and it's not destined for a well-ventilated server,
shell out $20 more for the version with heatsink.

As a point of clarification:  Upthread I spoke of the difference between
SATA-interface SSDs on M.2 and PCIe-interface SSDs on M.2 (making the 
point that the latter is much preferable).  My understanding is that
NVMe is an advanced _data-transfer_ protocol for PCIe-physical-interface
devices.  So, NVMe data addressing _implies_ the PCIe physical bus.

NVMe was concocted in 2011 to replace the very successful but aging 
AHCI data-addressing protocol that emerged with early SATA -- revamped
to take advantage of PCIe electrical signaling.  More at:
https://www.partitionwizard.com/partitionmanager/pcie-nvme.html



----- End forwarded message -----



More information about the sf-lug mailing list