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/