ZFS pozastavuje zápis po zaplnění bufferu

ZFS pozastavuje zápis po zaplnění bufferu
« kdy: 03. 03. 2016, 16:48:41 »
Zdravím,

koupil jsem klasický 8 TB SATA disk, vytvořil mdadm RAID 1, v něm dm-crypt/LUKS, v něm ZFS pool verze 23 (kvůli kompatibilitě se ZFS-FUSE), vytvořil několik subvolume a nastavil [dedup=on,compression=gzip,checksum=on,atime=off]. Přidal jsem cache a log na SSD disku. Disk jsem téměř celý zaplnil celkem řádově miliony souborů a desítky snapshotů. Software je Linux Mint 17.1 s jádrem 3.13.0-37-generic, k ZFS přistupuji přes ubuntu-zfs (http://zfsonlinux.org/) a používám zfs-auto-snapshot.

Zlobí zápis na disk přes "ZFS on Linux" (http://zfsonlinux.org/). Při ukládání většího souboru přes rsync, cp, dd, ... se nejprve ukládá rychlostí kolem 40 MB/s cca 400 MB a pak se na několik minut ukládající proces pozastaví a takto střídavě pořád dokola. V příkazu top je vidět velká aktivita disku a procesu myslím z_wr_iss. Nepříjemné je to, že při tom pozastavení procesu jsou pozastaveny všechny procesy, které provádí zápis na pool nebo nějakou náročnější operaci s poolem. Toto pozastavení zápisů na několik minut dělá problémy např. při stahování souboru z internetu. Mám podezření na zaplnění cca 400 MB bufferu v RAM, který pak blokuje zápis na pool dokud se nevyprázdní na fyzický disk, což probíhá rychlostí kolem 1 MB/s. Lze nějak velikost tohoto bufferu snížit?

Podobně se chová i mazání snapshotů, při kterém dochází k údajné zátěži systému ("load") kolem 100 a po několika hodinách mazání přestává být systém ovladatelný na dálku a je nutný hardwarový restart. Ukládání většího souboru se pokaždé úspěšně dokončí střídáním dvou fází zmíněných výše, v dlouhodobém průměru rychlostí kolem 1 MB/s, ohledně které mám podezření na zpomalení deduplikací, což bych ještě akceptoval.

Zkusil jsem implementaci ZFS-FUSE, ale kromě toho, že postrádá některé funkce (např. mountování snapshotů), jiné zlobí (např. záhadný problém s oprávněními, kde pomohl chown na uživatele, který ale již byl nastaven), tak navíc mám špatné zkušenosti se stabilitou. Asi po hodině používání najednou adresáře s daty na ZFS začaly házet chybu myslím "Transport endpoint is not connected". Na druhou stranu data zapisoval plynule rychlostí cca 1 MB/s.

Zvažoval jsem přechod z Linux Mint nebo Debian-based OS obecně na OpenSolaris, ten je ale kvůli Oracle "discontinued". Zvažuji proto přechod na nástupce jménem OpenIndiana, ale byla by to celkem velká změna a nevím, jak moc kvalitní je implementace ZFS v OpenIndiana.

Dříve jsem používal Btrfs, ale chybí mu např. in-band deduplikace a také pokus o zapnutí quota systému na plném 8 TB disku běžel několik dní s pozastavením všech zápisů na disk, následovaným vynuceným hw restartem. Naštěstí data poškozena nebyla.

Právě v tomto okamžiku čekám už 2 hodiny na smazání jednoho snapshotu, po úspěšném nebo neúspěšném dokončení budu moci zjistit k problémům výše na požádání detaily.

Doporučte prosím buď řešení zmíněného "buffer" problému s Native ZFS na Linuxu a nebo spolehlivou implementaci ZFS na kterémkoliv open-source OS a nebo jiný souborový systém s funkcemi ZFS. Potřebuji spolehlivost a co největší plynulost zápisu a čtení, není prioritou rychlost. Zkusím pozastavit vytváření snapshotů utilitou zfs-auto-snapshot, ale myslím, že už jsem to jednou marně zkusil. Navíc k pozastavení zápisů na pool dochází spíše po zaplnění cca 400 MB bufferu než periodicky např. každé 4 minuty.

Pokud máte zkušenosti s něčím zmíněným výše na několika TB disku nebo poli s miliony nebo více souborů, budu za ně rád.

Děkuji za přečtení delšího textu, nechtěl jsem vynechat nic podstatného.
« Poslední změna: 03. 03. 2016, 21:31:58 od Petr Krčmář »


trubicoid2

jenom ten zacatek uz je divnej: mdadm-raid1 na nem LUKS na nem ZFS
melo by byt bez mdadm, disky jsou dva? na kazdej disk zvlast LUKS se stejnym klicem/passphrase a nad nimi ZFS-RAID1

trubicoid2

a myslím problém bude s tou deduplikací, kolik máš ram? máš l2arc? já měl deduplikaci jen na 4T (půlka plná) zapnutou a s 16GB RAM to dělalo velmi velké problémy, musel jsem deduplikaci vypnout.

Kolemjdoucí

Není to disk který byl podezřele levný kvůli tomu že používá SMR (shingled magnetic recording)? Zápis na takové disky prostě je po zaplnění jejich cache pomalý a nedá se s tím nic dělat, za to ZFS nemůže...

jenom ten zacatek uz je divnej: mdadm-raid1 na nem LUKS na nem ZFS
melo by byt bez mdadm, disky jsou dva? na kazdej disk zvlast LUKS se stejnym klicem/passphrase a nad nimi ZFS-RAID1

Je to jen 1 disk o kapacitě 8 TB. Mám v úmyslu kapacitu navyšovat přikupováním 8 TB disků dle finančních možností a přitom upgradovat RAID 1 na RAID 5, resp. RAID 6. Proto jsem vytvořil 1 diskový RAID už na začátku (vím, zní to divně). Pokud bych na fyzický disk umístil rovnou zašifrovaný ZFS pool, nedokázal bych ho po přikoupení disků zkonvertovat na mdadm RAID 5, resp. RAID 6.

Bojím se mít každý disk šifrovaný zvlášť a až na tom ZFS RAID, protože jednak ZFS RAID moc neumím a pak nevím, zda umí funkce jako mdadm včetně konverze RAID 5 na 6 (resp. RAIDZ na RAIDZ2) nebo dokonce naopak, obzvláště v nativní Linuxové open-source implementaci "ZFS on Linux". Trochu se také bojím abych omylem nezapomněl některý z disků "dešifrovat" a nezkusil v tom stavu zfs import.

Máte na některém OS dobré zkušenosti s RAIDZ a RAIDZ2 včetně konverze mezi nimi?


a myslím problém bude s tou deduplikací, kolik máš ram? máš l2arc? já měl deduplikaci jen na 4T (půlka plná) zapnutou a s 16GB RAM to dělalo velmi velké problémy, musel jsem deduplikaci vypnout.

Mám sice jen 4 GB RAM, ale swap 16 GB je téměř vždy prázdný. Jsem si vědom, že by to mohlo zpomalovat zápis na disk, ale rozhodně jsem nečekal problémy s plynulostí zápisu. Matně si vzpomínám, že vypnutí dedup nepomohlo, ale mohu to zkusit po příštím restartu (mazání snapshotu stále běží).

L2ARC je téměř 100 GB, pokud se nemýlím a je společně s logem na SSD disku:

Kód: [Vybrat]
                                            capacity     operations    bandwidth
pool                                     alloc   free   read  write   read  write
---------------------------------------  -----  -----  -----  -----  -----  -----
all                                      6,95T   304G     94      0   237K  1,45K
  dm-name-all                            6,95T   304G     94      0   237K  1,35K
logs                                         -      -      -      -      -      -
  ata-CT250BX100SSD1_1532F00A52C0-part6      0    80M      0      0    137     95
cache                                        -      -      -      -      -      -
  ata-CT250BX100SSD1_1532F00A52C0-part5  1,19G  96,6G     62     32   151K   174K

Není to disk který byl podezřele levný kvůli tomu že používá SMR (shingled magnetic recording)? Zápis na takové disky prostě je po zaplnění jejich cache pomalý a nedá se s tím nic dělat, za to ZFS nemůže...

Zní to zajímavě, děkuji. Leč hned po koupi jsem provedl nějaké testy, při kterých sekvenční zápis byl podstatně rychlejší než 1 MB/s. Každopádně primárně řeším plynulost zápisu. Aby ten ZFS pool neměl každou chvíli na několik minut pozastavené veškeré zápisy. Potřebuji aby šlo na pool kdykoliv zapisovat, i kdyby nízkou rychlostí.

Zní to zajímavě, děkuji. Leč hned po koupi jsem provedl nějaké testy, při kterých sekvenční zápis byl podstatně rychlejší než 1 MB/s.
Disk nemůže zapisovat rychlostí 1MBps, máš tam něco zatraceně špatně.

Být tebou, řeším vrstvu po vrstvě - prvně rychlost zápisu na holý disk (bez jakéhokoliv FS), potom s další vrstvou, s další vrstvou...

Mám trochu podezření na to, jestli ti ten LUKS jede přes AES-NI... 1MBps by byl sice dost málo i bez ní, ale jeden z hlavních podezřelých to je.

Každopádně primárně řeším plynulost zápisu. Aby ten ZFS pool neměl každou chvíli na několik minut pozastavené veškeré zápisy. Potřebuji aby šlo na pool kdykoliv zapisovat, i kdyby nízkou rychlostí.
Pokud ti to opravdu zapisuje rychlostí 1MBps a data tam hrneš rychleji, tak se tohle prostě nevyhnutelně stane, co jiného by se mělo stát? Buffer by bobtnal donekonečna...

Bojím se mít každý disk šifrovaný zvlášť a až na tom ZFS RAID, protože jednak ZFS RAID moc neumím a pak nevím, zda umí funkce jako mdadm včetně konverze RAID 5 na 6 (resp. RAIDZ na RAIDZ2) nebo dokonce naopak, obzvláště v nativní Linuxové open-source implementaci "ZFS on Linux".
Rozhodně potřebuješ RAID na úrovni ZFS, jinak se zbytečně připravuješ o jeho vlastnosti a zbytečně to kombinuješ s další vrstvou, která nic neví o datech nad ní. Je to špatně a nedělej to tak.

Přidávat disky po jednom v ZFS nejde, musíš si buď dopředu připravit scénář, který pro ZFS funguje, nebo se musíš připravit, že v určitém stádiu budeš muset všechna data odlít pryč a vytvořit nový pool.

Není to nic, co by ses musel kdovíjak učit. Stačí si to prostě vyzkoušet na par loop-devicech...

Zvažoval jsem přechod z Linux Mint nebo Debian-based OS obecně na OpenSolaris, ten je ale kvůli Oracle "discontinued". Zvažuji proto přechod na nástupce jménem OpenIndiana, ale byla by to celkem velká změna a nevím, jak moc kvalitní je implementace ZFS v OpenIndiana.
Určitě o několik řádů kvalitnější než na Linuxu :)

Nicméně pokud se ti nechce do Solarisích klonů, na FreeBSD už je ZFS mnoho let a je už slušně vychytané.

a myslím problém bude s tou deduplikací, kolik máš ram? máš l2arc? já měl deduplikaci jen na 4T (půlka plná) zapnutou a s 16GB RAM to dělalo velmi velké problémy, musel jsem deduplikaci vypnout.

Mám sice jen 4 GB RAM
NO WAY!

Citace
A general rule of thumb is 1 GB of RAM for every 1 TB of storage. If the deduplication feature is used, a general rule of thumb is 5 GB of RAM per TB of storage to be deduplicated.
https://www.freebsd.org/doc/handbook/zfs-advanced.html

...čili máš desetkrát míň RAM než je na tolik dat doporučeno.

Citace
, ale swap 16 GB je téměř vždy prázdný.
Se swapem to imho nemá co dělat.

Citace
L2ARC je téměř 100 GB, pokud se nemýlím a je společně s logem na SSD disku:
L2ARC je read cache, která se použije jenom v případě, že čteš data, která nejsou nacachovaná v RAM. Pokud z poolu nečteš, nepoužije se ani 1B L2ARC :) Takže s tvými problémy se zápisem to nijak nesouvisí.

