Ake vozitko preferujete? Nakladiak, osobak, traktor, autobus alebo dragster?
Treba sa spytat, na aky ucel:
Na /boot mi staci ext2,
na /tmp mam tmpfs,
na male subory na desktope s malou RAM pouzivam reiserfs,
na Linuxovych serveroch panovi Reiserovi a ani btrfs/ZFS az tak neverim a pouzivam ext4 nad LVM,
ako staru lasku zo Solarisu mam na datovej particii notebooku s viac RAM ZFS,
v Linux routeri JFFS2,
na velkom USB kluci NTFS,
na diskety a male USB kluce FAT,
na optickych mediach najviac UDF,
na viac pocitacov pre viac uzivatelov by som preferoval AFS
Tieto vybery su podla mojich preferencii na konkretne pouzitie. Co teda preferujem?
Tohle bude opravene v novych coreutils (tam kde zije 'mv'), misto plne kopie se udela reflink, coz kopiruje jen metadata misto celych dat. Rucne se to da obejit jako 'cp --reflink=always from to' a potom 'rm -rf from'.
U ZFS koncept reflinku neni a mv mezi subvolumy musi delat plnou kopii vzdy.
V single threaded vykonu urcite ani ZFS ani BTRFS nejsou rychlejsi, nez EXT4 (ono jen malo co je, jestli vubec neco).
Kdyz se na ZFS povede hodne rozfragmentovat volne misto a to pak jeste zacne dochazet, umi se cely pool poradne zpomalit (nicmene na tom se pracuje, hlavne v Delphixu).
ZFS neumi jakoukoliv realokaci bloku, nejde odebrat device, odkomprimovat jednou ulozena data se zapnutou kompresi, atd. - on to jaksi navrh neumoznil snadno od zacatku a je to tak komplexni ukol, ze to mr. Ahrens slibuje uz od roku 2007 a porad nikde nic :)
Na dalsi nevyhody si ale neumim rozpomenout, kdyby mne neco napadlo, hodim to sem. Neni vsechno ruzove a vsechno ma svoje problemy/nevyhody, chce to je zminit, souhlasim.
Fragmentovane volne misto je problem pro vsechny filesystemy, obvykle se radi nechavat nejakych 10% mista nevyuzitych.
Bylo zmineno na prednasce, ze ZFS neumi shrink, coz souvi s tou absenci relokace. Zrejme se jedna o povestny "block pointer rewrite" :) (ne ze by btrfs nemelo svoje "are we there yet?" featury).
Důvod, proč u mě vyhrál BTRFS nad ZFS je mimo jiné právě provedení multidevice.
Na ZFS se do jednotlivých raidů dávají jednotlivé disky a až potom je celý tento vdev vložen do zpoolu. Pokud chci přidat další disky, tak už je nemůžu vložit do stejného vdevu, ale musím vytvořit nový. Takže nemůžu rozšiřovat například RAID-Z podle potřeby navyšování kapacity o jeden disk za měsíc, ale musím počkat půl roku a vrazit 6 disků do nového RAID-Z vdevu.
Podobně bych postupoval, kdybych měl LVM, také bych si v mdadm složit z nových disků další pole a to bych strčil jako další PV do VG.
U BTRFS je to jinak. Tam prostě přidám (nebo odeberu) disk kdykoliv se mi zachce, nechám rebalancovat a je to. Můžu mít různou velikost disků, můžu mít lichý počet disků v mirroru a tak. Jednotlivé bloky souborů se prostě umístí na více různých disků dle aktuálního typu raidu (který lze též pomocí rebalance měnit, takže pokud si někdo btrfs dá na jeden disk (data: single, metadata: dup), a potom zjistí, že se mu to líbí a přidá další dist, tak z toho může udělat (data:raid1,metadata:raid1) apod.) Za běhu.
Tohle mě osobně vyhovuje víc.
Ne, že bych z aktuální implementace některých operací v BTRFS skákal do stropu, to ne, ale tento koncept mi vyhovuje.
Co by bylo úplně ultimátní a na čem se snad už také pracuje (no, ono se těch 7 let pracuje na všem a ne všechno se dodělá), tak by byla možnost zvolit si pro každý subvolume jiný typ raidu.
> Podobně bych postupoval, kdybych měl LVM, také bych si v mdadm složit z nových disků další pole a to bych strčil jako další PV do VG.
mdadm umí reshape. Můžeš tak třeba přidat další disk do RAID6, ale bohužel musí být stejně velký jako ty předchozí. Takže takové věci jako že „mám staré pole z 500GB disků a jak odcházejí, tak je postupně měním za 4TB“ s tím dělat nejdou.
Právě z toho důvodu jsem dával do raidu nikoli disky ale partišny. V tomto případě bych tedy měl starý raid na 500G partišnách a nový na 1.5G partišnách. Samozřejmě by to bylo zajímavé teprve od dvou nebo tří nových disků. (Do té doby ale mohou fungovat jako dočasné odložiště dat, která se smí podělat (logů, kopií záloh, ...)
Ano, ten sami problem, Oracle mi tuhle vytku smazal z diskuze, kdyz rikali, ze je to normalni, jak rekl ze ne neni.
Argumentoval jsem NetAppem a neprovokoval jsem tim, ze vim, ze ZFS je kompletne ukradeny netapp WAFL, jen jeste neni tak odladen ;-))
Takze umi to linux SW_RAID s LVM2, umi to BTRFS a umi to i enterprise reseni NetApp, je sice pravdou, ze vetsinou pridavam disky po 14 nebo 16, ale obcas se stane, se opravdu dochazi misto a zvetsim vsechny RAID grupy ze 14 na 16, nebo 18 disku ... na zalohy klidne i na 20.
Zadny raid nefunguje na manoha discich, to je znamy fakt, tech 20-24 uz je fakt limitni, idelani je neco mezi 14-16 disky mozna 18, nad kduz date do jednoho RAID 60 disku, tak bude pomali, proto i netapp i ZFS pouziva raid_grupy a spojuje do aggregatu/zpoolu
Takze netapp ma disky, z tedh dela raid grupy (raid DP, neco jak R6) a z tech teprve sklada aggregaty, na kterych delate volumy, kde pak davate data, nebo LUNy ... logicky podobne SW_RAID + LVM2 v linuxu.
Takze kdyz ZFS rikaji, ze to nikdo nepotrebuje, ja rikam ze ano a ze vzivote nevideli enterprise prostredi a zrovna Oracle netapp doporucuje pro beh OracleBD pres NFS.
Pro me domaci uziti je teda ZFS k nicemu, nebot ja dokoupuji disky po jednom, BTRFS se u me choval divne, ted uz je to opraveno, pak jsem nasel i nedokumetovany parametr, ktery to vyresil, nakonec jsem zustal u SW_RAID + LVM2 + ext4.
Co se rychlosti tyce, je zajimavy tez XFS a jeho vlastnost mit pro ruzne casti jine struktury, ale to jsem nikdy nepouzil, stailo mi, ze me byl rychly, stabilni, umel velke disky a mel ACL ... dnes uz ale spise pouzivam ext4
> U BTRFS je to jinak. Tam prostě přidám (nebo odeberu) disk kdykoliv se mi zachce, nechám rebalancovat a je to.
To ale máš jenom mirror, ne? Na wiki btrfs čtu o RAID5/6 dost děsivé věci z hlediska podpory. https://btrfs.wiki.kernel.org/index.php/RAID56
Ano, jak jsem psal v jiné diskusi, do R5 bych zatím nešel:
http://www.root.cz/zpravicky/btrfs-vylepsuje-kod-pro-opravu-poskozeneho-raid-pole/517451/
Trochu mě děsí, když je jako výhoda ZFS prezentováno, že tři předchozí vrstvy − RAID, LVM a filesystém jsou nyní nahrazeny jedinou vrstvou všeobjímajícího filesystému. Mně teda mnohem rozumější připadá klasická třívrstvá koncepce, kde jsou vrstvy dostatečně jednoduché, takže třeba LVM jsem díky textovým metadatům schopen dát dohromady i ručně.
To byl před lety argument linuxové komunity proti zfs. A hle najednou ten třívrstvý "moloch" bastlí taky ala btrfs.
Ono totiž ta záruka konzistence a integrity vyžaduje ty vrstvy mít slité - mohu říct, že zfs používám už všude, kde mi záleží na datech, používat prehistorické fs, ketré prakticky umí jen trapný žurnál a které neuchrání proti bitrotu, to už je v 21. století na pováženou.
Predpokladam, ze maji na mysli bit rot http://en.wikipedia.org/wiki/Data_degradation
Jak často se to stává? Dlouhodobě (10+ let) si vedu si sha sumy svých dat (aktuálně pomocí SHA-512, datový objem kolem 4TB, postupně xfs, ext3, ext4 až na btrfs) a za celou dobu jsem nezaznamenal jediný poškozený soubor. Od roku 2010 používám BTRFS a scrub také nikdy neohlásil nesoulad mezi checksumem a daty. V produkci na storage xxTB také nikdy nic poškozeného.
ECC chybu jsem viděl jednu jedinou a to v L3 cache CPU. Na RAM nikdy (aktuálně něco kolem 500GB RAM na serverech celkem, vše pochopitelně ECC).
Tím neříkám, že ECC, checksumy nemají smyl. Mají. Jenže statistika ukazuje, že to není vůbec tak časté, jak se často tvrdí.
Pokud někdo má data z xxPB tak sem s nimi. Určitě to bude zajímavá statistika (1000x větší objem dat, než mám k disposici já, evidentně jsem pod hranicí měřitelnosti).
To první. Krom případu v L3 cache CPU jsem zatím neviděl žádnou jinou ECC chybu. V tom CPU byla opravitelná.
Viděl jsem vadný modul ram, kdy OS šel do kytek a IPMI zahlásilo chybu konkrétního modulu. Viděl jsem chyby v memtestech u nově zakoupených modulů (to viděl asi každý; proto se ostatně testují před nasazením do provozu), ale neviděl jsem ECC chybu při běžném provozu.
"500GB RAM na vsech serverech dohromady"
512GB RAM obcas mame i per virtual. Pri takovem mnozstvi DIMMu uz semtam nejaky zfailuje (z meho subjektivniho pozorovani DDR3 drzi hur nez DDR2).
4TB dat je nic. Asi jako provozovat 1x4TB Seagate HDD a tvrdit ze je to spolehliva znacka, protoze me nikdy nezklamala..
viz. napr.
http://www.zdnet.com/blog/storage/dram-error-rates-nightmare-on-dimm-street/638
je ostudou Intelu, ze ECC umele zakazuje u consumer grade CPU, pritom to je par dolaru navic, koupit si unbuffered ECC DIMM..(viz. AMD 990X/990FX)
"512GB RAM obcas mame i per virtual."
Pěkný.
"4TB dat je nic."
Souhlasím, psal jsem, že to mám doma (8TB políčko). Na produkci máme xxTB (o řád víc). Předpokládám, že pokud máte 512GB RAM per virtual, tak už asi máte zkušenosti i s PB poli. Máte a můžete zveřejnit nějaké statistiky?
"je ostudou Intelu, ze ECC umele zakazuje u consumer grade CPU, pritom to je par dolaru navic, koupit si unbuffered ECC DIMM..(viz. AMD 990X/990FX)"
+1
Jako statistiky umrtnosti disku? Pro maly byznys nezajimave, napr. EMC ma na discich vlastni firmware, disky z ruznych RAID group / poolu jsou jinak zatizene. Pak logicky disk ktery jede na 100% 24/7 se unavi driv. Disky se periodicky kontroluji na chyby (asi jako scrub v cronu:). Drtiva vetsina disku je kvuli performance v malych kapacitach (300-600GB FC 10-15K), tezko to pak srovnavat s 1-2TB SATA. Pokud mate tisice ploten, kazdy mesic jednotky disku umrou, zadna magie v tom (az na tu cenu:) neni. Co se plati, jsou spis velke RAM cache, skalovatelnost,vzdaleny dohled,online upgrade FW a "features" viz. klony, snadna replikace, dedup apod., nikoliv nejaka exkluzivita, ze disk "nikdy" neumre nebo ze je radove spolehlivejsi nez v soho. Nic z toho data nezachrani, pokud server bez ECC na LUN zapise bullshit, tak se tam taky mirrored bullshit dle ocekavani objevi:) Proto je treba data chranit jiz na urovni filesystemu a checksumu.
"Jako statistiky umrtnosti disku?"
Při našem počtu stovek disků (300-600GB 15k SAS) to dělá několik jednotek až (první) desítku disků ročně. Něco kolem 5% disků ročně (+- autobus). Přesnější statistiku zveřejnit nemůžu. Šlo mi ale o tu statistiku poškození dat nedetekovatelnou (pomocí samoopravných kódů) chybou apod.
"Co se plati, jsou spis velke RAM cache, skalovatelnost,vzdaleny dohled,online upgrade FW a "features" viz. klony, snadna replikace, dedup apod.,"
Tomu rozumím, osobně se mi příčí takové věci platit (bohužel je také platíme), vzhledem k tomu, že existuje rozumné OSS řešení. Zvláštní je, že není jasně viditelná hranice toho, co se nebude kupovat (například OS , za linux opravdu neplatíme :-D, webserver, database apod.) a co se bude kupovat (právě věci, které jste popsal). Přičemž obě skupiny jsou dostupné jak v komerční variantě, tak v OSS.
"Proto je treba data chranit jiz na urovni filesystemu a checksumu."
A samozřejmě zálohovat.
Ja muzu nadhodit ...
Umrtnost 3,5" disku pri cca 80ti kusech neco kolem 1x/rok (vse 10/15k fc/sas)
Umrtnost 2,5" disku pri podobnym mnoztvi (sas) ... cca 3ks/rok.
Jinak to taky vypada tak, ze cim novejsi zelezo, tim min disky vydrzej.
Co se ramek tejce, meli sme 1x opravitelnou ecc vadu, a dellu trvalo 3/4 roku (pri gold supportu ...) nez vymenili ten spravnej. Nejak sem nad tim jen kroutil hlavou, protoze hledat vadnej modul tak, ze vyhazu ze stroje moduly a zacnu testovat vsechny jejich kombinace ... lol (a tohle se delalo asi tak 5-8x, vzdy prakticky cely den). Kdyby vymenili ty moduly vsechny, tak je to muselo vyjit minimalne o rad levnejs.
Jinak to taky vypada tak, ze cim novejsi zelezo, tim min disky vydrzej
To záleží, jak se na to díváte. Z pohledu množství dat (resp. URE) vydrží disky víceméně pořád stejně (no, trochu to roste, ale pomalu). Což je ale problém, když množství dat roste velmi rychle. Třeba s RAID 5 máte u většiny dnešních disků 50 % šanci na rozpadnutí pole při rekonstrukci 6 TiB; 12 TiB RAID 5 má už téměř jistý rozpad pole při selhání jednoho disku.
Divam se na to jak sem psal - z pohledu poctu disku. Novsi zelezo bude prevazne na 2,5", ktery chcipaj proste vic, nez 3,5" i pri podobnych kapacitach.
A co vic, support je cim dal horsi. Pred 5ti lety kdyz mi chcip disk, tak mi za 2-3 hodky kuryr privez jinej, a za tejden si ve stejny krabici odvez ten vadnej. Dneska mi disk prijde za tejden, a jeste po me chtej, abych vyplnoval nejakej silenej formular s 10tistrankovym navodem ...
Tragedie je to prevevsim proto, ze pred tema 5ti lety do byl fc disk, kterej se posilal pres 1/2 zemekoule, dneska je to sas/sata, ktere si muzu zajet koupit do libovolnyho kramku v okoli za 15 minut.
me jedna pamet delala ECC chyby priblizne ve stejnem miste, ale ne hned, az po ohrati a asi jednou za den
na memtestu toto nenajdes, i kdyz bezel nekolik dni
s memtestem je ten problem, ze kdyz mas ECC zapnuty, tak to mozna chyby opravi na pozadi a ty nic nevidis
no zkousel jsem memtest s ECC i bez samozrejme, nakonec jsem modul vymenil a pohoda
>Jak často se to stává? Dlouhodobě (10+ let) si vedu si sha sumy svých
>dat (aktuálně pomocí SHA-512, datový objem kolem 4TB, postupně xfs, ext3,
>ext4 až na btrfs) a za celou dobu jsem nezaznamenal jediný poškozený soubor.
tak jestli ty data jen lezi tak myslim vydrzi dost dlouho, kdyz je ale menis (+cow na btrfs) nebo zapisujes, tak pry zhruba 1 chyba na 10TB, jak zde zminuji na jinem miste
Zalezi na discich, kolega mel 16 WD RE disku v RAID6 a videl silent datta corruprion.
RE disky, ale i bezne disky, kdyz zapisuji, delaji chyby, to je OK, zapise to znova, precte, kdyz precteni sedi, prohlasi to za OK.
WD vymyslel silent datat coruption, normlna eby mel disk vyhlasit I/O error, i kdyz pak blok nahradi rezervnimi, jenze WD ne, aby nestrasil lidi a nereklamovali mu disky, tak ten bolk vymeni potichu, nikomu nic nerekne a je to jev v SMART, stranda je, ze drive to tam bylo jen do vypnuti diksu, takze po rebootu se informace ztratila ... a to se vyplati.
WD omylem do nekolik RE edic omylem dodal desktopovy FW ... a tak se kolekovi poskodily data, prisle mu nato tripwire .... a to je duvod, proc jsem uvazoval nad BTRFS a ZFS i ja ... no popravde, nejdrive jsem uvazoval, ze si cracknu Ontap simulator a postavim si doma netapp ;-))) ... ale on ma 5% wafl rezervu v aggeragtu + by to pak neslo pouzit jako domaci server.
no vysledku jo, predstav si, ze zakodujes data s jednou zmenou - ve vysledku bude zmen vic, ale to neznamena, ze se to nahodou nemuze tak na disku stat, ne? obzvlast kdyz ctes/zapisujes mnoho PB
"The SATA advertised bit error rate of one error in 10 terabytes is frightening...."
http://research.microsoft.com/apps/pubs/default.aspx?id=64599
Proč by záruka konzistence a integrity to nutně vyžadovala mít slité? Jestli mám nespolehlivý HW, tak je jedno jestli mi selže přímo, nebo skrz LVM. Kontrolu integrity musím mít prostě v tom filesystému, tak aby přežil rozbití části toho blockdevice. Neříkám, že to půjde naimplementovat optimalizovaně, ale nevidím důvod, proč by to nemělo jít. (A pokud je potřeba znát topologii, tak Ext3 třeba obsahuje hint, jak velké jsou 'stripes' pod ním ležícího raidu. Pak záleží jen na nástrojích (mkfs a spol), aby takové hinty měly správnou hodnotu.)
To máte pravdu. Na druhou stranu přesně tohle je celkem snadno popsatelná funkce: chci jinou variantu bloku X. Pokud mám blokové zařízení, o kterém vím, že má kontrolu chyb, tak přeci mohu rozšířit rozhraní (ioctl?) o to, že mi takové zařízení bude schopno poskytnout (postupně) všechny varianty (až 16 v případě 4 paritních disků, dnes se ale pokud vím používají nejvýše 2 paritní disky), a může (a nemusí) je seřadit podle pravděpodobnosti správnosti.
Na vrstvovém modelu v zásadě nic špatného není. Bohužel ale některé funkce nenaimplementujete nebo je nenaimplementuje optimálně, respektive tak jak je to možné bez vrstev. Zkuste s LVM udělat pár set snapshotů na ne úplně malých datech. Změřte jak dlouho vám to trvalo a kolik místa to zabírá. A pak to zkuste s btrfs.
To bude možná ono, že jsem nikdy pár set snapshotů vyrábět nepotřeboval :) Ale nenapadá mě, proč by v tom měl být nějaký zásadní rozdíl. LVM taky implementuje snapshoty jako COW, jen to dělá na blokové úrovni. Jediné, co mi na takto oddělených vrstvách vadí, je že snapshot z připojeného filesystému je v potenciálně nekonzistentním stavu. Ale i to by se jistě dalo nějak vyřešit − LVM by nějak filesystému řeklo: „teď se na okamžik zastav a dělej že jsi odpojen“. Možná už něco takového existuje, nehledal jsem to.
"LVM taky implementuje snapshoty jako COW"
Dneska už ano. Před pár lety ne.
" v potenciálně nekonzistentním stavu"
1. Snapshoty se dělají mezi dvěma zápisovými bariérami, takže fs by byl ve stejném stavu, jako při výpadku proudu.
2. Jenže není, protože LVM předává FS info o tom, že má ukončit zápisy.
Ať 1 nebo 2, nekonzistentní snapshot fs takto nejde vyrobit.
Ale LVM nevie ci nad nim bezi FS ktory uz prirodzene robi ako svoju zakladnu funkcionalitu COW (btrfs) a preto to nevie robit tak optimalne ako to vie robit samotny btrfs.
To je samozrejme priklad, takych veci je viac, ked si viem riadit cely tok od disku az k sebe viem to urobit optimalnejsie ako ked sa to ma prevlakat cez N vrstiev, ktore nakoniec aj tak nerobia nic ine iba zabezpecuju aby sa dal zvacsit alebo zmensit FS (neberiem RAID level ten je obvykle HW)? ;-)
Další věc jsou synchronizace pole - když na pár minut vytáhnu disk z mirroru v LVM a pak ho vrátím, trvá někdy fakt dost dlouho, než je volume zase synchronizovaný. ZFS naproti tomu jen překopíruje data, ktera se během té doby změnila, což je pro velké disky pod zátěží dost zasadní úspora času.
Taky se se ZFS nestane, že se na disk s daty omylem nasynchronizuje nepořádek třeba ze spare disku, ZFS podle checksumů pozná, která data kam patří.
Proc bys mel kdy potrebu davat dohromady neco, co se proste ani nikdy nerozbije? Ve smyslu, ano, u toho slepence si muzes prepsat metadata, ale kdyz se podivas na layout ZFS na disku, no musel by ses docela snazit to odtamtud nahodou smaznout. A kdyz jo, tak slepenec by podobnou operaci neprezil taky tak.
Nejak nevidim duvod zustavat u slepence, jsou to proste jenom umely myslenkovy konstrukty v hlavach lidi, co se storage delaji - kdyz ty koncepty smaznem z hlav, v realnym svete to dopad bude mit jakej? Porad jsou tam ty samy disky, ty samy kabely, ty samy radice a ty samy desky s procesorama. K cemu umele vrstvit timhle zpusobem a zapouzdrovat funkcionalitu jednotlivejch vrstev, aby na sebe nevidely tak dobre?
Ono ZFS ten layered koncept trochu kopiruje, daly by se tam ty vrstvy taky najit, ale mnohem lip si navzajem rozumi.
Uz jenom napriklad RAID5 write hole je s RAID-Z na ZFS absolutni minulosti, nema k nemu jak dojit. Atd. atd. atd. Slepenec neni potreba a vyhodu ma IMHO jedinou, jako vsechny legacy technologie - uz s nim umis, protoze jsi se s nim proste musel naucit, protoze nic lepsiho nebylo.
No, lecktere veci by ale bylo hezke "backportovat" zpet do lvm a raid. At to mohou vyuzit i jini. Napriklad proti te write hole se da bojovat zpusobem, ze filesystem bude (zjednodusene receno) pracovat po celych stripech raidu, a proste nedovoli zapsat do zurnalu ze stripe je v poradku, dokud nevi jestli byl cely zapsan. Nastaveni velikosti stripu mela tusim uz ext2 (i kdyz jen kvuli vykonu).
Slepenec ma jeste druhou vyhodu. Praci odvedenou na raidu a na lvm muze vyuzit kterykoli dalsi filesystem, a nemusi si to implementovat sam. Spravce (jako nevyvojar) pak muze jednotlive casti vymenit a nechat ty okolo. Hlavni problem slepence je ten, ze pro nektere nove funkce by se muselo menit (rozsirovat) rozhrani/protokol kterym mezi sebou jednotlive vrstvy mluvi. A to je zdlouhavy proces, pri kterem je potreba promyslet i pozadavky, ktere by mohly vzniknout, aby se to nemuselo menit casto. Vnitrni protokoly v monolitu se mneni snadno.
S odstavcem 2 souhlasim. Pokud zije pohromade nekolik filesystemu, tak by obecne veci mely byt oddelene a k dispozici vsem. Vylepseni subsystemu pak muze pozitivne ovlivnit i ostatni, viz nedavna prace xfs vyvojaru na per-superblock shinkerech, ktere v dusledku zrychlily writeback u ostatnich filesystemu.
Ten zdlouhavy proces designovani API muze dost podstatne zbrzdit vyvoj, nevim jestli tohle nebyl jeden z duvodu proc to u btrfs proslo. Krome toho, interni raid management je jeho jedina layering violation. ZFS si tak trochu zije ve svem svete (vlastni pagecache, io scheduler, raid, block cache, block devicy) a nema pro nej smysl se ohlizet na nejake zobecnovani vlastnich subsystemu a davat je k dispozici ostatnim. Pro nej to znamena vice moznosti zmen bez nutnosti resit "vztahy se sousedy" a tunit veci ryze podle vlastnich potreb.
Ciste spekulativne, kdyby nahodou ZFS nekdo prelicencoval pro linux-compatible licenci, zacleneni do jadra by znamenalo peclive prekopat vsechny ty subsystemy, co si ZFS z historickych duvodu tahne s sebou a integrovat s temi linuxovymi. Je asi zrejme, ze by to provazelo mnoho diskusi s nejistym vysledkem, co se tyce zacleneni.
Dva praktické rozdíly:
Se ZFS můžu mít spoustu různých filesystémů (s různě nastavenými parametry - NFS export, RO, komprimace, ...) a přitom všechny sdílejí stejný prostor - mají k dispozici všechno místo v poolu. To je s jakýmkoli vrstvovým systémem těžko dosažitelný.
Resilvering - úložná vrstva ví, kde jsou data a kde jenom šum, takže mirroruje jenom skutečná data. Při větších kapacitách disků k nezaplacení.
"... Blízká budoucnost snad přinese online deduplikaci, zatím je k dispozici pouze offline varianta, kdy je třeba mít souborový systém odpojený. ..."
jak jako odpojeny? to tak neni, ne? jen se musi pustit bedup dedup rucne, nebo z cronu a k deduplikaci tedy nedochazi uz pri zapisu, jako u zfs (online deduplikace)
> Btrfs není plánované pro tak velké nasazení jako ZFS, což je podle
> Halenky znát i podle maximálních velikostí podporovaných úložišť.
Limity velikosti jsou v radu exabajtu, VFS v linuxu ma navic jeste omezeni na 8 EiB velikost souboru, protoze se pouziva znamenkovy typ pro offset. Maximalni velikosti jsou sice nizsi nez u ZFS, ale z praktickeho pohledu to nehraje roli a v dohledne budoucnosti to stacit bude.
"Zajímavá je také L2ARCcache, která umožňuje zapisovaná data uložit nejprve na rychlé úložiště (typicky SSD) a až později je zapsat na pole. Podobně existuje log pro synchronní zápisy, které je možné rychle odhazovat na zařízení s nízkou latencí."
Bud som to zle pochopil, alebo je to nespravne napisane. L2ARC je read cache, cize v principe uplne to iste ako cache v pamati, ale nad SSD. Samozrejme, ze tie data sa tam musia nejako zapisat, ale v zasade sa tie data dostanu na L2ARC pri citani.
Pre zapis sluzi ZIL, pri ktorom sa zapis ulozi v RAM a v ZIL (na SSD) a nasledne sa neskor (v pravidelnych intervaloch, tusim 5 sekund) "splachne" na disky (pouziju sa data z RAM, ZIL samotne je write-only a vyuzije sa iba v pripade necakaneho restartu)
Do L2ARC se dostanou data pri evictovani z mru_ghost_listu a z mfu_ghost_listu, da se tunit pres l2arc_*, viz zfs-module-parameters(5).
Kdyz uz jsme u toho upresnovani, ZIL je nazev mechanismu, ZFS Intent Log, ten muze byt v poolu, nebo na dedikovanem zarizeni/mirroru => dedicated SLOG (synchronous log) device.
Do SLOGu jdou jenom synchronni zapisy do urcite velikosti, vetsi se pisou primo do poolu; da se to nastavit spolu s tendenci uprednostnovat pool pred SLOGem per dataset - v pripade, ze ma pool vyssi propustnost nez SSD a delaji se na dany dataset vetsi synchronni zapisy je vyhodne logbias nastavit na throughput.
No kdyz je ZFS vykradeny NetApp wafl, tak ja rikam, ze to nebude fungovat ;-)))
NetApp ma taky flex pool s SSD cache a to prosim v raidu s vice tisku, tedy radove TB dat a chova se to tak, ze kdyz prekrocite kapacitu cache a zarovne delate velke I/O tak prenos bloku mezi SSD a klaickymi HDD ty HDD vytizi ak, ze je lepsi tam ty SSD nemit ... teoretikcy je to skvela vec, prakticky to moc nefunguje.
Zato Flash cache, coz je PCI-E karta plna DDR a je pouze pro cteni, ne pro zapis funguje skvele a drasticky zvysuje I/O pri cteni, pokud si ji date nekolik TB, tak dosahujete skvelych vykonu, zapisovat data rychle, neni problem, pisou se nove, ale dolovat z disku ano ....
Dalsi vec je defragenatce, clovek by neveril, jak zfragemntovany FS dava zabrat CPU, kdyz z nej pres NFS jede ~5.000 virtualek ;-)))
Vyzera, ze to co opisujes funguje na trosku inom principe. Pri ZFS sa v zasade neprenasaju data medzi SSD a HDD priamo.
L2ARC obsahuje data, ktore su casom vytlacene z RAM cache,
ZIL je zas v podstate write-only - data sa ulozia do RAM a ZIL zaroven, neskor sa zapisu z RAM na HDD. ZIL sa pouzije iba v pripade nahleho vypadku elektriny, ked si stratil data v RAM.
Rad sa necham opravit ak sa mylim.
Oracle tvrdi ze ZFS nepotrebuje fsck ... ja videl korupnuty a neprimountovaltelny ZFS, kde neslo o vadne RAM ani chybu FC raid pole, takze je to FS k nicemu, leda by si clovek zaridil replikaci jinam, backup je k nicemu, backup je pro nouzove situace, ne pro obnovu 80TB dat ... a ja sparvuji PB dat a udelat ze snapshotu flexclone je presne to, co potrebuji, kdyz mam obnovit ze zalozni lokality produkci ... a ne to tyden tahat zpet ;-)))
Pokud budu mit vadnou RAM, dojde k poskozeni jeste snaze ... a pak je mi ZFS k cemu, kdyz se pozkodi a nepujde ani precist a zkopiroat jinam ????
ZFS je tedy nepouzitelny pro enterprise nasazeni, proze takovych kecu, ze se neco nemuze poskodit uz jse slysel ... ale taky videl pozkozenych ... a prave i ZFS, ktere nejde uz nikdy opravit ...
kdyz tedy prestane byt ZFS netaverze pro testovani a pridaji opravu FS ???