xfs
[Top] [All Lists]

Re: Slightly Urgent: XFS No Space Left On Device

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: Slightly Urgent: XFS No Space Left On Device
From: Dave Hall <kdhall@xxxxxxxxxxxxxx>
Date: Thu, 02 Apr 2015 10:32:54 -0400
Cc: xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <20150402001235.GI28621@dastard>
References: <551993CF.4060908@xxxxxxxxxxxxxx> <20150330194510.GD28621@dastard> <551C4CB8.7@xxxxxxxxxxxxxx> <20150402001235.GI28621@dastard>
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.16) Gecko/20121215 Icedove/3.0.11
Thanks for the help. Rookie error. I didn't set these mount options, but I see that this option is set for all of the other XFS volumes I have.

I am wondering why XFS would default this way though. Seems like heuristically you could assume that a large volume on a 64-bit OS would need 64-bit inodes. At least perhaps put out a message from mkfs.xfs suggesting the use of inode64 on the mount command?

Thanks.

-Dave

Dave Hall
Binghamton University
kdhall@xxxxxxxxxxxxxx
607-760-2328 (Cell)
607-777-4641 (Office)


On 04/01/2015 08:12 PM, Dave Chinner wrote:
On Wed, Apr 01, 2015 at 03:53:28PM -0400, Dave Hall wrote:
Please pardon the 'top-post', but here is the additional information
requested:

This is a Dell R720xd dual 8-core Xeon system with 128GB RAM.  The
RAID controller is Dell PERC H710 Mini with 12 2TB disks in RAID6.

The OS is Debian 6 with kernel 3.2.0-0.bpo.4-amd64 #1 SMP Debian
3.2.65-1+deb7u2~bpo60+1 x86_64.
So defaults to inode32 allocation....

 From /proc/mounts:

    /dev/sdb1 /data xfs
    
rw,noexec,noatime,attr2,delaylog,allocsize=64k,logbsize=64k,sunit=128,swidth=1280,usrquota,prjquota
    0 0
... and inode64 is not in the mount options.....

The output from xfs_info was previously included, but is repeated here:

# xfs_info /data
meta-data=/dev/sdb1              isize=256    agcount=19,agsize=268435440 blks
Inode allocation requires contiguous free space of 16k aligned to 8k
boundaries to allocate new inode chunks. Also, 1TB AGs, so with
inode32, inodes can only be allocated in AG 0.

Here are the more extensive freesp outputs for each of the 19 AGs:

    # xfs_db -r /dev/sdb1 -c 'freesp -s -a0'
        from      to extents  blocks    pct
           1       1     747     747  19.68
           2       3    1045    2496  65.77
           4       7     138     552  14.55
    total free extents 1930
    total free blocks 3795
    average free extent size 1.96632
And that says you have no correctly aligned free 16k extents that
can be allocated in AG 0. i.e. no more inodes can be allocated, and
that's where the ENOSPC is coming from.

Unmount, add the inode64 mount option, and you'll be able to
allocate inodes again as they will be allowed to be allocated in
any AG, not just AG 0.

Cheers,

Dave.

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