compression=gzip
Gzip je špatná komprese. Pokud tvoje verze ZFS podporuje něco jiného, použij to v tomhle pořadí:

LZ4 > LZJB > GZIP

Zní to zajímavě, děkuji. Leč hned po koupi jsem provedl nějaké testy, při kterých sekvenční zápis byl podstatně rychlejší než 1 MB/s.
Být tebou, řeším vrstvu po vrstvě - prvně rychlost zápisu na holý disk (bez jakéhokoliv FS), potom s další vrstvou, s další vrstvou...
Ok, mohu zkusit zápis náhodných dat na blokové zařízení na kterém je nyní ZFS. Napřed bych zazálohoval třeba 10 GB na jiný disk, přepsal je náhodnými daty a pak původní data vrátil. Tím by se předpokládám nemělo nic stát, když to zařízení nebude používané a dám si pozor na to, co zadávám za parametry. Co zkusit dál pokud zjistím, že ta rychlost je podstatně vyšší a hlavně plynulá?

Mám trochu podezření na to, jestli ti ten LUKS jede přes AES-NI... 1MBps by byl sice dost málo i bez ní, ale jeden z hlavních podezřelých to je.
Jak bych prosím mohl zjistit?

Každopádně primárně řeším plynulost zápisu. Aby ten ZFS pool neměl každou chvíli na několik minut pozastavené veškeré zápisy. Potřebuji aby šlo na pool kdykoliv zapisovat, i kdyby nízkou rychlostí.
Pokud ti to opravdu zapisuje rychlostí 1MBps a data tam hrneš rychleji, tak se tohle prostě nevyhnutelně stane, co jiného by se mělo stát? Buffer by bobtnal donekonečna...
Představme si uzavřenou nádrž na vodu, do které velkým jednosměrným horním otvorem vodu přiléváme a druhým malým otvorem dole vytéká. Pokud tuto nádrž naplníme, voda odtékat nepřestane, akorát se nám bude dařit ji přilévat stejnou rychlostí, jakou odtéká. Nestane se, že by najednou vůbec nešla přilévat až do doby, kdy bude nádrž prázdná. Představoval bych si, že data do plného bufferu půjdou přidávat stejnou rychlostí, jakou se z něj zapisují na fyzický disk.

