mirror of
https://github.com/ceph/ceph
synced 2025-02-24 19:47:44 +00:00
qa/tasks/cephfs: add "extra data pool" cephfs-data-scan tests
Signed-off-by: Mykola Golub <mykola.golub@clyso.com>
This commit is contained in:
parent
6a384b5d7f
commit
0c88aaa0a3
@ -169,13 +169,14 @@ class BacktracelessFile(Workload):
|
||||
|
||||
|
||||
class StripedStashedLayout(Workload):
|
||||
def __init__(self, fs, m):
|
||||
def __init__(self, fs, m, pool=None):
|
||||
super(StripedStashedLayout, self).__init__(fs, m)
|
||||
|
||||
# Nice small stripes so we can quickly do our writes+validates
|
||||
self.sc = 4
|
||||
self.ss = 65536
|
||||
self.os = 262144
|
||||
self.pool = pool and pool or self._filesystem.get_data_pool_name()
|
||||
|
||||
self.interesting_sizes = [
|
||||
# Exactly stripe_count objects will exist
|
||||
@ -196,8 +197,7 @@ class StripedStashedLayout(Workload):
|
||||
|
||||
self._mount.setfattr("./stripey", "ceph.dir.layout",
|
||||
"stripe_unit={ss} stripe_count={sc} object_size={os} pool={pool}".format(
|
||||
ss=self.ss, os=self.os, sc=self.sc,
|
||||
pool=self._filesystem.get_data_pool_name()
|
||||
ss=self.ss, os=self.os, sc=self.sc, pool=self.pool
|
||||
))
|
||||
|
||||
# Write files, then flush metadata so that its layout gets written into an xattr
|
||||
@ -723,3 +723,28 @@ class TestDataScan(CephFSTestCase):
|
||||
new_snaptable['snapserver']['last_snap'], old_snaptable['snapserver']['last_snap'])
|
||||
self.assertEqual(
|
||||
new_snaptable['snapserver']['snaps'], old_snaptable['snapserver']['snaps'])
|
||||
|
||||
def _prepare_extra_data_pool(self, set_root_layout=True):
|
||||
extra_data_pool_name = self.fs.get_data_pool_name() + '_extra'
|
||||
self.fs.add_data_pool(extra_data_pool_name)
|
||||
if set_root_layout:
|
||||
self.mount_a.setfattr(".", "ceph.dir.layout.pool",
|
||||
extra_data_pool_name)
|
||||
return extra_data_pool_name
|
||||
|
||||
def test_extra_data_pool_rebuild_simple(self):
|
||||
self._prepare_extra_data_pool()
|
||||
self._rebuild_metadata(SimpleWorkload(self.fs, self.mount_a))
|
||||
|
||||
def test_extra_data_pool_rebuild_few_files(self):
|
||||
self._prepare_extra_data_pool()
|
||||
self._rebuild_metadata(ManyFilesWorkload(self.fs, self.mount_a, 5), workers=1)
|
||||
|
||||
@for_teuthology
|
||||
def test_extra_data_pool_rebuild_many_files_many_workers(self):
|
||||
self._prepare_extra_data_pool()
|
||||
self._rebuild_metadata(ManyFilesWorkload(self.fs, self.mount_a, 25), workers=7)
|
||||
|
||||
def test_extra_data_pool_stashed_layout(self):
|
||||
pool_name = self._prepare_extra_data_pool(False)
|
||||
self._rebuild_metadata(StripedStashedLayout(self.fs, self.mount_a, pool_name))
|
||||
|
Loading…
Reference in New Issue
Block a user