Hi Zack, In order to test locally repairable codes ( described at https://wiki.ceph.com/Planning/Blueprints/Giant/Pyramid_Erasure_Code and documented at https://github.com/dachary/ceph/commit/2ae645438243232392c11fd80fd960f6221fd2a0#diff-5518964bc98a094a784ce2d17a5b0cc1R20 ) it would be a convenient to set the erasure code profile without modifying the teuthology code. There are not too many instances of hardcoded parameters: https://github.com/ceph/teuthology/blob/master/teuthology/task_util/rados.py#L27 https://github.com/ceph/teuthology/blob/master/teuthology/task/ceph_manager.py#L732 and it could be generalized. In a nutshell, the definition of an erasure coded profile is a set of key value which should default to: k: 2 m: 1 plugin: jerasure ruleset-failure-domain: osd and self.raw_cluster_cmd('osd', 'erasure-code-profile', 'set', 'teuthologyprofile', 'ruleset-failure-domain=osd', 'm='+str(ec_m), 'k='+str(ec_k)) could be replaced with: self.raw_cluster_cmd('osd', 'erasure-code-profile', 'set', 'teuthologyprofile', **kwargs) assuming kwargs is the above map parsed from the yaml. Any advice you may have on the implementation would be very welcome :-) Cheers -- Loïc Dachary, Artisan Logiciel Libre
Attachment:
signature.asc
Description: OpenPGP digital signature