Bojím se mít každý disk šifrovaný zvlášť a až na tom ZFS RAID, protože jednak ZFS RAID moc neumím a pak nevím, zda umí funkce jako mdadm včetně konverze RAID 5 na 6 (resp. RAIDZ na RAIDZ2) nebo dokonce naopak, obzvláště v nativní Linuxové open-source implementaci "ZFS on Linux".
Rozhodně potřebuješ RAID na úrovni ZFS, jinak se zbytečně připravuješ o jeho vlastnosti a zbytečně to kombinuješ s další vrstvou, která nic neví o datech nad ní. Je to špatně a nedělej to tak.
Ok, tuto zkušenost respektuji. Chtěl bych se zeptat, připravuji se o nějaké jiné vlastnosti než jen výkon? A mohu se na RAIDZ a RAIDZ2 spolehnout v Linuxových implementacích "ZFS on Linux" a "ZFS-FUSE"? A umí už ZFS konverzi RAIDZ na RAIDZ2?

Přidávat disky po jednom v ZFS nejde, musíš si buď dopředu připravit scénář, který pro ZFS funguje, nebo se musíš připravit, že v určitém stádiu budeš muset všechna data odlít pryč a vytvořit nový pool.
A právě proto jsem chtěl RAID řešit přes mdadm, aby přidávat disky bylo možné.

