Re: [ceph-users] How to get Active set of OSD Map in serial order of osd index

2016-07-27 Thread Syed Hussain
Fundamentally, I wanted to know what chunks are allocated in which OSDs.
This way I can preserve the array structure required for my
Erasure Code. If all the chunks are placed in randomly ordered OSDs (like
in Jerasure or ISA) then I loss that array structure required in the
Encoding/Decoding algorithm of my Plugin.
I'm trying to develop an Erasure Code plugin for RDP (or RAID-DP) kind of
code.

Thanks,
Syed

On Wed, Jul 27, 2016 at 4:12 AM, Samuel Just <sj...@redhat.com> wrote:

> Why do you want them in serial increasing order?
> -Sam
>
> On Tue, Jul 26, 2016 at 2:43 PM, Samuel Just <sj...@redhat.com> wrote:
>
>> How would such a code work if there were more than 24 osds?
>> -Sam
>>
>> On Tue, Jul 26, 2016 at 2:37 PM, Syed Hussain <syed...@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> I'm working to develop an Erasure Code plugin (variation of ISA) that
>>> have typical requirement that the active set of the Erasure Coded pool in
>>> serial order.
>>> For example,
>>>
>>> 
>>> >ceph osd erasure-code-profile set reed_k16m8_isa k=16 m=8 plugin=isa
>>> technique=reed_sol_van ruleset-failure-domain=osd
>>> >ceph osd pool create reed_k16m8_isa_pool 128 128 erasure reed_k16m8_isa
>>> >echo "ABCDEFGHIABCDEFGHIABCDEFGHIABCDEFGHIABCDEFGHIABCDEFGHI" | rados
>>> --pool reed_k16m8_isa_pool put myobj16_8 -
>>> >ceph osd map reed_k16m8_isa_pool myobj16_8
>>> osdmap e86 pool 'reed_k16m8_isa_pool' (1) object 'myobj16_8' -> pg
>>> 1.cf6ec86f (1.6f) -> up
>>> ([4,23,22,10,9,11,15,6,19,1,7,8,17,21,16,14,18,12,13,20,3,5,0,2], p4)
>>> acting ([4,23,22,10,9,11,15,6,19,1,7,8,17,21,16,14,18,12,13,20,3,5,0,2], p4)
>>>
>>> 
>>>
>>> That means the chunks 0, 1, 2, ...23 of the erasure coding are saved int
>>> osd 4, 23, 22, 10, ...2 respectively as per the order given in the active
>>> set.
>>>
>>> Now my question is how I'll be able to get the PG map for object
>>> myobj16_8 having active set as: [0, 1, 2, ...23] so that the i-th chunk of
>>> the Erasure Coded object saves into
>>> i-th osd.
>>>
>>> Is there any option available in "ceph osd pool create" to do it?
>>> Or there may be other way available to accomplish this case.
>>>
>>> Appreciate your suggestions..
>>>
>>> Thanks,
>>> Syed Hussain
>>> NetWorld
>>>
>>> ___
>>> ceph-users mailing list
>>> ceph-users@lists.ceph.com
>>> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
>>>
>>>
>>
>
___
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com


[ceph-users] How to get Active set of OSD Map in serial order of osd index

2016-07-26 Thread Syed Hussain
Hi,

I'm working to develop an Erasure Code plugin (variation of ISA) that have
typical requirement that the active set of the Erasure Coded pool in serial
order.
For example,

>ceph osd erasure-code-profile set reed_k16m8_isa k=16 m=8 plugin=isa
technique=reed_sol_van ruleset-failure-domain=osd
>ceph osd pool create reed_k16m8_isa_pool 128 128 erasure reed_k16m8_isa
>echo "ABCDEFGHIABCDEFGHIABCDEFGHIABCDEFGHIABCDEFGHIABCDEFGHI" | rados
--pool reed_k16m8_isa_pool put myobj16_8 -
>ceph osd map reed_k16m8_isa_pool myobj16_8
osdmap e86 pool 'reed_k16m8_isa_pool' (1) object 'myobj16_8' -> pg
1.cf6ec86f (1.6f) -> up
([4,23,22,10,9,11,15,6,19,1,7,8,17,21,16,14,18,12,13,20,3,5,0,2], p4)
acting ([4,23,22,10,9,11,15,6,19,1,7,8,17,21,16,14,18,12,13,20,3,5,0,2], p4)


That means the chunks 0, 1, 2, ...23 of the erasure coding are saved int
osd 4, 23, 22, 10, ...2 respectively as per the order given in the active
set.

Now my question is how I'll be able to get the PG map for object myobj16_8
having active set as: [0, 1, 2, ...23] so that the i-th chunk of the
Erasure Coded object saves into
i-th osd.

Is there any option available in "ceph osd pool create" to do it?
Or there may be other way available to accomplish this case.

Appreciate your suggestions..

Thanks,
Syed Hussain
NetWorld
___
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com


