I started reading the toms article, but that went way over my head. I guess we should avoid SMR though?
The basic deal with SMR is that it is a technology for mechanical hard disks that increases the amount of data you can store on a drive, by severely restricting how you can write to it.
A normal drive, you can write randomly at any block address (typically multiples of 512 bytes or 4096 bytes) on the drive.
By contrast, an SMR drive is internally broken down into 256 MB segments (which are called shingles), each of which you can only write sequentially, and you can only erase an entire 256 MB shingle at a time. By writing sequentially here's an example: Suppose I wrote 1024 bytes into an empty shingle. I can append another 1024 bytes to the shingle no problem. I can continue to append writes to the shingle until I've filled up the whole 256 MB. But I can't go back and modify anything I've already written without erasing the whole 256 MB shingle first.
By forcing the writes into these shingles, you can cram the bits closer together, which lets you put more data on the same sized platters, which makes the drives cheaper.
Unfortunately just about all modern OSes basically assume you can write to any address on the disk at any time, so in order to pretend that you can do this the drive has a complicated mechanism to remap addresses onto different 256 MB shingles, and then consolidate fragmented shingles when it needs to. (In some respects this actually resembles the way SSDs work.)
The consequence of this is that what the OS thinks is a contiguous chunk of files, can actually be horribly fragmented, which is important on a mechanical disk where seek times are huge compared to SSDs.
Another consequence is that any particular write on the disk can trigger a shingle consolidation pass (almost like an SSD garbage collection pass, which is normally mitigated by TRIM), which can cause write latency to become really inconsistent. One write might take 5ms, and the next one 500 ms (because the drive has to move a bunch of data around internally to rebalance the shingles and update its mapping tables).