Hi,

you can actually specify the feature you want to enable at creation time so 
this way no need to remove the feature after.

To illustrate Ilya’s message: rbd create rbd/test --size=128M 
--image-feature=layering,striping --stripe-count=8 --stripe-unit=4K

The object size is hereby left to the default but it can also be altered with 
--object-size

Best regards
JC


> On Jan 9, 2020, at 18:32, Kyriazis, George <george.kyria...@intel.com> wrote:
> 
> 
> 
>> On Jan 9, 2020, at 2:16 PM, Ilya Dryomov <idryo...@gmail.com 
>> <mailto:idryo...@gmail.com>> wrote:
>> 
>> On Thu, Jan 9, 2020 at 2:52 PM Kyriazis, George
>> <george.kyria...@intel.com <mailto:george.kyria...@intel.com>> wrote:
>>> 
>>> Hello ceph-users!
>>> 
>>> My setup is that I’d like to use RBD images as a replication target of a 
>>> FreeNAS zfs pool.  I have a 2nd FreeNAS (in a VM) to act as a backup target 
>>> in which I mount the RBD image.  All this (except the source FreeNAS 
>>> server) is in Proxmox.
>>> 
>>> Since I am using RBD as a backup target, performance is not really 
>>> critical, but I still don’t want it to take months to complete the backup.  
>>> My source pool size is in the order of ~30TB.
>>> 
>>> I’ve set up an EC RBD pool (and the matching replicated pool) and created 
>>> image with no problems.  However, with the stock 4MB object size, backup 
>>> speed in quite slow.  I tried creating an image with 4K object size, but 
>>> even for a relatively small image size (of 1TB), I get:
>>> 
>>> # rbd -p rbd_backup create vm-118-disk-0 --size 1T --object-size 4K 
>>> --data-pool rbd_ec
>>> 2020-01-09 07:40:27.120 7f3e4aa15f40 -1 librbd::image::CreateRequest: 
>>> validate_layout: image size not compatible with object map
>>> rbd: create error: (22) Invalid argument
>>> #
>> 
>> Yeah, this is an object map limitation.  Given that this is a backup
>> target, you don't really need the object map feature.  Disable it with
>> "rbd feature disable vm-118-disk-0 object-map" and you should be able
>> to create an image of any size.
>> 
> Hmm.. Except I can’t disable a feature on a image that I haven’t created yet. 
> :-). I can start creating a smaller image, and resize after I remove that 
> feature.
> 
>> That said, are you sure that object size is the issue?  If you expect
>> small sequential writes and want them to go to different OSDs, look at
>> using a fancy striping pattern instead of changing the object size:
>> 
>>  https://docs.ceph.com/docs/master/man/8/rbd/#striping 
>> <https://docs.ceph.com/docs/master/man/8/rbd/#striping>
>> 
>> E.g. with --stripe-unit 4K --stripe-count 8, the first 4K will go to
>> object 1, the second 4K to object 2, etc.  The ninth 4K will return to
>> object 1, the tenth to object 2, etc.  When objects 1-8 become full, it
>> will move on to objects 9-16, then to 17-24, etc.
>> 
>> This way you get the increased parallelism without the very significant
>> overhead of tons of small objects (if your OSDs are capable enough).
>> 
> Thanks for the suggestions.  After yours and Stefan’s suggestions, I’ll 
> experiment a little bit with various parameters and see what gets me the best 
> performance.
> 
> Thanks all!
> 
> George
> 
>> Thanks,
>> 
>>                Ilya
> 
> _______________________________________________
> ceph-users mailing list
> ceph-users@lists.ceph.com <mailto:ceph-users@lists.ceph.com>
> http://lists.ceph.com/listinfo.cgi/ceph-users-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

Reply via email to