when ufs is 99% full, current seems to limit creat to 28672 bytes
Julian H. Stacey
jhs at berklix.com
Sun Dec 25 04:41:09 UTC 2016
A puzzle below, that I think I've solved, but comments welcome:
When ufs is 99% full, current limits creat to 28672 bytes.
On current,
mount
/dev/ada0s4f on /data (ufs, NFS exported, local, soft-updates)
/bin/df /data
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ada0s4f 868629268 863272592 5356676 99% /data
csh
foreach i ( `cd /host/fire/0s4/ftp/pub/FreeBSD/mail/ports ; /bin/ls -1 [0-9]*`)
# Above just a trick to generate 3000 numeric names.
# ( testblock -v -b 512 tb.$i ) # My little C program
# http://berklix.com/~jhs/src/bsd/jhs/bin/public/testblock/
# OR a simpler standard dd ...
( dd if=/dev/zero of=dd.$i )
end
Produces loads of little files of size 28672 bytes = 0x7000
A foreground fsck of FS shows no errors. No ZFS in use. Where
does all the extra space come from ? Why does it keep allowing
more little files ? But not files bigger than 7K ?
The last 5 Gig seems unusable space not in the meta space of normal
free blocks for big files. Presumably instead in the payload of
initial data space pre allocated along with each unused inode ? So
1K for inode & 7K data ?
ffsinfo | more
bsize int32_t 0x00008000
fsize int32_t 0x00001000
df -i /dev/ada0s4f
Filesystem 1K-blocks Used Avail Capacity iused ifree %iused
/dev/ada0s4f 868629268 863272592 5356676 99% 9595016 102683126 9%
dc 102683126 28672 * p # 2 944 130 588 672
3G not 5.3G as above from df, but seems not too dissimilar.
If this 0x7K phenomena is not documented in manuals somewhere ? it
perhaps should be ?
How I noticed:
I wanted to soak up every last block on FS, (cos Ive been having
block device errors, so I wanted to force a read write on all
unused blocks to hopefully get IDE drive to re-allocate anything flakey.)
ada0: 953869MB (1953525168 512 byte sectors)
Tips very welcome on [usb scsi] Commands/Manuals/ ports/ to either:
rescan partition
(I could achive a crude reallocation of discovered bad blocks,
using drivers inside disk or FreeBSD, by writing new test data
on my partition with dd or my testblock -b 60k /dev/ada0s4f
reformat disk.
Maybe man fsck See Also should ref camcontrol ?
Cheers,
Julian
--
Julian Stacey, BSD Linux Unix Sys Eng Consultant Munich
Reply below, Prefix '> '. Plain text, No .doc, base64, HTML, quoted-printable.
http://berklix.eu/brexit/#stolen_votes
More information about the freebsd-fs
mailing list