[Ocfs2-devel] disk full when it shouldn't
Tao Ma
tao.ma at oracle.com
Thu Dec 2 17:22:32 PST 2010
Hi Massimo,
Massimo Cetra wrote:
> Il 09/11/2010 02:06, Tao Ma ha scritto:
>> Hi Massimo,
>>
>> From the output, it seems that you shouldn't meet with ENOSPC problem
>> at that time. So when you meet with ENOSPC, could you please do 'sync'
>> first(that will sync the metadata to the disk so that stat_sysdir can
>> output the real metadata info) and then do stat_sysdir?
>>
>> btw, you can also try to 'touch' one new file in your ocfs2 volume. So
>> if it succeeds, it means that the inode_alloc is ok. Otherwise, your
>> inode_alloc has no space. Please also try this test when you meet with
>> ENOSPC.
>
> Hi Tao,
>
> As i supposed, the problem arose another time.
>
> Attached you may find the stat_sysdir output.
Got it.
>
>
> For the sake of completeness, have to say that:
>
> - The output of df was the following:
>
> # df -i
> Filesystem Inode IUsati ILib. IUso% Montato su
> [CUT]
> /dev/drbd2 9174751 4695156 4479595 52% /var/mail
>
> # df
> Filesystem blocchi di 1K Usati Disponib. Uso% Montato su
> [CUT]
> /dev/drbd2 36699004 18780656 17918348 52% /var/mail
I have to say that df is only an approximate way to get the real info of
an ocfs2 volume.
df -i use statfs(2). And since there is no easy way to calculate all the
inodes without
locking every node's inode allocator, it just searchs the global_bitmap
and gives a rough number.
>
> The filesystem was not full:
>
> sheet3-1:/var/mail/virtual# dd if=/dev/zero of=TEST bs=1024 count=1024
> dd: scrittura di `TEST': No space left on device
> 1009+0 records in
> 1008+0 records out
> 1032192 bytes (1,0 MB) copied, 0,454305 s, 2,3 MB/s
> sheet3-1:/var/mail/virtual#
So this is node2? From the stat_sysdir output you attached,
inode_alloc:0001 is full.
It has no free inodes and the creation will fail.
So you are meeting with the problem of fragmentation. Discontig block
group should fix it.
Regards,
Tao
More information about the Ocfs2-devel
mailing list