Player-X, het probleem is dat jij en anderen niet naar het probleem als geheel kijken maar selectief alleen het stukje wat jullie uitkomt er uit halen en dan roepen: ZFS is beter dan geen ZFS!
Waar jij met name over valt nu is dat ik de kans op geheugen fouten veel groter acht dan silent data corruptie vanuit het storage subsystem, waar ZFS tegen beschermt.
Maar er is meer dan voldoende informatie om dat hard te maken. En je kunt het zelfs beredeneren:
Een harde schijf zit vol met error correctie codes aan alle kanten, die dingen doen eigenlijk een fail-safe: ze 'falen veilig'. Of je krijgt data terug, of niet. Maar ze liegen bijna nooit.
Geheugen daarentegen is redelijk stabiel, maar bevat geen error detectie en correctie en de kans dat daar dus een keer een rotte bit doorheen floept, is dus veel groter. Er is geen vangnet.
Kans op geheugen flips in desktops
In een reguliere consumenten computer is het werkgeheugen zo'n beetje het enige component wat niet beschermd wordt door allerlei data integriteit checksums. Harde schijven offeren een flink deel van hun capaciteit op voor checksums. De communicatie protocollen zitten vol met checksums. Maar van werkgeheugen nemen we blind aan dat dit nooit foute informatie bevat.
Althans, voor desktops. Het risico van bitflips in RAM is zo ontzettend goed gedocumenteerd voor zowel desktops als servers dat ik niet snap dat er nog een discussie over is.
Hier is de Microsoft paper, kijk even naar de desktop stats:
https://www.microsoft.com...eurosys84-nightingale.pdf
Een kans van 1 op 1700 over een periode van 30 dagen dat je een bitflip ziet in slechts 1.5% van het RAM.
Ik ben geen wiskunde statistiek expert, maar volgens mij mag ik dit wel vertalen naar 1700 / (365 / 30) = 1 op 140. Dus een kans van 1 op 140 dat je in een jaar een geheugen fout meemaakt in slechts 1.5% van het RAM. Dus van iedere 140ste bezoekers hier op de site zal de computer 1 x per jaar een bitflip in dat stukje RAM zien.
Ik weet niet in hoeverre je kunt en mag extrapoleren vanaf die 1.5% RAM, maar het mag duidelijk zijn dat dan de risico's heel hard veel groter worden.
Leuke quote van de researchers van Microsoft:
Unfortunately, ECC memory is seen as a “premium” part, and is often used only in server machines. Field studies—such as ours—may observe many different environmental effects, such as dirt, heat, or assembly defects, all of which all can conspire to increase the probability of memory errors.
Computers thuis hebben het slechter dan in een datacenter met een constante temperatuur, luchtvochtigheid, afwezig van electromagnetische invloeden, etc.
Het enige grote en inderdaad belangrijke verschil is dat computers thuis meestal niet zo zwaar belast worden en de Google studie heeft aangetoond dat een hogere belasting de kans op geheugen fouten doet toenemen.
Dat een thuis server misschien wel een factor 1000 minder I/O ziet dan een 'echte' server maakt niet dat je het risico met een zelfde factor afneemt, dat is een drogredenering.
Bovendien, snij je jezelf enorm in de vingers, want met dat argument veeg ik dus ook direct de waarde van ZFS van tafel.
Geen ECC in desktops dus hoe belangrijk is ECC
Ik vind het jammer dat dit argument waarvan ik meende dat het al voldoende was bestreden toch weer op tafel wordt gegooid.
Binnen bedrijfsomgevingen is het niet zo'n punt dat desktops geen ECC geheugen bevatten omdat de gevolgen van een geheugen flip niet zo groot zijn.
Hooguit moet iemands desktop rebooten of ben je een paar minuten werk kwijt. Als het om een document op een netwerk schijf gaat is mogelijk een restore nodig (previous versions to the rescue).
Zelfs als een bitflip tot gevolg heeft dat een waarde in een document wordt aangepast waardoor verkeerde beslissingen worden genomen en de business schade groot is, dan is dat niets anders dan het equivalent dat een mens per ongeluk ergens een tikfout maakt. En bedrijven hebben meestal wel processen rond kritische informatie om te waarborgen dat de boel klopt.
Dat desktops geen ECC geheugen bevatten is ook anno 2016 meer een gevolg van het verleden en 'dat is hoe de markt is' dan dat het een hele bewuste keuze is. Je kunt niets afleiden uit het feit dat zelfs in kritische organisaties zoals Shell waarbij je het pand wordt uitgegooid als je de trapleuning niet vasthoudt toch desktops zonder ECC geheugen worden toegepast.
Kijk naar het totaalplaatje niet naar individuele componenten
Rekenvoorbeeld:
Risico op geheugen error per jaar: 5.0%
Risico op silent data corruptie op disk per jaar: 0.1%
Totale risico profiel voor data corruptie: 5.1%
Ga je nu wel ZFS toepassen maar geen ECC geheugen dan wordt het totale risico profiel 5.0%.
Een winst van 0.1% ofwel een verbetering van het risico profiel van wel - tromgeroffel - 2%.
Dus je risico profiel neemt slechts af met 2% en daarvoor moeten mensen dus wel Linux/BSD leren om ZFS te gaan draaien want dat is 'gratis' en het 'kost niets'?
Voor je totale risico profiel maakt die 2% vrijwel niets uit. Druppel op de gloeiende plaat.
Dit is waarom ik ZFS draaien zonder ECC-geheugen 'theater' noem.
Maar kijk nu wat er gebeurt als we het risico van non-ECC geheugen wegnemen.
Rekenvoorbeeld:
Risico op silent data corruptie op disk per jaar: 0.1%
Totale risico profiel voor data corruptie: 0.1%
Als we nu ZFS toepassen, dan nemen we dus zo'n beetje 100% van het risico profiel weg!
Dus nu gebrek aan ZFS de grootste blijvende risico factor is geworden, maakt toepassing van ZFS zeker uit en is het zinvol.
Hooguit kun je zelf er voor kiezen dat je het absolute risico van 0.1% dermate laag vind dat je het de moeite niet waard vind.
Zo komt ook mijn redenatie tot stand dat als je moet kiezen, dat je beter af bent met ECC geheugen en zonder ZFS dan vice-versa.
Mijn vraag is uiteindelijk: waarom draai je de achterdeur op slot en laat je de voordeur open staan?
Als je de voordeur open laat staan, dan kun je de achterdeur ook gerust open laten. Maakt voor het risico niets uit.
Pas als je het slot vervangt van de voordeur en deze op slot doet maakt het uit of je ook de achterdeur op slot zet.
Permanente vs tijdelijke corruptieEr een verschil is tussen permanente en tijdelijke corruptie
De quote die je aanhaalt van CiPHER wordt direct gevolgd door mijn antwoord op deze discussie.
Het is een onjuiste voorstelling van zaken.
Op het moment dat je geheugen rot is, heeft iedere schrijfbewerking naar je ZFS file system de potentie om corruptie in het file systeem te veroorzaken.
ZFS moet het RAM geheugen gebruiken als kladpapier om haar eigen interne modificaties uit te voeren op het file systeem zelf als je er bewerkingen op doet. Als de uitkomst van een berekening in rot geheugen terecht komt zal ZFS dat niet door hebben. Niet alleen end-user data kan zo aangetast worden, maar het file system zelf ook. Dat kan desastreuze gevolgen hebben voor het hele file system. Worst-case kun je de pool niet meer mounten en is alles weg.
CiPHER, je wekt de indruk dat ZFS magischer wijze kan omgaan met rot geheugen, maar dat is wat mij betreft een onjuiste voorstelling van zaken. Je creëert zo een vals gevoel van veiligheid bij de mensen die op basis van dit soort verhalen op ZFS duiken.
Conclusie
Ik verwacht dat er wel weer discussies gaan ontstaan over de getallen in deze post. Het probleem is dat iedere keer die cijfers weer in twijfel worden getrokken, maar dat komt waarschijnlijk omdat ik er mee kom als ECC voorstander en ze goed in mijn argument passen.
Maar het probleem met de kritiek die ik hier heb is dat de argumenten altijd puur gericht zijn om onzekerheid te creëren in plaats van duidelijkheid te scheppen over wat de risico's echt zijn.
De stats komen allemaal uit Google / Amazon / Microsoft studies dus 'enterprise' en 'enterprise' is niet het zelfde als thuis. Natuurlijk is dat waar, maar dat is geen argument om dan maar de resultaten uit de 'enterprise' maar van tafel te vegen, wat nu gebeurt. Bovendien was die studie van Microsoft gericht desktops!
[
Voor 8% gewijzigd door
Q op 13-08-2016 11:59
]