Není to nic, co by ses musel kdovíjak učit. Stačí si to prostě vyzkoušet na par loop-devicech...
Děkuji za povzbuzení. Nějak takto jsem se loni trénoval v práci s mdadm RAIDy.

Zvažoval jsem přechod z Linux Mint nebo Debian-based OS obecně na OpenSolaris, ten je ale kvůli Oracle "discontinued". Zvažuji proto přechod na nástupce jménem OpenIndiana, ale byla by to celkem velká změna a nevím, jak moc kvalitní je implementace ZFS v OpenIndiana.
Určitě o několik řádů kvalitnější než na Linuxu :)
Takže předpokládám správně, že implementace ZFS v OpenIndiana vychází z implementace v OpenSolaris? Funguje na OpenIndiana hardware bez problémů a lze doinstalovat KDE či xfce? Vyvíjí se vůbec aktivně OpenIndiana?

Nicméně pokud se ti nechce do Solarisích klonů, na FreeBSD už je ZFS mnoho let a je už slušně vychytané.
Aha, to je dobré vědět, děkuji. Jen na tom nechápu: Myslel jsem, že Linux je rozšířenější než FreeBSD či OpenIndiana, tj. software by měl být pro Linux obecně lépe odladěný. Je to jinak?

Mám sice jen 4 GB RAM
NO WAY!
Why? Snížení rychlosti bych chápal, ale vážné narušení plynulosti zápisu moc nechápu.

