xfs
[Top] [All Lists]

Re: Allocating inodes from a single block

To: xfs@xxxxxxxxxxx
Subject: Re: Allocating inodes from a single block
From: Mike Montour <mmontour@xxxxxxxxxx>
Date: Thu, 19 Jul 2007 18:26:48 -0700
In-reply-to: <20070719023005.GB12413810@xxxxxxx>
References: <469D0666.6040908@xxxxxxxxx> <20070717201921.GA26309@xxxxxxxxxxxxxxxxxxxxx> <469D7035.2020507@xxxxxxxxxxx> <1184724090.15488.553.camel@xxxxxxxxxxxxxx> <20070718035012.GA12413810@xxxxxxx> <469E65AF.4080003@xxxxxxxxxx> <20070719023005.GB12413810@xxxxxxx>
Sender: xfs-bounce@xxxxxxxxxxx
User-agent: Thunderbird 1.5.0.12 (X11/20060911)
David Chinner wrote:
>> What would it take to add an option to mkfs.xfs (or to create a
>> dedicated tool) that would efficiently[1] pre-allocate a specified
>> number of inode chunks when a filesystem is created?
>>     
>
> Like an extension to mkfs.xfs's prototype file?
>   
I guess it could go there, e.g. the "number of inodes" parameter on line
2 of the prototype file (which is currently "merely for backward
compatibility"). Another possibility would be a "-i minpct=N" parameter
to mkfs.xfs, i.e. reserve N percent of the space on the disk for inodes,
and after that's full then allocate more chunks dynamically until the
"maxpct" limit is reached.

Ideally this pre-allocation would be able to reserve space for the inode
chunks without actually having to write to all of those disk blocks
(e.g. to be able to dedicate 25% of a 2 TB device to 1024-byte inodes
without having to write 500 GB of data to the device). I am not familiar
enough with the XFS data structures to know whether this would be an
easy or a hard thing to do.

>> This filesystem was created with "-i maxpct=0,size=2048", so a new chunk
>> of 64 inodes would require an extent of 128 KiB (32 * 4KiB blocks).
>>     
>
> i.e. worst case.
>   
Yes, although in this case the "maxpct" didn't matter because less than
25% of the disk was being used for inodes when the problem was
encountered. It is likely to occur with smaller inodes, but it can still
happen.


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