Skip to content

Commit

Permalink
qa: krbd deep-flatten test
Browse files Browse the repository at this point in the history
Signed-off-by: Ilya Dryomov <[email protected]>
  • Loading branch information
idryomov committed Mar 8, 2019
1 parent b550968 commit 6892da1
Show file tree
Hide file tree
Showing 2 changed files with 334 additions and 0 deletions.
329 changes: 329 additions & 0 deletions qa/rbd/krbd_deep_flatten.t
Original file line number Diff line number Diff line change
@@ -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
5 changes: 5 additions & 0 deletions qa/suites/krbd/basic/tasks/krbd_deep_flatten.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
tasks:
- cram:
clients:
client.0:
- qa/rbd/krbd_deep_flatten.t

0 comments on commit 6892da1

Please sign in to comment.