Verwijderd schreef op donderdag 17 maart 2011 @ 14:25:
Bij gebruik van ZFS op een non-RAID controller:
1. een schijf doet erg lang over een read request (bad sector recovery)
2. ZFS krijgt een soft timeout en leest de data op een andere manier (redundancy/parity/mirror/ditto blocks).
3. Als dat lukt, schrijft ZFS deze data naar de schijf die een soft timeout had, om daarmee de schade te repareren. Immers als een HDD een sector niet kan lezen en jij schrijft er naartoe, dan heb je het probleem opgelost omdat de HDD de beschadigde sector zal omwisselen; dat doet het pas als je zelf de data 'opgeeft' door naar die sector te schrijven.
4. Zonder enige interruptie of handeling van de eigenaar/sysadmin heb je het probleem nu dus opgelost, waar anders bij Hardware RAID je array degraded of failed kan zijn.
Bij gebruik van ZFS op een RAID controller:
1. Een schijf heeft een timeout door bad sector recovery, na 10 seconden wordt de schijf in zijn geheel gedetached. Hardware RAID geeft ZFS dus geen kans om alle andere sectoren te lezen; nee omdat één sector onleesbaar is, wordt de hele schijf als failed aangemerkt.
2. omdat ZFS nu helemaal geen toegang meer heeft tot de schijf, kunnen bad sectors op andere schijven nu je data bedreigen. Met ZFS wil je altijd redundancy over hebben zodat ZFS kan doorgaan met het automatisch 'healen' van je bestanden.
3. Als het nu met nóg een schijf gebeurt dan heeft ZFS 2 schijven verloren buiten zijn controle of autoriteit.
Dat 'uit de array kicken' gaat alleen op voor Hardware RAID; zelfs met Areca in JBOD mode of Pass-through mode wat ik zelf heb geconstateerd. ZFS kan daar niets aan verhinderen; er zit tussen ZFS en de disk een stuk hardware wat vijandig staat tegenover de disk en bij de eerste teken van problemen dan maar de hele schijf als verloren beschouwd; dat is natuurlijk belachelijk en vanuit perspectief van ZFS gewoon DOM. Degene die heeft bedacht dat 10 seconde timeout de disk eruit moet trappen mag wat mij betreft een enkeltje Libië of Fukushima.
Met een hot spare zal die schijf de taak overnemen ja. Maar daar heb je weinig aan als je een bad sector hebt op een degraded volume; dan kun je je rebuild niet voltooien. ZFS zal veel beter kunnen omgaan met fouten tijdens de rebuild dan alle conventionele RAID waarbij de helft het maar gewoon opgeeft en je geen toegang tot niets geeft in zo'n geval. Sommige mensen beschouwen hun data dan als verloren; jammer want de data staat nog steeds op de disks en is in principe recoverable.
Ik kan maar half akkoord gaan. Wat je zegt over ZFS klopt, over hardware raid niet.
Vergeet ook niet dat ZFS na hardware raid kwam om de beperkingen van bestaande filesystemen op te vangen. Raid is nooit gemaakt om samen te werken met ZFS en de houding van raid tegenover slechte schijven is net waarom raid in enterprise systemen gebruikt wordt! Een schijf die voor 80% goed is wil je dan echt niet meer gebruiken.
Ik vraag mij ook af waar die legende over 'geen hardware raid kaarten gebruiken' ontstaan is. Al 3 jaar lang een hardware raid 5 (3Ware 9550SXU-ML + BBU) en 7 gewone schijven van 1TB (Seagate Barracuda 7200.11) en nog nooit is er een schijf uitgekickt. Indien één van mijn schijven ernstige fouten begint te vertonen dan verwacht ik ook wel dat mijn raid controller die niet meer moet hebben. Een schijf kicken gebeurd echt wel met redenen. Niet bij kleine foutjes, wel bij ernstige die moeten opvallen.
De recovery (self healing) van ZFS is beter dan de recovery van hardware raid, daarom is het beter om met ZFS geen hardware raid te gebruiken. Het is niet omdat je een hardware raid kaart hebt dat je die functionaliteit moet gebruiken. Voor zover ik weet ondersteund iedere kaart pass trough (zie verder).
Het klopt dat ZFS beter met fouten omgaat. Waar je vroeger een hele array moest scrubben zal ZFS dit veel efficiënter aanpakken. Wat ik vooral interessant vind is dat je niet meer afhankelijk bent van je hardware (migratie e.d.) en dat ZFS bitrotting en andere tegengaat.
Pass through en JBOD zijn totaal verschillende dingen. Bij pass through heb je GEEN ARRAY. De schijf wordt gewoon doorgegeven aan het OS en die moet er maar zijn ding mee doen.
Bij JBOD heb je meestal 'spanning'. Meerdere schijven vormen een array, zonder dat de voordelen van raid gebruikt worden. Dit is ook geen Raid 0 of striping. Indien er bij Raid 0 iets misloopt ben je alles kwijt. Bij JBOD ben je dan enkel de data op die schijf kwijt.
Voor ZFS gebruik je best pass through en geen JBOD. Verder regelt ZFS alles beter dan je raid. En omdat je bij pass through geen array hebt is er geen sprake van degradatie of dergelijke.
Bij ZFS wordt de term JBOD wel gebruikt voor onderlinge drives wat nogal verwarrend is. Het gebruik van de term JBOD bij ZFS of JBOD bij raid is blijkbaar totaal anders.
ZFS is gewoon een bestandsysteem met lvm en heeft op zich niet rechtstreeks met raid functionaliteit te maken. ZFS kent een softwarematige raid implementatie die in wezen niet verschilt van hardware raid. De foutcorrectie zit hem in het bestandsysteem zelf en die doet dat dus beter dan raid.
Waar ik ook nog eens op wil wijzen is dat raid kaarten met een BBU werken en hierdoor je data beschermen bij stroomuitval. Indien je dus niet met zo'n kaart wil werken met je een externe BBU voorzien op je NAS of met flashcache werken. Ik denk dat velen hier geen rekening mee houden.
En over raid 5 met 2Tb schijven:
http://www.zdnet.com/blog...stops-working-in-2009/162