Citace
A general rule of thumb is 1 GB of RAM for every 1 TB of storage. If the deduplication feature is used, a general rule of thumb is 5 GB of RAM per TB of storage to be deduplicated.
https://www.freebsd.org/doc/handbook/zfs-advanced.html

...čili máš desetkrát míň RAM než je na tolik dat doporučeno.
...čili mám desetkrát míň RAM než je na tolik dat doporučeno. Chápu tím vysvětlení zápisu 1 MB/s, ale ne problémů s plynulostí.

Citace
, ale swap 16 GB je téměř vždy prázdný.
Se swapem to imho nemá co dělat.

Citace
L2ARC je téměř 100 GB, pokud se nemýlím a je společně s logem na SSD disku:
L2ARC je read cache, která se použije jenom v případě, že čteš data, která nejsou nacachovaná v RAM. Pokud z poolu nečteš, nepoužije se ani 1B L2ARC :) Takže s tvými problémy se zápisem to nijak nesouvisí.
Hashe používané při deduplikaci se při čtení nijak necachují? Dokáži si představit situace, kdy by se to hodilo.

compression=gzip
Gzip je špatná komprese. Pokud tvoje verze ZFS podporuje něco jiného, použij to v tomhle pořadí:

LZ4 > LZJB > GZIP
Používám ZFS verze 23 kvůli kompatibilitě se ZFS-FUSE kdyby se objevily nějaké vážné problémy se ZFS on Linux. Ta umí LZJB a GZIP, ale neumí LZ4.

LZJB je lepší než GZIP? Jak jsem již uvedl, o rychlost mi moc nejde, proto upřednostňuji efektivitu komprese, která by měla být u GZIP obvykle lepší než u LZJB.

LZJB je lepší než GZIP? Jak jsem již uvedl, o rychlost mi moc nejde, proto upřednostňuji efektivitu komprese, která by měla být u GZIP obvykle lepší než u LZJB.
Jo, tak pokud ti nejde o výkon a jde o kompresi, tak pak gzip. Můžeš zvážit i jinou úroveň - gzip-7, gzip-8... ale rozdíly jsou malé a CPU penalizace je velká. Záleží na tobě, musíš si sám udělat benchmarky, co ti bude vyhovovat.

technik007

Zdravim,
mam se ZFS filesystemem par let zkusenosti. Taky jsem se dostal do takove patove situace s nizkym vykonem.
Vykon muze zlepsit dodatecna ssd cache, ale na zacatku byla zvolena v tomto pripade nevhodna kombinace mdadm + luks + zfs.

1) mdadm:
ZFS umi raid 1, takze mdadm je zbytecna mezivrstva, ktera muze za urcitych podminek snizovat vykon. ZFS mirror ma vyzkouseny. Pri cteni se pouzivaji oba disky najednou, takze lze ziskat az dvojnasobny vykon. U zapisu samozrejme ne, data se zapisuji do obou najdenou. Pokud se pri cteni zjisti, ze jeden disk "nestiha", tak se zacne balancovat vykon mezi disky, tzn. system zacne pozadovat vice dat z mene zaneprazdneho.

