Enterprise SSD "small deals"

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

luckylinux

Well-Known Member
Mar 18, 2012
1,841
612
113
Smartctl for extracting the data to a json file, then my own code for the rest. Also needs to work across OS (ubuntu, windows, synology).
I would have preferred an off the shelf Solution, but I guess I gained quite a Bit of Experience in Python nowadays so I could probably "Hack" something :D .

Then do you just sample at regular Interval (1 Minute ?) e.g. for Temperatures and store in a PostgreSQL Database ? Or rather MongoDB / TimescaleDB / InfluxDB ?
 

ca3y6

Well-Known Member
Apr 3, 2021
950
963
93
Netapp SSDs typically are, but haven't tried this particular model myself
 

luckylinux

Well-Known Member
Mar 18, 2012
1,841
612
113
I am actually writing a tool in Rust to export metrics from Linux systems to Prometheus. This will also include latency metrics from the disks. It is still work in progress, and will be open-sourced. The metrics are stored in 1 second interval, so you get high data resolution.
It will be great if you could open source it. My knowledge of RUST is essentially Zero (minus some playing around with PyO3 i.e. integrate Modules written and compiled in RUST into Python) but it would still be something great to run :).

Ah yes, Prometheus and Grafana are on the Todo list as well. Way too many Projects compared to the Time available o_O.
 

whoknew123

Member
Jun 21, 2025
30
18
8
So following up on the below drives, I think they may be bricked from the 32k/40k hour bug. They are loaded with firmware NA01, which has the bug. I tried to run them on my unraid server and couldn't get them running. I tried putting an hba into my windows desktop and can't get them to initialize.

Is there anything I can do to verify the hours/confirm they're dead from the bug before I send them back?


Code:
=== START OF READ SMART DATA SECTION === 
SMART Health Status: OK 
root@Tower:~# sg_inq /dev/sdaa 
standard INQUIRY: 
PQual=0 PDT=0 RMB=0 LU_CONG=0 hot_pluggable=0 
version=0x03 [SPC] [AERC=0] [TrmTsk=0] NormACA=0 HiSUP=1 Resp_data_format=2 SCCS=0 ACC=0 TPGS=0 3PC=0 Protect=1 [BQue=0]     EncServ=0 MultiP=1 (VS=0) [MChngr=0] [ACKREQQ=0] Addr16=0 [RelAdr=0] WBus16=0 Sync=0 [Linked=0] [TranDis=0] CmdQue=1 [SPI:  Clocking=0x0 QAS=0 IUS=0] length=96 (0x60) 
Peripheral device type: disk 
Vendor identification: NETAPP Product identification: X356_TPM4V3T8AME 
Product revision level: NA01 
root@Tower:~# 
sg_readcap /dev/sdaa 
read capacity(10): 
Descriptor format, current; Sense key: Hardware Error 
ASC=44, vendor specific qualification ASCQ=d1 (hex) 
Descriptor type: Vendor specific [0x80] 00 25 74 02 01 1b 00 00 00 00 00 00 79 00 00 1d 32 21 1e 00 00 00 00 00 55 09 00 00 00 00 
read capacity(10): pass-through requested 8 bytes (data-in), got 0 bytes 
READ CAPACITY (10) failed: Medium or hardware error sg_readcap failed: Medium or hardware error
 

luckylinux

Well-Known Member
Mar 18, 2012
1,841
612
113
Write amplification. It's been a hot minute since I really dived into specifics, but as I recall few (if any modern) SSDs are actually 512b under the hood, and writing 512b still requires a larger free area (and erase pages are even larger, but thats a whole other discussion). IIRC even many "4k native" drives need 8k or 16k free blocks to write. If you tell the OS/file system the drive is 512b, it will sometimes issue multiple 512b writes that should have been contiguous as part of (or all of) a 4k block. This will not always be automatically fixed, its an "it depends". When it isn't a 4k write can turn into 8 4k writes. In order to "save space" the file system would ALSO need to use 512b sectors/clusters/blocks. A 1TB drive with 4k sectors (drive and file system) can store close to 250 million files. If you have even close to 100 million files in most file systems on a single drive you are having what is known as "a bad time". NTFS minimum is 4K, while EXT3/4 is "clever" and you can store more than one inode per physical disk sector already (depending on format options).


