Edit Ik heb een oorzaak/fix zie einde van mijn post
Ik heb een interessant probleem met zfs on linux.
Ik heb een volle pool (0k vrij) en ik kan er niets meer van verwijderen met bijv een rm.
Dat geeft op zicht niet het is een test omgeving, maar als ik een andere pool op het zelfde systeem net zo vol gooi kan ik gewoon nog bestanden verwijderen. Nu wil ik graag weten wat er mis is, maar ik kan niets vinden dat niet in de haak is. Kunnen jullie helpen met trouble shooten?
Edit ik ben meer geïnteresseerd in wat het probleem is dan in een oplossing. Oplossingen kan ik zelf zo wel verzinnen aangezien het toch test data is.
Scrubben gaat probleemloos geen enkele fout.
De block sum = gelijk aan de space maps
64gb ram
ubuntu 15.10
zfs v0.6.4.2-0ubuntu1.1, ZFS pool version 5000, ZFS filesystem version 5
zpool status
pool: tank0
state: ONLINE
scan: scrub in progress since Mon Jan 11 11:42:15 2016
4.78T scanned out of 21.4T at 691M/s, 7h0m to go
0 repaired, 22.34% done
config:
NAME STATE READ WRITE CKSUM
tank0 ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
F0 ONLINE 0 0 0
F3 ONLINE 0 0 0
F2 ONLINE 0 0 0
F1 ONLINE 0 0 0
F7 ONLINE 0 0 0
F6 ONLINE 0 0 0
errors: No known data errors
zpool get all
NAME PROPERTY VALUE SOURCE
tank0 size 21.8T -
tank0 capacity 98% -
tank0 altroot - default
tank0 health ONLINE -
tank0 guid 9034185262091936598 default
tank0 version - default
tank0 bootfs - default
tank0 delegation on default
tank0 autoreplace off default
tank0 cachefile - default
tank0 failmode wait default
tank0 listsnapshots off default
tank0 autoexpand off default
tank0 dedupditto 0 default
tank0 dedupratio 1.00x -
tank0 free 348G -
tank0 allocated 21.4T -
tank0 readonly off -
tank0 ashift 12 local
tank0 comment - default
tank0 expandsize - -
tank0 freeing 0 default
tank0 fragmentation 59% -
tank0 leaked 0 default
tank0 feature@async_destroy enabled local
tank0 feature@empty_bpobj enabled local
tank0 feature@lz4_compress active local
tank0 feature@spacemap_histogram active local
tank0 feature@enabled_txg active local
tank0 feature@hole_birth active local
tank0 feature@extensible_dataset enabled local
tank0 feature@embedded_data active local
tank0 feature@bookmarks enabled local
zfs get all
NAME PROPERTY VALUE SOURCE
tank0 type filesystem -
tank0 creation Mon Dec 21 8:58 2015 -
tank0 used 17.1T -
tank0 available 0 -
tank0 referenced 17.1T -
tank0 compressratio 1.00x -
tank0 mounted yes -
tank0 quota none default
tank0 reservation none default
tank0 recordsize 128K default
tank0 mountpoint /tank0 default
tank0 sharenfs off default
tank0 checksum on default
tank0 compression off default
tank0 atime on default
tank0 devices on default
tank0 exec on default
tank0 setuid on default
tank0 readonly off default
tank0 zoned off default
tank0 snapdir hidden default
tank0 aclinherit restricted default
tank0 canmount on default
tank0 xattr on default
tank0 copies 1 default
tank0 version 5 -
tank0 utf8only off -
tank0 normalization none -
tank0 casesensitivity sensitive -
tank0 vscan off default
tank0 nbmand off default
tank0 sharesmb off default
tank0 refquota none default
tank0 refreservation none default
tank0 primarycache all default
tank0 secondarycache all default
tank0 usedbysnapshots 0 -
tank0 usedbydataset 17.1T -
tank0 usedbychildren 15.8M -
tank0 usedbyrefreservation 0 -
tank0 logbias latency default
tank0 dedup off default
tank0 mlslabel none default
tank0 sync standard default
tank0 refcompressratio 1.00x -
tank0 written 17.1T -
tank0 logicalused 17.1T -
tank0 logicalreferenced 17.1T -
tank0 snapdev hidden default
tank0 acltype off default
tank0 context none default
tank0 fscontext none default
tank0 defcontext none default
tank0 rootcontext none default
tank0 relatime off default
tank0 redundant_metadata all default
tank0 overlay off default
Ok hoe het helemaal zit ben ik nog niet helemaal achter, maar ik heb wel een fix die goed genoeg is om niet meer met het probleem te zitten.
Zfs houd een reserve aan hoe vol je schijf mag zitten. In zfs on linux 0.64 is dat 1,6% vanaf 0.65 is het 3,2 procent. Ik zat op 0,64 en dus op 1,6 procent als ik deze omlaag haal naar ,8% kan ik weer schrijven en bestanden verwijderen. Uiteraard heb ik hem hier na op 3,2 % gezet daar is vast een reden voor dat ze dat verhoogd hebben waarschijnlijk de problemen die ik ondervond.
Het is nog steeds niet duidelijk waarom ik in de ene pool niet meer kan verwijderen en in de andere pool wel terwijl ze beiden vol zitten. Mocht ik dit vinden zal ik het ook posten.
Hoe doe je dit?
Je moet de spa_slop_shift parameter aan passen.
Deze staat bij mij in /sys/module/zfs/paramters/spa_slop_shift in 0,64 is het 6 in 0,65 staat ie op 5
Je komt bij het percentage door 100/2^6 dat is dus 100/64=1,56 % en 100/2^5=3.125 Ik heb hem tijdelijk op 7 gezet want hij stond toen ik mijn disks vol zette op 6.
Je kunt hetm instellen door /etc/modprobe.d/zfs.conf aan te maken en daar de volgende regel in te zetten.
options zfs spa_slop_shift=Getal
Je kunt rebooten om hem te laten gelden of door de zfs module te verwijderen en weer toe te voegen.
Vervolgens kun je de waarde checken door /sys/modules/zfs/paramters/spa_slop_shift uit te lezen.
Ik ga er van uit dat ze spa_slop_shift om hoog hebben gezet om het probleem dat ik heb te voorkomen.
fix is dus zet hem op 5 of installeer ZoL 0,65 waar ie standaard al op 5 staat.
Mocht je trouwens upgraden van 0,64 naar 0,65 check even of je pool minder dan 97% gevuld is anders heb je hommeles die met bovenstaande te fixen.
[
Voor 12% gewijzigd door
kaaas op 15-01-2016 13:25
]