summaryrefslogtreecommitdiffstats
path: root/qa/suites
diff options
context:
space:
mode:
authorIlya Dryomov <idryomov@gmail.com>2024-08-23 10:20:47 +0200
committerGitHub <noreply@github.com>2024-08-23 10:20:47 +0200
commit9ac05d90305af9e460e3ba23e17597ae681dc3a5 (patch)
treee4857eef9c05287dbd113620a8b56b558d2d6d50 /qa/suites
parentMerge pull request #59393 from anthonyeleven/caps-man-caps (diff)
parentqa/workunits/rbd: exercise snap_{name,id} parsing in test_import_native_format() (diff)
downloadceph-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')
-rw-r--r--qa/suites/rbd/migration-external/%0
l---------qa/suites/rbd/migration-external/.qa1
l---------qa/suites/rbd/migration-external/1-base/.qa1
-rw-r--r--qa/suites/rbd/migration-external/1-base/install.yaml8
l---------qa/suites/rbd/migration-external/2-clusters/.qa1
-rw-r--r--qa/suites/rbd/migration-external/2-clusters/2-node.yaml15
l---------qa/suites/rbd/migration-external/3-objectstore1
l---------qa/suites/rbd/migration-external/4-supported-random-distro$1
l---------qa/suites/rbd/migration-external/5-data-pool/.qa1
-rw-r--r--qa/suites/rbd/migration-external/5-data-pool/ec.yaml29
-rw-r--r--qa/suites/rbd/migration-external/5-data-pool/none.yaml0
-rw-r--r--qa/suites/rbd/migration-external/5-data-pool/replicated.yaml14
l---------qa/suites/rbd/migration-external/6-prepare/.qa1
-rw-r--r--qa/suites/rbd/migration-external/6-prepare/native-clone.yaml29
-rw-r--r--qa/suites/rbd/migration-external/6-prepare/native-standalone.yaml18
l---------qa/suites/rbd/migration-external/7-io-workloads/.qa1
-rw-r--r--qa/suites/rbd/migration-external/7-io-workloads/qemu_xfstests.yaml14
l---------qa/suites/rbd/migration-external/8-migrate-workloads/.qa1
-rw-r--r--qa/suites/rbd/migration-external/8-migrate-workloads/execute.yaml14
l---------qa/suites/rbd/migration-external/conf1
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