512b mode is for legacy compatibility, and generally comes with downsides to iops/performance (including increased CPU overhead).
IMHO Write Amplification is mostly an Issue with ZFS when used with a VM Disk, possibly made worse if you use LUKS encrypted Devices and feed those instead of RAW Disks / Partitions to ZFS. I do for one ...

I'm not sure how much of a real Issue it is with enterprise Drives fed directly to an Application (e.g. PostgreSQL).

Then of course it depends on how "deep" and complex your "Stack" is.

Mine could look like the following on most Proxmox VE Hosts:

RAW Disk <-> GPT Partition <-> LUKS encrypted Device <-> ZFS Pool <-> VM Disk <-> EXT4 FS

It can definitively be worse if you do ZFS in the Guest on top of a ZFS Host Pool, then you have to coordinate (do only on one Side) Snapshots otherwise due to COW you'll run out of Space very quicky. Furthermore TRIM also needs to be done in the Guest periodically (either manually or automatically).

Although to be fair, besides Write Amplification, another Issue (when using the old Default ZFS volblocksize of 8K, is that it will occupy TWICE as much space on any RAIDZ2 Backup Server, 16k (new Default) is going to be approx. 1:1 Size.

I could also see this space Overhead (but for a different Reason) directly when using a HyperV Guest on Windows 11, you need to format mkfs.ext4 -G 4096, otherwise a 32GB Virtual Disk might become 100GB on the Windows Host. Not sure about write amplification.

I was trying to play a bit around with Write Amplification Benchmarks half a Year ago with this:

Don't ask me for exact Values, I cannot remember :confused: .

But I think the main Takeaway were:
- if you got consumer SSDs there's not much you can do to reduce Write Amplification significantly to the Point it won't be an Issue
- if you got enterprise SSDs there's not much Point to reduce Write Amplification because you have so much Endurance anyways

Sure, you can gain quite a bit by reducing Logging (that is A LOT of TBW saved each Year), use the default cached Writes (although slightly risky) in Proxmox VE (I believe sync is going to be MUCH worse), but apart from that not really sure.

I tried mkfs.ext4 -G 4096 but I don't think it made such a big difference on KVM Virtual Machines in terms of Write Amplification.
Similarly for ZFS volblocksize higher than 16k.

Possibly PostgreSQL WAL Configuration could improve something (I'm not a PostgreSQL Expert), but not sure there's much else you can do.

If the Disk Partition is aligned to 1MiB (what I typically do), ZFS volblocksize is set to 16k, Proxmox VE Write Cache is enabled (otherwise I think your Write Amplification will go through the Roof), EXT4 default should be 4KiB, LUKS2 Default should be 4KiB (blkid reports 4096 for my LUKS Devices), I don't think there's much you can do, unless you can tune Caching & your specific Application.
 
Last edited:
  • Like
Reactions: PnoT

MSameer

Active Member
May 8, 2025
275
200
43
Please report the stats if you can.

The number with sharpie that is tried to be deleted could be the TBW and if thats the case, it would be too much. Could be perfectly fine drive as well :)
Oh crap. I have not noticed that. Cannot even read it properly.

I will report back but shipping to the EU will take a long time. Might be gone by the time it arrives.
 

b3rrytech

Active Member
Dec 21, 2021
101
59
28
Sweden
Not in Germany. The website never sends me an email to confirm. I tried with VPN but no use. Maybe next time I travel to Germany I will try.
Strange! I'm neither in Germany, nor do I speak German very well.. :p Tried a different email address?