summaryrefslogtreecommitdiffstats
path: root/qa/suites/fs/workload
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-21 11:54:28 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-21 11:54:28 +0000
commite6918187568dbd01842d8d1d2c808ce16a894239 (patch)
tree64f88b554b444a49f656b6c656111a145cbbaa28 /qa/suites/fs/workload
parentInitial commit. (diff)
downloadceph-e6918187568dbd01842d8d1d2c808ce16a894239.tar.xz
ceph-e6918187568dbd01842d8d1d2c808ce16a894239.zip
Adding upstream version 18.2.2.upstream/18.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'qa/suites/fs/workload')
-rw-r--r--qa/suites/fs/workload/%0
l---------qa/suites/fs/workload/.qa1
l---------qa/suites/fs/workload/0-rhel_8.yaml1
-rw-r--r--qa/suites/fs/workload/begin/+0
l---------qa/suites/fs/workload/begin/.qa1
l---------qa/suites/fs/workload/begin/0-install.yaml1
-rw-r--r--qa/suites/fs/workload/begin/1-cephadm.yaml21
l---------qa/suites/fs/workload/begin/2-logrotate.yaml1
l---------qa/suites/fs/workload/clusters/.qa1
l---------qa/suites/fs/workload/clusters/1a11s-mds-1c-client-3node.yaml1
l---------qa/suites/fs/workload/conf1
l---------qa/suites/fs/workload/mount/.qa1
l---------qa/suites/fs/workload/mount/fuse.yaml1
-rw-r--r--qa/suites/fs/workload/mount/kclient/%1
l---------qa/suites/fs/workload/mount/kclient/.qa1
l---------qa/suites/fs/workload/mount/kclient/base1
l---------qa/suites/fs/workload/mount/kclient/ms_mode/.qa1
-rw-r--r--qa/suites/fs/workload/mount/kclient/ms_mode/crc.yaml3
-rw-r--r--qa/suites/fs/workload/mount/kclient/ms_mode/legacy.yaml3
-rw-r--r--qa/suites/fs/workload/mount/kclient/ms_mode/secure.yaml3
l---------qa/suites/fs/workload/mount/kclient/wsync/.qa1
-rw-r--r--qa/suites/fs/workload/mount/kclient/wsync/no.yaml3
-rw-r--r--qa/suites/fs/workload/mount/kclient/wsync/yes.yaml3
l---------qa/suites/fs/workload/objectstore-ec1
l---------qa/suites/fs/workload/omap_limit/.qa1
-rw-r--r--qa/suites/fs/workload/omap_limit/10.yaml5
-rw-r--r--qa/suites/fs/workload/omap_limit/10000.yaml5
-rw-r--r--qa/suites/fs/workload/overrides/+0
l---------qa/suites/fs/workload/overrides/.qa1
-rw-r--r--qa/suites/fs/workload/overrides/cephsqlite-timeout.yaml7
l---------qa/suites/fs/workload/overrides/frag.yaml1
l---------qa/suites/fs/workload/overrides/ignorelist_health.yaml1
l---------qa/suites/fs/workload/overrides/ignorelist_wrongly_marked_down.yaml1
l---------qa/suites/fs/workload/overrides/osd-asserts.yaml1
l---------qa/suites/fs/workload/overrides/session_timeout.yaml1
l---------qa/suites/fs/workload/ranks/.qa1
-rw-r--r--qa/suites/fs/workload/ranks/1.yaml0
-rw-r--r--qa/suites/fs/workload/ranks/multi/%0
-rw-r--r--qa/suites/fs/workload/ranks/multi/export-check.yaml6
-rw-r--r--qa/suites/fs/workload/ranks/multi/n/3.yaml4
-rw-r--r--qa/suites/fs/workload/ranks/multi/n/5.yaml4
-rw-r--r--qa/suites/fs/workload/ranks/multi/replication/always.yaml18
-rw-r--r--qa/suites/fs/workload/ranks/multi/replication/default.yaml1
-rw-r--r--qa/suites/fs/workload/standby-replay.yaml4
-rw-r--r--qa/suites/fs/workload/tasks/%0
l---------qa/suites/fs/workload/tasks/.qa1
-rw-r--r--qa/suites/fs/workload/tasks/0-subvolume/$0
l---------qa/suites/fs/workload/tasks/0-subvolume/.qa1
-rw-r--r--qa/suites/fs/workload/tasks/0-subvolume/no-subvolume.yaml0
-rw-r--r--qa/suites/fs/workload/tasks/0-subvolume/with-namespace-isolated-and-quota.yaml11
-rw-r--r--qa/suites/fs/workload/tasks/0-subvolume/with-namespace-isolated.yaml11
-rw-r--r--qa/suites/fs/workload/tasks/0-subvolume/with-no-extra-options.yaml10
-rw-r--r--qa/suites/fs/workload/tasks/0-subvolume/with-quota.yaml11
-rw-r--r--qa/suites/fs/workload/tasks/1-check-counter.yaml2
l---------qa/suites/fs/workload/tasks/2-scrub/.qa1
-rw-r--r--qa/suites/fs/workload/tasks/2-scrub/no.yaml0
-rw-r--r--qa/suites/fs/workload/tasks/2-scrub/yes.yaml10
l---------qa/suites/fs/workload/tasks/3-snaps/.qa1
-rw-r--r--qa/suites/fs/workload/tasks/3-snaps/no.yaml0
-rw-r--r--qa/suites/fs/workload/tasks/3-snaps/yes.yaml30
l---------qa/suites/fs/workload/tasks/4-flush/.qa1
-rw-r--r--qa/suites/fs/workload/tasks/4-flush/no.yaml0
-rw-r--r--qa/suites/fs/workload/tasks/4-flush/yes.yaml4
l---------qa/suites/fs/workload/tasks/5-workunit/.qa1
-rw-r--r--qa/suites/fs/workload/tasks/5-workunit/direct_io.yaml9
l---------qa/suites/fs/workload/tasks/5-workunit/fs/.qa1
-rw-r--r--qa/suites/fs/workload/tasks/5-workunit/fs/misc.yaml10
-rw-r--r--qa/suites/fs/workload/tasks/5-workunit/fs/norstats.yaml17
-rw-r--r--qa/suites/fs/workload/tasks/5-workunit/fs/test_o_trunc.yaml8
-rw-r--r--qa/suites/fs/workload/tasks/5-workunit/kernel_untar_build.yaml10
-rw-r--r--qa/suites/fs/workload/tasks/5-workunit/postgres.yaml36
l---------qa/suites/fs/workload/tasks/5-workunit/suites/.qa1
-rw-r--r--qa/suites/fs/workload/tasks/5-workunit/suites/blogbench.yaml10
-rw-r--r--qa/suites/fs/workload/tasks/5-workunit/suites/dbench.yaml5
-rw-r--r--qa/suites/fs/workload/tasks/5-workunit/suites/ffsb.yaml18
-rw-r--r--qa/suites/fs/workload/tasks/5-workunit/suites/fsstress.yaml6
-rw-r--r--qa/suites/fs/workload/tasks/5-workunit/suites/fsx.yaml10
-rw-r--r--qa/suites/fs/workload/tasks/5-workunit/suites/fsync-tester.yaml8
-rw-r--r--qa/suites/fs/workload/tasks/5-workunit/suites/iogen.yaml8
-rw-r--r--qa/suites/fs/workload/tasks/5-workunit/suites/iozone.yaml8
-rw-r--r--qa/suites/fs/workload/tasks/5-workunit/suites/pjd.yaml12
81 files changed, 386 insertions, 0 deletions
diff --git a/qa/suites/fs/workload/% b/qa/suites/fs/workload/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/workload/%
diff --git a/qa/suites/fs/workload/.qa b/qa/suites/fs/workload/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/workload/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/workload/0-rhel_8.yaml b/qa/suites/fs/workload/0-rhel_8.yaml
new file mode 120000
index 000000000..c9abcd7b8
--- /dev/null
+++ b/qa/suites/fs/workload/0-rhel_8.yaml
@@ -0,0 +1 @@
+.qa/distros/podman/rhel_8.6_container_tools_rhel8.yaml \ No newline at end of file
diff --git a/qa/suites/fs/workload/begin/+ b/qa/suites/fs/workload/begin/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/workload/begin/+
diff --git a/qa/suites/fs/workload/begin/.qa b/qa/suites/fs/workload/begin/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/workload/begin/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/workload/begin/0-install.yaml b/qa/suites/fs/workload/begin/0-install.yaml
new file mode 120000
index 000000000..3b1852973
--- /dev/null
+++ b/qa/suites/fs/workload/begin/0-install.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin/0-install.yaml \ No newline at end of file
diff --git a/qa/suites/fs/workload/begin/1-cephadm.yaml b/qa/suites/fs/workload/begin/1-cephadm.yaml
new file mode 100644
index 000000000..a58ea5725
--- /dev/null
+++ b/qa/suites/fs/workload/begin/1-cephadm.yaml
@@ -0,0 +1,21 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd shutdown pgref assert: true
+tasks:
+- cephadm:
+ roleless: false
+- cephadm.shell:
+ mon.a:
+ - ceph orch status
+ - ceph orch ps
+ - ceph orch ls
+ - ceph orch host ls
+ - ceph orch device ls
+- cephadm.shell:
+ mon.a:
+ - ceph fs dump
+ - ceph osd dump
+- fs.ready:
+ timeout: 300
diff --git a/qa/suites/fs/workload/begin/2-logrotate.yaml b/qa/suites/fs/workload/begin/2-logrotate.yaml
new file mode 120000
index 000000000..9d6e7ba83
--- /dev/null
+++ b/qa/suites/fs/workload/begin/2-logrotate.yaml
@@ -0,0 +1 @@
+.qa/cephfs/begin/2-logrotate.yaml \ No newline at end of file
diff --git a/qa/suites/fs/workload/clusters/.qa b/qa/suites/fs/workload/clusters/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/workload/clusters/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/workload/clusters/1a11s-mds-1c-client-3node.yaml b/qa/suites/fs/workload/clusters/1a11s-mds-1c-client-3node.yaml
new file mode 120000
index 000000000..884134573
--- /dev/null
+++ b/qa/suites/fs/workload/clusters/1a11s-mds-1c-client-3node.yaml
@@ -0,0 +1 @@
+.qa/cephfs/clusters/1a11s-mds-1c-client-3node.yaml \ No newline at end of file
diff --git a/qa/suites/fs/workload/conf b/qa/suites/fs/workload/conf
new file mode 120000
index 000000000..16e8cc44b
--- /dev/null
+++ b/qa/suites/fs/workload/conf
@@ -0,0 +1 @@
+.qa/cephfs/conf \ No newline at end of file
diff --git a/qa/suites/fs/workload/mount/.qa b/qa/suites/fs/workload/mount/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/workload/mount/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/workload/mount/fuse.yaml b/qa/suites/fs/workload/mount/fuse.yaml
new file mode 120000
index 000000000..0e55da9fb
--- /dev/null
+++ b/qa/suites/fs/workload/mount/fuse.yaml
@@ -0,0 +1 @@
+.qa/cephfs/mount/fuse.yaml \ No newline at end of file
diff --git a/qa/suites/fs/workload/mount/kclient/% b/qa/suites/fs/workload/mount/kclient/%
new file mode 100644
index 000000000..b8626c4cf
--- /dev/null
+++ b/qa/suites/fs/workload/mount/kclient/%
@@ -0,0 +1 @@
+4
diff --git a/qa/suites/fs/workload/mount/kclient/.qa b/qa/suites/fs/workload/mount/kclient/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/workload/mount/kclient/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/workload/mount/kclient/base b/qa/suites/fs/workload/mount/kclient/base
new file mode 120000
index 000000000..22f94e150
--- /dev/null
+++ b/qa/suites/fs/workload/mount/kclient/base
@@ -0,0 +1 @@
+.qa/cephfs/mount/kclient/ \ No newline at end of file
diff --git a/qa/suites/fs/workload/mount/kclient/ms_mode/.qa b/qa/suites/fs/workload/mount/kclient/ms_mode/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/workload/mount/kclient/ms_mode/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/workload/mount/kclient/ms_mode/crc.yaml b/qa/suites/fs/workload/mount/kclient/ms_mode/crc.yaml
new file mode 100644
index 000000000..7efada467
--- /dev/null
+++ b/qa/suites/fs/workload/mount/kclient/ms_mode/crc.yaml
@@ -0,0 +1,3 @@
+overrides:
+ kclient:
+ mntopts: ["ms_mode=crc"]
diff --git a/qa/suites/fs/workload/mount/kclient/ms_mode/legacy.yaml b/qa/suites/fs/workload/mount/kclient/ms_mode/legacy.yaml
new file mode 100644
index 000000000..8a68a7756
--- /dev/null
+++ b/qa/suites/fs/workload/mount/kclient/ms_mode/legacy.yaml
@@ -0,0 +1,3 @@
+overrides:
+ kclient:
+ mntopts: ["ms_mode=legacy"]
diff --git a/qa/suites/fs/workload/mount/kclient/ms_mode/secure.yaml b/qa/suites/fs/workload/mount/kclient/ms_mode/secure.yaml
new file mode 100644
index 000000000..b4a4221d5
--- /dev/null
+++ b/qa/suites/fs/workload/mount/kclient/ms_mode/secure.yaml
@@ -0,0 +1,3 @@
+overrides:
+ kclient:
+ mntopts: ["ms_mode=secure"]
diff --git a/qa/suites/fs/workload/mount/kclient/wsync/.qa b/qa/suites/fs/workload/mount/kclient/wsync/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/workload/mount/kclient/wsync/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/workload/mount/kclient/wsync/no.yaml b/qa/suites/fs/workload/mount/kclient/wsync/no.yaml
new file mode 100644
index 000000000..1ed9e9953
--- /dev/null
+++ b/qa/suites/fs/workload/mount/kclient/wsync/no.yaml
@@ -0,0 +1,3 @@
+overrides:
+ kclient:
+ mntopts: ["nowsync"]
diff --git a/qa/suites/fs/workload/mount/kclient/wsync/yes.yaml b/qa/suites/fs/workload/mount/kclient/wsync/yes.yaml
new file mode 100644
index 000000000..2061bac11
--- /dev/null
+++ b/qa/suites/fs/workload/mount/kclient/wsync/yes.yaml
@@ -0,0 +1,3 @@
+overrides:
+ kclient:
+ mntopts: ["wsync"]
diff --git a/qa/suites/fs/workload/objectstore-ec b/qa/suites/fs/workload/objectstore-ec
new file mode 120000
index 000000000..affe29493
--- /dev/null
+++ b/qa/suites/fs/workload/objectstore-ec
@@ -0,0 +1 @@
+.qa/cephfs/objectstore-ec \ No newline at end of file
diff --git a/qa/suites/fs/workload/omap_limit/.qa b/qa/suites/fs/workload/omap_limit/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/workload/omap_limit/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/workload/omap_limit/10.yaml b/qa/suites/fs/workload/omap_limit/10.yaml
new file mode 100644
index 000000000..eec30f681
--- /dev/null
+++ b/qa/suites/fs/workload/omap_limit/10.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd_max_omap_entries_per_request: 10
diff --git a/qa/suites/fs/workload/omap_limit/10000.yaml b/qa/suites/fs/workload/omap_limit/10000.yaml
new file mode 100644
index 000000000..c4bea5538
--- /dev/null
+++ b/qa/suites/fs/workload/omap_limit/10000.yaml
@@ -0,0 +1,5 @@
+overrides:
+ ceph:
+ conf:
+ osd:
+ osd_max_omap_entries_per_request: 10000
diff --git a/qa/suites/fs/workload/overrides/+ b/qa/suites/fs/workload/overrides/+
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/workload/overrides/+
diff --git a/qa/suites/fs/workload/overrides/.qa b/qa/suites/fs/workload/overrides/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/workload/overrides/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/workload/overrides/cephsqlite-timeout.yaml b/qa/suites/fs/workload/overrides/cephsqlite-timeout.yaml
new file mode 100644
index 000000000..5bd92554f
--- /dev/null
+++ b/qa/suites/fs/workload/overrides/cephsqlite-timeout.yaml
@@ -0,0 +1,7 @@
+# increase lock renewal timeout: OSD stress from small clusters may cause
+# spurious timeouts
+overrides:
+ ceph:
+ conf:
+ mgr:
+ cephsqlite lock renewal timeout: 900000
diff --git a/qa/suites/fs/workload/overrides/frag.yaml b/qa/suites/fs/workload/overrides/frag.yaml
new file mode 120000
index 000000000..5e5cdaed8
--- /dev/null
+++ b/qa/suites/fs/workload/overrides/frag.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/frag.yaml \ No newline at end of file
diff --git a/qa/suites/fs/workload/overrides/ignorelist_health.yaml b/qa/suites/fs/workload/overrides/ignorelist_health.yaml
new file mode 120000
index 000000000..5cb891a95
--- /dev/null
+++ b/qa/suites/fs/workload/overrides/ignorelist_health.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_health.yaml \ No newline at end of file
diff --git a/qa/suites/fs/workload/overrides/ignorelist_wrongly_marked_down.yaml b/qa/suites/fs/workload/overrides/ignorelist_wrongly_marked_down.yaml
new file mode 120000
index 000000000..f317cb714
--- /dev/null
+++ b/qa/suites/fs/workload/overrides/ignorelist_wrongly_marked_down.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/ignorelist_wrongly_marked_down.yaml \ No newline at end of file
diff --git a/qa/suites/fs/workload/overrides/osd-asserts.yaml b/qa/suites/fs/workload/overrides/osd-asserts.yaml
new file mode 120000
index 000000000..f290c749b
--- /dev/null
+++ b/qa/suites/fs/workload/overrides/osd-asserts.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/osd-asserts.yaml \ No newline at end of file
diff --git a/qa/suites/fs/workload/overrides/session_timeout.yaml b/qa/suites/fs/workload/overrides/session_timeout.yaml
new file mode 120000
index 000000000..fce0318c5
--- /dev/null
+++ b/qa/suites/fs/workload/overrides/session_timeout.yaml
@@ -0,0 +1 @@
+.qa/cephfs/overrides/session_timeout.yaml \ No newline at end of file
diff --git a/qa/suites/fs/workload/ranks/.qa b/qa/suites/fs/workload/ranks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/workload/ranks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/workload/ranks/1.yaml b/qa/suites/fs/workload/ranks/1.yaml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/workload/ranks/1.yaml
diff --git a/qa/suites/fs/workload/ranks/multi/% b/qa/suites/fs/workload/ranks/multi/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/workload/ranks/multi/%
diff --git a/qa/suites/fs/workload/ranks/multi/export-check.yaml b/qa/suites/fs/workload/ranks/multi/export-check.yaml
new file mode 100644
index 000000000..80f210861
--- /dev/null
+++ b/qa/suites/fs/workload/ranks/multi/export-check.yaml
@@ -0,0 +1,6 @@
+overrides:
+ check-counter:
+ counters:
+ mds:
+ - mds.exported
+ - mds.imported
diff --git a/qa/suites/fs/workload/ranks/multi/n/3.yaml b/qa/suites/fs/workload/ranks/multi/n/3.yaml
new file mode 100644
index 000000000..9e6bddce0
--- /dev/null
+++ b/qa/suites/fs/workload/ranks/multi/n/3.yaml
@@ -0,0 +1,4 @@
+overrides:
+ ceph:
+ cephfs:
+ max_mds: 3
diff --git a/qa/suites/fs/workload/ranks/multi/n/5.yaml b/qa/suites/fs/workload/ranks/multi/n/5.yaml
new file mode 100644
index 000000000..2265aa0f2
--- /dev/null
+++ b/qa/suites/fs/workload/ranks/multi/n/5.yaml
@@ -0,0 +1,4 @@
+overrides:
+ ceph:
+ cephfs:
+ max_mds: 5
diff --git a/qa/suites/fs/workload/ranks/multi/replication/always.yaml b/qa/suites/fs/workload/ranks/multi/replication/always.yaml
new file mode 100644
index 000000000..099ced663
--- /dev/null
+++ b/qa/suites/fs/workload/ranks/multi/replication/always.yaml
@@ -0,0 +1,18 @@
+# To exercise lock/witness code paths more regularly, try to get all
+# directories replicated.
+overrides:
+ ceph:
+ conf:
+ mds:
+ mds_bal_replicate_threshold: 1
+# Note: dir_update is only sent by an MDS trying to replicate a dir.
+# dir_update is always sent for root, so the count should be more than 2
+ check-counter:
+ counters:
+ mds:
+ -
+ name: mds_cache.dir_update
+ min: 3
+ -
+ name: mds_cache.dir_update_receipt
+ min: 3
diff --git a/qa/suites/fs/workload/ranks/multi/replication/default.yaml b/qa/suites/fs/workload/ranks/multi/replication/default.yaml
new file mode 100644
index 000000000..272977942
--- /dev/null
+++ b/qa/suites/fs/workload/ranks/multi/replication/default.yaml
@@ -0,0 +1 @@
+# Use default (8000)
diff --git a/qa/suites/fs/workload/standby-replay.yaml b/qa/suites/fs/workload/standby-replay.yaml
new file mode 100644
index 000000000..b47d312bf
--- /dev/null
+++ b/qa/suites/fs/workload/standby-replay.yaml
@@ -0,0 +1,4 @@
+overrides:
+ ceph:
+ cephfs:
+ standby_replay: true
diff --git a/qa/suites/fs/workload/tasks/% b/qa/suites/fs/workload/tasks/%
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/%
diff --git a/qa/suites/fs/workload/tasks/.qa b/qa/suites/fs/workload/tasks/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/workload/tasks/0-subvolume/$ b/qa/suites/fs/workload/tasks/0-subvolume/$
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/0-subvolume/$
diff --git a/qa/suites/fs/workload/tasks/0-subvolume/.qa b/qa/suites/fs/workload/tasks/0-subvolume/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/0-subvolume/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/workload/tasks/0-subvolume/no-subvolume.yaml b/qa/suites/fs/workload/tasks/0-subvolume/no-subvolume.yaml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/0-subvolume/no-subvolume.yaml
diff --git a/qa/suites/fs/workload/tasks/0-subvolume/with-namespace-isolated-and-quota.yaml b/qa/suites/fs/workload/tasks/0-subvolume/with-namespace-isolated-and-quota.yaml
new file mode 100644
index 000000000..7129e54b5
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/0-subvolume/with-namespace-isolated-and-quota.yaml
@@ -0,0 +1,11 @@
+overrides:
+ ceph:
+ subvols:
+ create: 2
+ subvol_options: "--namespace-isolated --size 25000000000"
+ ceph-fuse:
+ client.0:
+ mount_subvol_num: 0
+ kclient:
+ client.0:
+ mount_subvol_num: 1
diff --git a/qa/suites/fs/workload/tasks/0-subvolume/with-namespace-isolated.yaml b/qa/suites/fs/workload/tasks/0-subvolume/with-namespace-isolated.yaml
new file mode 100644
index 000000000..2ac901fef
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/0-subvolume/with-namespace-isolated.yaml
@@ -0,0 +1,11 @@
+overrides:
+ ceph:
+ subvols:
+ create: 2
+ subvol_options: "--namespace-isolated"
+ ceph-fuse:
+ client.0:
+ mount_subvol_num: 0
+ kclient:
+ client.0:
+ mount_subvol_num: 1
diff --git a/qa/suites/fs/workload/tasks/0-subvolume/with-no-extra-options.yaml b/qa/suites/fs/workload/tasks/0-subvolume/with-no-extra-options.yaml
new file mode 100644
index 000000000..40f98c2bc
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/0-subvolume/with-no-extra-options.yaml
@@ -0,0 +1,10 @@
+overrides:
+ ceph:
+ subvols:
+ create: 2
+ ceph-fuse:
+ client.0:
+ mount_subvol_num: 0
+ kclient:
+ client.0:
+ mount_subvol_num: 1
diff --git a/qa/suites/fs/workload/tasks/0-subvolume/with-quota.yaml b/qa/suites/fs/workload/tasks/0-subvolume/with-quota.yaml
new file mode 100644
index 000000000..6cda00d4a
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/0-subvolume/with-quota.yaml
@@ -0,0 +1,11 @@
+overrides:
+ ceph:
+ subvols:
+ create: 2
+ subvol_options: "--size 25000000000"
+ ceph-fuse:
+ client.0:
+ mount_subvol_num: 0
+ kclient:
+ client.0:
+ mount_subvol_num: 1
diff --git a/qa/suites/fs/workload/tasks/1-check-counter.yaml b/qa/suites/fs/workload/tasks/1-check-counter.yaml
new file mode 100644
index 000000000..6339ddb7c
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/1-check-counter.yaml
@@ -0,0 +1,2 @@
+tasks:
+- check-counter: {}
diff --git a/qa/suites/fs/workload/tasks/2-scrub/.qa b/qa/suites/fs/workload/tasks/2-scrub/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/2-scrub/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/workload/tasks/2-scrub/no.yaml b/qa/suites/fs/workload/tasks/2-scrub/no.yaml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/2-scrub/no.yaml
diff --git a/qa/suites/fs/workload/tasks/2-scrub/yes.yaml b/qa/suites/fs/workload/tasks/2-scrub/yes.yaml
new file mode 100644
index 000000000..52978a2bb
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/2-scrub/yes.yaml
@@ -0,0 +1,10 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - slow metadata IO
+ - SLOW_OPS
+ - slow request
+tasks:
+- fwd_scrub:
+ scrub_timeout: 900
+ sleep_between_iterations: 1
diff --git a/qa/suites/fs/workload/tasks/3-snaps/.qa b/qa/suites/fs/workload/tasks/3-snaps/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/3-snaps/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/workload/tasks/3-snaps/no.yaml b/qa/suites/fs/workload/tasks/3-snaps/no.yaml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/3-snaps/no.yaml
diff --git a/qa/suites/fs/workload/tasks/3-snaps/yes.yaml b/qa/suites/fs/workload/tasks/3-snaps/yes.yaml
new file mode 100644
index 000000000..598f7e215
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/3-snaps/yes.yaml
@@ -0,0 +1,30 @@
+overrides:
+ ceph:
+ conf:
+ mgr:
+ debug cephsqlite: 20
+ check-counter:
+ counters:
+ mds:
+ - mds.root_rsnaps
+ - mds_server.req_mksnap_latency.avgcount
+ - mds_server.req_rmsnap_latency.avgcount
+tasks:
+- exec:
+ mon.a:
+ - ceph mgr module enable snap_schedule
+ - ceph config set mgr mgr/snap_schedule/allow_m_granularity true
+ - ceph config set mgr mgr/snap_schedule/dump_on_update true
+ - ceph fs snap-schedule add --fs=cephfs --path=/ --snap_schedule=1M
+ - ceph fs snap-schedule retention add --fs=cephfs --path=/ --retention-spec-or-period=6M3h
+ - ceph fs snap-schedule status --fs=cephfs --path=/
+ - ceph fs snap-schedule list --fs=cephfs --path=/ --recursive=true
+ - date +%s > START_TIME
+- full_sequential_finally:
+ - exec:
+ mon.a:
+ # Ensure that we have some snaps which get deleted (so check-counters does not fail)
+ - date +%s > END_TIME
+ - START_TIME=$(cat START_TIME); END_TIME=$(cat END_TIME); DIFF_TIME=$((600-(END_TIME-START_TIME))); if [ "$DIFF_TIME" -gt 0 ]; then sleep "$DIFF_TIME"; fi
+ - ceph fs snap-schedule status --fs=cephfs --path=/
+ - ceph fs snap-schedule list --fs=cephfs --path=/ --recursive=true
diff --git a/qa/suites/fs/workload/tasks/4-flush/.qa b/qa/suites/fs/workload/tasks/4-flush/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/4-flush/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/workload/tasks/4-flush/no.yaml b/qa/suites/fs/workload/tasks/4-flush/no.yaml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/4-flush/no.yaml
diff --git a/qa/suites/fs/workload/tasks/4-flush/yes.yaml b/qa/suites/fs/workload/tasks/4-flush/yes.yaml
new file mode 100644
index 000000000..4a3f7a11c
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/4-flush/yes.yaml
@@ -0,0 +1,4 @@
+tasks:
+- background_exec:
+ mon.a:
+ - while sleep 13; do ceph tell mds.cephfs:0 flush journal; done
diff --git a/qa/suites/fs/workload/tasks/5-workunit/.qa b/qa/suites/fs/workload/tasks/5-workunit/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/5-workunit/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/workload/tasks/5-workunit/direct_io.yaml b/qa/suites/fs/workload/tasks/5-workunit/direct_io.yaml
new file mode 100644
index 000000000..6c6ea1422
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/5-workunit/direct_io.yaml
@@ -0,0 +1,9 @@
+overrides:
+ check-counter:
+ dry_run: true
+tasks:
+- workunit:
+ clients:
+ all:
+ - direct_io
+
diff --git a/qa/suites/fs/workload/tasks/5-workunit/fs/.qa b/qa/suites/fs/workload/tasks/5-workunit/fs/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/5-workunit/fs/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/workload/tasks/5-workunit/fs/misc.yaml b/qa/suites/fs/workload/tasks/5-workunit/fs/misc.yaml
new file mode 100644
index 000000000..4a9d0b4c5
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/5-workunit/fs/misc.yaml
@@ -0,0 +1,10 @@
+overrides:
+ check-counter:
+ counters:
+ mds:
+ - "mds.dir_split"
+tasks:
+- workunit:
+ clients:
+ all:
+ - fs/misc
diff --git a/qa/suites/fs/workload/tasks/5-workunit/fs/norstats.yaml b/qa/suites/fs/workload/tasks/5-workunit/fs/norstats.yaml
new file mode 100644
index 000000000..d48df5471
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/5-workunit/fs/norstats.yaml
@@ -0,0 +1,17 @@
+overrides:
+ check-counter:
+ counters:
+ mds:
+ - "mds.dir_split"
+tasks:
+- workunit:
+ clients:
+ all:
+ - fs/norstats
+overrides:
+ kclient:
+ rbytes: false
+ ceph:
+ conf:
+ client:
+ client dirsize rbytes: false
diff --git a/qa/suites/fs/workload/tasks/5-workunit/fs/test_o_trunc.yaml b/qa/suites/fs/workload/tasks/5-workunit/fs/test_o_trunc.yaml
new file mode 100644
index 000000000..7b2b7c536
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/5-workunit/fs/test_o_trunc.yaml
@@ -0,0 +1,8 @@
+overrides:
+ check-counter:
+ dry_run: true
+tasks:
+- workunit:
+ clients:
+ all:
+ - fs/test_o_trunc.sh
diff --git a/qa/suites/fs/workload/tasks/5-workunit/kernel_untar_build.yaml b/qa/suites/fs/workload/tasks/5-workunit/kernel_untar_build.yaml
new file mode 100644
index 000000000..602d34162
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/5-workunit/kernel_untar_build.yaml
@@ -0,0 +1,10 @@
+overrides:
+ check-counter:
+ counters:
+ mds:
+ - "mds.dir_split"
+tasks:
+- workunit:
+ clients:
+ all:
+ - kernel_untar_build.sh
diff --git a/qa/suites/fs/workload/tasks/5-workunit/postgres.yaml b/qa/suites/fs/workload/tasks/5-workunit/postgres.yaml
new file mode 100644
index 000000000..7e71dbc88
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/5-workunit/postgres.yaml
@@ -0,0 +1,36 @@
+# I would expect setting the context on the postgresql database directories
+# would correctly trickle down to the files created by the postgresql daemon,
+# but this does not appear to work. I would still see denials like:
+
+# type=AVC msg=audit(1655861665.521:21354): avc: denied { create } for pid=131994 comm="postmaster" name="replorigin_checkpoint.tmp" scontext=system_u:system_r:postgresql_t:s0 tcontext=system_u:object_r:cephfs_t:s0 tclass=file permissive=1'
+
+# Instead, we'll just set the context for the mount and be done with it. I've
+# left in the context setting for the directories below.
+
+overrides:
+ ceph-fuse:
+ client.0:
+ mountpoint: /tmp/cephfs
+ mntopts: ["context=system_u:object_r:postgresql_db_t:s0"]
+ kclient:
+ client.0:
+ mountpoint: /tmp/cephfs
+ mntopts: ["context=system_u:object_r:postgresql_db_t:s0"]
+tasks:
+- exec:
+ client.0:
+ - sudo ls -l /tmp/cephfs/ && sudo df -h /tmp/cephfs/
+ - sudo mkdir -m 755 --context=system_u:system_r:postgresql_t:s0 /tmp/cephfs/postgres && sudo chown postgres:postgres /tmp/cephfs/postgres
+ - sudo -u postgres -- mkdir -m 700 --context=system_u:system_r:postgresql_t:s0 /tmp/cephfs/postgres/data
+ - sudo semanage fcontext -a -t postgresql_db_t "/tmp/cephfs/postgres(/.*)?"
+ - sudo grep -i postgresql /etc/selinux/targeted/contexts/files/file_contexts.local
+ - sudo restorecon -R -v /tmp/cephfs/postgres
+ - sudo ls -lZaR /tmp/cephfs/postgres/
+ - sudo mkdir -p /etc/systemd/system/postgresql.service.d/ && printf '[Service]\nEnvironment=PGDATA=/tmp/cephfs/postgres/data\nEnvironment=PGLOG=/tmp/cephfs/postgres/pgstartup.log\n' | sudo tee /etc/systemd/system/postgresql.service.d/env.conf
+ - sudo -u postgres -- postgresql-setup --initdb
+ - sudo ls -lZaR /tmp/cephfs/postgres/
+ - sudo systemctl start postgresql
+ - sudo -u postgres -- pgbench -s 32 -i
+ - sudo -u postgres -- pgbench -c 100 -j 4 --progress=5 --time=900
+ - sudo systemctl stop postgresql
+ - sudo ls -lZaR /tmp/cephfs/postgres/
diff --git a/qa/suites/fs/workload/tasks/5-workunit/suites/.qa b/qa/suites/fs/workload/tasks/5-workunit/suites/.qa
new file mode 120000
index 000000000..a602a0353
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/5-workunit/suites/.qa
@@ -0,0 +1 @@
+../.qa/ \ No newline at end of file
diff --git a/qa/suites/fs/workload/tasks/5-workunit/suites/blogbench.yaml b/qa/suites/fs/workload/tasks/5-workunit/suites/blogbench.yaml
new file mode 100644
index 000000000..4c4bf2f9e
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/5-workunit/suites/blogbench.yaml
@@ -0,0 +1,10 @@
+overrides:
+ check-counter:
+ counters:
+ mds:
+ - "mds.dir_split"
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/blogbench.sh
diff --git a/qa/suites/fs/workload/tasks/5-workunit/suites/dbench.yaml b/qa/suites/fs/workload/tasks/5-workunit/suites/dbench.yaml
new file mode 100644
index 000000000..41b2bc8ed
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/5-workunit/suites/dbench.yaml
@@ -0,0 +1,5 @@
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/dbench.sh
diff --git a/qa/suites/fs/workload/tasks/5-workunit/suites/ffsb.yaml b/qa/suites/fs/workload/tasks/5-workunit/suites/ffsb.yaml
new file mode 100644
index 000000000..9bc925ab0
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/5-workunit/suites/ffsb.yaml
@@ -0,0 +1,18 @@
+overrides:
+ ceph:
+ log-ignorelist:
+ - SLOW_OPS
+ - slow request
+ conf:
+ osd:
+ filestore flush min: 0
+ osd heartbeat grace: 60
+ check-counter:
+ counters:
+ mds:
+ - "mds.dir_split"
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/ffsb.sh
diff --git a/qa/suites/fs/workload/tasks/5-workunit/suites/fsstress.yaml b/qa/suites/fs/workload/tasks/5-workunit/suites/fsstress.yaml
new file mode 100644
index 000000000..bae220292
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/5-workunit/suites/fsstress.yaml
@@ -0,0 +1,6 @@
+tasks:
+- workunit:
+ timeout: 6h
+ clients:
+ all:
+ - suites/fsstress.sh
diff --git a/qa/suites/fs/workload/tasks/5-workunit/suites/fsx.yaml b/qa/suites/fs/workload/tasks/5-workunit/suites/fsx.yaml
new file mode 100644
index 000000000..12d456cf4
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/5-workunit/suites/fsx.yaml
@@ -0,0 +1,10 @@
+overrides:
+ check-counter:
+ counters:
+ mds:
+ - "mds.dir_split"
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/fsx.sh
diff --git a/qa/suites/fs/workload/tasks/5-workunit/suites/fsync-tester.yaml b/qa/suites/fs/workload/tasks/5-workunit/suites/fsync-tester.yaml
new file mode 100644
index 000000000..9aaf6d0c4
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/5-workunit/suites/fsync-tester.yaml
@@ -0,0 +1,8 @@
+overrides:
+ check-counter:
+ dry_run: true
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/fsync-tester.sh
diff --git a/qa/suites/fs/workload/tasks/5-workunit/suites/iogen.yaml b/qa/suites/fs/workload/tasks/5-workunit/suites/iogen.yaml
new file mode 100644
index 000000000..b8beb9e97
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/5-workunit/suites/iogen.yaml
@@ -0,0 +1,8 @@
+overrides:
+ check-counter:
+ dry_run: true
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/iogen.sh
diff --git a/qa/suites/fs/workload/tasks/5-workunit/suites/iozone.yaml b/qa/suites/fs/workload/tasks/5-workunit/suites/iozone.yaml
new file mode 100644
index 000000000..bf5fd25b3
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/5-workunit/suites/iozone.yaml
@@ -0,0 +1,8 @@
+overrides:
+ check-counter:
+ dry_run: true
+tasks:
+- workunit:
+ clients:
+ all:
+ - suites/iozone.sh
diff --git a/qa/suites/fs/workload/tasks/5-workunit/suites/pjd.yaml b/qa/suites/fs/workload/tasks/5-workunit/suites/pjd.yaml
new file mode 100644
index 000000000..37e315f7e
--- /dev/null
+++ b/qa/suites/fs/workload/tasks/5-workunit/suites/pjd.yaml
@@ -0,0 +1,12 @@
+overrides:
+ ceph:
+ conf:
+ client:
+ fuse set user groups: true
+ fuse default permissions: false
+tasks:
+- workunit:
+ timeout: 6h
+ clients:
+ all:
+ - suites/pjd.sh