Going with SLC/"industrial" Flash is indeed the key to avoiding random failures. I have many deployed systems using industrial Flash modules (IDE DOMs) running 24/7 in critical production environments, mostly running machine tools and semiconductor production line equipment. We still do regular backups, though!
To compare, the typical industrial DOMs and CF cards I purchase are rated for 1-2 million rewrites per Flash block (from the datasheet). I assume this is SLC + wear leveling. *IF* you can find the write endurance on consumer stuff, it's often less than 10K. Thanks, Jonathan On Fri, Aug 4, 2017 at 9:42 AM, Phil Blundell via cctalk < cctalk@classiccmp.org> wrote: > On Fri, 2017-08-04 at 08:53 -0400, Noel Chiappa via cctalk wrote: > > > > But are SD cards really that unreliable? > > It depends on exactly how you measure "reliable". There are a few > different things going on, and it differs from one SD card to another. > > Firstly, there are multiple types of flash memory that can be used for > the underlying storage. The flash cells can be either SLC, MLC or TLC > in decreasing order of cost per bit but also in decreasing order of > robustness. An SLC cell might tolerate 100,000 erase/write cycles, > whereas an MLC cell might fail after only 10,000 and a TLC cell might > be worn out after 3,000. The act of reading from a flash cell also > disturbs the charge in nearby cells: this effect is not particularly > significant for SLC, which you can generally read without restriction, > but on MLC and TLC the controller needs to keep track of how many times > it has read from a particular block and periodically re-write the data > to refresh it otherwise it will eventually become corrupt. And > finally, the charge in flash cells does eventually leak away: for MLC > and TLC cards your data may disappear over a timescale of months to a > few years. > > Consumer-grade cards will almost always use MLC flash, or possibly TLC > at higher capacity levels. SLC cards are available but typically they > are the "industrial grade" ones and are only available in smaller > capacities. > > Secondly, there are many different controller ICs and the behaviour of > the controller has a significant effect on how well the card works > overall. Some controllers are better than others at managing bad > blocks and bit errors in the flash. Some deal better than others with > unexpected power failures. Some deal better than others with the "read > disturb" effect. Some deal better than others with random access, > particularly random writes: it's fairly common for the cheaper consumer > cards to only have enough buffer space for one output file to be open > at a time, and if you start trying to write multiple files in parallel > to different areas of the card then the write buffer will start > thrashing and performance will be dismal. > > It's also worth remembering that most consumer-grade cards are used in > a way that is not a very close match to a disk emulator. Cameras > (including cameras in phones) are generally writing a relatively small > number of fairly large files. They seldom read, and they virtually > never modify a file in place. Also, because all SD cards come > preformatted as either FAT or exFAT, the pattern of accesses that the > host will make to the filesystem is somewhat predictable and some > controller ICs are specifically optimised for this. > > All the above said, although it probably is true that the average > consumer-grade SD card is significantly less robust than the average > SATA SSD that you can buy today, and probably also less robust than the > average spinning hard disk, I suspect they are probably not all that > much less reliable than the average 1980s or 1990s-era hard disk. > Personally I would be quite happy to use an SD card to emulate mass > storage in a classic computer, and in fact I was thinking just this > morning about buying one of the scsi2sd boards for that very purpose. > If you are going to be using it in an application that sees frequent > writes then I would try to get an SLC card, or failing that a low- > capacity MLC one. But otherwise, I would just make sure I had a backup > and live with the possibility that the card might need replacing after > a couple of years. > > Phil > >