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.