]> git.apps.os.sepia.ceph.com Git - teuthology.git/commit
erasure-code: separate profile from pool creation 271/head
authorLoic Dachary <loic@dachary.org>
Tue, 10 Jun 2014 15:17:26 +0000 (17:17 +0200)
committerLoic Dachary <loic@dachary.org>
Mon, 30 Jun 2014 20:43:57 +0000 (22:43 +0200)
commit98e061765177630f4814bf3ad0b511c70f7580cb
treec8b9a765569ac90011ce7725238f95d1e43f9179
parent6b948075957e2a12854706858ebda38a56efc411
erasure-code: separate profile from pool creation

Instead of being hard coded, the erasure code profile is read from yaml
as:

    erasure_code_profile:
      name: teuthologyprofile
      k: 2
      m: 1
      ruleset-failure-domain: osd

Which translates into

    ceph osd erasure-code-profile set teuthologyprofile \
        k=2 m=1 ruleset-failure-domain=osd

The semantic of k/m etc. depends on the erasure code plugin, but it is
common to use k as the dividing factor for each object and m as the
number of coding chunks.

Using a different set of parameters or a different plugin can
be done without modifying the teuthology code:

    erasure_code_profile:
      name: LRCprofile
      plugin: LRC
      mapping: __DD__DD
      layers: [[ "_cDD_cDD", "" ], [ "cDDD____", "" ], [ "____cDDD", ""]]

For backward compatibility, the default erasure code profile is set to

      k: 2
      m: 1
      ruleset-failure-domain: osd

which matches the previously hardcoded default of the corresponding
functions.

Signed-off-by: Loic Dachary <loic@dachary.org>
teuthology/task/ceph_manager.py
teuthology/task/rados.py
teuthology/task/radosbench.py
teuthology/task_util/rados.py
teuthology/task_util/test/__init__.py [new file with mode: 0644]
teuthology/task_util/test/test_rados.py [new file with mode: 0644]