tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
strange zfs size allocation data
I ran into a test failure with bup, where it was restoring a sparse file
and trying to validate the resulting disk usage. It turns out that on
zfs (NetBSD 10), when you write a file, it shows as using 1 block and
then some seconds later shows as using the right amount.
So:
- why is it happening?
- is this a bug?
- if we think it's a bug, is it feasible to fix?
A simple program to create files, n empty megabytes followed by 1 real
megabyte, for n in 0..9. And then to 'du' the file, every 1s for 30s,
not worrying about precise timing.
I have a big ssd which is mostly a zfs type partition, and a pool with
just that. Nothing fancy.
----------------------------------------
#!/bin/sh
for i in $(seq 0 9); do
OUT=seek$i
rm -rf ${OUT} ${OUT}.size
dd if=/dev/urandom seek=$i bs=1m count=1 of=${OUT} 2> /dev/null
for s in $(seq 0 30); do
(echo -n "$s: "; du ${OUT}) >> $OUT.size
sleep 1
done
done
----------------------------------------
leads to ('head -6' shown, since that's sufficient to understand):
==> seek0.size <==
0: 1 seek0
1: 1 seek0
2: 1 seek0
3: 1027 seek0
4: 1027 seek0
5: 1027 seek0
==> seek1.size <==
0: 1 seek1
1: 1 seek1
2: 1027 seek1
3: 1027 seek1
4: 1027 seek1
5: 1027 seek1
==> seek2.size <==
0: 1 seek2
1: 1027 seek2
2: 1027 seek2
3: 1027 seek2
4: 1027 seek2
5: 1027 seek2
==> seek3.size <==
0: 1 seek3
1: 1 seek3
2: 1 seek3
3: 1 seek3
4: 1027 seek3
5: 1027 seek3
==> seek4.size <==
0: 1 seek4
1: 1 seek4
2: 1 seek4
3: 1027 seek4
4: 1027 seek4
5: 1027 seek4
==> seek5.size <==
0: 1 seek5
1: 1 seek5
2: 1027 seek5
3: 1027 seek5
4: 1027 seek5
5: 1027 seek5
==> seek6.size <==
0: 1 seek6
1: 1 seek6
2: 1 seek6
3: 1 seek6
4: 1 seek6
5: 1027 seek6
==> seek7.size <==
0: 1 seek7
1: 1 seek7
2: 1 seek7
3: 1 seek7
4: 1027 seek7
5: 1027 seek7
==> seek8.size <==
0: 1 seek8
1: 1 seek8
2: 1 seek8
3: 1027 seek8
4: 1027 seek8
5: 1027 seek8
==> seek9.size <==
0: 1 seek9
1: 1027 seek9
2: 1027 seek9
3: 1027 seek9
4: 1027 seek9
5: 1027 seek9
Home |
Main Index |
Thread Index |
Old Index