Re: Crush - nuts and bolts

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

 



First off either on write / on read, client access to primary OSD
directly first. More specifically clients access to the MON 1st to get
cluster map, then primary OSD.

So it doesn't matter to think of difference between write/read. Only
difference between those 2 operations basically is that you must wait
for ack from replica OSD(s) to primary OSD before you get ack from
primary OSD.

How objects locations are calculated is:

 #1 Hash the object name
 #2 Calculate the has modulo the number of PGs
 #3 Get the pool id
 #4 Prepends the pool id to result of #2 to get the PG

To find object location, what you need to do is:

 # ceph osd map <pool name> <object name>
  e.g.,
   ceph osd map rbd HOSTS
   osdmap e11 pool 'rbd' (0) object 'HOSTS' -> pg 0.bc5444d9 (0.1) ->
up ([2,0,1], p2) acting ([2,0,1], p2)

Actual location of object on OSD(s) is:
 e.g.,
 ls /var/lib/ceph/osd/ceph-2/current/0.1_head/
 __head_00000001__0  HOSTS__head_BC5444D9__0

On Fri, Dec 30, 2016 at 8:55 AM, Ukko <ukkohakkarainen@xxxxxxxxx> wrote:
> Hi Shinobe,
>
> The documentation did not help me. I could not find the info on how the
> location for the object to be written gets selected, nor on the client side,
> how is the object's to be read location calculated.
>
> So in an environment of 10 storage nodes, 10 OSDs in each, size 3, 2 pools,
> 10 PGs each. How objectA (10 kB), objectB (10 MB), and objectC (10 GB) get
> located on write? How are the located by client on read? :)
>
> On Thu, Dec 29, 2016 at 2:01 PM, Ukko Hakkarainen
> <ukkohakkarainen@xxxxxxxxx> wrote:
>>
>> Shinobe,
>>
>> I'll re-check if the info I'm after is there, I recall not. I'll get back
>> to you later.
>>
>> Thanks!
>>
>> > Shinobu Kinjo <skinjo@xxxxxxxxxx> kirjoitti 29.12.2016 kello 5.28:
>> >
>> > Please see the following:
>> >
>> > http://docs.ceph.com/docs/giant/architecture/
>> >
>> > Everything you would want to know about is there.
>> >
>> > Regards,
>> >
>> >> On Thu, Dec 29, 2016 at 8:27 AM, Ukko <ukkohakkarainen@xxxxxxxxx>
>> >> wrote:
>> >> I'd be interested in CRUSH algorithm simplified in series of
>> >> pictures. How does a storage node write and client  read, and
>> >> how do they calculate what they're after? What gets where/Where is it
>> >> found/Why?
>> >>
>> >> I suggest over-simplified storage system of e.g. 1 monitor, 4 storage
>> >> nodes,
>> >> 2 OSDs/node,
>> >> 3 PGs/OSD, 2 pools?
>> >>
>> >> http://ceph.com/papers/weil-crush-sc06.pdf did not solve this for me.
>> >>
>> >>
>> >>
>> >> _______________________________________________
>> >> 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