Re: RBD image name constraints

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

 



On Fri, Apr 8, 2016 at 7:36 PM, Alex Elder <elder@xxxxxxxx> wrote:
> On 04/08/2016 11:13 AM, Ilya Dryomov wrote:
>> On Fri, Apr 8, 2016 at 2:23 PM, Bartłomiej Święcki
>> <bartlomiej.swiecki@xxxxxxxxxxxx> wrote:
>>> Hi,
>>>
>>> What are constraints regarding names of RBD images? I tried to look it up
>>> but without success.
>>
>> I'm afraid this is something nobody ever paid enough attention to.
>>
>>>
>>> My tests show that maximum length is about 4089 bytes and the only forbidden
>>> characters are '\0' and '@' but didn't get deep enough into the code to
>>> figure out the length limit. Are my findings correct?
>>
>> There is an old define in the code base, but it's not enforced:
>>
>>     #define RBD_MAX_IMAGE_NAME_SIZE 96
>
> On the kernel RBD client we have RBD_IMAGE_NAME_LEN_MAX,
> which is 4093 bytes.  That is because the RBD "dir_get_name"
> object method returns an encoded string, which consists of a
> 32-byte name length followed by the name.  We place the result
> into a buffer which has room for a terminating NUL character.
> This length value was used to limit the buffer size to a 4KB
> page or less.  I haven't checked but I'm pretty sure the request
> fails of the name is larger than that.
>
> It does not surprise me that there are other limits that are
> more restrictive than that.  The one you're referring to below
> appears to be CEPH_MAX_OID_NAME_LEN.

Yes - it's the only one that matters.

>
>> The kernel client, however, won't process object requests with names
>> bigger than 100 chars.  Lifting this limitation wouldn't be hard, but
>> so far I've only seen this raised once, by Jean-Tiare Le Bigot, also
>> from OVH.
>>
>> Currently, with no enforcement from librbd, this comes down to how big
>> RADOS object names can be, which depends on config options and even the
>> choice of the data store - in case of ext4, you wouldn't get ~4k, for
>> example.
>
> Honestly I don't think there's much need for anything legitimate
> beyond about 100 characters, but it is important to test the
> limits, whatever they are.

Agreed.

Thanks,

                Ilya
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux