Beh, Pr0xy,
Jag tror ni kan fråga Ronnylov om olika konfigs. Han satt ju precis och läste in sig på olika komponenter. Ronnylov, vad säger du om dessa två herrars frågor?
Jookeer,
2) Jag har kopplat loss en disk ur min ZFS raid och körde typ en kvart. Kunde läsa och skriva data utan problem. Sen bootade jag om och kopplade in disken, då försvann meddelandet "DEGRADED" och allt funkade som vanligt. Här två korta snuttar när de kraschar diskar och ersätter diskarna, vad händer med ZFS då?
http://www.youtube.com/watch?v=CN6iDzesEs0
http://video.google.com/videoplay?docid=8100808442979626078
4) MS hade ett "revolutionerande och nytt" filsystem på gång som skulle heta WinFS. Som jag förstod det, så visade sig helt enkelt vara en databas ovanpå NTFS. Så alla filer stoppades in i databasen. Då kunde man t.ex. söka på alla video filer och få upp dem. I stort sett så behövdes inga kataloger längre, man bara körde in alla filer huller om buller, och kunde sen söka i den stora mängden data. Men WinFS kom aldrig till skott pga olika skäl. Tänk om man kunde lägga en databas ovanpå ZFS, så får man något lika "revolutionerande och nytt" som WinFS? Nåt åt det hållet var WinFS, som jag förstod det. Och eftersom det var NTFS i botten så fanns ingenting om dataintegritet i WinFS. Sånt var inte ett problem, som MS såg på saken.
På bara några år har vi gått från 500GB diskar till 2TB - mao kommer silent corruption bli vanligare och vanligare. Förrut hade vi inte många bitar i våra små diskar, så silent corruption märktes knappt. Men diskarna är större än förr och billigare än förr, och nu börjar folk använda Raid. Då blir det jättemånga bitar. Någon av bitarna kommer att flippas av misstag.
Det dröjer alltid flera år innan OS teknologi kommer ikapp. Att designa och utveckla nya filssystem tar flera år, de är så komplexa och viktiga. Det är först nu som man börjar se behovet av dataintegritet på diskar, och utvecklingen av nya filsystem har starta nu.
När det gäller minne har servrar länge kört ECC minnen. Föreställ dig folk som sade "jag behöver inte ECC minne, jag har aldrig märkt att bitar flippas i mitt RAM". Men ju fler GB RAM vi har desto viktigare blir det. Och RAM skrivs och läses och ändras väldigt snabbt och väldigt ofta. RAM bandbredden är mycket stor, det blir jättemycket bitar som ändras och läses hela tiden non stop. Man kanske läser och skriver i RAM, flera 100Giga bitar per dag även om man bara har 1GB RAM. Och nu, börjar diskarna bli stora och snabba, så då kommer vi också upp i flera 100GB bitar mot diskarna? Gör man hundratals miljarder läsningar och skrivningar per dag, så kommer nog någon bit flippas av misstag. Därför krävs ECC minne i servrar. Filsystem med dataintegritet är för diskar precis samma sak som ECC minne är för RAM.
Det är numera nya generationens filsystem på gång i Linux lägret. BTRFS, Hammer, etc. BTRFS påminner väldigt mycket om ZFS, snapshots, CoW, etc etc. Problemet är att det är i protypstadiet och det kommer att dröja flera år innan det kommer. Och då kommer det sakna funktionalitet i flera år. Kolla på ZFS, man kan fortfarande inte öka på/minska antal diskar, och diskarna måste ha lika många sektorer, som Emigrating12 m.fl påpekade. Och hur många år har ZFS funnits? Det släpptes typ för 5 år sen. Och det anses vara ett ungt filsystem, vilket märks. Ett moget filsystem är ett par decennier gammalt.
Men kanske har SUN högre krav på tillförlitlighet än vad Linux lägret har. Det är många som säger att Linux koden är si och så, och att SUN aldrig skulle släppa ifrån likadan kvalitet på sin kod. Om SUN schabblar så kan de fet stämmas. Det är svårare att stämma öppen kod. Stämmer de RedHat, så kan de referera vidare till Linus Torvalds, som kan referera vidare till att han bara mergar kod, etc. Det finns ingen tydlig ansvarig att stämma i öppen kod, så SUN måste ha bra kvalitet på sin kod - de kan inte slingra sig.
Det kommer nya generationens filsystem snart. Men det kommer dröja flera år innan de är här. ZFS utvecklas i rasande fart och nya funktioner läggs till hela tiden. I sinom tid kan man lägga till och minska antal diskar i ett raid. Och att diskar inte är exakt lika stora kommer också kunna hanteras av ZFS, eftersom samma funktionalitet kommer kunna lösa båda två problemen.
Emigrating12,
Det är illa att samma märke diskar från samma leverantör kan ha olika antal sektorer. Men du verkar mena att leverantörerna börjar standardisera nu, så det är inte lika stort problem som förrut. Det låter positivt. Men ändå, nu tycker jag som ni, att ZFS ska kunna öka på antal diskar och minska dem - eftersom då löses två problem. Tidigare tyckte jag det inte var viktigt. Men först nu förstår jag varför du tjatade om det tidigare.
5) Om strömmen till ZFS försvinner så kan inte t.ex. halva datat skrivas på disk och andra halvan försvinna ut i tomma intet pga strömmen gick precis vid det tillfället - vilket resulterar i inkonsistenta data och att du aldrig får rapport om det vid omboot. Detta scenario inträffar inte med ZFS. Ett vanligt filsystem kan rapportera att datat är nedskrivet samtidigt som den skriver data - och precis då, går strömmen så datat hinner inte skrivas ned. Halva datat försvinner - och du tror att datat blev nedskrivet.
Skälet att ZFS inte har detta problem, är att ZFS skriver ned hela datat, och som sista steg uppdateras pekaren till de nya blocken. Så om ZFS bara skriver ned halva datat och strömmen går, så får du ingen rapport om att skrivningen lyckades (men det får du med andra filsystem). Först när allting är klart, så rapporterar ZFS att det är klart.
Samma sak om du ändrar data. Det gamla datat ligger kvar på disken. Och ZFS skapar en kopia som den ändrar i, och när allting är ändrat, så uppdateras pekaren att peka på det nya ändrade datat. Det gamla datat är fortfarande kvar, en stund till. Andra filsystem börjar ändra i originalfilen, och så försvinner strömmen mitt i ändringen och du tappar filen och måste gå till din backup. Med ZFS inträffar inte detta. Data consistency är garanterad. Som journalförande filsystem, typ. Men data consistency är alltid garanterad med ZFS, och du måste inte återspela hela journalfilen i timmar. Vid reboot så är det bara att fortsätta direkt där du var. Ingen fsck i veckor eller så. Du kommer aldrig få msg att en skrivning gick bra, när i själva verket bara halva datat skrevs ned. Du blir inte lurad av ZFS.
Detta kallas Copy On Write, CoW.
Angående ditt experiment. Som jag förstått det, så är risken för total data korruption/ej recoverable errors mycket liten i raid. Får du ett sånt fel där allting skiter sig, så kan du alltid gå till backup, du vet att det blev problem med en viss fil. Det som däremot är ett problem med stora raids med många läsningar är _silent corruption_. Dvs, data som inte skrevs ned som de skulle - och du får aldrig rapport om det. SUN presenterar flera fall när tyst data korruption kan inträffa med HW raid.
Det finns HW raid folk som provade sina setups och ingen korruption kunde detekteras. T.ex. beskriver en HW raid person ett av sina experiment:
"We did a few tests in a 16 disk RAID6 where we wrote data to the Areca RAID, powered the system down, pulled out one disk, inserted it into another computer and changed the sector checksum of a few sectors (using hdparm's utility makebadsector). The we reinserted this into the original box, powered it up and ran a volume check and the controller did indeed find the corrupted sector and repaired the correct one without destroying data on another disk (as far as we know and tested).
...
I know that our Areca 1261ML does detect and correct those errors - if these are single-disk corruptions"
Och svaret:
"You are talking about diffrent types of errors. You tested errors that the disk can detect. That is not a problem on any RAID, that is what it is designed for.
He was talking about errors that the disk can't detect (errors introduced by other parts of the system, writes to the wrong sector or very bad luck). You can simulate that by writing diffrent data to the sector"
Ett annat svar:
"you did not simulate a silent data corruption error. hdparm --make-bad-sector just introduces a regular media error that *any* RAID level can detect and fix.
...
However I pointed out that he may have tested only easy corruption cases (affecting the P or Q parity only) -- it is tricky to simulate hard-to-recover corruption errors..."
Mao, det är svårt att testa HW raid på ett korrekt sätt. Chansen finns att man testar något som HW raid kan korrigera. Och sist, denna länk:
http://blogs.sun.com/constantin/entry/zfs_saved_my_data_right
I vilket fall som helst, om du kört stora HW raid länge och aldrig haft problem, så varför byta? "Don't fix what is not broken". Du vet nog vad du sysslar med. Du vet vad som passar dig bäst, det vet ingen annan. Möjligen kan du bara för att hålla dig uppdaterad med olika tekniker, slänga in OpenSolaris i gammal PC och experimentera lite vid sidan av, med iSCSI och sånt.