Re: CephFS: Upper limit for number of files in adirectory?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Sep 15, 2016 at 4:19 PM, Burkhard Linke
<Burkhard.Linke@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
> Hi,
>
>
> On 09/15/2016 12:00 PM, John Spray wrote:
>>
>> On Thu, Sep 15, 2016 at 2:20 PM, Burkhard Linke
>> <Burkhard.Linke@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
>>>
>>> Hi,
>>>
>>> does CephFS impose an upper limit on the number of files in a directory?
>>>
>>>
>>> We currently have one directory with a large number of subdirectories:
>>>
>>> $ ls | wc -l
>>> 158141
>>>
>>> Creating a new subdirectory fails:
>>>
>>> $ touch foo
>>> touch: cannot touch 'foo': No space left on device
>
> thansk for the fast reply.
>>
>> This limit was added recently: it's a limit on the size of a directory
>> fragment.
>>
>> Previously folks were hitting nasty OSD issues with very large
>> directory fragments, so we added this limit to give a clean failure
>> instead.
>
> I remember seeing a thread on the devel mailing list about this issue.
>>
>>
>> Directory fragmentation (mds_bal_frag setting) is turned off by
>> default in Jewel: I was planning to get this activated by default in
>> Kraken, but haven't quite got there yet.  Once fragmentation is
>> enabled you should find that the threshold for splitting dirfrags is
>> hit well before you hit the safety limit that gives you ENOSPC.
>
> Does enabling directory fragmentation require a MDS restart? And are
> directories processed at restart or on demand during the first access? Are
> there known problems with fragmentation?

You could change it at runtime using `injectargs` as with other configs.

Directories are considered for fragmentation when they are touched by
a client operation, so you won't see any fragmentation happen until
the client does something.

I would recommend that you don't enable fragmenation unless you have a
100% need for an unbounded number of files in one directory.  I just
tried a test run with frags enabled and saw a new failure!

John

>>
>> Note that if you set mds_bal_frag then you also need to use the "ceph
>> fs set <myfs> allow_dirfrags true" (that command from memory so check
>> the help if it's wrong), or the MDSs will ignore the setting.
>
> So its allowing fragmentation first and changing the MDS configuration
> afterwards.
>
>
> Regards,
> Burkhard
> _______________________________________________
> ceph-users mailing list
> ceph-users@xxxxxxxxxxxxxx
> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
_______________________________________________
ceph-users mailing list
ceph-users@xxxxxxxxxxxxxx
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com



[Index of Archives]     [Information on CEPH]     [Linux Filesystem Development]     [Ceph Development]     [Ceph Large]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux