From: Ilya Dryomov Date: Wed, 28 Feb 2018 10:36:40 +0000 (+0100) Subject: qa: krbd parent-overlap test X-Git-Tag: v13.0.2~98^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F20721%2Fhead;p=ceph.git qa: krbd parent-overlap test Signed-off-by: Ilya Dryomov --- diff --git a/qa/rbd/krbd_parent_overlap.t b/qa/rbd/krbd_parent_overlap.t new file mode 100644 index 000000000000..47deda90e4b9 --- /dev/null +++ b/qa/rbd/krbd_parent_overlap.t @@ -0,0 +1,64 @@ + +For reads, only the object extent needs to be reverse mapped: + + $ rbd create --size 20M img + $ DEV=$(sudo rbd map img) + $ xfs_io -c 'pwrite 0 20M' $DEV >/dev/null + $ sudo rbd unmap $DEV + $ rbd snap create img@snap + $ rbd snap protect img@snap + $ rbd clone img@snap cloneimg + $ rbd resize --no-progress --size 5M --allow-shrink cloneimg + $ rbd resize --no-progress --size 20M cloneimg + $ DEV=$(sudo rbd map cloneimg) + $ hexdump $DEV + 0000000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd + * + 0500000 0000 0000 0000 0000 0000 0000 0000 0000 + * + 1400000 + $ sudo rbd unmap $DEV + $ rbd rm --no-progress cloneimg + $ rbd snap unprotect img@snap + $ rbd snap rm --no-progress img@snap + $ rbd rm --no-progress img + +For writes, the entire object needs to be reverse mapped: + + $ rbd create --size 2M img + $ DEV=$(sudo rbd map img) + $ xfs_io -c 'pwrite 0 1M' $DEV >/dev/null + $ sudo rbd unmap $DEV + $ rbd snap create img@snap + $ rbd snap protect img@snap + $ rbd clone img@snap cloneimg + $ rbd resize --no-progress --size 8M cloneimg + $ DEV=$(sudo rbd map cloneimg) + $ xfs_io -c 'pwrite -S 0xef 3M 1M' $DEV >/dev/null + $ hexdump $DEV + 0000000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd + * + 0100000 0000 0000 0000 0000 0000 0000 0000 0000 + * + 0300000 efef efef efef efef efef efef efef efef + * + 0400000 0000 0000 0000 0000 0000 0000 0000 0000 + * + 0800000 + $ sudo rbd unmap $DEV + $ DEV=$(sudo rbd map cloneimg) + $ hexdump $DEV + 0000000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd + * + 0100000 0000 0000 0000 0000 0000 0000 0000 0000 + * + 0300000 efef efef efef efef efef efef efef efef + * + 0400000 0000 0000 0000 0000 0000 0000 0000 0000 + * + 0800000 + $ sudo rbd unmap $DEV + $ rbd rm --no-progress cloneimg + $ rbd snap unprotect img@snap + $ rbd snap rm --no-progress img@snap + $ rbd rm --no-progress img diff --git a/qa/suites/krbd/basic/tasks/krbd_parent_overlap.yaml b/qa/suites/krbd/basic/tasks/krbd_parent_overlap.yaml new file mode 100644 index 000000000000..c7d38572691a --- /dev/null +++ b/qa/suites/krbd/basic/tasks/krbd_parent_overlap.yaml @@ -0,0 +1,5 @@ +tasks: +- cram: + clients: + client.0: + - http://git.ceph.com/?p={repo};a=blob_plain;hb={branch};f=qa/rbd/krbd_parent_overlap.t