[ceph-users] ISA and LRC profile doesn't load in freshly created CEPH cluster

2016-02-16 Thread Syed Hussain
Hi,

The erasure coding libraries of both plugins ISA and LRC created in
 ~ceph-10.0.0/src/.libs.
However, the command for creating pool is failing in CEPH cluster (with few
OSDs, Montior,..)
For example,
=
$ceph osd erasure-code-profile set LRCprofile rulesetfailure-domain=osd k=4
m=2 l=3 plugin=lrc directory=.libs --force
*** DEVELOPER MODE: setting PATH, PYTHONPATH and LD_LIBRARY_PATH ***
$~/ceph-10.0.0/src$ ceph osd pool create LRCpool 128 128 erasure  LRCprofile
*** DEVELOPER MODE: setting PATH, PYTHONPATH and LD_LIBRARY_PATH ***
Error EIO: load dlopen(.libs/libec_lrc.so): .libs/libec_lrc.so: cannot open
shared object file: No such file or directoryfailed to load plugin using
profile LRCprofile

=
Same error is occurring for plugin=isa
There is latest version of yasm is installed and libec_isa.so is created as
well in ~/src/.libs


I guess I'm missing some early ceph compilation parameter.
Could you Pl. point out how this issue can be solved.

Thanks,
Syed Abid Hussain
NetApp
___
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com


[ceph-users] Need help on benchmarking new erasure coding

2016-02-08 Thread Syed Hussain
Hi,

I've been developing a new array type of erasure code.

I'll be glad if you can send me few pointers for the two following items:
(1) Required CRUSH map for Array code, e.g. RAID-DP or MSR erasure code.
It is different than normal RS(n, k) or LRC code. For example, for RAID-DP
or RDP (n, k) erasure code, the codeword has k*(k+m) blocks. Question is
how to place these blocks in n device mapped as OSDs?
Could you Pl. suggests...

(2) How to measure the recovery time of a failed OSD in cluster. Is there
any script available
that will perform it and generate the final result?

Thanks,
Syed Abid Hussain
NetApp India
___
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com


Re: [ceph-users] Need help to develop CEPH EC Plugin for array type of Erasure Code

2016-02-02 Thread Syed Hussain
Thanks for the follow-up.

Lets start with normal erasure coding plugin. Here we have k data node and
m parity nodes.
For RDP or RAID-DP or MSR/MBR kind of erasure code the codeword is two
dimensional array.

FOr example, in case of RDP Erasure code the cored is kx(k+m) array. The
codeword has k rows and n columns (i.e. k + m)
The first k columns represents the systematic data and the last m columns
represents the parity data.
Here the object to be divided into kX(k+m) symbols. The RDP Erasure code
has one row parity and rests are diagonal parity.
Pl. make google image for RDP Erasure Code diagram.

I'm I making sense...

Thanks,
Syed

On Mon, Feb 1, 2016 at 9:03 PM, Syed Hussain <syed...@gmail.com> wrote:

> Hi,
>
> I've been working to develop a CEPH EC plgin for array type erasure code,
> for example
> RAID-DP (i.e RDP). Later I realized that I can't continue with (k+m)
> format in CEPH as
> like normal RS code if I want to save disk IO (or Read data).  Since I
> need to ready the individual symbols from each device rather that k
> symbols. One "chunk" from OSD will contain k-symbols
> in contiguous form. The same thing will be an issue for MSR(Minimum
> Storage Regeneration) Erasure code plugin.
>
> As a solution I thought to consider k*k data chunk and k*m coding chunk
> and use LRC kind of
> layering to pass the info (in plugin) which is data chunk and coding chunk.
> However, I've doubt if the decoding API will supply me the correct info on
> lost chunks to get the info on lost erasure coding nodes.
>
> Does anybody have good solution to this issue using CRUSH map?
> Could Pl. suggest any pointer or link that explain the above issue?
>
> Thanks,
> Syed Abid Hussain
>
>
___
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com


[ceph-users] Need help to develop CEPH EC Plugin for array type of Erasure Code

2016-02-01 Thread Syed Hussain
Hi,

I've been working to develop a CEPH EC plgin for array type erasure code,
for example
RAID-DP (i.e RDP). Later I realized that I can't continue with (k+m) format
in CEPH as
like normal RS code if I want to save disk IO (or Read data).  Since I need
to ready the individual symbols from each device rather that k symbols. One
"chunk" from OSD will contain k-symbols
in contiguous form. The same thing will be an issue for MSR(Minimum Storage
Regeneration) Erasure code plugin.

As a solution I thought to consider k*k data chunk and k*m coding chunk and
use LRC kind of
layering to pass the info (in plugin) which is data chunk and coding chunk.
However, I've doubt if the decoding API will supply me the correct info on
lost chunks to get the info on lost erasure coding nodes.

Does anybody have good solution to this issue using CRUSH map?
Could Pl. suggest any pointer or link that explain the above issue?

Thanks,
Syed Abid Hussain
___
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com