diff options
author | Ilya Dryomov <idryomov@gmail.com> | 2024-08-23 10:20:47 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-23 10:20:47 +0200 |
commit | 9ac05d90305af9e460e3ba23e17597ae681dc3a5 (patch) | |
tree | e4857eef9c05287dbd113620a8b56b558d2d6d50 /qa/suites | |
parent | Merge pull request #59393 from anthonyeleven/caps-man-caps (diff) | |
parent | qa/workunits/rbd: exercise snap_{name,id} parsing in test_import_native_format() (diff) | |
download | ceph-9ac05d90305af9e460e3ba23e17597ae681dc3a5.tar.xz ceph-9ac05d90305af9e460e3ba23e17597ae681dc3a5.zip |
Merge pull request #44470 from orozery/rbd-external-migrate
librbd/migration: add external clusters support
Reviewed-by: Mykola Golub <mgolub@suse.com>
Reviewed-by: Ramana Raja <rraja@redhat.com>
Diffstat (limited to 'qa/suites')
20 files changed, 151 insertions, 0 deletions
diff --git a/qa/suites/rbd/migration-external/% b/qa/suites/rbd/migration-external/% new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/qa/suites/rbd/migration-external/% diff --git a/qa/suites/rbd/migration-external/.qa b/qa/suites/rbd/migration-external/.qa new file mode 120000 index 00000000000..a602a0353e7 --- /dev/null +++ b/qa/suites/rbd/migration-external/.qa @@ -0,0 +1 @@ +../.qa/
\ No newline at end of file diff --git a/qa/suites/rbd/migration-external/1-base/.qa b/qa/suites/rbd/migration-external/1-base/.qa new file mode 120000 index 00000000000..a602a0353e7 --- /dev/null +++ b/qa/suites/rbd/migration-external/1-base/.qa @@ -0,0 +1 @@ +../.qa/
\ No newline at end of file diff --git a/qa/suites/rbd/migration-external/1-base/install.yaml b/qa/suites/rbd/migration-external/1-base/install.yaml new file mode 100644 index 00000000000..0728d3f206a --- /dev/null +++ b/qa/suites/rbd/migration-external/1-base/install.yaml @@ -0,0 +1,8 @@ +meta: +- desc: run two ceph clusters +tasks: +- install: +- ceph: + cluster: cluster1 +- ceph: + cluster: cluster2 diff --git a/qa/suites/rbd/migration-external/2-clusters/.qa b/qa/suites/rbd/migration-external/2-clusters/.qa new file mode 120000 index 00000000000..a602a0353e7 --- /dev/null +++ b/qa/suites/rbd/migration-external/2-clusters/.qa @@ -0,0 +1 @@ +../.qa/
\ No newline at end of file diff --git a/qa/suites/rbd/migration-external/2-clusters/2-node.yaml b/qa/suites/rbd/migration-external/2-clusters/2-node.yaml new file mode 100644 index 00000000000..848e63055e9 --- /dev/null +++ b/qa/suites/rbd/migration-external/2-clusters/2-node.yaml @@ -0,0 +1,15 @@ +meta: +- desc: 2 ceph clusters with 1 mon and 3 osds each +roles: +- - cluster1.mon.a + - cluster1.mgr.x + - cluster1.osd.0 + - cluster1.osd.1 + - cluster1.osd.2 + - cluster1.client.0 +- - cluster2.mon.a + - cluster2.mgr.x + - cluster2.osd.0 + - cluster2.osd.1 + - cluster2.osd.2 + - cluster2.client.0 diff --git a/qa/suites/rbd/migration-external/3-objectstore b/qa/suites/rbd/migration-external/3-objectstore new file mode 120000 index 00000000000..c40bd326145 --- /dev/null +++ b/qa/suites/rbd/migration-external/3-objectstore @@ -0,0 +1 @@ +.qa/objectstore
\ No newline at end of file diff --git a/qa/suites/rbd/migration-external/4-supported-random-distro$ b/qa/suites/rbd/migration-external/4-supported-random-distro$ new file mode 120000 index 00000000000..0862b4457b3 --- /dev/null +++ b/qa/suites/rbd/migration-external/4-supported-random-distro$ @@ -0,0 +1 @@ +.qa/distros/supported-random-distro$
\ No newline at end of file diff --git a/qa/suites/rbd/migration-external/5-data-pool/.qa b/qa/suites/rbd/migration-external/5-data-pool/.qa new file mode 120000 index 00000000000..a602a0353e7 --- /dev/null +++ b/qa/suites/rbd/migration-external/5-data-pool/.qa @@ -0,0 +1 @@ +../.qa/
\ No newline at end of file diff --git a/qa/suites/rbd/migration-external/5-data-pool/ec.yaml b/qa/suites/rbd/migration-external/5-data-pool/ec.yaml new file mode 100644 index 00000000000..f8a39979f97 --- /dev/null +++ b/qa/suites/rbd/migration-external/5-data-pool/ec.yaml @@ -0,0 +1,29 @@ +tasks: +- exec: + cluster1.client.0: + - sudo ceph --cluster cluster1 osd erasure-code-profile set teuthologyprofile crush-failure-domain=osd m=1 k=2 + - sudo ceph --cluster cluster1 osd pool create datapool 4 4 erasure teuthologyprofile + - sudo ceph --cluster cluster1 osd pool set datapool allow_ec_overwrites true + - rbd --cluster cluster1 pool init datapool + cluster2.client.0: + - sudo ceph --cluster cluster2 osd erasure-code-profile set teuthologyprofile crush-failure-domain=osd m=1 k=2 + - sudo ceph --cluster cluster2 osd pool create datapool 4 4 erasure teuthologyprofile + - sudo ceph --cluster cluster2 osd pool set datapool allow_ec_overwrites true + - rbd --cluster cluster2 pool init datapool + +overrides: + thrashosds: + bdev_inject_crash: 2 + bdev_inject_crash_probability: .5 + ceph: + fs: xfs + conf: + client: + rbd default data pool: datapool + osd: # force bluestore since it's required for ec overwrites + osd objectstore: bluestore + bluestore block size: 96636764160 + enable experimental unrecoverable data corrupting features: "*" + osd debug randomize hobject sort order: false +# 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/suites/rbd/migration-external/5-data-pool/none.yaml b/qa/suites/rbd/migration-external/5-data-pool/none.yaml new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/qa/suites/rbd/migration-external/5-data-pool/none.yaml diff --git a/qa/suites/rbd/migration-external/5-data-pool/replicated.yaml b/qa/suites/rbd/migration-external/5-data-pool/replicated.yaml new file mode 100644 index 00000000000..3ecbaf8c127 --- /dev/null +++ b/qa/suites/rbd/migration-external/5-data-pool/replicated.yaml @@ -0,0 +1,14 @@ +tasks: +- exec: + cluster1.client.0: + - sudo ceph --cluster cluster1 osd pool create datapool 4 + - rbd --cluster cluster1 pool init datapool + cluster2.client.0: + - sudo ceph --cluster cluster2 osd pool create datapool 4 + - rbd --cluster cluster2 pool init datapool + +overrides: + ceph: + conf: + client: + rbd default data pool: datapool diff --git a/qa/suites/rbd/migration-external/6-prepare/.qa b/qa/suites/rbd/migration-external/6-prepare/.qa new file mode 120000 index 00000000000..a602a0353e7 --- /dev/null +++ b/qa/suites/rbd/migration-external/6-prepare/.qa @@ -0,0 +1 @@ +../.qa/
\ No newline at end of file diff --git a/qa/suites/rbd/migration-external/6-prepare/native-clone.yaml b/qa/suites/rbd/migration-external/6-prepare/native-clone.yaml new file mode 100644 index 00000000000..2ca92dccfde --- /dev/null +++ b/qa/suites/rbd/migration-external/6-prepare/native-clone.yaml @@ -0,0 +1,29 @@ +tasks: + - exec: + cluster2.client.0: + - echo '{"type":"qcow","stream":{"type":"http","url":"http://download.ceph.com/qa/ubuntu-12.04.qcow2"}}' | rbd --cluster cluster2 migration prepare --import-only --source-spec-path - client.0.0-src + - rbd --cluster cluster2 migration execute client.0.0-src + - rbd --cluster cluster2 migration commit client.0.0-src + - rbd --cluster cluster2 snap create client.0.0-src@snap + - rbd --cluster cluster2 snap protect client.0.0-src@snap + - rbd --cluster cluster2 clone client.0.0-src@snap client.0.0 + - rbd --cluster cluster2 snap create client.0.0@snap + - rbd --cluster cluster2 create --size 1G client.0.1-src + - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 1M client.0.1-src + - rbd --cluster cluster2 snap create client.0.1-src@snap + - rbd --cluster cluster2 snap protect client.0.1-src@snap + - rbd --cluster cluster2 clone client.0.1-src@snap client.0.1 + - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 1M client.0.1 + - rbd --cluster cluster2 snap create client.0.1@snap + - rbd --cluster cluster2 create --size 1G client.0.2-src + - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 1M client.0.2-src + - rbd --cluster cluster2 snap create client.0.2-src@snap + - rbd --cluster cluster2 snap protect client.0.2-src@snap + - rbd --cluster cluster2 clone client.0.2-src@snap client.0.2 + - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 2M client.0.2 + - rbd --cluster cluster2 snap create client.0.2@snap + - exec: + cluster1.client.0: + - echo '{"type":"native","cluster_name":"cluster2","client_name":"client.admin","pool_name":"rbd","image_name":"client.0.0","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.0 + - echo '{"type":"native","cluster_name":"cluster2","client_name":"client.admin","pool_name":"rbd","image_name":"client.0.1","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.1 + - echo '{"type":"native","cluster_name":"cluster2","client_name":"client.admin","pool_name":"rbd","image_name":"client.0.2","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.2 diff --git a/qa/suites/rbd/migration-external/6-prepare/native-standalone.yaml b/qa/suites/rbd/migration-external/6-prepare/native-standalone.yaml new file mode 100644 index 00000000000..5fdf4d35c26 --- /dev/null +++ b/qa/suites/rbd/migration-external/6-prepare/native-standalone.yaml @@ -0,0 +1,18 @@ +tasks: + - exec: + cluster2.client.0: + - echo '{"type":"qcow","stream":{"type":"http","url":"http://download.ceph.com/qa/ubuntu-12.04.qcow2"}}' | rbd --cluster cluster2 migration prepare --import-only --source-spec-path - client.0.0 + - rbd --cluster cluster2 migration execute client.0.0 + - rbd --cluster cluster2 migration commit client.0.0 + - rbd --cluster cluster2 snap create client.0.0@snap + - rbd --cluster cluster2 create --size 1G client.0.1 + - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 2M client.0.1 + - rbd --cluster cluster2 snap create client.0.1@snap + - rbd --cluster cluster2 create --size 1G client.0.2 + - rbd --cluster cluster2 bench --io-type write --io-pattern rand --io-size 16K --io-threads 1 --io-total 2M client.0.2 + - rbd --cluster cluster2 snap create client.0.2@snap + - exec: + cluster1.client.0: + - echo '{"type":"native","cluster_name":"cluster2","client_name":"client.admin","pool_name":"rbd","image_name":"client.0.0","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.0 + - echo '{"type":"native","cluster_name":"cluster2","client_name":"client.admin","pool_name":"rbd","image_name":"client.0.1","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.1 + - echo '{"type":"native","cluster_name":"cluster2","client_name":"client.admin","pool_name":"rbd","image_name":"client.0.2","snap_name":"snap"}' | rbd --cluster cluster1 migration prepare --import-only --source-spec-path - client.0.2 diff --git a/qa/suites/rbd/migration-external/7-io-workloads/.qa b/qa/suites/rbd/migration-external/7-io-workloads/.qa new file mode 120000 index 00000000000..a602a0353e7 --- /dev/null +++ b/qa/suites/rbd/migration-external/7-io-workloads/.qa @@ -0,0 +1 @@ +../.qa/
\ No newline at end of file diff --git a/qa/suites/rbd/migration-external/7-io-workloads/qemu_xfstests.yaml b/qa/suites/rbd/migration-external/7-io-workloads/qemu_xfstests.yaml new file mode 100644 index 00000000000..c44011f0837 --- /dev/null +++ b/qa/suites/rbd/migration-external/7-io-workloads/qemu_xfstests.yaml @@ -0,0 +1,14 @@ +io_workload: + sequential: + - qemu: + cluster1.client.0: + type: block + disks: + - action: none + image_name: client.0.0 + - action: none + image_name: client.0.1 + - action: none + image_name: client.0.2 + test: qa/run_xfstests_qemu.sh +exclude_arch: armv7l diff --git a/qa/suites/rbd/migration-external/8-migrate-workloads/.qa b/qa/suites/rbd/migration-external/8-migrate-workloads/.qa new file mode 120000 index 00000000000..a602a0353e7 --- /dev/null +++ b/qa/suites/rbd/migration-external/8-migrate-workloads/.qa @@ -0,0 +1 @@ +../.qa/
\ No newline at end of file diff --git a/qa/suites/rbd/migration-external/8-migrate-workloads/execute.yaml b/qa/suites/rbd/migration-external/8-migrate-workloads/execute.yaml new file mode 100644 index 00000000000..d0afe7175a1 --- /dev/null +++ b/qa/suites/rbd/migration-external/8-migrate-workloads/execute.yaml @@ -0,0 +1,14 @@ +tasks: + - parallel: + - io_workload + - migrate_workload +migrate_workload: + sequential: + - exec: + cluster1.client.0: + - sleep $((RANDOM % 600)) + - rbd --cluster cluster1 migration execute client.0.0 + - sleep $((RANDOM % 600)) + - rbd --cluster cluster1 migration commit client.0.0 + - sleep $((RANDOM % 600)) + - rbd --cluster cluster1 migration execute client.0.1 diff --git a/qa/suites/rbd/migration-external/conf b/qa/suites/rbd/migration-external/conf new file mode 120000 index 00000000000..4bc0fe86c63 --- /dev/null +++ b/qa/suites/rbd/migration-external/conf @@ -0,0 +1 @@ +.qa/rbd/conf
\ No newline at end of file |