Aapenootjes schreef op zondag 24 april 2011 @ 16:48:
[...]
Dat is uiteraard waar voor schijven die je met TLER/CCTL ingeschakeld koopt of voor WD schijven waarbij je nog TLER via de tool van WD in kon schakelen. Echter draait het in dit topic om schijven die dat standaard niet aan hebben staan en waarbij het ook niet bij mogelijk is om via de WD tool TLER in te schakelen.
Wellicht gebruikte ik ook niet de juiste termen, de setting die je verandert heet "SCTECR", die wil je op 7 seconden hebben staan in een hardware en redundante array. Echter, als je dat met smartctl instelt zal het ook bij WD schijven niet behouden blijven bij een power cycle (en bij sommige schijven zelf bij een gewone reboot).
Je haalt drie dingen door elkaar:
- WD desktop-schijven ondersteunen geen TLER meer sinds WD20EADS met een bepaalde productiedatum (2010); alles daarna ondersteunt géén TLER/CCTL/ERC meer. Dus WD desktop schijven die je vandaag koopt ondersteunen géén TLER.
- ERC is de variant voor TLER/CCTL die Seagate gebruikt; Error Recovery Control. Met SCTERC commando in smartctl kun je CCTL/ERC inschakelen op schijven die dat ondersteunen.
- TLER wordt wel degelijk behouden na een power cycles; net als AAM en APM. Dat blijft voor de eeuwigheid dezelfde instelling, totdat je die weer verandert. De instelling wordt opgeslagen in EEPROM en niet in de DRAM chip zoals bij CCTL (lees: Samsung) of ERC (lees: seagate).
Smartctl doet hetzelfde als de DOS-utility van de fabrikant. Het is makkelijker, maar kan niets meer of minder.
Ik was inderdaad niet netjese met mijn termen heb ik nu door. CCTL stel je eigenlijk niet in, de schijf heeft de CCTL feature of niet.
Klopt ook niet, CCTL staat standaard op 120 seconde. Je moet het bij elke power up instellen op bijvoorbeeld 7 seconden. TLER, CCTL en ERC zijn precies hetzelfde. Enige verschil is dat TLER altijd behouden blijft tussen power cycles door (persistent) en CCTL/ERC niet en verliezen dus hun instelling na elke power cycle (volatile).
TLER: Time-Limited Error Recovery (Western Digital) -> persistent
CCTL: Command-Completion Time Limit (Samsung) -> volatile; verliest instelling na reboot
ERC: Error Recovery Control (Seagate) -> volatile; verliest instelling na reboot
= allemaal hetzelfde.
Dat is volgens mij dus niet geheel waar. Het programma ondersteund zo ver mij bekend is wel een aantal merken raid controllers en kan dus wel SCTECR instellen zonder de schijven op een andere controller aan te sluiten.
Het klopt dat je bij sommige controllers SMART passthrough kunt hebben met smartctl. Dan moet je bijvoorbeeld -d hpt,1/1 paramter gebruiken bij het smartctl commando. In feite stuur je de SMART request dan op een proprietary manier, omdat je via zo'n controller nooit direct met de disks mag communiceren. De controller zelf biedt dan een 'passthrough' methode aan om dit toch te kunnen, maar daar zitten wel beperkingen aan en vaak kun je hiermee wel SMART waarden zien maar die worden alsnog geparsed door de controller (en verandert dus de SMART output ermee) en kun je APM/AAM/TLER enzo niet instellen. Bij sommige controllers zou dit wel kunnen, dus in principe heb je gelijk.
Even gegoogled en voor 3ware controllers kun je dit gebruiken:
code:
1
2
3
4
5
6
7
8
9
10
| smartctl -i -d 3ware,0 /dev/twa0
smartctl -i -d 3ware,1 /dev/twa0
check the erc:
smartctl -l scterc -d 3ware,0 /dev/twa0
smartctl -l scterc -d 3ware,1 /dev/twa0
set it to 7 secs :
smartctl -l scterc,70,70 -d 3ware,0 /dev/twa0
smartctl -l scterc,70,70 -d 3ware,1 /dev/twa0 |
Maar ten overvloede: als je hardeschijf geen TLER/CCTL/ERC ondersteunt, dan kun je de recovery tijd
NIET beperken tot < 10 seconde en dus is het gevaarlijk deze schijven op hardware RAID te gebruiken. Voor Linux/BSD geldt dit niet en kun je rustig goedkope desktop schijven gebruiken.
Volgens mij gebeurt dat bij een lees fout, dat impliceert echter niet persé een bad sector. Al is de kans wel groot uiteraard dat het er wel om gaat. Zelf heb ik het echter al een paar keer mee gemaakt dat een harde schijf er uit gekicked werd door een lees fout, echter zijn er geen enkele bad sectors gevonden op de schijven in mijn RAID array.
Je schijven worden uit de array geschopt als de schijf niet binnen 10 seconde op een I/O request reageert. De hardware controller ziet de schijf dan als 'failed' met alle gevolgen van dien. Dit gebeurt typisch bij een bad sector ofwel uBER (Uncorrectable Bit-Error-Rate).
Bad sectors komen er in twee smaken:
- Fysieke schade aan de sector, dus echt 'bad'. Deze zijn vaak nog wel te recoveren met Spinrite wat een soort handmatige error recovery uitvoert die soms beter werkt dan wat de hardeschijf zelf probeert.
- Geen fysieke schade, maar er is onvoldoende redundancy (CRC) beschikbaar om bitfouten te repareren. Dit soort bad sectors zijn ontraceerbaar en komen niet voor in SMART output nadat ze zijn gefixed.
Beide soorten bad sectors worden door de hardeschijf gefixed zodra je naar die sector schrijft. De hardeschijf houdt dan op met recovery want de oude gegevens zijn niet langer nodig. Dit is dus een 'forfeit recovery' scenario. Veel bad sectors blijven bad totdat je er naar schrijft. Een lange format of een RAID rebuild zorgt hiervoor.
Cruciaal is voor bovenstaand verschil is wat je terugziet in de SMART output. Gedurende dat de bad sector bestaat zul je een waarde zien bij Current Pending Sector (C5) - als deze waarde niet 0 is heb je een GROOT probleem. Dit zorgt er voor dat schijven uit de RAID gekickt worden. Door naar de sector te schrijven, zal Current Pending Sector verdwijnen. Als het om een bad sector met fysieke schade ging, wordt de sector niet meer gebruikt en omgewisseld voor een reserve sector. In zo'n geval zul je in de SMART data de "Reallocated Sector Count" doen zien toenemen. Maar als het gaat om een uBER zonder fysieke schade, dan verdwijnt ieder spoor van de bad sector uit je SMART data en valt dit niet langer te traceren.
Wat jij hebt meegemaakt met schijven die uit RAIDs vallen komt dus doordat ze langer dan 10 seconde aan een onleesbare sector blijven peuteren en je RAID controller is zo streng dat hij de hele schijf als gefaald beschouwt. Dit soort strenge controllers hebben TLER/CCTL/ERC nodig om de recovery te beperken tot 7 seconde. De hardeschijf zal het na deze tijd simpelweg opgeven en een I/O error teruggeven. De RAID controller kan dan zelf bepalen wat het doet, maar het zal niet de hele schijf als gefaald aanmerken wat natuurlijk desastreus is.