From d0732fc96fbc6849dd51b391d85f765c74cfb593 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 9 Oct 2017 08:15:21 -0500 Subject: [PATCH] qa/cephfs: test ec data pool Signed-off-by: Sage Weil --- qa/cephfs/clusters/3-mds.yaml | 4 +- qa/cephfs/clusters/9-mds.yaml | 4 +- .../bluestore-comp-ec-root.yaml | 28 +++++++++++++ qa/cephfs/objectstore-ec/bluestore-comp.yaml | 23 ++++++++++ .../objectstore-ec/bluestore-ec-root.yaml | 42 +++++++++++++++++++ qa/cephfs/objectstore-ec/bluestore.yaml | 38 +++++++++++++++++ qa/cephfs/objectstore-ec/filestore-xfs.yaml | 15 +++++++ qa/suites/fs/32bits/objectstore | 1 - qa/suites/fs/32bits/objectstore-ec | 1 + .../objectstore/bluestore-ec-root.yaml | 1 + qa/suites/fs/basic_workload/objectstore | 1 - qa/suites/fs/basic_workload/objectstore-ec | 1 + .../multiclient/clusters/three_clients.yaml | 2 +- .../fs/multiclient/clusters/two_clients.yaml | 2 +- qa/suites/fs/multiclient/objectstore | 1 - qa/suites/fs/multiclient/objectstore-ec | 1 + .../fs/multifs/clusters/2-remote-clients.yaml | 4 +- qa/suites/fs/multifs/objectstore | 1 - qa/suites/fs/multifs/objectstore-ec | 1 + qa/suites/fs/permission/objectstore | 1 - qa/suites/fs/permission/objectstore-ec | 1 + qa/suites/fs/snaps/objectstore | 1 - qa/suites/fs/snaps/objectstore-ec | 1 + qa/suites/fs/thrash/objectstore | 1 - qa/suites/fs/thrash/objectstore-ec | 1 + qa/suites/fs/traceless/objectstore | 1 - qa/suites/fs/traceless/objectstore-ec | 1 + qa/suites/fs/verify/objectstore | 1 - qa/suites/fs/verify/objectstore-ec | 1 + qa/suites/kcephfs/cephfs/objectstore | 1 - qa/suites/kcephfs/cephfs/objectstore-ec | 1 + qa/suites/kcephfs/mixed-clients/objectstore | 1 - .../kcephfs/mixed-clients/objectstore-ec | 1 + .../recovery/clusters/4-remote-clients.yaml | 4 +- qa/suites/kcephfs/recovery/objectstore | 1 - qa/suites/kcephfs/recovery/objectstore-ec | 1 + qa/suites/kcephfs/thrash/objectstore | 1 - qa/suites/kcephfs/thrash/objectstore-ec | 1 + qa/suites/multimds/basic/objectstore | 1 - qa/suites/multimds/basic/objectstore-ec | 1 + qa/suites/multimds/thrash/objectstore | 1 - qa/suites/multimds/thrash/objectstore-ec | 1 + qa/suites/multimds/verify/objectstore | 1 - qa/suites/multimds/verify/objectstore-ec | 1 + qa/tasks/ceph.py | 3 +- qa/tasks/cephfs/filesystem.py | 22 ++++++++-- 46 files changed, 194 insertions(+), 30 deletions(-) create mode 100644 qa/cephfs/objectstore-ec/bluestore-comp-ec-root.yaml create mode 100644 qa/cephfs/objectstore-ec/bluestore-comp.yaml create mode 100644 qa/cephfs/objectstore-ec/bluestore-ec-root.yaml create mode 100644 qa/cephfs/objectstore-ec/bluestore.yaml create mode 100644 qa/cephfs/objectstore-ec/filestore-xfs.yaml delete mode 120000 qa/suites/fs/32bits/objectstore create mode 120000 qa/suites/fs/32bits/objectstore-ec create mode 120000 qa/suites/fs/basic_functional/objectstore/bluestore-ec-root.yaml delete mode 120000 qa/suites/fs/basic_workload/objectstore create mode 120000 qa/suites/fs/basic_workload/objectstore-ec delete mode 120000 qa/suites/fs/multiclient/objectstore create mode 120000 qa/suites/fs/multiclient/objectstore-ec delete mode 120000 qa/suites/fs/multifs/objectstore create mode 120000 qa/suites/fs/multifs/objectstore-ec delete mode 120000 qa/suites/fs/permission/objectstore create mode 120000 qa/suites/fs/permission/objectstore-ec delete mode 120000 qa/suites/fs/snaps/objectstore create mode 120000 qa/suites/fs/snaps/objectstore-ec delete mode 120000 qa/suites/fs/thrash/objectstore create mode 120000 qa/suites/fs/thrash/objectstore-ec delete mode 120000 qa/suites/fs/traceless/objectstore create mode 120000 qa/suites/fs/traceless/objectstore-ec delete mode 120000 qa/suites/fs/verify/objectstore create mode 120000 qa/suites/fs/verify/objectstore-ec delete mode 120000 qa/suites/kcephfs/cephfs/objectstore create mode 120000 qa/suites/kcephfs/cephfs/objectstore-ec delete mode 120000 qa/suites/kcephfs/mixed-clients/objectstore create mode 120000 qa/suites/kcephfs/mixed-clients/objectstore-ec delete mode 120000 qa/suites/kcephfs/recovery/objectstore create mode 120000 qa/suites/kcephfs/recovery/objectstore-ec delete mode 120000 qa/suites/kcephfs/thrash/objectstore create mode 120000 qa/suites/kcephfs/thrash/objectstore-ec delete mode 120000 qa/suites/multimds/basic/objectstore create mode 120000 qa/suites/multimds/basic/objectstore-ec delete mode 120000 qa/suites/multimds/thrash/objectstore create mode 120000 qa/suites/multimds/thrash/objectstore-ec delete mode 120000 qa/suites/multimds/verify/objectstore create mode 120000 qa/suites/multimds/verify/objectstore-ec diff --git a/qa/cephfs/clusters/3-mds.yaml b/qa/cephfs/clusters/3-mds.yaml index ff35ed1a65b..05c6142f8cb 100644 --- a/qa/cephfs/clusters/3-mds.yaml +++ b/qa/cephfs/clusters/3-mds.yaml @@ -1,4 +1,4 @@ roles: -- [mon.a, mon.c, mgr.y, mds.a, osd.0, osd.1, osd.2] -- [mon.b, mgr.x, mds.b, mds.c, osd.3, osd.4, osd.5] +- [mon.a, mon.c, mgr.y, mds.a, osd.0, osd.1, osd.2, osd.3] +- [mon.b, mgr.x, mds.b, mds.c, osd.4, osd.5, osd.6, osd.7] - [client.0] diff --git a/qa/cephfs/clusters/9-mds.yaml b/qa/cephfs/clusters/9-mds.yaml index c1228b3a1c7..a6342dc0672 100644 --- a/qa/cephfs/clusters/9-mds.yaml +++ b/qa/cephfs/clusters/9-mds.yaml @@ -1,4 +1,4 @@ roles: -- [mon.a, mon.c, mgr.y, mds.a, mds.b, mds.c, mds.d, osd.0, osd.1, osd.2] -- [mon.b, mgr.x, mds.e, mds.f, mds.g, mds.h, mds.i, osd.3, osd.4, osd.5] +- [mon.a, mon.c, mgr.y, mds.a, mds.b, mds.c, mds.d, osd.0, osd.1, osd.2, osd.3] +- [mon.b, mgr.x, mds.e, mds.f, mds.g, mds.h, mds.i, osd.4, osd.5, osd.6, osd.7] - [client.0] diff --git a/qa/cephfs/objectstore-ec/bluestore-comp-ec-root.yaml b/qa/cephfs/objectstore-ec/bluestore-comp-ec-root.yaml new file mode 100644 index 00000000000..9bc487cfc12 --- /dev/null +++ b/qa/cephfs/objectstore-ec/bluestore-comp-ec-root.yaml @@ -0,0 +1,28 @@ +overrides: + thrashosds: + bdev_inject_crash: 2 + bdev_inject_crash_probability: .5 + ceph: + fs: xfs + cephfs_ec_profile: + - m=2 + - k=2 + - crush-failure-domain=osd + conf: + osd: + osd objectstore: bluestore + bluestore block size: 96636764160 + debug bluestore: 20 + debug bluefs: 20 + debug rocksdb: 10 + bluestore compression mode: aggressive + bluestore fsck on mount: true + # lower the full ratios since we can fill up a 100gb osd so quickly + mon osd full ratio: .9 + mon osd backfillfull_ratio: .85 + mon osd nearfull ratio: .8 + osd failsafe full ratio: .95 + +# this doesn't work with failures bc the log writes are not atomic across the two backends +# bluestore bluefs env mirror: true + diff --git a/qa/cephfs/objectstore-ec/bluestore-comp.yaml b/qa/cephfs/objectstore-ec/bluestore-comp.yaml new file mode 100644 index 00000000000..b408032fdef --- /dev/null +++ b/qa/cephfs/objectstore-ec/bluestore-comp.yaml @@ -0,0 +1,23 @@ +overrides: + thrashosds: + bdev_inject_crash: 2 + bdev_inject_crash_probability: .5 + ceph: + fs: xfs + conf: + osd: + osd objectstore: bluestore + bluestore block size: 96636764160 + debug bluestore: 20 + debug bluefs: 20 + debug rocksdb: 10 + bluestore compression mode: aggressive + bluestore fsck on mount: true + # lower the full ratios since we can fill up a 100gb osd so quickly + mon osd full ratio: .9 + mon osd backfillfull_ratio: .85 + mon osd nearfull ratio: .8 + osd failsafe full ratio: .95 + +# this doesn't work with failures bc the log writes are not atomic across the two backends +# bluestore bluefs env mirror: true diff --git a/qa/cephfs/objectstore-ec/bluestore-ec-root.yaml b/qa/cephfs/objectstore-ec/bluestore-ec-root.yaml new file mode 100644 index 00000000000..726ad3d5615 --- /dev/null +++ b/qa/cephfs/objectstore-ec/bluestore-ec-root.yaml @@ -0,0 +1,42 @@ +overrides: + thrashosds: + bdev_inject_crash: 2 + bdev_inject_crash_probability: .5 + ceph: + fs: xfs + cephfs_ec_profile: + - m=2 + - k=2 + - crush-failure-domain=osd + conf: + osd: + osd objectstore: bluestore + bluestore block size: 96636764160 + debug bluestore: 20 + debug bluefs: 20 + debug rocksdb: 10 + bluestore fsck on mount: true + # lower the full ratios since we can fill up a 100gb osd so quickly + mon osd full ratio: .9 + mon osd backfillfull_ratio: .85 + mon osd nearfull ratio: .8 + osd failsafe full ratio: .95 +# this doesn't work with failures bc the log writes are not atomic across the two backends +# bluestore bluefs env mirror: true + ceph-deploy: + fs: xfs + bluestore: yes + conf: + osd: + osd objectstore: bluestore + bluestore block size: 96636764160 + debug bluestore: 20 + debug bluefs: 20 + debug rocksdb: 10 + bluestore fsck on mount: true + # lower the full ratios since we can fill up a 100gb osd so quickly + mon osd full ratio: .9 + mon osd backfillfull_ratio: .85 + mon osd nearfull ratio: .8 + osd failsafe full ratio: .95 + diff --git a/qa/cephfs/objectstore-ec/bluestore.yaml b/qa/cephfs/objectstore-ec/bluestore.yaml new file mode 100644 index 00000000000..19dfeb036ff --- /dev/null +++ b/qa/cephfs/objectstore-ec/bluestore.yaml @@ -0,0 +1,38 @@ +overrides: + thrashosds: + bdev_inject_crash: 2 + bdev_inject_crash_probability: .5 + ceph: + fs: xfs + conf: + osd: + osd objectstore: bluestore + bluestore block size: 96636764160 + debug bluestore: 20 + debug bluefs: 20 + debug rocksdb: 10 + bluestore fsck on mount: true + # lower the full ratios since we can fill up a 100gb osd so quickly + mon osd full ratio: .9 + mon osd backfillfull_ratio: .85 + mon osd nearfull ratio: .8 + osd failsafe full ratio: .95 +# this doesn't work with failures bc the log writes are not atomic across the two backends +# bluestore bluefs env mirror: true + ceph-deploy: + fs: xfs + bluestore: yes + conf: + osd: + osd objectstore: bluestore + bluestore block size: 96636764160 + debug bluestore: 20 + debug bluefs: 20 + debug rocksdb: 10 + bluestore fsck on mount: true + # lower the full ratios since we can fill up a 100gb osd so quickly + mon osd full ratio: .9 + mon osd backfillfull_ratio: .85 + mon osd nearfull ratio: .8 + osd failsafe full ratio: .95 + diff --git a/qa/cephfs/objectstore-ec/filestore-xfs.yaml b/qa/cephfs/objectstore-ec/filestore-xfs.yaml new file mode 100644 index 00000000000..f7aa0dd79c6 --- /dev/null +++ b/qa/cephfs/objectstore-ec/filestore-xfs.yaml @@ -0,0 +1,15 @@ +overrides: + ceph: + fs: xfs + conf: + osd: + osd objectstore: filestore + osd sloppy crc: true + ceph-deploy: + fs: xfs + filestore: True + conf: + osd: + osd objectstore: filestore + osd sloppy crc: true + diff --git a/qa/suites/fs/32bits/objectstore b/qa/suites/fs/32bits/objectstore deleted file mode 120000 index c72da2f82ea..00000000000 --- a/qa/suites/fs/32bits/objectstore +++ /dev/null @@ -1 +0,0 @@ -../../../objectstore_cephfs \ No newline at end of file diff --git a/qa/suites/fs/32bits/objectstore-ec b/qa/suites/fs/32bits/objectstore-ec new file mode 120000 index 00000000000..15dc98f236c --- /dev/null +++ b/qa/suites/fs/32bits/objectstore-ec @@ -0,0 +1 @@ +../../../cephfs/objectstore-ec \ No newline at end of file diff --git a/qa/suites/fs/basic_functional/objectstore/bluestore-ec-root.yaml b/qa/suites/fs/basic_functional/objectstore/bluestore-ec-root.yaml new file mode 120000 index 00000000000..36a4d69cdc7 --- /dev/null +++ b/qa/suites/fs/basic_functional/objectstore/bluestore-ec-root.yaml @@ -0,0 +1 @@ +../../../../cephfs/objectstore-ec/bluestore-ec-root.yaml \ No newline at end of file diff --git a/qa/suites/fs/basic_workload/objectstore b/qa/suites/fs/basic_workload/objectstore deleted file mode 120000 index c72da2f82ea..00000000000 --- a/qa/suites/fs/basic_workload/objectstore +++ /dev/null @@ -1 +0,0 @@ -../../../objectstore_cephfs \ No newline at end of file diff --git a/qa/suites/fs/basic_workload/objectstore-ec b/qa/suites/fs/basic_workload/objectstore-ec new file mode 120000 index 00000000000..a330d661af0 --- /dev/null +++ b/qa/suites/fs/basic_workload/objectstore-ec @@ -0,0 +1 @@ +../../../cephfs/objectstore-ec/ \ No newline at end of file diff --git a/qa/suites/fs/multiclient/clusters/three_clients.yaml b/qa/suites/fs/multiclient/clusters/three_clients.yaml index 78b912f7252..a533af5c620 100644 --- a/qa/suites/fs/multiclient/clusters/three_clients.yaml +++ b/qa/suites/fs/multiclient/clusters/three_clients.yaml @@ -1,5 +1,5 @@ roles: -- [mon.a, mon.b, mon.c, mgr.x, mds.a, osd.0, osd.1, osd.2] +- [mon.a, mon.b, mon.c, mgr.x, mds.a, osd.0, osd.1, osd.2, osd.3] - [client.2] - [client.1] - [client.0] diff --git a/qa/suites/fs/multiclient/clusters/two_clients.yaml b/qa/suites/fs/multiclient/clusters/two_clients.yaml index 9586e6c8ffd..00f3815cbe5 100644 --- a/qa/suites/fs/multiclient/clusters/two_clients.yaml +++ b/qa/suites/fs/multiclient/clusters/two_clients.yaml @@ -1,5 +1,5 @@ roles: -- [mon.a, mon.b, mon.c, mgr.x, mds.a, osd.0, osd.1, osd.2] +- [mon.a, mon.b, mon.c, mgr.x, mds.a, osd.0, osd.1, osd.2, osd.3] - [client.1] - [client.0] diff --git a/qa/suites/fs/multiclient/objectstore b/qa/suites/fs/multiclient/objectstore deleted file mode 120000 index c72da2f82ea..00000000000 --- a/qa/suites/fs/multiclient/objectstore +++ /dev/null @@ -1 +0,0 @@ -../../../objectstore_cephfs \ No newline at end of file diff --git a/qa/suites/fs/multiclient/objectstore-ec b/qa/suites/fs/multiclient/objectstore-ec new file mode 120000 index 00000000000..a330d661af0 --- /dev/null +++ b/qa/suites/fs/multiclient/objectstore-ec @@ -0,0 +1 @@ +../../../cephfs/objectstore-ec/ \ No newline at end of file diff --git a/qa/suites/fs/multifs/clusters/2-remote-clients.yaml b/qa/suites/fs/multifs/clusters/2-remote-clients.yaml index 52c5d7e0171..2ae772c3f27 100644 --- a/qa/suites/fs/multifs/clusters/2-remote-clients.yaml +++ b/qa/suites/fs/multifs/clusters/2-remote-clients.yaml @@ -1,6 +1,6 @@ roles: -- [mon.a, mgr.x, osd.0, mon.b, mds.a, mds.b, client.1] -- [mds.c, mds.d, mon.c, client.0, osd.1, osd.2] +- [mon.a, mgr.x, osd.0, osd.1, osd.2, osd.3, mon.b, mds.a, mds.b, client.1] +- [mds.c, mds.d, mon.c, client.0, osd.4, osd.5, osd.6, osd.7] openstack: - volumes: # attached to each instance count: 2 diff --git a/qa/suites/fs/multifs/objectstore b/qa/suites/fs/multifs/objectstore deleted file mode 120000 index c72da2f82ea..00000000000 --- a/qa/suites/fs/multifs/objectstore +++ /dev/null @@ -1 +0,0 @@ -../../../objectstore_cephfs \ No newline at end of file diff --git a/qa/suites/fs/multifs/objectstore-ec b/qa/suites/fs/multifs/objectstore-ec new file mode 120000 index 00000000000..a330d661af0 --- /dev/null +++ b/qa/suites/fs/multifs/objectstore-ec @@ -0,0 +1 @@ +../../../cephfs/objectstore-ec/ \ No newline at end of file diff --git a/qa/suites/fs/permission/objectstore b/qa/suites/fs/permission/objectstore deleted file mode 120000 index c72da2f82ea..00000000000 --- a/qa/suites/fs/permission/objectstore +++ /dev/null @@ -1 +0,0 @@ -../../../objectstore_cephfs \ No newline at end of file diff --git a/qa/suites/fs/permission/objectstore-ec b/qa/suites/fs/permission/objectstore-ec new file mode 120000 index 00000000000..a330d661af0 --- /dev/null +++ b/qa/suites/fs/permission/objectstore-ec @@ -0,0 +1 @@ +../../../cephfs/objectstore-ec/ \ No newline at end of file diff --git a/qa/suites/fs/snaps/objectstore b/qa/suites/fs/snaps/objectstore deleted file mode 120000 index c72da2f82ea..00000000000 --- a/qa/suites/fs/snaps/objectstore +++ /dev/null @@ -1 +0,0 @@ -../../../objectstore_cephfs \ No newline at end of file diff --git a/qa/suites/fs/snaps/objectstore-ec b/qa/suites/fs/snaps/objectstore-ec new file mode 120000 index 00000000000..a330d661af0 --- /dev/null +++ b/qa/suites/fs/snaps/objectstore-ec @@ -0,0 +1 @@ +../../../cephfs/objectstore-ec/ \ No newline at end of file diff --git a/qa/suites/fs/thrash/objectstore b/qa/suites/fs/thrash/objectstore deleted file mode 120000 index c72da2f82ea..00000000000 --- a/qa/suites/fs/thrash/objectstore +++ /dev/null @@ -1 +0,0 @@ -../../../objectstore_cephfs \ No newline at end of file diff --git a/qa/suites/fs/thrash/objectstore-ec b/qa/suites/fs/thrash/objectstore-ec new file mode 120000 index 00000000000..a330d661af0 --- /dev/null +++ b/qa/suites/fs/thrash/objectstore-ec @@ -0,0 +1 @@ +../../../cephfs/objectstore-ec/ \ No newline at end of file diff --git a/qa/suites/fs/traceless/objectstore b/qa/suites/fs/traceless/objectstore deleted file mode 120000 index c72da2f82ea..00000000000 --- a/qa/suites/fs/traceless/objectstore +++ /dev/null @@ -1 +0,0 @@ -../../../objectstore_cephfs \ No newline at end of file diff --git a/qa/suites/fs/traceless/objectstore-ec b/qa/suites/fs/traceless/objectstore-ec new file mode 120000 index 00000000000..a330d661af0 --- /dev/null +++ b/qa/suites/fs/traceless/objectstore-ec @@ -0,0 +1 @@ +../../../cephfs/objectstore-ec/ \ No newline at end of file diff --git a/qa/suites/fs/verify/objectstore b/qa/suites/fs/verify/objectstore deleted file mode 120000 index c72da2f82ea..00000000000 --- a/qa/suites/fs/verify/objectstore +++ /dev/null @@ -1 +0,0 @@ -../../../objectstore_cephfs \ No newline at end of file diff --git a/qa/suites/fs/verify/objectstore-ec b/qa/suites/fs/verify/objectstore-ec new file mode 120000 index 00000000000..a330d661af0 --- /dev/null +++ b/qa/suites/fs/verify/objectstore-ec @@ -0,0 +1 @@ +../../../cephfs/objectstore-ec/ \ No newline at end of file diff --git a/qa/suites/kcephfs/cephfs/objectstore b/qa/suites/kcephfs/cephfs/objectstore deleted file mode 120000 index c72da2f82ea..00000000000 --- a/qa/suites/kcephfs/cephfs/objectstore +++ /dev/null @@ -1 +0,0 @@ -../../../objectstore_cephfs \ No newline at end of file diff --git a/qa/suites/kcephfs/cephfs/objectstore-ec b/qa/suites/kcephfs/cephfs/objectstore-ec new file mode 120000 index 00000000000..15dc98f236c --- /dev/null +++ b/qa/suites/kcephfs/cephfs/objectstore-ec @@ -0,0 +1 @@ +../../../cephfs/objectstore-ec \ No newline at end of file diff --git a/qa/suites/kcephfs/mixed-clients/objectstore b/qa/suites/kcephfs/mixed-clients/objectstore deleted file mode 120000 index c72da2f82ea..00000000000 --- a/qa/suites/kcephfs/mixed-clients/objectstore +++ /dev/null @@ -1 +0,0 @@ -../../../objectstore_cephfs \ No newline at end of file diff --git a/qa/suites/kcephfs/mixed-clients/objectstore-ec b/qa/suites/kcephfs/mixed-clients/objectstore-ec new file mode 120000 index 00000000000..15dc98f236c --- /dev/null +++ b/qa/suites/kcephfs/mixed-clients/objectstore-ec @@ -0,0 +1 @@ +../../../cephfs/objectstore-ec \ No newline at end of file diff --git a/qa/suites/kcephfs/recovery/clusters/4-remote-clients.yaml b/qa/suites/kcephfs/recovery/clusters/4-remote-clients.yaml index 1d432addb4a..b1072e3be16 100644 --- a/qa/suites/kcephfs/recovery/clusters/4-remote-clients.yaml +++ b/qa/suites/kcephfs/recovery/clusters/4-remote-clients.yaml @@ -1,6 +1,6 @@ roles: -- [mon.a, osd.0, mds.a, mds.c, client.2] -- [mgr.x, osd.1, osd.2, mds.b, mds.d, client.3] +- [mon.a, osd.0, osd.1, osd.2, osd.3, mds.a, mds.c, client.2] +- [mgr.x, osd.4, osd.5, osd.6, osd.7, mds.b, mds.d, client.3] - [client.0] - [client.1] openstack: diff --git a/qa/suites/kcephfs/recovery/objectstore b/qa/suites/kcephfs/recovery/objectstore deleted file mode 120000 index c72da2f82ea..00000000000 --- a/qa/suites/kcephfs/recovery/objectstore +++ /dev/null @@ -1 +0,0 @@ -../../../objectstore_cephfs \ No newline at end of file diff --git a/qa/suites/kcephfs/recovery/objectstore-ec b/qa/suites/kcephfs/recovery/objectstore-ec new file mode 120000 index 00000000000..15dc98f236c --- /dev/null +++ b/qa/suites/kcephfs/recovery/objectstore-ec @@ -0,0 +1 @@ +../../../cephfs/objectstore-ec \ No newline at end of file diff --git a/qa/suites/kcephfs/thrash/objectstore b/qa/suites/kcephfs/thrash/objectstore deleted file mode 120000 index c72da2f82ea..00000000000 --- a/qa/suites/kcephfs/thrash/objectstore +++ /dev/null @@ -1 +0,0 @@ -../../../objectstore_cephfs \ No newline at end of file diff --git a/qa/suites/kcephfs/thrash/objectstore-ec b/qa/suites/kcephfs/thrash/objectstore-ec new file mode 120000 index 00000000000..15dc98f236c --- /dev/null +++ b/qa/suites/kcephfs/thrash/objectstore-ec @@ -0,0 +1 @@ +../../../cephfs/objectstore-ec \ No newline at end of file diff --git a/qa/suites/multimds/basic/objectstore b/qa/suites/multimds/basic/objectstore deleted file mode 120000 index c72da2f82ea..00000000000 --- a/qa/suites/multimds/basic/objectstore +++ /dev/null @@ -1 +0,0 @@ -../../../objectstore_cephfs \ No newline at end of file diff --git a/qa/suites/multimds/basic/objectstore-ec b/qa/suites/multimds/basic/objectstore-ec new file mode 120000 index 00000000000..15dc98f236c --- /dev/null +++ b/qa/suites/multimds/basic/objectstore-ec @@ -0,0 +1 @@ +../../../cephfs/objectstore-ec \ No newline at end of file diff --git a/qa/suites/multimds/thrash/objectstore b/qa/suites/multimds/thrash/objectstore deleted file mode 120000 index c72da2f82ea..00000000000 --- a/qa/suites/multimds/thrash/objectstore +++ /dev/null @@ -1 +0,0 @@ -../../../objectstore_cephfs \ No newline at end of file diff --git a/qa/suites/multimds/thrash/objectstore-ec b/qa/suites/multimds/thrash/objectstore-ec new file mode 120000 index 00000000000..15dc98f236c --- /dev/null +++ b/qa/suites/multimds/thrash/objectstore-ec @@ -0,0 +1 @@ +../../../cephfs/objectstore-ec \ No newline at end of file diff --git a/qa/suites/multimds/verify/objectstore b/qa/suites/multimds/verify/objectstore deleted file mode 120000 index c72da2f82ea..00000000000 --- a/qa/suites/multimds/verify/objectstore +++ /dev/null @@ -1 +0,0 @@ -../../../objectstore_cephfs \ No newline at end of file diff --git a/qa/suites/multimds/verify/objectstore-ec b/qa/suites/multimds/verify/objectstore-ec new file mode 120000 index 00000000000..15dc98f236c --- /dev/null +++ b/qa/suites/multimds/verify/objectstore-ec @@ -0,0 +1 @@ +../../../cephfs/objectstore-ec \ No newline at end of file diff --git a/qa/tasks/ceph.py b/qa/tasks/ceph.py index a37fec1c070..1c345926a55 100644 --- a/qa/tasks/ceph.py +++ b/qa/tasks/ceph.py @@ -365,7 +365,8 @@ def cephfs_setup(ctx, config): if mdss.remotes: log.info('Setting up CephFS filesystem...') - fs = Filesystem(ctx, name='cephfs', create=True) + fs = Filesystem(ctx, name='cephfs', create=True, + ec_profile=config.get('cephfs_ec_profile', None)) is_active_mds = lambda role: 'mds.' in role and not role.endswith('-s') and '-s-' not in role all_roles = [item for remote_roles in mdss.remotes.values() for item in remote_roles] diff --git a/qa/tasks/cephfs/filesystem.py b/qa/tasks/cephfs/filesystem.py index 44f6cbaf16d..9638fd55c96 100644 --- a/qa/tasks/cephfs/filesystem.py +++ b/qa/tasks/cephfs/filesystem.py @@ -374,10 +374,12 @@ class Filesystem(MDSCluster): This object is for driving a CephFS filesystem. The MDS daemons driven by MDSCluster may be shared with other Filesystems. """ - def __init__(self, ctx, fscid=None, name=None, create=False): + def __init__(self, ctx, fscid=None, name=None, create=False, + ec_profile=None): super(Filesystem, self).__init__(ctx) self.name = name + self.ec_profile = ec_profile self.id = None self.metadata_pool_name = None self.metadata_overlay = False @@ -473,8 +475,22 @@ class Filesystem(MDSCluster): self.name, self.metadata_pool_name, data_pool_name, '--allow-dangerous-metadata-overlay') else: - self.mon_manager.raw_cluster_cmd('osd', 'pool', 'create', - data_pool_name, pgs_per_fs_pool.__str__()) + if self.ec_profile: + log.info("EC profile is %s", self.ec_profile) + cmd = ['osd', 'erasure-code-profile', 'set', data_pool_name] + cmd.extend(self.ec_profile) + self.mon_manager.raw_cluster_cmd(*cmd) + self.mon_manager.raw_cluster_cmd( + 'osd', 'pool', 'create', + data_pool_name, pgs_per_fs_pool.__str__(), 'erasure', + data_pool_name) + self.mon_manager.raw_cluster_cmd( + 'osd', 'pool', 'set', + data_pool_name, 'allow_ec_overwrites', 'true') + else: + self.mon_manager.raw_cluster_cmd( + 'osd', 'pool', 'create', + data_pool_name, pgs_per_fs_pool.__str__()) self.mon_manager.raw_cluster_cmd('fs', 'new', self.name, self.metadata_pool_name, data_pool_name) self.check_pool_application(self.metadata_pool_name) -- 2.47.3