It's possible that the real size of different SSDs is now consistent

November 6, 2020

Let's start with what I tweeted:

Our '2 TB' SSDs seem to have a remarkably consistent size as reported by Linux, unlike past HDs (3907029168 512-byte sectors). I wonder if this is general or just luck (or if WD and Crucial/Micron are closely connected).

Back in the days, one of the issues that sysadmins faced in redundant storage setups was that different models of hard drives of the same nominal size (such as 2 TB or 750 GB) might not have exactly the same number of sectors. This could cause you heartburn if you had let your storage system use all of the sectors on the drive, and then it failed and you had to replace it with a different model that might be rated as '2 TB' but had a few less sectors than the previous drive. To deal with this in our fileservers, we use a carefully calculated scheme based on using no more than the advertised amount of drive space.

But, well, now that we're using SSDs it's not clear if that's necessary any more. I have convenient access to '2 TB' SSDs from Crucial/Micron and WD, and somewhat to my surprise all of them have exactly the same size in sectors. That all of the different models of Crucial and Micron 2 TB SSDs are exactly the same size is not too surprising, because they're the same company. That WD SSDs are also the same size is a bit surprising; for HDs, I would have expected some differences.

At this point I don't know if this is just a coincidence or if it's generally the case that most or all X-size SSDs from major providers will have the same underlying size. If I was energetic, I would try to see if someone had a (Linux) database of SSD models and their exact reported number of sectors, perhaps gathered as part of getting a database of general SMART information for various drives (the smartmontools website doesn't seem to have any pointers to such a thing).

If this is really the case for SSDs, one of the things that may be going on is that SSDs are made from much more uniform underlying hardware than HDs were, since I believe the actual flash memory chips come in very standard sizes (all powers of two as far as I know). There's no room for tweaking sector or track density on magnetic platters any more; you get what you get (although the amount of space taken by error checking codes may still vary). However, this is probably not the full story.

On the one hand, all SSDs are over-provisioned on flash memory by some amount and you might expect different companies to pick different amounts of over-provisioning. On the other hand, there is very little advantage in consumer drives to having a little bit more extra space than your competitors, because you are still going to round it down to a nice even number for marketing. Possibly everyone is just copying the amount of space that the first person to sell a X-size SSD picked, because there is no reason not to and it makes everyone's life slightly easier.

(The reported size in sectors is also a little bit odd for our 2 TB SSDs; it comes out to about 398 decimal MB extra over and above decimal 2 TB.)

Comments on this page:

By Arnaud Gomes at 2020-11-06 05:18:18:

This is definitely not the case for all SSDs. We were bitten by newer 1TB Crucial MX-something (can't remember which exactly) that are smaller than older models.

   -- A
By Ingo at 2020-11-06 05:28:23:

There is actually a specification for this:

The number you gave for your 2TB drives is consistent with that spec, assuming an advertised capacity of 2000GB.

I've recently had to deal with such a size difference myself, but on closer inspection one drive was actually labelled "1024GB" and the other "1000GB".

By Arnaud Gomes at 2020-11-06 07:39:31:

In retrospect, the issue we had may well have been the same as yours, with the newer drive being 1000GB and the older being 1024. Still, this means SSDs being, say, 1TB-ish does not imply the exact same size.

   -- A
By Joker_vD at 2020-11-10 07:59:26:

Ah, 512-byte sectors. Even though the actual physical sectors have been 4K or slightly larger for ten years already, this specter of computing past is still with us, and probably will be for another twenty years or so.

And it makes the df/du's habit of reporting the partition sizes in half-K by default extremely annoying, since it's no longer directly corresponds to anything real.

By Walex at 2020-11-13 06:38:06:

«might not have exactly the same number of sectors»

As a previous commenter said, there is now a specification for "standard" sizes that hard disk manufacturers follow. As another commenter said SSDs may not respect that so closely because the granularity of flash chips is huge and they are relatively expensive. The most common example is 240GB vs. 250GB and 256GB flash SSD units.

My personal practice is to define standard partition sizes, in whole multiple of 1GiB, that are meant to match with some wastage most hard disk and flash SSD storage, in part because I like to do image-copy backups (dangerous though with Btrfs and probably also with ZFS). For various reasons I do 1 partition even on storage media where it cover almost all the disk, instead of using the basic raw device, because the "label" discovering code in GNU/Linux can crash the kernel if there are odd data patterns that almost look like a "label".

Written on 06 November 2020.
« In Python, using the logging package is part of your API, or should be
Console blanking now defaults to off on Linux (and has for a while) »

Page tools: View Source, View Normal, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Fri Nov 6 00:37:55 2020
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.