summaryrefslogtreecommitdiffstats
path: root/qa/suites/rbd
diff options
context:
space:
mode:
Diffstat (limited to 'qa/suites/rbd')
l---------qa/suites/rbd/iscsi/0-single-container-host.yaml1
-rw-r--r--qa/suites/rbd/iscsi/base/install.yaml6
l---------qa/suites/rbd/iscsi/supported-container-hosts$1
-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
-rw-r--r--qa/suites/rbd/migration/6-prepare/qcow2-https.yaml8
-rw-r--r--qa/suites/rbd/migration/6-prepare/qcow2-nbd.yaml12
-rw-r--r--qa/suites/rbd/migration/6-prepare/raw-nbd.yaml13
-rw-r--r--qa/suites/rbd/migration/9-cleanup/cleanup.yaml1
27 files changed, 191 insertions, 2 deletions
diff --git a/qa/suites/rbd/iscsi/0-single-container-host.yaml b/qa/suites/rbd/iscsi/0-single-container-host.yaml
deleted file mode 120000
index 7406e749cf5..00000000000
--- a/qa/suites/rbd/iscsi/0-single-container-host.yaml
+++ /dev/null
@@ -1 +0,0 @@
-.qa/distros/single-container-host.yaml \ No newline at end of file
diff --git a/qa/suites/rbd/iscsi/base/install.yaml b/qa/suites/rbd/iscsi/base/install.yaml
index 5c5a6c31f60..cca178cafe8 100644
--- a/qa/suites/rbd/iscsi/base/install.yaml
+++ b/qa/suites/rbd/iscsi/base/install.yaml
@@ -9,6 +9,10 @@ tasks:
- ceph orch host ls
- ceph orch device ls
- install:
- extra_packages:
+ extra_system_packages:
+ deb:
+ - open-iscsi
+ - multipath-tools
+ rpm:
- iscsi-initiator-utils
- device-mapper-multipath
diff --git a/qa/suites/rbd/iscsi/supported-container-hosts$ b/qa/suites/rbd/iscsi/supported-container-hosts$
new file mode 120000
index 00000000000..30a61f1575f
--- /dev/null
+++ b/qa/suites/rbd/iscsi/supported-container-hosts$
@@ -0,0 +1 @@
+.qa/distros/supported-container-hosts/ \ No newline at end of file
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
diff --git a/qa/suites/rbd/migration/6-prepare/qcow2-https.yaml b/qa/suites/rbd/migration/6-prepare/qcow2-https.yaml
new file mode 100644
index 00000000000..d2072c41a68
--- /dev/null
+++ b/qa/suites/rbd/migration/6-prepare/qcow2-https.yaml
@@ -0,0 +1,8 @@
+tasks:
+ - exec:
+ client.0:
+ - mkdir /home/ubuntu/cephtest/migration
+ - qemu-img create -f qcow2 /home/ubuntu/cephtest/migration/empty.qcow2 1G
+ - echo '{"type":"qcow","stream":{"type":"http","url":"https://download.ceph.com/qa/ubuntu-12.04.qcow2"}}' | rbd migration prepare --import-only --source-spec-path - client.0.0
+ - rbd migration prepare --import-only --source-spec '{"type":"qcow","stream":{"type":"file","file_path":"/home/ubuntu/cephtest/migration/empty.qcow2"}}' client.0.1
+ - rbd migration prepare --import-only --source-spec '{"type":"qcow","stream":{"type":"file","file_path":"/home/ubuntu/cephtest/migration/empty.qcow2"}}' client.0.2
diff --git a/qa/suites/rbd/migration/6-prepare/qcow2-nbd.yaml b/qa/suites/rbd/migration/6-prepare/qcow2-nbd.yaml
new file mode 100644
index 00000000000..b0e8af4d933
--- /dev/null
+++ b/qa/suites/rbd/migration/6-prepare/qcow2-nbd.yaml
@@ -0,0 +1,12 @@
+tasks:
+ - exec:
+ client.0:
+ - mkdir /home/ubuntu/cephtest/migration
+ - wget -nv -O /home/ubuntu/cephtest/migration/base.client.0.qcow2 http://download.ceph.com/qa/ubuntu-12.04.qcow2
+ - qemu-img create -f qcow2 /home/ubuntu/cephtest/migration/empty.qcow2 1G
+ - qemu-nbd -f qcow2 --read-only --shared 10 --persistent --fork /home/ubuntu/cephtest/migration/base.client.0.qcow2
+ - qemu-nbd -f qcow2 --read-only --shared 10 --persistent --fork --socket /home/ubuntu/cephtest/migration/qemu-nbd-empty /home/ubuntu/cephtest/migration/empty.qcow2
+ - chmod 0777 /home/ubuntu/cephtest/migration/qemu-nbd-empty
+ - echo '{"type":"raw","stream":{"type":"nbd","uri":"nbd://localhost"}}' | rbd migration prepare --import-only --source-spec-path - client.0.0
+ - rbd migration prepare --import-only --source-spec '{"type":"raw","stream":{"type":"nbd","uri":"nbd+unix:///?socket=/home/ubuntu/cephtest/migration/qemu-nbd-empty"}}' client.0.1
+ - rbd migration prepare --import-only --source-spec '{"type":"raw","stream":{"type":"nbd","uri":"nbd+unix:///?socket=/home/ubuntu/cephtest/migration/qemu-nbd-empty"}}' client.0.2
diff --git a/qa/suites/rbd/migration/6-prepare/raw-nbd.yaml b/qa/suites/rbd/migration/6-prepare/raw-nbd.yaml
new file mode 100644
index 00000000000..d5c2e60fed9
--- /dev/null
+++ b/qa/suites/rbd/migration/6-prepare/raw-nbd.yaml
@@ -0,0 +1,13 @@
+tasks:
+ - exec:
+ client.0:
+ - mkdir /home/ubuntu/cephtest/migration
+ - wget -nv -O /home/ubuntu/cephtest/migration/base.client.0.qcow2 http://download.ceph.com/qa/ubuntu-12.04.qcow2
+ - qemu-img convert -f qcow2 -O raw /home/ubuntu/cephtest/migration/base.client.0.qcow2 /home/ubuntu/cephtest/migration/base.client.0.raw
+ - dd if=/dev/zero of=/home/ubuntu/cephtest/migration/empty.raw count=1 bs=1G
+ - qemu-nbd -f raw --read-only --shared 10 --persistent --fork /home/ubuntu/cephtest/migration/base.client.0.raw
+ - qemu-nbd -f raw --read-only --shared 10 --persistent --fork --socket /home/ubuntu/cephtest/migration/qemu-nbd-empty /home/ubuntu/cephtest/migration/empty.raw
+ - chmod 0777 /home/ubuntu/cephtest/migration/qemu-nbd-empty
+ - echo '{"type":"raw","stream":{"type":"nbd","uri":"nbd://localhost"}}' | rbd migration prepare --import-only --source-spec-path - client.0.0
+ - rbd migration prepare --import-only --source-spec '{"type":"raw","stream":{"type":"nbd","uri":"nbd+unix:///?socket=/home/ubuntu/cephtest/migration/qemu-nbd-empty"}}' client.0.1
+ - rbd migration prepare --import-only --source-spec '{"type":"raw","stream":{"type":"nbd","uri":"nbd+unix:///?socket=/home/ubuntu/cephtest/migration/qemu-nbd-empty"}}' client.0.2
diff --git a/qa/suites/rbd/migration/9-cleanup/cleanup.yaml b/qa/suites/rbd/migration/9-cleanup/cleanup.yaml
index 18c2bb5f4c4..1d724d09086 100644
--- a/qa/suites/rbd/migration/9-cleanup/cleanup.yaml
+++ b/qa/suites/rbd/migration/9-cleanup/cleanup.yaml
@@ -1,4 +1,5 @@
tasks:
- exec:
client.0:
+ - pkill -9 qemu-nbd || true
- rm -rf /home/ubuntu/cephtest/migration