News for hackers. Stuff that matters.
Re:Real world SSD wearout by ScoJoh on Monday August 27, 2018 @03:24PM (#17853701)
Place I work got hit HARD by this. Year and half before I started at this company they setup 4 SSD's in a RAID 5 config.

One day while working on things I noticed a message on our server indicating a PDR1001 Error (Predictive Failure). So we ordered a new one. The new SSD arrived. We popped in the new one and the RAID started to rebuild.... Lo and behold during that operation Drive 1 threw the same error and the whole thing came crashing down...

We ended up losing the whole array. I had NO idea we had SSD's in the system. I had no idea that no one was monitoring their life.... The moment I saw we had this issue I saw the writing on the wall. 4 SSD's in a raid 5 all installed at the same time... means all SSDs end up with the same approximate critical end of life.

All I could do was shake my head at the whole thing... Pretty sure those in the charge who setup the array still don't understand why this situation was 100% avoidable...

Re:Real world SSD wearout by arminiusreturns on Monday August 27, 2018 @03:51PM (#17853927)
Besides the ssds, who in their right mind uses raid 5 anymore? It's been dead to me for years... since the first time I had to rebuild an r5 of 4tb disks and did the math on the time window for cascades. Also, not to nitpick, but you shouldn't wait to order a replacement that gets shipped to rebuild, you should have spares ready to go at all times for all raid systems. That might have been the difference between a cascade and a normal rebuild.
Re:Real world SSD wearout by zaarn on Tuesday August 28, 2018 @04:05AM (#17857265)
I'm planning to use RAID5 in an upcoming N/DAS build. Though it's not a server-level setup, so I'm using SnapRAID+MFS which can tolerate more than 1 drive failure in this case, atleast without loosing the entire array.

RAID5 definitely has a purpose, notable small arrays where RAID6 would be wasting space or if you have nodes to failover too (ie, you have 3 nodes, run each with raid 5, if one goes belly up during a rebuild you still have 2 left and you can reprovision the third).

RAID6 would likely be at the limit of most modern implementations so you'd have to jump to (n,n-3) RAIDs or higher. Of course there is always RAID1(0) if you like 50% storage efficiency.

Re:Real world SSD wearout by mmt on Tuesday August 28, 2018 @02:06PM (#17861204)
> RAID5 definitely has a purpose, notable small arrays where RAID6 would be wasting space

This doesn't quite make sense to me. Why would the size of the array make any difference as to whether or not the extra drives needed by RAID6 can be characterized as waste?

> or if you have nodes to failover too

In essence, that's RAID5+1, which makes me wonder: If you have node-level redundancy, why bother with the intra-node redundancy?

> RAID6 would likely be at the limit of most modern implementations so you'd have to jump to (n,n-3) RAIDs or higher.

It's not clear to me what limit you're referring to, but, considering how long RAID6 has been implemented, especially in hardware, and how far computing power has increased since then, such a claim is dubious, if not extraordinary.

Re:Real world SSD wearout by zaarn on Tuesday August 28, 2018 @02:34PM (#17861526)
> Why would the size of the array make any difference as to whether or not the extra drives needed by RAID6 can be characterized as waste?

RAID risk is about your rebuild failure rate, in this case URE (Unrecoverable Read Error). If one such is likely to occur during your rebuild, that can lead to a lot of problems.

In RAID5 until you hit about 2 TB disks and up to about 4 or 5 disks total the risk of a URE during the full read of the array is fairly low. Once you go above that you risk loosing data to URE errors.

In RAID6 you essentially multiply the URE rate together, which means you have a much much lower error floor and you can repair bigger arrays.

In a cost-benefit analysis this means that if your array is small enough, a RAID5 gives you more effective disk space with little additional risk.

>If you have node-level redundancy, why bother with the intra-node redundancy?

A failover is still a failover and can reduce performance and it reduces your remaining failover margin. You want to keep your failover rate low, though if you doN't particularly care you can use RAID 0 too.

>It's not clear to me what limit you're referring to, but, considering how long RAID6 has been implemented, especially in hardware, and how far computing power has increased since then, such a claim is dubious, if not extraordinary.

This is not a CPU power limit, rather RAID6 will in the next few years hit the spot where the risk of loosing 2 drives during a rebuild, due to the large drive sizes, becomes large (URE is still low IIRC), so at that point you want more redundancy to keep the rebuild risk low.

Re:Real world SSD wearout by mmt on Tuesday August 28, 2018 @05:45PM (#17863192)
> RAID risk is about your rebuild failure rate, in this case URE (Unrecoverable Read Error).

This seems to be the keystone to your reasoning, and I'm not sure it's true, in practice. IME and in the literature I've read, modern RAIDs operate assuming a whole-disk failure (both on write and on read). Sub-whole-device errors seem to be an issue of concern limited to ECC in RAM. Do you have pointers to literature about this in the context of RAID?

> A failover is still a failover and can reduce performance and it reduces your remaining failover margin.

I think that means that the node-level redundancy isn't actually equivalent to RAID1-style redundancy (where there's no explicit failover), which is important to mention.

Of course, my question wasn't really "why bother" so much as asking if that architecture isn't far more wasteful than, say, RAID1 (or even just RAID6/RAIDZ3) intra-node and less node-level redundancy.

> You want to keep your failover rate low

I'm pretty sure best practices are the opposite of this. One can only know if the redundant copy actually works by using it, so a system that can failover more often is better. Ideally, the system is, like RAID1, requires no explicit failover and merely load balances both copies.

> RAID6 will in the next few years hit the spot where the risk of loosing 2 drives during a rebuild, due to the large drive sizes, becomes large

You'll need to quantify these, though, since, though drive capacities have continued to grow faster than transfer speeds (for mechanical drives), it's still in the OOM of 30 hours for minimum rebuild time. What's the risk of a second and third drive failure in 300 hours (1/10th the maximum rebuild rate)?

Re:Real world SSD wearout by zaarn on Wednesday August 29, 2018 @12:18AM (#17865584)
>Do you have pointers to literature about this in the context of RAID?

URE Rate is documented in most handbooks or manuals on harddisks, it's usually about 10^-12, though this is a worst case error rate and -13 or -14 is more realistic. At that rate you means your harddrive will return a read error every terabyte to every hundred terabytes.

A URE can cause the raid controller to think the HDD is defective and crash the array if no parity is left to compensate.

>Of course, my question wasn't really "why bother" so much as asking if that architecture isn't far more wasteful than, say, RAID1 (or even just RAID6/RAIDZ3) intra-node and less node-level redundancy.

Depends on your use case.

>I'm pretty sure best practices are the opposite of this.

Best practise is to test your failover regularly, correct, but this doesn't mean you shouldn't minimize your actual failover rate.

>What's the risk of a second and third drive failure in 300 hours (1/10th the maximum rebuild rate)?

It's not that low, especially since a lot of arrays contain similar enough harddrives that concurrent failure is possible (although you can make it less likely by avoiding similar batches). And again, that URE rate has a risk of marking of your array as dead if you get unlucky.

Re:Real world SSD wearout by mmt on Wednesday August 29, 2018 @01:32AM (#17865910)
> URE Rate is documented in most handbooks or manuals on harddisks, it's usually about 10^-12, though this is a worst case error rate and -13 or -14 is more realistic.

The kind of literature I'm looking for is based on real world data, since spec sheets are generally marketing documents and therefore, at best, uninformative. This is particularly noticeable when a single number is used for a statistic, as in this situation.

Let's take a current datasheet [1] which actually says 1 sector (unclear if that's 512 or 4k, but let's assume 512) per 10E15, max, a full 3 OOMs higher than what you mentioned. That's 512PB, which, at the highest listed transfer rate, would take almost 545k hours, corresponding to slightly above a 1.6% AFR for worst-case URE-caused failures.

Since I don't believe the spec sheet's 0.35% (average) AFR, but since real-world AFRs are in the low single-percent, I'm staying with the conclusion that read errors need not be considered separately from any other underlying cause of drive failure.

> Depends on your use case.

I'm not convinced that "waste" can ever depend on use case, when examined under the narrow lense of redundancy. Regardless, it was a use case you, specifically brought up, so the question remains open.

> Best practise is to test your failover regularly, correct

You're misunderstanding my assertion, which wasn't about regularity but frequency. I made no statement as to regularity (and it may even be better, with discrete failovers, to do so irregularly, rather than regularly).

My assertion is that best practice dictates frequent failover.

> It's not that low

> risk of marking of your array as dead if you get unlucky.

You still haven't actually quantified the risk. "Unlucky" and "possible" are too hand-wavy to engineer around.

Quantifying the risk, even if it's a very coarse approximation, is a prerequisite to avoiding FUD-based decisions/actions. Usually, the most visible consequence of the latter is the waste alluded to earlier, manifesting as higher cost and/or lower performance. The less visible consequence is misallocated resources/attention from something relatively likely (e.g. human error causing catastrophic data loss) to something much less likely (e.g. single sector read error causing catastrophic data loss).

[1] https://www.seagate.com/www-content/datasheets/pdfs/exos-x-1...

Re:Real world SSD wearout by zaarn on Wednesday August 29, 2018 @03:12AM (#17866317)
>Let's take a current datasheet [1]

Of a high profile and high quality enterprise disk, unlikely to appear in 99% of RAID setups. Congratulations.

Most RAID setups in the wild consist of low quality enterprise or even desktop platters, high quality setups are rare and expensive.

Esp. considering that lots of consumers have a NAS or MyCloud/eqv. at home and SMB doesn't buy those harddrives either, I don't think this is a valid comparison.

[https://www.seagate.com/files/www-content/product-content/na...]

[https://www.seagate.com/staticfiles/docs/pdf/datasheet/disc/...]

These drives here have an OOM higher error rate on the data sheet and they're still not very common, plus the error rate is given in bits here, shaving of 3 or 5 OOM again, calculating it out gives you an bad bit every 12 TB or so. Depending on how your RAID works, this can ruin the entire stripe or the sector it gets the hit on.

12TB isn't a lot and there is a good probability that a 3x4TB RAID5 array will hit such an error and a 3x2TB RAID5 has a 50/50 chance of having it during a rebuild.

>I'm not convinced that "waste" can ever depend on use case

It definitely can. Consider the use case of "office documents" vs "high performance video storage". With office documents a high throughput is not needed so we can reduce storage costs by using a RAID5 or 6 depending on array size. Video storage for example for CCTV requires more throughput an a RAID10 will give you better performance at some lost effective storage.

You can of course put your office documents on a RAID10 but that is the wasted space. It is not necessary to maximize the RAID performance and the low storage needed for office documents means you can use RAID5 on small arrays fairly safely, RAID6 if you need more.

Waste is a matter of efficiency in all domains, in this case means picking the RAID level that maximizes storage efficiency, performance goals met and safety as best as possible. Picking one that trades off one for the other is waste or even dangerous.

>My assertion is that best practice dictates frequent failover.

I don't think I ever met a sysadmin that insistent frequent failover due to failure is considered best practise. Regular testing yes, regular failure, no. Failure is expensive, testing not.

>You still haven't actually quantified the risk. "Unlucky" and "possible" are too hand-wavy to engineer around.

They're not really, plus you can easily quantify risks as you have done using datasheets. Though the moment your array isn't a singular batch of exactly the same harddrive these estimations become a lot harder.

You don't need to exactly quantify the risk, it is sufficient to know the margins of the risk or even if you are going into the margins of the risk, ie a risk model.

I don't need to know the exact and perfect probability of a read error on the array, I need to know if the array is likely to experience one (with likely being >1% or any other >X% during a rebuild or during normal operation). This question is more easily answered and doesn't require more than estimations.

This trades cost efficiency for safety margins meaning that an array has a comfortably low actualized risk of failing. That is what I consider actual engineering there.

Re:Real world SSD wearout by mmt on Wednesday August 29, 2018 @03:51AM (#17866490)
> Of a high profile and high quality enterprise disk, unlikely to appear in 99% of RAID setups.

> Most RAID setups in the wild consist of low quality enterprise or even desktop platters, high quality setups are rare and expensive

> they're still not very common

More extraordinary claims, requiring extraordinary evidence. Even Baraccuda Pro models (which do cost more but not prohibitively so) have the same read error rate, but I didn't choose that datasheet because it had less data, overall.

> Esp. considering that lots of consumers have

I call "red herring" on this, since consumers also aren't going to have the kinds of choices we're discussing, nor read these forums, nor the original article (which is the context for this whole discussion).

> the error rate is given in bits here, shaving of 3 or 5 OOM again

I'm not convinced of that, since the tables look identical between the drives. Maybe it's a sneaky marketing ploy, but maybe not. Ultimately, you need real world data, which you consistently haven't provided.

Absent that, it seems as though you're relying on assumptions, and my original conclusion, based on the data that has been published by the likes of Google and Backblaze, stands.

> Waste is a matter of efficiency in all domains

You seem to have re-defined waste, so I can't really speak to it.

> I don't think I ever met a sysadmin that insistent frequent failover due to failure is considered best practise.

I fear you are, again, misunderstanding. I didn't mention failure as a cause, although the term "failover" could lend itself to confusion, with the substring "fail" being in it. I used the term only in the sense of "switchover".

Perhaps I merely misunderstood you originally. You did initially state "A failover is still a failover and can reduce performance" which, even assuming you meant failover-due-to-failure, the assertion is questionable in the context of justifying node-level redundancy on top of RAID-level redundancy, if switchover (not due to failure) is engineered to be frequent (or even continuous).

> you can easily quantify risks as you have done using datasheets

I'm not agreeing or disagreeing as to its ease, but I'm asking you to go ahead and perform this, which you assert the ease of, since that seems to be the basis of your point.

(Earlier, I just made some single-disk calculations based on the spec sheet, not array risks.)

> I need to know if the array is likely to experience one (with likely being >1% or any other >X% during a rebuild or during normal operation). This question is more easily answered and doesn't require more than estimations.

Agreed. As I mentioned, coarse estimates (if based on real data) are plenty good enough. However, even a coarse estimate assigns some number to it.

Given your question above, what's the answer, for likely-being->1%, during a 300-hour rebuild? How did you arrive at that answer?

Re:Real world SSD wearout by simcop2387 on Monday August 27, 2018 @03:58PM (#17853975)
Yea any time I'm using a raid setup (as opposed to a cluster or other more intelligent system like zfs) I insist that there be at least one hot spare and a cold one ready. And never let anyone convince you a raid is a backup
Re:Real world SSD wearout by Narkov on Monday August 27, 2018 @08:28PM (#17855675)
Hot and cold spares are rather wasteful. Just RAID1 and then use software (i.e. ceph) to make that redundant across multiple enclosures and ultimately, geographic zones/DC's.
Re:Real world SSD wearout by mmt on Monday August 27, 2018 @10:25PM (#17856186)
That strikes me as a bit contradictory, since I would consider RAID1 (plus the redundancy across enclosures) to be the equivalent to even "hotter"[1] spares. Unlike the hot (warm) and cold spares for the RAID5/6, all the drives in the RAID1 are continuously in use, which means they're subject to wear-related failures [2].

If you're getting performance benefits from the RAID1, then the extra drives may not be wasted, but that's a separate topic.

[1] Which I argue is a misnomer. To me, "warm spare" makes more sense, since it's powered up but not actively synced in any way. Some systems, configurably, even spin down such spares.

[2] As I mentioned in https://news.ycombinator.com/item?id=17855632 some failures are power-on/spun-up related, which makes the availability of a truly cold spare even more beneficial.

Re:Real world SSD wearout by hobs on Monday August 27, 2018 @08:42PM (#17855753)
Depends on your RPO and RTO tbqh, if you have the budget to do that in software you are either fairly small or able to implement changes without the business yanking your chain and many are willing to just pay more for their storage layer than re-architect existing apps.
Re:Real world SSD wearout by alexsb92 on Tuesday August 28, 2018 @12:29PM (#17860181)
As someone looking to backup a few terabytes of photos and videos, where I do have them on a raid, what constitutes an actual backup?
Re:Real world SSD wearout by Max_aaa on Tuesday August 28, 2018 @01:51PM (#17861050)
An actual backup, would be a copy of said photos and vidoes on:

- An external Drive. (which is only connected to copy files)

- An external cloud service.

- Another computer that you have.

You should probably do a couple of these.

I personally backup home computers (using borg) to a home server, that server has a 2.5 2TB external HDD connected to it (2 other 2.5 external drives are kept outside of the house). A backup of important files from the nas (including the computer backups) gets copied over to the external drive nightly. Weekly the drives gets rotated.

The really important stuff is also backed up offsite on a daily basis.

Re:Real world SSD wearout by AnIdiotOnTheNet on Tuesday August 28, 2018 @04:35PM (#17862620)
My general rule is that there are at least 3 copies in different physical locations, at least 2 of which are not within "tornado distance" of each other.

The way to think about backup and DR is "what would it take to destroy all of this?" and keep making the answer more and more extreme until it is so horrible that if it actually happens you won't care about what you lost.

PS: Also always remember that a backup you don't test isn't actually a backup.

Re:Real world SSD wearout by simcop2387 on Tuesday August 28, 2018 @05:55PM (#17863273)
Basically like others said, there's some kind of physical separation. That way if the machine were to explode or you loose too many drives in the array you still have a copy of them. RAID protects you from a hardware failure (to some extent), a backup protects you from hardware failure, software failure, and human failure (or it should anyway). The idea is that if the cannonical version of things gets destroyed somehow the backup is available to rebuild, so it can't be alive in the same machine as the cannonical one (except maybe when doing the backup itself).

The other "rule" that many people follow is 2 is 1 and 1 is none. The idea is that anything that isn't backed up isn't protected and can't be relied upon to exist.

A cloud service like backblaze, google drive, amazon cloud drive, etc. is a good secondary backup for a lot of people even if it'll take you a month or two to get your data there to begin with.

Re:Real world SSD wearout by apta on Monday August 27, 2018 @09:05PM (#17855846)
> or other more intelligent system like zfs

I thought zfs was not incompatible with RAID. How else would you run it out of curiosity?

Re:Real world SSD wearout by bcaa7f3a8bbc on Monday August 27, 2018 @10:31PM (#17856207)
When using ZFS on top of external RAID hardware or software, instead of using the builtin RAID-Z feature, many unique crash-safe and data-corruption prevention features provided by ZFS are lost. The best practice is avoiding using other RAID mechanisms when possible.
Re:Real world SSD wearout by jacquesm on Monday August 27, 2018 @08:54PM (#17855800)
With the current drive capacities even RAID6 is at its limits (or in fact, already past them).
Re:Real world SSD wearout by vernie on Tuesday August 28, 2018 @02:14AM (#17856878)
What superseded RAID 5?
Re:Real world SSD wearout by ProblemFactory on Tuesday August 28, 2018 @04:44AM (#17857407)
Generally variations on RAID 10.

Disks are large and cheap enough to afford losing 50% of your capacity, and it's much faster while in use and when rebuilding.

Re:Real world SSD wearout by mmt on Tuesday August 28, 2018 @02:18PM (#17861331)
RAID6, which provides two drives worth of parity compared to RAID5's single drive worth of parity, is the most common successor, especially in hardware (ASIC) implementations.

Other examples are ZFS's RAID-Z, which can support even more parity for even more resiliency to drive failure.

Contrary to a sibling comment, RAID1+0 does not supersede RAID5, as it has existed at least as long and has always had different trade-offs.

How many drive failures one may need to be able to survive, given historical drive failure rates [1], current drive capacity vs. transfer rates (i.e. minimum rebuild time), and individual parameters (e.g. number of drives per array, acceptable magnitude of performance degradation during rebuild), is left as an exercise to the reader.

As the OC suggested, this number can still be 1 (i.e. RAID5) for SSDs.

[1] optionally including or excluding "black swan" events such as the flooding in Thailand that wiped out thos disk factories, rendering an entire "generation" of HDDs, manufactured in haste elsewhere, far less reliable

Re:Real world SSD wearout by metaphor on Tuesday August 28, 2018 @12:03AM (#17856485)
> since the first time I had to rebuild an r5 of 4tb disks and did the math on the time window for cascades.

Care to elaborate on this? Disk specs? Resilivering time?

Re:Real world SSD wearout by kuwze on Monday August 27, 2018 @03:59PM (#17853985)
Could you dumb it down? Are you saying that because all the SSDs were from the same manufacturer and installed at the same time their chance of collectively wearing out simultaneously was high?
Re:Real world SSD wearout by da_chicken on Monday August 27, 2018 @04:33PM (#17854276)
That's true for any type of disks. If you install a disk array using disks from the same lot from the same manufacturer, it's extremely likely that you'll get disk failure at more or less the exact same time. You always want to use mixed lot numbers or disks with significantly different manufacturing dates in your arrays. Some people buy spares from multiple manufacturers, others buy from multiple vendors since it's unlikely to get the same lot that way.

RAID 1 naturally spreads writes across all disks. RAID 5 is designed to spread writes evenly across all disks. Sure, certain applications will do uneven writing, but in general it will be fairly even and this is by design. RAID 3 and RAID 4 were abandoned partially because they used dedicated parity drives, and the result was that the parity drives had much higher write loads and so they failed all the time. This meant that the arrays were more often rebuilding or running with degraded protection.

Re:Real world SSD wearout by mmt on Monday August 27, 2018 @05:37PM (#17854785)
> You always want to use mixed lot numbers or disks with significantly different manufacturing dates in your arrays.

For the few of us left who know how to do this (or even that it's beneficial to do in the first place), it's becoming less practical to do at scale.

It's hard enough finding someone who will hire me and use any of These Thngs I Know about operating hardware, isntead of just my "automation" skills, as if all problems can be solved in software.

Re:Real world SSD wearout by viraptor on Monday August 27, 2018 @06:33PM (#17855109)
> as if all problems can be solved in software.

Isn't this one true to some extent though? We already have scrubbing to detect/fix bitrot. Why not make it (slightly) purposefully unbalanced, so you can avoid the simultaneous failure. I expect your time is worth more money than making one drive fail a few weeks early.

Re:Real world SSD wearout by mmt on Monday August 27, 2018 @08:19PM (#17855632)
> Isn't this one true to some extent though?

People who write software for a living tend to think so, but the "some extent" is the real issue. For many classes of problems, merely spending more money on hardware (or procedures/process) is objectively better, but one has to know the alternative exists and be willing to make the comparison. Some problems just have physical limitations.

> Why not make it (slightly) purposefully unbalanced, so you can avoid the simultaneous failure.

I think the short answer is because drive failure is non-deterministic and relatively unlikely in the general case.

> I expect your time is worth more money than making one drive fail a few weeks early.

My (ops) time may or may not be worth more than the software engineering time required to make that drive fail early. (NB that the main cost of the hardware solution isn't necessarily time but is often reduced availability and therefore higher cost of suitable parts).

Your proposal also still ignores the fact that some of these drive failures may simply not be manipulable by software. For example, any failure that's correlated with power-on (or spun-up) time, rather than usage, such as bearing failures, could still happen simultaneously (and affect hot spares, a nightmarish situation).

The tried-and-true engineering solution, which happens to be hardware/process based, actually works, and can be shown to address nearly all known drive failures [1], and has a measurable cost. The same can't be said for a software-only attempt to replace it.

[1] firmware bugs, that do things like returning reads of all-zeros on just-written blocks, being a notable exception.

Re:Real world SSD wearout by viraptor on Monday August 27, 2018 @11:49PM (#17856453)
> I think the short answer is because drive failure is non-deterministic and relatively unlikely in the general case.

If it's deterministic enough to be worth sourcing drives from different batches, why wouldn't it be enough to add small amount of writes on purpose?

> Your proposal also still ignores the fact that some of these drive failures may simply not be manipulable by software. For example, any failure that's correlated with power-on (or spun-up) time, rather than usage, such as bearing failures, could still happen simultaneously (and affect hot spares, a nightmarish situation).

Power cut / spinup / other conditions can be replicated from the OS level as well. I didn't list rather than ignored them. It does sound like a good idea to do those as well, considering it could save you from losing all the drives after a power loss / system crash.

Re:Real world SSD wearout by mmt on Tuesday August 28, 2018 @01:03AM (#17856629)
> If it's deterministic enough to be worth sourcing drives from different batches,

I suspect you're using a mistaken premise.

It's worth sourcing from different batches because failures are not deterministic. Instead, we merely have probabilities based on past experiences (usually from vast data generously provided by operators of spindles at huge scale).

> why wouldn't it be enough to add small amount of writes on purpose

Well, it's not enough, because it might only protect against simultaneity of certain failures. It also doesn't actually reduce the potential impact of the failures, merely buying more reaction time. By distributing a single batch of drives across many arrays, even a simultaneous failure is just increased replacement maintenance cost (if that's even the strategy, rather than enough hot spares and abandon-in-place), without the looming data loss. With the software staggering of write amplification, each failure could be the start of a cascade, in which case replacement takes on a time-critical aspect. This replacement emergency ends up being an operational (not software) solution, as well.

My worry would be that the software scheme provides a false sense of security.

Additionally, you may want to quantify what "small amount" is, considering you're suggesting such an algorithm would allow for failure multiple weeks apart. 3 weeks is 2% of 3 years. For an array of 12 drives, does that mean that the 12th drive would need 22% the writes of the 1st drive?

Of course, beyond any performance hit, write amplification for SSDs has other deleterious effects (as per the article). A software solution would have to account for yet another corner case.. or just stop trying to re-invent in software what already has a pretty comprehensive solution in operations.

> Power cut / spinup / other conditions can be replicated from the OS level as well.

Not necessarily, although I suspect that true nearly always on modern equipment. However, that's not what I meant. What I meant was failures that occur more frequently merely with the time the drive has spent powered on (or powered on and spinning). Even if that could be simulated relativistically somehow, that wouldn't be a software solution, either.

Also, adding a "chaos monkey" of the kind that powers down a drive in a running array would both introduce a performance hit that I expect a majority of environments would find unacceptable (more than would find write amplification acceptable) and would introduce additional wear and tear on mechanical drives. The latter may be worth it, but I'd be hard pressed to quantify it. It would be different if limited to hot spares, but that's also of limited utility.

You'd also have to be extremely careful in implementation, as a bug here could make a previously viable array into a data-lost array. If such a technique reveals a drive failure, I'd want it to stop immediately so as to be able to replace it with a different one from a different batch and have enough replacements on hand, in case all the rest suffer the same fate.

> I didn't list rather than ignored them.

Unfortunately, it's impossible to tell the difference in discussions on this topic, because, as I mentioned, so few people have first hand knowledge (or have done the research). Even before "the cloud", there was more mythology than hard data (including about temperature, until Google published data debunking that).

Re:Real world SSD wearout by siscia on Monday August 27, 2018 @10:32PM (#17856208)
If you are willing to move in Geneva I believe that CERN or any of the LHC experiments could use your skills.

It may be worthed to visit their career page.

Re:Real world SSD wearout by mmt on Tuesday August 28, 2018 @01:08AM (#17856647)
Relocation isn't something I'm open to, at this point. (Being in the SF Bay Area, I'm not yet worried that this limits me excessively).

I suppose it's also worth noting that I'm sceptical that any organization that large wouldn't have an equally narrow interest in my skillset.

My goal is the able to apply as close to the full breadth of what I know and can do, rather than something like specifically avoiding automation or specifically exercising my storage knowledge. For that, startups and other small companies seem best, though, oddly, not lately.

Re:Real world SSD wearout by ApolloFortyNine on Monday August 27, 2018 @04:07PM (#17854051)
Most definitely yes.

But in addition to this, standard Raid5 does not periodically read the data, so it's actually rather common for issues to only arise on a resilver.

This is why proper maintenance in ZFS is to run ZFS Scrub (basically check every file) once a week.

Re:Real world SSD wearout by agapon on Tuesday August 28, 2018 @03:27AM (#17857096)
Once a week sounds extreme unless we talk about a smallish SSD-only pool. You may wear out your (spinning) disks with scrubs more than you do with real workloads. Also, depending on a pool size it may take days for a scrub to complete.
Re:Real world SSD wearout by mmt on Tuesday August 28, 2018 @02:31PM (#17861490)
> You may wear out your (spinning) disks with scrubs more than you do with real workloads.

This seems like an extraordinary claim requiring extraordinary evidence, especially since the notion of wear out is only applicable to SSDs (as shorthand for write endurance).

I certainly believe that mechanical disks, with all those moving parts, can have their failure rates increased by increased use, but it's not safe to assume even something as high as a linearly proportional relationship, considering which parts move when.

Re:Real world SSD wearout by mmt on Monday August 27, 2018 @05:17PM (#17854636)
That's also proper RAID5/6 maintenance. My main/recent familiarity is with LSI hardware RAID implementation, where they call it a "patrol read". I believe mdraid has checkarray.

I'm not sure if you meant to imply that ZFS is different from standard RAID in this regard, but it doesn't seem as though it is.

Re:Real world SSD wearout by jacquesm on Monday August 27, 2018 @08:56PM (#17855804)
It's called scrubbing.
Re:Real world SSD wearout by mmt on Monday August 27, 2018 @10:10PM (#17856142)
Did you mean to reply to my above question? If so, I'm unclear as to what you're trying to get across.

Is ZFS scrubbing different than the other RAIDs' (scheduled or schedulable) reads of the entire array, other than nomenclature?

Re:Real world SSD wearout by Siecje on Monday August 27, 2018 @05:43PM (#17854831)
We use ZFS, how can I check if we are doing a ZFS Scrub every week?
Re:Real world SSD wearout by simcop2387 on Monday August 27, 2018 @05:44PM (#17854839)
'zpool status' will tell you the last time a scrub was run, or if one is running currently and information about it. Then check your crons and see that they make sense and match what you see with zpool status.
Re:Real world SSD wearout by Siecje on Monday August 27, 2018 @05:49PM (#17854875)
Well it is not every week.

> scan: scrub repaired 0 in 0h36m with 0 errors on Sun Aug 12 06:00:50 2018

I don't see any cron jobs though...

Re:Real world SSD wearout by simcop2387 on Monday August 27, 2018 @06:25PM (#17855067)
Given the speed of that, I'd bet you don't have a huge pool (or if you do, that's a really nice speed). I'd bet someone's doing it manually. That's what I do for my own systems (about once a month) since they're not heavy use (personal and parent's file servers).
Re:Real world SSD wearout by tetha on Monday August 27, 2018 @04:45PM (#17854376)
There are two nasty thing going on with raid5: a) You can tolerate 2 drive failures, no more. One less, but if you tolerated one, you can tolerate one more, and no more.

AND b) raid rebuild causes MASSIVE stress on the remaining drives. Seriously massive stress, beyond what distributed systems or raid 1 / 6 based systems do.

This occurs because RAID5 both rewrites parities, but it also has to re-read data from all drives while writing parities to all drives. That's a lot of random access and especially spin-drives and larger drives (see the coincidence?) dislike that. That tends to cause similar-aged drives to die and then your raid is gone.

I'd suppose this is less hard on SSDs than HDDs. But there's still a lot of rewrites going on, and SSDs don't like that either.

Re:Real world SSD wearout by rincebrain on Monday August 27, 2018 @04:57PM (#17854485)
a) RAID5 can fault precisely one drive without data loss. Two overlapping errors (e.g. two errors in one stripe) and you're up shit creek without a paddle. This is the generic definition for RAID5, not an implementation detail.

b) What makes you think RAID6 doesn't also incur this? The only difference is that RAID6 also includes a Q parity block in each stripe, so the only thing you get saved from is if you don't need to read the parity on the stripes, you save 1/(N+P-1) IOs per drive.

RAID6 is still going to need to recompute ~2/(N+P) parities (one P, and one Q) for rebuilding a drive over (N+P) stripes; and reconstruct the data for the rest (depending on how P and Q are implemented, they could interweave which they use for reconstructions, but AIUI it's generally more expensive to recompute from Q than P, and R than P or Q, in many instances of this math).

c) Many RAID systems can rebuild starting from the starts of the respective disks and streaming along (or, in recent ZFS's case, coalescing the IOs to be in sequential order groups and issuing them), though certainly not all of them.

The logic "usually" goes that RAID5/RAID6 rebuilds are dangerous because they involve reading all the bits, so to speak, so if you don't have an equivalent of scheduled patrol reads to be sure bits at rest that haven't been read by users haven't gone south, you'll first discover this...during a rebuild, and with RAID5, you're SOL.

Re:Real world SSD wearout by tinus_hn on Tuesday August 28, 2018 @05:26AM (#17857544)
This happens with spinning disks as well, you have to read all the disks completely from time to time. Many parts of the disk are only used during a sync and that is the only time you don’t want to find out it’s unreadable.
Re:Real world SSD wearout by true_tuna on Monday August 27, 2018 @06:37PM (#17855124)
There’s so much wtf in this. Raid5? No. Also, you have to be sure not to fill the drives up. Creates a pathological wear situation.
Re:Real world SSD wearout by wtallis on Monday August 27, 2018 @06:47PM (#17855166)
> Also, you have to be sure not to fill the drives up. Creates a pathological wear situation.

It's a sliding scale. SSDs intended for use in servers usually have more spare area than client/consumer SSDs, and most of their specifications assume they're full. A lot of enterprise SSDs also include features to allow the user to adjust the usable capacity, and the write endurance rating and warranty will scale to match.