diff options
Diffstat (limited to 'qa/suites/rbd')
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 |