Quantcast
Channel: Lagring | SweClockers
Viewing all articles
Browse latest Browse all 6396

Experiment med URE

$
0
0

För en massa år sedan dömdes RAID 5 som en följd av att sannolikheten att få ett slumpmässigt fel under rebuild av ett degraderat raidset ökade när hårddiskarna blev större.

Jag har länge tyckt att tillverkarnas specar verkat väldigt snålt tilltagna. Sannolikheten för unrecoverable read error (URE) brukar ligga mellan 1/1014 och 1/1015 per läst bit för konsument- och enterprisediskar. Om dessa fel inträffade slumpmässigt och oberoende av varandra skulle det innebära att sannolikheten att läsa N bits utan fel är

(1-felsannolikheten per läst bit)N

Med en URE-frekvens på 1/1014 skulle det innebära att man skulle lyckas läsa 10 TB (80000000000000 bits) felfritt i ≈45% av fallen.
Med en URE-frekvens på 1/1015 ökar sannolikheten till ≈92%.

Jag tror att tillverkarnas tillförlitlighetsspecar mer ska betraktas som ett gränsvärde för bedömning av garantiärenden än ett realistiskt mått på tillförlitligheten hos en normalpresterande hårddiskindivid. Och jag tänkte försöka testa det.

Jag har följande utrustning:

  • 1 gammal arbetsstation

  • 1 kontrollerkort IBM M1015, flashad med firmwarevarianten utan RAID-funktioner.

  • 8 st SAS-diskar från HGST à 4 TB. Diskarna, i ett JBOD-set, har tidigare använts för backup av diverse jox. Under diskarnas livstid har gissningsvis 200 TB lästs från dem utan bekymmer. Innan de togs i drift har diskarna kontrollerats genom att man kört badblocks på dem. Diskar som inte klarat badblocks' tester felfritt på andra försöket har skickats tillbaka till återförsäljaren för byte. (Ja, på andra försöket. Det är ganska vanligt att nya diskar rapporterar några skriv- eller läsfel första gången de utsätts för badblocks. Jag antar att de block på disken som är felaktiga från fabrik därefter reallokeras, för senare körningar av badblocks brukar rapportera disken som felfri.) Enligt tillverkarens spec har diskarna en UER-sannolikhet på 1/1015.

Jag tänkte lägga upp experimentet på följande sätt:

  1. Kör 'badblocks -w /dev/sd*' (pass auf! det här kommandot skriver rappakalja till diskarna! dataförlust will happen!) för att kolla att diskarna inte beckat ihop sedan de användes senast.

  2. Fyll diskarna med slumpdata (dd if=/dev/urandom of=/dev/sd*). Inga partitioner, raidset eller filsystem. Bara en skön mix av ettor och nollor.

  3. Läs de första 100 MB och skapa en checksumma.

  4. Upprepa ovanstående tills diskens hela innehåll är checksummat

  5. Logga resultatet av checksummejämförelsen, totala mängden data som lästs samt antalet checksummekontroller som hittat avvikelser.

Hur går det då? Well, jag håller på med den första körningen av badblocks och har börjat slöjda på ett litet pythonprogram för att göra checksummekontrollerna. Fortsättning följer, och jag tar tacksamt emot eventuella förslag på hur experimentet kan göras mer realistiskt.


Viewing all articles
Browse latest Browse all 6396