]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
qa: krbd deep-flatten test
authorIlya Dryomov <idryomov@gmail.com>
Fri, 8 Mar 2019 15:33:37 +0000 (16:33 +0100)
committerIlya Dryomov <idryomov@gmail.com>
Fri, 8 Mar 2019 17:14:37 +0000 (18:14 +0100)
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
qa/rbd/krbd_deep_flatten.t [new file with mode: 0644]
qa/suites/krbd/basic/tasks/krbd_deep_flatten.yaml [new file with mode: 0644]

diff --git a/qa/rbd/krbd_deep_flatten.t b/qa/rbd/krbd_deep_flatten.t
new file mode 100644 (file)
index 0000000..7235f00
--- /dev/null
@@ -0,0 +1,329 @@
+
+Write:
+
+  $ rbd create --size 12M --image-feature layering,deep-flatten img
+  $ DEV=$(sudo rbd map img)
+  $ xfs_io -c 'pwrite -w 0 12M' $DEV >/dev/null
+  $ sudo rbd unmap $DEV
+  $ rbd snap create img@snap
+  $ rbd snap protect img@snap
+  $ rbd clone img@snap cloneimg
+  $ rbd snap create cloneimg@snap
+  $ DEV=$(sudo rbd map cloneimg)
+  $ xfs_io -c 'pwrite -S 0xab -w 6M 1k' $DEV >/dev/null
+  $ sudo rbd unmap $DEV
+
+  $ DEV=$(sudo rbd map cloneimg)
+  $ hexdump $DEV
+  0000000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0600000 abab abab abab abab abab abab abab abab
+  *
+  0600400 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0c00000
+  $ sudo rbd unmap $DEV
+  $ DEV=$(sudo rbd map cloneimg@snap)
+  $ hexdump $DEV
+  0000000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0c00000
+  $ sudo rbd unmap $DEV
+
+  $ rbd flatten --no-progress cloneimg
+  $ rbd snap unprotect img@snap
+  $ rbd snap rm --no-progress img@snap
+  $ rbd rm --no-progress img
+
+  $ DEV=$(sudo rbd map cloneimg)
+  $ hexdump $DEV
+  0000000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0600000 abab abab abab abab abab abab abab abab
+  *
+  0600400 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0c00000
+  $ sudo rbd unmap $DEV
+  $ DEV=$(sudo rbd map cloneimg@snap)
+  $ hexdump $DEV
+  0000000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0c00000
+  $ sudo rbd unmap $DEV
+
+  $ rbd snap rm --no-progress cloneimg@snap
+  $ rbd rm --no-progress cloneimg
+
+Write, whole object:
+
+  $ rbd create --size 12M --image-feature layering,deep-flatten img
+  $ DEV=$(sudo rbd map img)
+  $ xfs_io -c 'pwrite -w 0 12M' $DEV >/dev/null
+  $ sudo rbd unmap $DEV
+  $ rbd snap create img@snap
+  $ rbd snap protect img@snap
+  $ rbd clone img@snap cloneimg
+  $ rbd snap create cloneimg@snap
+  $ DEV=$(sudo rbd map cloneimg)
+  $ xfs_io -d -c 'pwrite -b 4M -S 0xab 4M 4M' $DEV >/dev/null
+  $ sudo rbd unmap $DEV
+
+  $ DEV=$(sudo rbd map cloneimg)
+  $ hexdump $DEV
+  0000000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0400000 abab abab abab abab abab abab abab abab
+  *
+  0800000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0c00000
+  $ sudo rbd unmap $DEV
+  $ DEV=$(sudo rbd map cloneimg@snap)
+  $ hexdump $DEV
+  0000000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0c00000
+  $ sudo rbd unmap $DEV
+
+  $ rbd flatten --no-progress cloneimg
+  $ rbd snap unprotect img@snap
+  $ rbd snap rm --no-progress img@snap
+  $ rbd rm --no-progress img
+
+  $ DEV=$(sudo rbd map cloneimg)
+  $ hexdump $DEV
+  0000000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0400000 abab abab abab abab abab abab abab abab
+  *
+  0800000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0c00000
+  $ sudo rbd unmap $DEV
+  $ DEV=$(sudo rbd map cloneimg@snap)
+  $ hexdump $DEV
+  0000000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0c00000
+  $ sudo rbd unmap $DEV
+
+  $ rbd snap rm --no-progress cloneimg@snap
+  $ rbd rm --no-progress cloneimg
+
+Zeroout:
+
+  $ rbd create --size 12M --image-feature layering,deep-flatten img
+  $ DEV=$(sudo rbd map img)
+  $ xfs_io -c 'pwrite -w 0 12M' $DEV >/dev/null
+  $ sudo rbd unmap $DEV
+  $ rbd snap create img@snap
+  $ rbd snap protect img@snap
+  $ rbd clone img@snap cloneimg
+  $ rbd snap create cloneimg@snap
+  $ DEV=$(sudo rbd map cloneimg)
+  $ fallocate -z -o 6M -l 1k $DEV
+  $ sudo rbd unmap $DEV
+
+  $ DEV=$(sudo rbd map cloneimg)
+  $ hexdump $DEV
+  0000000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0600000 0000 0000 0000 0000 0000 0000 0000 0000
+  *
+  0600400 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0c00000
+  $ sudo rbd unmap $DEV
+  $ DEV=$(sudo rbd map cloneimg@snap)
+  $ hexdump $DEV
+  0000000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0c00000
+  $ sudo rbd unmap $DEV
+
+  $ rbd flatten --no-progress cloneimg
+  $ rbd snap unprotect img@snap
+  $ rbd snap rm --no-progress img@snap
+  $ rbd rm --no-progress img
+
+  $ DEV=$(sudo rbd map cloneimg)
+  $ hexdump $DEV
+  0000000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0600000 0000 0000 0000 0000 0000 0000 0000 0000
+  *
+  0600400 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0c00000
+  $ sudo rbd unmap $DEV
+  $ DEV=$(sudo rbd map cloneimg@snap)
+  $ hexdump $DEV
+  0000000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0c00000
+  $ sudo rbd unmap $DEV
+
+  $ rbd snap rm --no-progress cloneimg@snap
+  $ rbd rm --no-progress cloneimg
+
+Zeroout, whole object:
+
+  $ rbd create --size 12M --image-feature layering,deep-flatten img
+  $ DEV=$(sudo rbd map img)
+  $ xfs_io -c 'pwrite -w 0 12M' $DEV >/dev/null
+  $ sudo rbd unmap $DEV
+  $ rbd snap create img@snap
+  $ rbd snap protect img@snap
+  $ rbd clone img@snap cloneimg
+  $ rbd snap create cloneimg@snap
+  $ DEV=$(sudo rbd map cloneimg)
+  $ fallocate -z -o 4M -l 4M $DEV
+  $ sudo rbd unmap $DEV
+
+  $ DEV=$(sudo rbd map cloneimg)
+  $ hexdump $DEV
+  0000000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0400000 0000 0000 0000 0000 0000 0000 0000 0000
+  *
+  0800000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0c00000
+  $ sudo rbd unmap $DEV
+  $ DEV=$(sudo rbd map cloneimg@snap)
+  $ hexdump $DEV
+  0000000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0c00000
+  $ sudo rbd unmap $DEV
+
+  $ rbd flatten --no-progress cloneimg
+  $ rbd snap unprotect img@snap
+  $ rbd snap rm --no-progress img@snap
+  $ rbd rm --no-progress img
+
+  $ DEV=$(sudo rbd map cloneimg)
+  $ hexdump $DEV
+  0000000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0400000 0000 0000 0000 0000 0000 0000 0000 0000
+  *
+  0800000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0c00000
+  $ sudo rbd unmap $DEV
+  $ DEV=$(sudo rbd map cloneimg@snap)
+  $ hexdump $DEV
+  0000000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0c00000
+  $ sudo rbd unmap $DEV
+
+  $ rbd snap rm --no-progress cloneimg@snap
+  $ rbd rm --no-progress cloneimg
+
+Discard, whole object, empty clone:
+
+  $ rbd create --size 12M --image-feature layering,deep-flatten img
+  $ DEV=$(sudo rbd map img)
+  $ xfs_io -c 'pwrite -w 0 12M' $DEV >/dev/null
+  $ sudo rbd unmap $DEV
+  $ rbd snap create img@snap
+  $ rbd snap protect img@snap
+  $ rbd clone img@snap cloneimg
+  $ rbd snap create cloneimg@snap
+  $ DEV=$(sudo rbd map cloneimg)
+  $ blkdiscard -o 4M -l 4M $DEV
+  $ sudo rbd unmap $DEV
+
+  $ DEV=$(sudo rbd map cloneimg)
+  $ hexdump $DEV
+  0000000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0c00000
+  $ sudo rbd unmap $DEV
+  $ DEV=$(sudo rbd map cloneimg@snap)
+  $ hexdump $DEV
+  0000000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0c00000
+  $ sudo rbd unmap $DEV
+
+  $ rbd flatten --no-progress cloneimg
+  $ rbd snap unprotect img@snap
+  $ rbd snap rm --no-progress img@snap
+  $ rbd rm --no-progress img
+
+  $ DEV=$(sudo rbd map cloneimg)
+  $ hexdump $DEV
+  0000000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0c00000
+  $ sudo rbd unmap $DEV
+  $ DEV=$(sudo rbd map cloneimg@snap)
+  $ hexdump $DEV
+  0000000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0c00000
+  $ sudo rbd unmap $DEV
+
+  $ rbd snap rm --no-progress cloneimg@snap
+  $ rbd rm --no-progress cloneimg
+
+Discard, whole object, full clone:
+
+  $ rbd create --size 12M --image-feature layering,deep-flatten img
+  $ DEV=$(sudo rbd map img)
+  $ xfs_io -c 'pwrite -w 0 12M' $DEV >/dev/null
+  $ sudo rbd unmap $DEV
+  $ rbd snap create img@snap
+  $ rbd snap protect img@snap
+  $ rbd clone img@snap cloneimg
+  $ rbd snap create cloneimg@snap
+  $ DEV=$(sudo rbd map cloneimg)
+  $ xfs_io -c 'pwrite -S 0xab -w 0 12M' $DEV >/dev/null
+  $ blkdiscard -o 4M -l 4M $DEV
+  $ sudo rbd unmap $DEV
+
+  $ DEV=$(sudo rbd map cloneimg)
+  $ hexdump $DEV
+  0000000 abab abab abab abab abab abab abab abab
+  *
+  0400000 0000 0000 0000 0000 0000 0000 0000 0000
+  *
+  0800000 abab abab abab abab abab abab abab abab
+  *
+  0c00000
+  $ sudo rbd unmap $DEV
+  $ DEV=$(sudo rbd map cloneimg@snap)
+  $ hexdump $DEV
+  0000000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0c00000
+  $ sudo rbd unmap $DEV
+
+  $ rbd flatten --no-progress cloneimg
+  $ rbd snap unprotect img@snap
+  $ rbd snap rm --no-progress img@snap
+  $ rbd rm --no-progress img
+
+  $ DEV=$(sudo rbd map cloneimg)
+  $ hexdump $DEV
+  0000000 abab abab abab abab abab abab abab abab
+  *
+  0400000 0000 0000 0000 0000 0000 0000 0000 0000
+  *
+  0800000 abab abab abab abab abab abab abab abab
+  *
+  0c00000
+  $ sudo rbd unmap $DEV
+  $ DEV=$(sudo rbd map cloneimg@snap)
+  $ hexdump $DEV
+  0000000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+  *
+  0c00000
+  $ sudo rbd unmap $DEV
+
+  $ rbd snap rm --no-progress cloneimg@snap
+  $ rbd rm --no-progress cloneimg
diff --git a/qa/suites/krbd/basic/tasks/krbd_deep_flatten.yaml b/qa/suites/krbd/basic/tasks/krbd_deep_flatten.yaml
new file mode 100644 (file)
index 0000000..a821b73
--- /dev/null
@@ -0,0 +1,5 @@
+tasks:
+- cram:
+    clients:
+      client.0:
+      - qa/rbd/krbd_deep_flatten.t