Date: Sun, 25 Dec 2016 11:11:48 +0100 From: Gary Jennejohn <gljennjohn@gmail.com> To: freebsd-fs@freebsd.org Subject: Re: when ufs is 99% full, current seems to limit creat to 28672 bytes Message-ID: <20161225111148.6ee769b8@ernst.home> In-Reply-To: <201612250331.uBP3Un70004592@fire.js.berklix.net> References: <201612250331.uBP3Un70004592@fire.js.berklix.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 25 Dec 2016 04:30:49 +0100 "Julian H. Stacey" <jhs@berklix.com> wrote: > 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 ? > I suspect this ia a result of how UFS is designed. Did you use the standard options for block and fragment size? How about inodes? Is the file system UFS1 or UFS2? UFS is a very compex bit of software and I imagine there are all kinds of interesting surprises when the file system is 99% full. Anyway, the newfs man page may provide some clues. Or look at Wikipedia, there's a UFS entry there, but it doesn't go into the gorey details. -- Gary Jennejohn
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20161225111148.6ee769b8>