On Apr 3, 2013, at 10:58 AM, Gregory Farnum <g...@inktank.com> wrote:

> On Wed, Apr 3, 2013 at 9:45 AM, John Nielsen <li...@jnielsen.net> wrote:
>> On Apr 1, 2013, at 3:33 PM, Gregory Farnum <g...@inktank.com> wrote:
>> 
>>>> On Mon, Apr 1, 2013 at 2:16 PM, Sam Lang <sl...@inktank.com> wrote:
>>>>> On Mon, Apr 1, 2013 at 5:59 AM, Papaspyrou, Alexander
>>>>> <papaspy...@adesso-mobile.de> wrote:
>>>>> 1. So far, I understand that OSD ids have to be numeric, nothing else in
>>>>> there. What I couldn't find is whether they really have to start at 0 or 
>>>>> 1,
>>>>> and whether I need to increase them stepwise? The background of my 
>>>>> question
>>>>> is automation: It would make our life much simpler if I could use some
>>>>> calculated value for the OSD id (say, the node's decimal IP address and 
>>>>> some
>>>>> local ID for the disk), because we could then statically assign them 
>>>>> without
>>>>> having to know what other OSDs already exist.
>>>> 
>>>> They need to start from 0.  The max_osd value maintained by the
>>>> monitor bounds the number of possible osds, keeps the size of the
>>>> osdmap down, etc.
>>> 
>>> Note that using the "ceph osd create" command gives you an ID to use
>>> these days, and that's where you should be deriving these from.
>>> There's no support at all for making up your own OSD IDs; sorry.
>> 
>> NOW you tell me.. :) I have a small cluster where I am using the first digit 
>> of the OSD to indicate which server it is in and the second to indicate 
>> which disk in that server it uses. Aside from occasional spurious entries 
>> (for the missing digits) in the CRUSH map it seems to work fine.
>> 
>> Can you elaborate on why this might be Bad? I'm planning and beginning to 
>> deploy a larger cluster and was going to use four-digit OSD id's (two for 
>> the server, two for the disk). What problems should I expect if I do that?
>> 
>> How hard would it be to support making up one's own OSD ID's?
>> 
>> I would also suggest that this be better documented on the website. The 
>> 5-minute quickstart says nothing about ID constraints and offers only 0 and 
>> 1 as examples. The "ceph-conf" page says only that "the instance ID for an 
>> OSD is always numeric". The "add-or-rm-osds" page mentions "ceph osd create" 
>> and its ability to set a "UUID" automatically, but only after several steps 
>> that require you to already know the "osd-number".
> 
> The problem is that these IDs are used as indexes into arrays, and
> people creating their own tends to lead to large and sparse arrays
> which actually become expensive to handle for a variety of reasons.
> Divorcing the "name" and "id" has been a thing in the back of our
> minds for a while but has never made it all the way to something we
> want to work on right now. :/ Until we support that we're pretty
> unlikely to support making up one's own IDs — we used to do so and it
> got people into so much trouble that we turned it off and just rely on
> monitor allocation at this point. It's possible the docs are out of
> date on this subject but they need not to be (John :).

Thanks for clarifying!

Yes, having names instead of ID numbers for OSD's would be superior to just 
handling sparse indexes efficiently. Consider this a vote for that feature, but 
for now I'll do without.

JN

_______________________________________________
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to