xfs
[Top] [All Lists]

Re: BUG with inode allocating

To: Mike Montour <mmontour@xxxxxxxxxx>
Subject: Re: BUG with inode allocating
From: Nickolay <nickolay@xxxxxxxxx>
Date: Wed, 05 Jul 2006 00:31:20 +0400
Cc: xfs@xxxxxxxxxxx
In-reply-to: <44AAC864.3090507@bycast.com>
References: <44AA54BB.7040608@protei.ru> <44AAB05D.8010106@bycast.com> <44AAC10D.1040206@protei.ru> <44AAC864.3090507@bycast.com>
Sender: xfs-bounce@xxxxxxxxxxx
User-agent: Mozilla Thunderbird 1.0.7 (X11/20050923)
Mike Montour wrote:

Nickolay wrote:


root@192_168_15_15:/usr/protei$ xfs_db -r -c freesp /dev/cciss/c0d0p2
can't seek in filesystem at bb 134217728
can't read btree block 0/16777216
can't seek in filesystem at bb 1744830464


I don't know what that's all about (although Google suggests it may be a
bug in old versions of the xfs_db command -
http://oss.sgi.com/archives/xfs/2003-02/msg00077.html ).


[...]
from to extents blocks pct
1 1 32 32 100.00


This says that all of your free space is in single blocks, which would
explain why XFS can't allocate a new chunk of inodes. However the total
amount of free space here is much less than your previous 'df' showed
(and there were the other errors above) so this may not be accurate.

If you can temporarily move some large old files (ones written before
the filesystem became fragmented) off this partition you might free up
some larger extents. 'xfs_fsr' might also help if you are able to free
up enough temporary space for it to work, however I do not have any
direct experience using this tool.



Yeah, this is really xfs_db utility bug.
New version works fine, but with a warning(can't get sector size),
new mkfs.xfs warns too.

This is a new result:

--------------------------------------------
root@192_168_15_15:/usr/test$ xfs_db -r -c "freesp -s" /dev/cciss/c0d0p2
xfs_db: warning - cannot get sector size from block device /dev/cciss/c0d0p2: Invalid request code
from to extents blocks pct
1 1 4097 4097 24.27
2 3 5694 12771 75.66
4 7 3 12 0.07
total free extents 9794
total free blocks 16880
average free extent size 1.7235
--------------------------------------------


And /bin/df show to us:
root@192_168_15_15:/usr/test$ /bin/df /dev/cciss/c0d0p2
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/cciss/c0d0p2      1953600   1886020     67580  97% /usr/test

Now, if we multiple total free block(from all extents), we get almost precisely
the same freespace, which show to us /bin/df:
16880 * 4096 / 1024 = 67520 Kb


Now, as I understand, the problem here because XFS can't finds free extent,
for allocating new chunk of inodes, and there is no way to tune the chunk size?


--
Nickolay Vinogradov
Protei Reseach and Development Center
St.Petersburg, 194044, Russia
Tel.: +7 812 449 47 27


<Prev in Thread] Current Thread [Next in Thread>