2) ZFS fuse: "fuse" verze bohuzel je vzdycky pozadu za "normalni" verzi a clovek tim prichazi o posledni opravy. Navic fuse implementace z principu ma nizsi prioritu a tim horsi vykon nez filesystem pridany do kernelu.

3) deduplikace: s 8TB na ni bohuzel nemas dostatek pameti. Taky jsem s ni koketoval, po problemech s vykonem jsem ji vypnul, ale i pak obcas jsem mel problemy, kdyz se zacly cist deduplikovane data ( 8GB RAM a 4TB disk). Taky scrub celeho disku se na deduplikovanych datech brzdil moc.

Takze po mych zkusenostech bych dopurucil, smazat jeden z disku (jestli jsem pochopil spravne, tak mate mirror a ten je o minimalne dvou discich), samozrejme pokud je pole konzistentni. Doporucuji na nem nedelat nic a scrubnout ho. Bude to trvat rekl bych den, dva. A pak, jestli je pole konzistentni, vypnout system, zapojit jenom jeden z disku, ten smazat, vytvorit na nem luks particii, na ni pak novy zfs filesystem pouze s kompresi - zpomenout na dedup !!!! , vypnout pc, zapojit oba disky, po zapnuti prekopirovat data mezi disky, pak znicit puvodni zfs pole. Pak novy luks, a pridat k nove vytvorenemu filesystemu mirror disk. No a pak se kochat, jak se data kopiruji.

Mohl bych do rozvest i do prikazu a i bez vypinani pc (data safety feature).
Takze zaverem znova: ne deduplikaci !!! a fuse-zfs ? a mit starou verzi s old bugama? To ne, to vazne ne. Zadne kompromisy !

Ok, mohu zkusit zápis náhodných dat na blokové zařízení na kterém je nyní ZFS. Napřed bych zazálohoval třeba 10 GB na jiný disk, přepsal je náhodnými daty a pak původní data vrátil. Tím by se předpokládám nemělo nic stát, když to zařízení nebude používané a dám si pozor na to, co zadávám za parametry. Co zkusit dál pokud zjistím, že ta rychlost je podstatně vyšší a hlavně plynulá?
No to je hodně velká prasárna. Můžeš to udělat, pokud 1. tam nemáš data, na kterých ti záleží, 2. budeš přesně vědět, co děláš, 3. nebudeš to dělat na "klidném", ale na úplně odpojeném FS, to znamená "zpool export ...". Každopádně ale potřebuješ vyzkoušet i ty další vrstvy.

Jak bych prosím mohl zjistit?
LUKS jsem nikdy nepoužíval, takže přesnou radu nechám na kolegy. Obecně musíš mít podporu AES-NI v jádře (měla by být běžně) a LUKS musí používat šifru, kterou AES-NI podporuje.

Představme si [...] Představoval bych si, že data do plného bufferu půjdou přidávat stejnou rychlostí, jakou se z něj zapisují na fyzický disk.
Není tak úplně důležité, co si představujeme, ale jak to reálně funguje ;) ZFS je dost složitá věc samo o sobě a ty mu tam přidáváš ještě dvě vrstvy navíc, takže jak se to reálně chová nejseš imho vůbec schopnej odhadnout.

Ok, tuto zkušenost respektuji. Chtěl bych se zeptat, připravuji se o nějaké jiné vlastnosti než jen výkon?
Připravíš se o všechny vlastnosti, které využívají toho, že ZFS ví, co jsou živá data, zatímco mdraid to neví. Čili stoprocentně si způsobíš to, že při výpadku bide probíhat resilvering celého disku, zatímco ZFS by resilverovalo jenom živá data.

Předpokládám, že se připravíš i o nějaké optimalizace zápisu, ale to neumím pozitivně říct, je to jenom odhad.

