Als je claimt bad sectors uit redundante data te kunt destilleren, dan betekent dit dat als je in een RAID5 een bad sector tegenkomt die disk niet uit de array wordt gegooid maar die ene bad sector wordt overschreven door parity calculatie van de overige disks. Dan zou er in het geval van de topicstarter geen enkel probleem hebben met twee disks met rode uitroeptekens.
Dat is wat er bij ZFS gebeurt wanneer je bad sectors tegenkomt door gewoon te lezen. De bad sector wordt overschreven, je applicatie merkt niets en alles blijft prima draaien. Een uitzondering hierop is ZFS via hardware RAID; dan krijg je hetzelfde gezeik dat de firmware de disk onzichtbaar maakt en dan houdt het voor ZFS natuurlijk ook op. Daarom moet je ZFS niet combineren met een hardware RAID controller; IBM M1015 enzo zijn wel geschikt omdat de firmware geen disks onzichtbaar maakt zelfs in RAID mode (IR) zo heb ik mij laten vertellen. In IT mode (non-RAID firmware) zou dit helemaal geen probleem mogen zijn omdat het operating system dan volledige controle heeft over disk timeouts.
Als de functionaliteit die deze controller zou moeten hebben zoals geadverteerd correct zou werken, zou je enkel een periodieke een background scan / rebuild / scrub moeten doen om twee problemen te verzachten:
- Dat zodra je een schijf verliest aan een échte failure, je een kleinere kans hebt onopgemerkte bad sectors tegen te komen op de resterende schijven als je regelmatig scrubt.
- Om bij een enkelvoudig redundante array (RAID5 / RAID-Z) bescherming te krijgen tegen twee bad sectors op twee disks die op exact de verkeerde plek zitten zodat in één parity block er twee blocks zijn met bad sectors. Dit is echter extreem zeldzaam als je disks maar op een normaal tempo af en toe een bad sector genereert.
Kortom, als de firmware goed ontworpen zou zijn, zou background scan/rebuild niet nodig zijn voor het corrigeren van bad sectors; dat kan in theorie gewoon goed werken ook op hardware RAID. Maar helaas, het is een grote bende. Tijd om je data écht te beschermen met iets als ZFS, ReFS of Btrfs. Van die drie opties is ZFS met kop en schouders beter in vrijwel alle opzichten. Afgezien van technische voordelen is het cruciaal punt wel dat ZFS op bijna alle operating systems draait (Mac, Linux, BSD, Solaris) terwijl ReFS en Btrfs enkel op hun thuisplatform draaien: respectievelijk Windows en Linux.
Persoonlijk geloof ik niet dat het net zo goed is ontworpen als bijvoorbeeld ZFS. Ik zie deze opties op een hardware raid controller als een lapmiddel dat de angel uit het probleem neemt dat je ongemerkt corrupte data krijgt.
Maar dat betekent dus dat hardware RAID in het algemeen erg onbetrouwbaar is doordat het eigenlijk geen antwoord heeft op bad sectors, iets wat tegenwoordig bij 2TB+ schijven veelvuldig voorkomt. Dat is eigenlijk gewoon volstrekt onacceptabel. Zulke controllers werken wel goed met lage capaciteit SAS schijven met 10^-16 uBER spec, maar voor 2TB+ disks zou ik ze niet snel aanraden zelfs als iemand persé Windows wilt als storage OS. Dan nog beter de storage pooling gebruiken zonder RAID - heb je tenminste werkende bescherming tegen enkelvoudige bad sectors.
Wim-Bart schreef op zaterdag 16 maart 2013 @ 20:26:
Het ligt per definitie niet aan de controller, wat hij mee gemaakt heeft met een hardware raid controller kan ook gebeuren met een software raid controller van andere fabrikanten. Zelfde ervaring met AMD, Dell PERC, HP, Highpoint en Silicon Image controllers.
Dat klopt, dit geldt voor alle Hardware RAID + Fake RAID. Laatstgenoemde is bijzonder, want zoals als Silicon Image werkt onder Linux en BSD prima in combinatie met software RAID. Maar de Windows-only drivers die de RAID functionaliteit verzorgen, zijn net zo brak als anderen. Ook Intel Onboard RAID, de beste 'FakeRAID' die er is, kan niet intelligent omgaan met bad sectors. Erg jammer.
Het lijkt een jaar, 2 jaar stabiel te draaien en dan gaat het opeens fout
Precies dat. Velen zeggen dat het prima werkt, totdat ze een keer een schijf kwijt zijn en een rebuild moeten draaien. Dan komen ze bad sectors tegen die hun overige disks detached en de array is FAILED. En dan gaan ze panieken en die paniekacties zorgen voor
permanent dataverlies.
zijn geluk is RAID 6. Met RAID 5 had hij een groter probleem gehad
Zeer scherp!
Verder heb ik voor een ander project contact gehad met NetApp over het gebruik van "Consumer high cappicity" disk in de laagste tier van een storage oplossing. En het antwoord is heel simpel. Niet doen omdat de meeste consumer disks bepaalde features niet ondersteunen waaronder rapportage over een read of write error. Transparante sector relocation is voor storage arrays iets wat ze liever niet zien.
Het is niet transparant hoor; juist het tegenovergestelde: de host heeft geen weet van de sector remap. Net als bij SSDs dus.
Wat betreft hoge capacity disks: prima doen! RAID is van oudsher bedoeld om met meerdere apparaten die van zichzelf minder betrouwbaar zijn dan hele dure, toch een betrouwbaar volume te kunnen maken. Het principe is dus betrouwbaar met goedkope componenten. De andere kant is om veel geld uit te trekken voor dure hardware, dure controllers, battery backup unit en op de 'domme' manier je veiligheid te vergroten. Je hebt dure hardware met domme software die totaal onbeschermd data opslaat en aanneemt dat het opslagapparaat perfect is. De 'slimme' manier is met weinig geld en goedkope componenten, de software zo ontwerpen dat deze goed kan omgaan met de zwakke punten, zoals bad sectors.
Dit verhaal is toch wel heel erg van toepassing op Hardware RAID (en onboard ofwel FakeRAID) versus ZFS.