Hi,

I want to create a block image using the rbd cli and followng the rule:  
stripe-unit *  stripe-count = 2^order,
Take for example:
rbd create --pool rbd --size 20480 --order 21 --image-format 2 --stripe-unit 
1048576 --stripe-count 2 image1

But when I try to map to a block device then raise a message: rbd: add failed: 
(22) Invalid argument
check the linux kernel(Linux nodeclient 3.11.0-12-generic #19-Ubuntu SMP Wed 
Oct 9 16:20:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux) log
dmesg | grep rbd
 rbd: image image1: unsupported stripe unit (got 1048576 want 2097152)
I guess the rbd kernel does not support the 'fancy striping', after I read the 
kernel code rbd.c
----------------------------------------------------------------------------------------------------------------------
if (stripe_unit != obj_size) {
        rbd_warn(rbd_dev, "unsupported stripe unit "
                "(got %llu want %llu)",
                stripe_unit, obj_size);
        return -EINVAL;
    }
    stripe_count = ceph_decode_64(&p);
    if (stripe_count != 1) {
        rbd_warn(rbd_dev, "unsupported stripe count "
                "(got %llu want 1)", stripe_count);
        return -EINVAL;
    }
-----------------------------------------------------------------------------------------------------------------

So how to enable/test the 'fancy striping' features, please help!

Best Regards,
Jian LI

_______________________________________________
ceph-users mailing list
[email protected]
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to