A mohu se na RAIDZ a RAIDZ2 spolehnout v Linuxových implementacích "ZFS on Linux" a "ZFS-FUSE"? A umí už ZFS konverzi RAIDZ na RAIDZ2?
Já osobně bych se na ZFS on linux nespoléhal vůbec :) Na FreeBSD se to ladilo fakt roky a pořád ještě to není úplně bullet-proof, ale je to produkčně použitelný. ZFS on Linux bych na produkci nedal (ale to je každého věc, čemu bude důvěřovat a čemu ne).

A právě proto jsem chtěl RAID řešit přes mdadm, aby přidávat disky bylo možné.
Nejsem si jistý, jestli si významně pomůžeš. Musel bych si sepsat konkrétní postup přidávání disku a jejich propagaci do zpoolu, teď z hlavy to nedokážu říct, jak dobře to půjde.

Takže předpokládám správně, že implementace ZFS v OpenIndiana vychází z implementace v OpenSolaris? Funguje na OpenIndiana hardware bez problémů a lze doinstalovat KDE či xfce? Vyvíjí se vůbec aktivně OpenIndiana?
Solaris ani jeho klony jsem nikdy nepoužíval, takže bohužel neporadím.

Aha, to je dobré vědět, děkuji. Jen na tom nechápu: Myslel jsem, že Linux je rozšířenější než FreeBSD či OpenIndiana, tj. software by měl být pro Linux obecně lépe odladěný. Je to jinak?
Je to tak co se týče aplikačního software. Co se týče samotného OS, tak je všechno odladěné tak, jak to výrobce odladí :) A ZFS prostě pochází ze Solarisu, takže nejlíp funguje tam. Pak slušně funguje na FreeBSD, protože se tam už dlouho ladí ... no a pak je všechno ostatní.

...čili mám desetkrát míň RAM než je na tolik dat doporučeno. Chápu tím vysvětlení zápisu 1 MB/s, ale ne problémů s plynulostí.
V IT je spousta věcí, které nechápu ;) Pokud jdeš nedoporučovanou cestou, nesmíš se divit ničemu.

Hashe používané při deduplikaci se při čtení nijak necachují? Dokáži si představit situace, kdy by se to hodilo.
:) Myslím, že autoři ZFS jsou znalostmi nad námi o tolik světelných let, že si určitě dokáží představit ledacos, o čem se nám ani nesní :) Jde o to, jak a proč je to implementované, ne jak si to my dva laici představujeme jako Hurvínek válku :)

Trubicoid2

a myslím problém bude s tou deduplikací, kolik máš ram? máš l2arc? já měl deduplikaci jen na 4T (půlka plná) zapnutou a s 16GB RAM to dělalo velmi velké problémy, musel jsem deduplikaci vypnout.
j

Mám sice jen 4 GB RAM, ale swap 16 GB je téměř vždy prázdný. Jsem si vědom, že by to mohlo zpomalovat zápis na disk, ale rozhodně jsem nečekal problémy s plynulostí zápisu. Matně si vzpomínám, že vypnutí dedup nepomohlo, ale mohu to zkusit po příštím restartu (mazání snapshotu stále běží).

L2ARC je téměř 100 GB, pokud se nemýlím a je společně s logem na SSD disku:

Kód: [Vybrat]
                                            capacity     operations    bandwidth
pool                                     alloc   free   read  write   read  write
---------------------------------------  -----  -----  -----  -----  -----  -----
all                                      6,95T   304G     94      0   237K  1,45K
  dm-name-all                            6,95T   304G     94      0   237K  1,35K
logs                                         -      -      -      -      -      -
  ata-CT250BX100SSD1_1532F00A52C0-part6      0    80M      0      0    137     95
cache                                        -      -      -      -      -      -
  ata-CT250BX100SSD1_1532F00A52C0-part5  1,19G  96,6G     62     32   151K   174K

Vono je to divný, ale jak mi to padalo při zapnuté deduplikaci, tak byl swap prázdnej, jak u tebe. L2arc trochu pomoh a po přidání ram jsem mohl naklonovat data bez duplikace a stará zrušit a tím se to vyřešilo.